Raw File
farm_sve.h
//////////////////////////////////////////////////////////////////////
/// # Farm SVE header
///
/// This header implement the ARM C language extensions (ACLE)
/// for the ARM Scalable Vector Extension (SVE) in standard C++.
/// The aim of this package is to allow developing SVE-based code,
/// to compile, debug and execute on any hardware (including x86).
///
/// The implementation is naive and scalar such that it is not
/// made to achieve high-performance.
///
/// # Official repo and bug/issues tracking
///
/// Please visit the official repo to let us know if you find
/// any bug or would like to propose any improvement.
///
/// https://gitlab.inria.fr/bramas/farm-sve
///
/// # Citing
///
/// We would appreciate that any publication that presents
/// a software (with ARM SVE, obviously) where Farm-SVE
/// has been used at some point in the project (to faciliate
/// the development, or to debug, or anything else) refer
/// to the following reference:
/// ""
///
/// Simply an aknowledgement to express
/// the fact that this tool was used in the developement
/// process of your project and that it was useful to you
/// would be great.
///
/// # Authors:
/// - Berenger Bramas (berenger.bramas@inria.fr)
///
/// # Under MIT License.
///
/// Copyright 2020 Inria
/// Permission is hereby granted, free of charge, to any person
/// obtaining a copy of this software and associated documentation
/// files (the "Software"), to deal in the Software without
/// restriction, including without limitation the rights to use,
/// copy, modify, merge, publish, distribute, sublicense, and/or
/// sell copies of the Software, and to permit persons to whom
/// the Software is furnished to do so, subject to the following
/// conditions:
/// The above copyright notice and this permission notice shall
/// be included in all copies or substantial portions of the Software.
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
/// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
/// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
/// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
/// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
/// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
/// OTHER DEALINGS IN THE SOFTWARE.
///
/// # Tiny help
///
/// One can include Farm-SVE using:
/// ```
/// #ifdef __ARM_FEATURE_SVE
/// #include <arm_sve.h>
/// #else
/// #include "farm_sve.h"
/// #endif /* __ARM_FEATURE_SVE */
/// ```
///
/// The macro `FARM_NB_BITS_IN_VEC` set the number of bits.
/// It is 512 by default, but can be overwritten (passing
/// `-DFARM_NB_BITS_IN_VEC=X` to the compiler for example).
///
/// # Current limitations
///
/// - Faults are not managed
/// - float16_t is actually a 'float' when f16 is enabled (-mf16c
///   compiler flag) or a dumb float cut to 16 bits
/// - mulx, subr, tmad, recp[e,s], recpx do not respect SVE definitions
///   this should be marked with a TODO
//////////////////////////////////////////////////////////////////////
#ifndef FARM_SVE_H
#define FARM_SVE_H

// To be seen from the outside
#define USE_FARM_SVE 1
#define __FARM_SVE__ 1
// The number of bits in a vector
#ifndef FARM_NB_BITS_IN_VEC
#define FARM_NB_BITS_IN_VEC 512
#endif

#include <cstdint>
#include <cmath>
#include <limits>
#include <cstring>
#include <type_traits>
#include <functional>

///////// Float16 /////////

#ifdef __F16C__
#include <immintrin.h>
#define FARM_USE_F16C 1
#endif

class FarmFloat16 {
private:
    inline static uint16_t ConvertF32ToF16(const float& inVal) {
#ifndef FARM_USE_F16C
      return uint16_t(*reinterpret_cast<const uint32_t*>(&inVal));
#else
        return _cvtss_sh(inVal, 0);
#endif
    }

    inline static float ConvertF16ToF32(const uint16_t& inVal) {
#ifndef FARM_USE_F16C
        const uint32_t val32 = inVal;
        return (*reinterpret_cast<const float*>(&val32));
#else
        return _cvtsh_ss(inVal);
#endif
    }

  uint16_t valUInt;

public:
  inline FarmFloat16() : valUInt(0){}
  inline FarmFloat16(const FarmFloat16&) = default;
  inline FarmFloat16& operator=(const FarmFloat16&) = default;

  inline FarmFloat16(const float inOther) : valUInt(ConvertF32ToF16(inOther)){}
  inline FarmFloat16& operator=(const float& inOther){
      valUInt = ConvertF32ToF16(inOther);
      return (*this);
  }

  inline FarmFloat16& operator +=(const FarmFloat16& inOther) {
      (*this) = toFloat() + inOther.toFloat();
      return (*this);
  }

  inline FarmFloat16& operator -=(const FarmFloat16& inOther) {
      (*this) = toFloat() - inOther.toFloat();
      return (*this);
  }

  inline FarmFloat16& operator /=(const FarmFloat16& inOther) {
      (*this) = toFloat() / inOther.toFloat();
      return (*this);
  }

  inline FarmFloat16& operator *=(const FarmFloat16& inOther) {
      (*this) = toFloat() * inOther.toFloat();
      return (*this);
  }

  inline FarmFloat16& operator++() {
    (*this) += 1.f;
    return (*this);
  }

  inline FarmFloat16 operator++(int) {
    FarmFloat16 oldValue(*this);
    (*this) += 1.f;
    return oldValue;
  }

  inline FarmFloat16& operator--() {
    (*this) -= 1.f;
    return (*this);
  }

  inline FarmFloat16 operator--(int) {
    FarmFloat16 oldValue(*this);
    (*this) -= 1.f;
    return oldValue;
  }

  inline FarmFloat16& operator-() {
    valUInt ^= 0x8000U;
    return (*this);
  }

  inline float toFloat() const{
      return ConvertF16ToF32(valUInt);
  }

  inline operator float() const{
       return toFloat();
  }

  friend bool operator==(const FarmFloat16& v1, const FarmFloat16& v2);
  friend inline bool operator!=(const FarmFloat16& v1, const FarmFloat16& v2);
};

inline FarmFloat16 operator +(FarmFloat16 v1, const FarmFloat16& v2) {
    v1 += v2;
    return v1;
}

inline FarmFloat16 operator -(FarmFloat16 v1, const FarmFloat16& v2) {
    v1 -= v2;
    return v1;
}

inline FarmFloat16 operator /(FarmFloat16 v1, const FarmFloat16& v2) {
    v1 /= v2;
    return v1;
}

inline FarmFloat16 operator *(FarmFloat16 v1, const FarmFloat16& v2) {
    v1 *= v2;
    return v1;
}

inline bool operator<(const FarmFloat16& v1, const FarmFloat16& v2) {
  return v1.toFloat() < v2.toFloat();
}

inline bool operator>(const FarmFloat16& v1, const FarmFloat16& v2) {
    return v1.toFloat() > v2.toFloat();
}

inline bool operator<=(const FarmFloat16& v1, const FarmFloat16& v2) {
    return v1.toFloat() <= v2.toFloat();
}

inline bool operator>=(const FarmFloat16& v1, const FarmFloat16& v2) {
    return v1.toFloat() >= v2.toFloat();
}

inline bool operator==(const FarmFloat16& v1, const FarmFloat16& v2) {
  return v1.valUInt == v2.valUInt;
}

inline bool operator!=(const FarmFloat16& v1, const FarmFloat16& v2) {
    return v1.valUInt != v2.valUInt;
}

///////// FARM EXTRA BEGIN /////////

template <class Type>
inline Type core_fls(Type val){
    Type cpt = 0;
    while(val){
        cpt += 1;
        val >>= 1;
    }
    return cpt;
}

template <class Type>
inline Type core_isnan(const Type v1){
    return std::isnan(v1);
}

template <class Type>
inline Type core_min(const Type v1, const Type v2){
    return (v1 < v2? v1 : v2);
}
template <class Type>
inline Type core_minnm(const Type v1, const Type v2){
    if(core_isnan(v1) && core_isnan(v2)){
        return std::numeric_limits<Type>::quiet_NaN();
    }
    else if (core_isnan(v1)){
        return v2;
    }
    else if (core_isnan(v2)){
        return v1;
    }
    return core_min(v1, v2);
}

template <class Type>
inline Type core_max(const Type v1, const Type v2){
    return (v1 > v2? v1 : v2);
}
template <class Type>
inline Type core_maxnm(const Type v1, const Type v2){
    if(core_isnan(v1) && core_isnan(v2)){
        return std::numeric_limits<Type>::quiet_NaN();
    }
    else if (core_isnan(v1)){
        return v2;
    }
    else if (core_isnan(v2)){
        return v1;
    }
    return core_max(v1, v2);
}

template <class Type>
inline Type core_mulx(const Type v1, const Type v2){
    // TODO We do nothing special
    return (v1 * v2);
}

template <class Type>
inline Type core_abs(const Type v1){
    return (v1 < Type(0)? Type(-v1) : Type(v1));
}

template <class Type>
inline Type core_qadd(const Type v1, const Type v2){
    if ((v1 > 0) && (v2 > std::numeric_limits<Type>::max() - v1)) return std::numeric_limits<Type>::max();
    if ((v1 < 0) && (v2 < std::numeric_limits<Type>::min() - v1)) return std::numeric_limits<Type>::min();
    return (v1 + v2);
}

template <class Type>
inline Type core_qsub(const Type v1, const Type v2){
    if ((v1 < 0) && (v2 > std::numeric_limits<Type>::max() + v1)) return std::numeric_limits<Type>::max();
    if ((v1 > 0) && (v2 < std::numeric_limits<Type>::min() + v1)) return std::numeric_limits<Type>::min();
    return (v1 + v2);
}

template <class Type>
inline Type core_subr(const Type v1, const Type v2){
    // TODO We do nothing special
    return (v2 - v1);
}

template <class Type>
inline Type core_svmulh(const Type v1, const Type v2){
#ifdef __SIZEOF_INT128__
    if(std::is_signed<Type>::value){
        __int128 lv1 = v1;
        __int128 lv2 = v2;
        __int128 res = lv1 * lv2;
        res >>= (sizeof(Type)*8);
        return Type(res);
    }
    else{
        unsigned __int128 lv1 = v1;
        unsigned __int128 lv2 = v2;
        __int128 res = lv1 * lv2;
        res >>= (sizeof(Type)*8);
        return Type(res);
    }
#else
    double fv1 = v1;
    double fv2 = v2;
    return Type((fv1*fv2)/std::numeric_limits<Type>::max());
#endif
}

template <class Type>
inline Type core_tmad(const Type v1, const uint64_t imm3){
    // TODO Currently the tmad tables are zeros
    if(v1 < Type(0)){
        Type table[8]={0};
        return table[imm3];
    }
    else{
        Type table[8]={0};
        return table[imm3];
    }
}

template <class Type>
inline Type core_recpe(const Type v1){
    return Type(1)/v1;
}

template <class Type>
inline Type core_recps(const Type v1, const Type /*v2*/){
    // TODO Do nothing special
    return Type(1)/v1;
}

template <class Type>
inline Type core_recpx(const Type v1){
    // TODO Do nothing special
    return v1;
}

template <class Type>
inline Type core_rsqrte(const Type v1){
    return std::pow(v1, Type(-0.5));
}

template <class Type>
inline Type core_rsqrts(const Type v1, const Type /*v2*/){
    // TODO Do nothing special
    return std::pow(v1, Type(-0.5));
}

template <class Type>
inline uint16_t core_svcls(const Type v1){
    uint16_t cpt = 0;
    Type mask = (Type(1) << (sizeof(Type)*8-2));
    while(mask && (v1 & mask)){
        cpt += 1;
        mask >>= 1;
    }
    return cpt;
}

template <class Type>
inline uint16_t core_svclz(const Type v1){
    uint16_t cpt = 0;
    Type mask = (Type(1) << (sizeof(Type)*8-2));
    while(mask && !(v1 & mask)){
        cpt += 1;
        mask >>= 1;
    }
    return cpt;
}

template <class Type>
inline uint16_t core_svcnt(const Type v1){
    uint16_t cpt = 0;
    uint64_t iv1 = 0;
    memcpy(&iv1, &v1, sizeof(Type));
    while(iv1){
        if(iv1 & 1UL){
            cpt += 1;
        }
        iv1 >>= 1;
    }
    return cpt;
}

template <class Type>
inline Type core_svrbit(const Type v1){
    Type res = 0;
    for(int idx = 0 ; idx < int(sizeof(Type)*8/2) ; ++idx){
        res |= (Type(1) << idx) & (v1 >> (sizeof(Type)*8-2*idx-1));
        res |= (Type(1) << (sizeof(Type)*8-idx-1)) & (v1 << (sizeof(Type)*8-2*idx-1));
    }
    return res;
}

template <class Type>
inline Type core_svrevb(const Type v1){
    union bytes8{
        Type val;
        uint8_t bt[sizeof(Type)];
    };

    bytes8 data;
    data.val = v1;
    for(int idx = 0 ; idx < int(sizeof(Type)/2) ; ++idx){
        std::swap(data.bt[idx], data.bt[sizeof(Type)-idx-1]);
    }

    return data.val;
}

template <class Type>
inline Type core_svrevh(const Type v1){
    union bytes16{
        Type val;
        uint16_t bt[sizeof(Type)/2];
    };

    bytes16 data;
    data.val = v1;
    for(int idx = 0 ; idx < int(sizeof(Type)/4) ; ++idx){
        std::swap(data.bt[idx], data.bt[sizeof(Type)-idx-1]);
    }

    return data.val;
}

template <class Type>
inline Type core_svrevw(const Type v1){
    union bytes32{
        Type val;
        uint32_t bt[sizeof(Type)/4];
    };

    bytes32 data;
    data.val = v1;
    for(int idx = 0 ; idx < int(sizeof(Type)/8) ; ++idx){
        std::swap(data.bt[idx], data.bt[sizeof(Type)-idx-1]);
    }

    return data.val;
}

template <class Type1, class Type2>
inline Type1 core_svlsl(const Type1 v1, const Type2 v2){
    return v1 << v2;
}

template <class Type1, class Type2>
inline Type1 core_svlsr(const Type1 v1, const Type2 v2){
    return v1 >> v2;
}

template <class Type1, class Type2>
inline Type1 core_svasr(const Type1 v1, const Type2 v2){
    // TODO Could be better
    return v1 >> v2;
}

template <class Type1, class Type2>
inline Type1 core_svasrd(const Type1 v1, const Type2 v2){
    // TODO Could be better
    return v1 >> v2;
}

enum core_ceil_choices{
    core_ceil_type_a,
    core_ceil_type_i,
    core_ceil_type_m,
    core_ceil_type_n,
    core_ceil_type_p,
    core_ceil_type_x,
    core_ceil_type_z
};

#include <cfenv>
// Not standard :( #pragma STDC FENV_ACCESS ON
template <class Type>
Type core_ceil(Type x, core_ceil_choices type)
{
    Type result;
    const int save_round = std::fegetround();
    switch(type){
    case core_ceil_type_a :
        // Floating-point round to nearest, ties away from zero
        std::fesetround(FE_TONEAREST);
        break;
    case core_ceil_type_i :
        // Floating-point round using current rounding mode
        break;
    case core_ceil_type_m :
        // Floating-point round towards -Inf
        std::fesetround(FE_DOWNWARD);
        break;
    case core_ceil_type_n :
        // Floating-point round to nearest, ties to even
        std::fesetround(FE_TONEAREST);
        // TODO Ensure it works as expected
        if(uint64_t(x) & 1){
            x -= std::numeric_limits<Type>::epsilon();
        }
        else{
            x += std::numeric_limits<Type>::epsilon();
        }
        break;
    case core_ceil_type_p :
        // Floating-point round towards +Inf
        std::fesetround(FE_UPWARD);
        break;
    case core_ceil_type_x :
        // Floating-point round using current rounding mode
        break;
    case core_ceil_type_z :
        // Floating-point round towards zero
        std::fesetround(FE_TOWARDZERO);
        break;
    }
    result = std::rint(x); // or std::nearbyint
    std::fesetround(save_round);
    return result;
}

template <class VecType>
struct VecContainer{
    static const int Size = FARM_NB_BITS_IN_VEC/8/sizeof(VecType);
    VecType vec[Size];
    VecContainer(){
        for(int idx = 0 ; idx < Size ; ++idx){
            vec[idx] = 0;
        }
    }
};

struct VecBool{
    bool vec[FARM_NB_BITS_IN_VEC/1];
    VecBool(){
        for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/1 ; ++idx){
            vec[idx] = false;
        }
    }
};
///////// FARM EXTRA END /////////

typedef FarmFloat16 float16_t;
typedef float float32_t;
typedef double float64_t;

typedef VecContainer<int8_t> svint8_t;
typedef VecContainer<uint8_t> svuint8_t;
typedef VecContainer<int16_t> svint16_t;
typedef VecContainer<uint16_t> svuint16_t;
typedef VecContainer<float16_t> svfloat16_t;
typedef VecContainer<int32_t> svint32_t;
typedef VecContainer<uint32_t> svuint32_t;
typedef VecContainer<float32_t> svfloat32_t;
typedef VecContainer<int64_t> svint64_t;
typedef VecContainer<uint64_t> svuint64_t;
typedef VecContainer<float64_t> svfloat64_t;

typedef VecBool svbool_t;

typedef bool svprfop;

enum sv_pattern
{
    SV_POW2 = 0,
    SV_VL1 = 1,
    SV_VL2 = 2,
    SV_VL3 = 3,
    SV_VL4 = 4,
    SV_VL5 = 5,
    SV_VL6 = 6,
    SV_VL7 = 7,
    SV_VL8 = 8,
    SV_VL16 = 9,
    SV_VL32 = 10,
    SV_VL64 = 11,
    SV_VL128 = 12,
    SV_VL256 = 13,
    SV_MUL4 = 29,
    SV_MUL3 = 30,
    SV_ALL = 31
};

typedef sv_pattern svpattern;

enum sv_prfop
{
    SV_PLDL1KEEP     =   0,
    SV_PLDL1STRM     =   1,
    SV_PLDL2KEEP     =   2,
    SV_PLDL2STRM     =   3,
    SV_PLDL3KEEP     =   4,
    SV_PLDL3STRM     =   5,
    SV_PSTL1KEEP     =   8,
    SV_PSTL1STRM     =   9,
    SV_PSTL2KEEP     =   10,
    SV_PSTL2STRM     =   11,
    SV_PSTL3KEEP     =   12,
    SV_PSTL3STRM     =   13
};


struct svint8x2_t{ svint8_t v0; svint8_t v1; };
struct svuint8x2_t{ svuint8_t v0; svuint8_t v1; };
struct svint16x2_t{ svint16_t v0; svint16_t v1; };
struct svuint16x2_t{ svuint16_t v0; svuint16_t v1; };
struct svfloat16x2_t{ svfloat16_t v0; svfloat16_t v1; };
struct svint32x2_t{ svint32_t v0; svint32_t v1; };
struct svuint32x2_t{ svuint32_t v0; svuint32_t v1; };
struct svfloat32x2_t{ svfloat32_t v0; svfloat32_t v1; };
struct svint64x2_t{ svint64_t v0; svint64_t v1; };
struct svuint64x2_t{ svuint64_t v0; svuint64_t v1; };
struct svfloat64x2_t{ svfloat64_t v0; svfloat64_t v1; };
struct svint8x3_t{ svint8_t v0; svint8_t v1;  svint8_t v2;};
struct svuint8x3_t{ svuint8_t v0; svuint8_t v1;  svuint8_t v2;};
struct svint16x3_t{ svint16_t v0; svint16_t v1;  svint16_t v2;};
struct svuint16x3_t{ svuint16_t v0; svuint16_t v1;  svuint16_t v2;};
struct svfloat16x3_t{ svfloat16_t v0; svfloat16_t v1;  svfloat16_t v2;};
struct svint32x3_t{ svint32_t v0; svint32_t v1;  svint32_t v2;};
struct svuint32x3_t{ svuint32_t v0; svuint32_t v1;  svuint32_t v2;};
struct svfloat32x3_t{ svfloat32_t v0; svfloat32_t v1;  svfloat32_t v2;};
struct svint64x3_t{ svint64_t v0; svint64_t v1;  svint64_t v2;};
struct svuint64x3_t{ svuint64_t v0; svuint64_t v1;  svuint64_t v2;};
struct svfloat64x3_t{ svfloat64_t v0; svfloat64_t v1;  svfloat64_t v2;};
struct svint8x4_t{ svint8_t v0; svint8_t v1;  svint8_t v2;  svint8_t v3; };
struct svuint8x4_t{ svuint8_t v0; svuint8_t v1;  svuint8_t v2;  svuint8_t v3; };
struct svint16x4_t{ svint16_t v0; svint16_t v1;  svint16_t v2;  svint16_t v3; };
struct svuint16x4_t{ svuint16_t v0; svuint16_t v1;  svuint16_t v2;  svuint16_t v3; };
struct svfloat16x4_t{ svfloat16_t v0; svfloat16_t v1;  svfloat16_t v2;  svfloat16_t v3; };
struct svint32x4_t{ svint32_t v0; svint32_t v1;  svint32_t v2;  svint32_t v3; };
struct svuint32x4_t{ svuint32_t v0; svuint32_t v1;  svuint32_t v2;  svuint32_t v3; };
struct svfloat32x4_t{ svfloat32_t v0; svfloat32_t v1;  svfloat32_t v2;  svfloat32_t v3; };
struct svint64x4_t{ svint64_t v0; svint64_t v1;  svint64_t v2;  svint64_t v3; };
struct svuint64x4_t{ svuint64_t v0; svuint64_t v1;  svuint64_t v2;  svuint64_t v3; };
struct svfloat64x4_t{ svfloat64_t v0; svfloat64_t v1;  svfloat64_t v2;  svfloat64_t v3; };

///////// FARM EXTRA BEGIN /////////

// These extra functions need to know the sve types

inline void core_svld1rq(svbool_t pg, const void* ptr, unsigned char data[16]){
    for(int idx = 0 ; idx < 16; ++idx){
        data[idx] = ((const unsigned char*)ptr)[idx];
    }
    for(int idxbit = 0 ; idxbit < 128 ; ++idxbit){
        if(pg.vec[idxbit] == false){
            data[idxbit/8] &= ~(1U << (idxbit%8));
        }
    }
}

template <class Dest, class Src>
inline Dest core_svreinterpret(Src op){
    Dest res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        ((unsigned char*)res.vec)[idx] = ((const unsigned char*)op.vec)[idx];
    }
    return res;
}


template <class TypeSrc, class TypeDest>
inline TypeDest core_expa(const TypeSrc v1){
    const bool singlePrecision = (sizeof(TypeDest) == 4);
    uint64_t I = v1 & 0x3FUL;
    uint64_t E = (singlePrecision? (v1>>6) & 0xFFUL : (v1>>6) & 0x7FFUL);
    uint64_t pow = (1 << (I/64));
    if(singlePrecision){
        union converter{
            float32_t fval;
            uint32_t ival;
        };

        converter res;
        res.fval = pow;
        res.ival &= 0x807FFFFFU;
        res.ival |= E << 23;
        return res.fval;
    }
    else{
        union converter{
            float64_t fval;
            uint64_t ival;
        };

        converter res;
        res.fval = pow;
        res.ival &= 0x807FFFFFFFFFFFFFUL;
        res.ival |= E << 52;
        return res.fval;
    }
}

///////// FARM EXTRA END /////////


inline svint8_t svld1_s8(svbool_t pg, const int8_t *base){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svint16_t svld1_s16(svbool_t pg, const int16_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svint32_t svld1_s32(svbool_t pg, const int32_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svint64_t svld1_s64(svbool_t pg, const int64_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svuint8_t svld1_u8(svbool_t pg, const uint8_t *base){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svuint16_t svld1_u16(svbool_t pg, const uint16_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svuint32_t svld1_u32(svbool_t pg, const uint32_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svuint64_t svld1_u64(svbool_t pg, const uint64_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svfloat16_t svld1_f16(svbool_t pg, const float16_t *base){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svfloat32_t svld1_f32(svbool_t pg, const float32_t *base){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svfloat64_t svld1_f64(svbool_t pg, const float64_t *base){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
        }
    }
    return res;
}
inline svint8_t svld1_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svint16_t svld1_vnum_s16(svbool_t pg, const int16_t *base, int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svint32_t svld1_vnum_s32(svbool_t pg, const int32_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svint64_t svld1_vnum_s64(svbool_t pg, const int64_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svuint8_t svld1_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svuint16_t svld1_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svuint32_t svld1_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svuint64_t svld1_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svfloat16_t svld1_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svfloat32_t svld1_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}
inline svfloat64_t svld1_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx+res.Size*vnum];
        }
    }
    return res;
}

inline svint32_t svld1_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svld1_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_u32base_f32(svbool_t pg, svuint32_t bases){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_u64base_f64(svbool_t pg, svuint64_t bases){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svld1_gather_s32offset_s32(svbool_t pg, const int32_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svld1_gather_s64offset_s64(svbool_t pg, const int64_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svld1_gather_s32offset_u32(svbool_t pg, const uint32_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1_gather_s64offset_u64(svbool_t pg, const uint64_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_s32offset_f32(svbool_t pg,const float32_t *base,svint32_t offsets){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_s64offset_f64(svbool_t pg,const float64_t *base,svint64_t offsets){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svld1_gather_u32offset_s32(svbool_t pg, const int32_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svld1_gather_u64offset_s64(svbool_t pg, const int64_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svld1_gather_u32offset_u32(svbool_t pg, const uint32_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1_gather_u64offset_u64(svbool_t pg, const uint64_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_u32offset_f32(svbool_t pg,const float32_t *base,svuint32_t offsets){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_u64offset_f64(svbool_t pg,const float64_t *base,svuint64_t offsets){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svld1_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svld1_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int64_t*>(bases.vec[idx])[offset/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svld1_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint64_t*>(bases.vec[idx])[offset/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_u32base_offset_f32(svbool_t pg, svuint32_t bases,int64_t offset){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const float32_t*>(bases.vec[idx])[offset/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_u64base_offset_f64(svbool_t pg, svuint64_t bases,int64_t offset){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const float64_t*>(bases.vec[idx])[offset/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svld1_gather_s32index_s32(svbool_t pg, const int32_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1_gather_s64index_s64(svbool_t pg, const int64_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1_gather_s32index_u32(svbool_t pg, const uint32_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1_gather_s64index_u64(svbool_t pg, const uint64_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_s32index_f32(svbool_t pg,const float32_t *base,svint32_t indices){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_s64index_f64(svbool_t pg,const float64_t *base,svint64_t indices){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1_gather_u32index_s32(svbool_t pg, const int32_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1_gather_u64index_s64(svbool_t pg, const int64_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1_gather_u32index_u32(svbool_t pg, const uint32_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1_gather_u64index_u64(svbool_t pg, const uint64_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_u32index_f32(svbool_t pg,const float32_t *base,svuint32_t indices){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_u64index_f64(svbool_t pg,const float64_t *base,svuint64_t indices){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svld1_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svld1_gather_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svld1_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svfloat32_t svld1_gather_u32base_index_f32(svbool_t pg, svuint32_t bases,int64_t index){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svfloat64_t svld1_gather_u64base_index_f64(svbool_t pg, svuint64_t bases,int64_t index){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint16_t svld1sb_s16(svbool_t pg, const int8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svld1sb_s32(svbool_t pg, const int8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1sb_s64(svbool_t pg, const int8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svld1sb_u16(svbool_t pg, const int8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svld1sb_u32(svbool_t pg, const int8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1sb_u64(svbool_t pg, const int8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svld1sb_vnum_s16(svbool_t pg, const int8_t *base, int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svld1sb_vnum_s32(svbool_t pg, const int8_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svld1sb_vnum_s64(svbool_t pg, const int8_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svld1sb_vnum_u16(svbool_t pg, const int8_t *base, int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svld1sb_vnum_u32(svbool_t pg, const int8_t *base, int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svld1sb_vnum_u64(svbool_t pg, const int8_t *base, int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svld1sb_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1sb_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svld1sb_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1sb_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svld1sb_gather_s32offset_s32(svbool_t pg, const int8_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint64_t svld1sb_gather_s64offset_s64(svbool_t pg, const int8_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint32_t svld1sb_gather_s32offset_u32(svbool_t pg, const int8_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sb_gather_s64offset_u64(svbool_t pg, const int8_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint32_t svld1sb_gather_u32offset_s32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint64_t svld1sb_gather_u64offset_s64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint32_t svld1sb_gather_u32offset_u32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sb_gather_u64offset_u64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint32_t svld1sb_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)]);
         }
    }
    return res;
}
inline svint64_t svld1sb_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)]);
         }
    }
    return res;
}
inline svuint32_t svld1sb_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1sb_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)]);
         }
    }
    return res;
}
inline svint16_t svld1ub_s16(svbool_t pg, const uint8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svld1ub_s32(svbool_t pg, const uint8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1ub_s64(svbool_t pg, const uint8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svld1ub_u16(svbool_t pg, const uint8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svld1ub_u32(svbool_t pg, const uint8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1ub_u64(svbool_t pg, const uint8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svld1ub_vnum_s16(svbool_t pg, const uint8_t *base, int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svld1ub_vnum_s32(svbool_t pg, const uint8_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svld1ub_vnum_s64(svbool_t pg, const uint8_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svld1ub_vnum_u16(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svld1ub_vnum_u32(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svld1ub_vnum_u64(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svld1ub_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1ub_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svld1ub_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1ub_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svld1ub_gather_s32offset_s32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint64_t svld1ub_gather_s64offset_s64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint32_t svld1ub_gather_s32offset_u32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint64_t svld1ub_gather_s64offset_u64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint32_t svld1ub_gather_u32offset_s32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint64_t svld1ub_gather_u64offset_s64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint32_t svld1ub_gather_u32offset_u32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint64_t svld1ub_gather_u64offset_u64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint32_t svld1ub_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)]);
         }
    }
    return res;
}
inline svint64_t svld1ub_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)]);
         }
    }
    return res;
}
inline svuint32_t svld1ub_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1ub_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)]);
         }
    }
    return res;
}
inline svint32_t svld1sh_s32(svbool_t pg, const int16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1sh_s64(svbool_t pg, const int16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svld1sh_u32(svbool_t pg, const int16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1sh_u64(svbool_t pg, const int16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svld1sh_vnum_s32(svbool_t pg, const int16_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svld1sh_vnum_s64(svbool_t pg, const int16_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svld1sh_vnum_u32(svbool_t pg, const int16_t *base, int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svld1sh_vnum_u64(svbool_t pg, const int16_t *base, int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_s32offset_s32(svbool_t pg, const int16_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_s64offset_s64(svbool_t pg, const int16_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_s32offset_u32(svbool_t pg, const int16_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_s64offset_u64(svbool_t pg, const int16_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_u32offset_s32(svbool_t pg, const int16_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_u64offset_s64(svbool_t pg, const int16_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_u32offset_u32(svbool_t pg, const int16_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_u64offset_u64(svbool_t pg, const int16_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)]);
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)]);
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)]);
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_s32index_s32(svbool_t pg, const int16_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_s64index_s64(svbool_t pg, const int16_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_s32index_u32(svbool_t pg, const int16_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_s64index_u64(svbool_t pg, const int16_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_u32index_s32(svbool_t pg, const int16_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_u64index_s64(svbool_t pg, const int16_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_u32index_u32(svbool_t pg, const int16_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_u64index_u64(svbool_t pg, const int16_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1sh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svld1sh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svld1sh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svld1sh_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint32_t svld1uh_s32(svbool_t pg, const uint16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1uh_s64(svbool_t pg, const uint16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svld1uh_u32(svbool_t pg, const uint16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1uh_u64(svbool_t pg, const uint16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svld1uh_vnum_s32(svbool_t pg, const uint16_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svld1uh_vnum_s64(svbool_t pg, const uint16_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svld1uh_vnum_u32(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svld1uh_vnum_u64(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_s32offset_s32(svbool_t pg, const uint16_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_s64offset_s64(svbool_t pg, const uint16_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_s32offset_u32(svbool_t pg, const uint16_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_s64offset_u64(svbool_t pg, const uint16_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_u32offset_s32(svbool_t pg, const uint16_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_u64offset_s64(svbool_t pg, const uint16_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_u32offset_u32(svbool_t pg, const uint16_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_u64offset_u64(svbool_t pg, const uint16_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)]);
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)]);
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)]);
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_s32index_s32(svbool_t pg, const uint16_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_s64index_s64(svbool_t pg, const uint16_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_s32index_u32(svbool_t pg, const uint16_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_s64index_u64(svbool_t pg, const uint16_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_u32index_s32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_u64index_s64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_u32index_u32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_u64index_u64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svld1uh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svld1uh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svld1uh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svld1uh_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svld1sw_s64(svbool_t pg, const int32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1sw_u64(svbool_t pg, const int32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1sw_vnum_s64(svbool_t pg, const int32_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svld1sw_vnum_u64(svbool_t pg, const int32_t *base, int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_s64offset_s64(svbool_t pg, const int32_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_s64offset_u64(svbool_t pg, const int32_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_u64offset_s64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_u64offset_u64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)]);
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_s64index_s64(svbool_t pg, const int32_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_s64index_u64(svbool_t pg, const int32_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_u64index_s64(svbool_t pg, const int32_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_u64index_u64(svbool_t pg, const int32_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1sw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svld1sw_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svld1uw_s64(svbool_t pg, const uint32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svld1uw_u64(svbool_t pg, const uint32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svld1uw_vnum_s64(svbool_t pg, const uint32_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svld1uw_vnum_u64(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_s64offset_s64(svbool_t pg, const uint32_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_s64offset_u64(svbool_t pg, const uint32_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_u64offset_s64(svbool_t pg, const uint32_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_u64offset_u64(svbool_t pg, const uint32_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)]);
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)]);
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_s64index_s64(svbool_t pg, const uint32_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_s64index_u64(svbool_t pg, const uint32_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_u64index_s64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_u64index_u64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svld1uw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svld1uw_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}

inline svint8_t svld1rq_s8(svbool_t pg, const int8_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 16){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}

inline svint16_t svld1rq_s16(svbool_t pg, const int16_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 8){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svint32_t svld1rq_s32(svbool_t pg, const int32_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 4){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svint64_t svld1rq_s64(svbool_t pg, const int64_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 2){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svuint8_t svld1rq_u8(svbool_t pg, const uint8_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 16){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svuint16_t svld1rq_u16(svbool_t pg, const uint16_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 8){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svuint32_t svld1rq_u32(svbool_t pg, const uint32_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 4){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svuint64_t svld1rq_u64(svbool_t pg, const uint64_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 2){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svfloat16_t svld1rq_f16(svbool_t pg, const float16_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 8){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svfloat32_t svld1rq_f32(svbool_t pg, const float32_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 4){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svfloat64_t svld1rq_f64(svbool_t pg, const float64_t *base){
    unsigned char data[16];
    core_svld1rq(pg, base, data);
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; idx += 2){
        memcpy(&res.vec[idx], data, 16);
    }
    return res;
}
inline svint8_t svldff1_s8(svbool_t pg, const int8_t *base){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldff1_s16(svbool_t pg, const int16_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldff1_s32(svbool_t pg, const int32_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1_s64(svbool_t pg, const int64_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint8_t svldff1_u8(svbool_t pg, const uint8_t *base){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldff1_u16(svbool_t pg, const uint16_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldff1_u32(svbool_t pg, const uint32_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1_u64(svbool_t pg, const uint64_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat16_t svldff1_f16(svbool_t pg, const float16_t *base){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat32_t svldff1_f32(svbool_t pg, const float32_t *base){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat64_t svldff1_f64(svbool_t pg, const float64_t *base){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint8_t svldff1_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint16_t svldff1_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldff1_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldff1_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svuint8_t svldff1_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldff1_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldff1_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldff1_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svfloat16_t svldff1_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svfloat32_t svldff1_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svfloat64_t svldff1_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_u32base_f32(svbool_t pg, svuint32_t bases){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_u64base_f64(svbool_t pg, svuint64_t bases){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float64_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svldff1_gather_s32offset_s32(svbool_t pg, const int32_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1_gather_s64offset_s64(svbool_t pg, const int64_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_s32offset_u32(svbool_t pg,const uint32_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_s64offset_u64(svbool_t pg,const uint64_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_s32offset_f32(svbool_t pg,const float32_t *base,svint32_t offsets){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_s64offset_f64(svbool_t pg,const float64_t *base,svint64_t offsets){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_u32offset_s32(svbool_t pg, const int32_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1_gather_u64offset_s64(svbool_t pg, const int64_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_u32offset_u32(svbool_t pg,const uint32_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_u64offset_u64(svbool_t pg,const uint64_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_u32offset_f32(svbool_t pg,const float32_t *base,svuint32_t offsets){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_u64offset_f64(svbool_t pg,const float64_t *base,svuint64_t offsets){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int64_t*>(bases.vec[idx])[offset/sizeof(int64_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint64_t*>(bases.vec[idx])[offset/sizeof(uint64_t)];
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_u32base_offset_f32(svbool_t pg,svuint32_t bases,int64_t offset){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const float32_t*>(bases.vec[idx])[offset/sizeof(float32_t)];
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_u64base_offset_f64(svbool_t pg,svuint64_t bases,int64_t offset){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const float64_t*>(bases.vec[idx])[offset/sizeof(float64_t)];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_s32index_s32(svbool_t pg, const int32_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1_gather_s64index_s64(svbool_t pg, const int64_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_s32index_u32(svbool_t pg,const uint32_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_s64index_u64(svbool_t pg,const uint64_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_s32index_f32(svbool_t pg,const float32_t *base,svint32_t indices){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_s64index_f64(svbool_t pg,const float64_t *base,svint64_t indices){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_u32index_s32(svbool_t pg, const int32_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1_gather_u64index_s64(svbool_t pg, const int64_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_u32index_u32(svbool_t pg,const uint32_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_u64index_u64(svbool_t pg,const uint64_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_u32index_f32(svbool_t pg,const float32_t *base,svuint32_t indices){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_u64index_f64(svbool_t pg,const float64_t *base,svuint64_t indices){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svldff1_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svldff1_gather_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svldff1_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svfloat32_t svldff1_gather_u32base_index_f32(svbool_t pg,svuint32_t bases,int64_t index){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svfloat64_t svldff1_gather_u64base_index_f64(svbool_t pg,svuint64_t bases,int64_t index){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const float64_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint16_t svldff1sb_s16(svbool_t pg, const int8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldff1sb_s32(svbool_t pg, const int8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1sb_s64(svbool_t pg, const int8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldff1sb_u16(svbool_t pg, const int8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldff1sb_u32(svbool_t pg, const int8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1sb_u64(svbool_t pg, const int8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldff1sb_vnum_s16(svbool_t pg, const int8_t *base, int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldff1sb_vnum_s32(svbool_t pg, const int8_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svldff1sb_vnum_s64(svbool_t pg, const int8_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldff1sb_vnum_u16(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svldff1sb_vnum_u32(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svldff1sb_vnum_u64(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldff1sb_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1sb_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svldff1sb_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1sb_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svldff1sb_gather_s32offset_s32(svbool_t pg, const int8_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sb_gather_s64offset_s64(svbool_t pg, const int8_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sb_gather_s32offset_u32(svbool_t pg, const int8_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sb_gather_s64offset_u64(svbool_t pg, const int8_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sb_gather_u32offset_s32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sb_gather_u64offset_s64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sb_gather_u32offset_u32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sb_gather_u64offset_u64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sb_gather_u32base_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sb_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sb_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sb_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int8_t*>(bases.vec[idx])[offset/sizeof(int8_t)];
         }
    }
    return res;
}
inline svint16_t svldff1ub_s16(svbool_t pg, const uint8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldff1ub_s32(svbool_t pg, const uint8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1ub_s64(svbool_t pg, const uint8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldff1ub_u16(svbool_t pg, const uint8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldff1ub_u32(svbool_t pg, const uint8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1ub_u64(svbool_t pg, const uint8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldff1ub_vnum_s16(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldff1ub_vnum_s32(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svldff1ub_vnum_s64(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldff1ub_vnum_u16(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svldff1ub_vnum_u32(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svldff1ub_vnum_u64(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldff1ub_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1ub_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svldff1ub_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1ub_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint8_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svldff1ub_gather_s32offset_s32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1ub_gather_s64offset_s64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1ub_gather_s32offset_u32(svbool_t pg,const uint8_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1ub_gather_s64offset_u64(svbool_t pg,const uint8_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint32_t svldff1ub_gather_u32offset_s32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1ub_gather_u64offset_s64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1ub_gather_u32offset_u32(svbool_t pg,const uint8_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1ub_gather_u64offset_u64(svbool_t pg,const uint8_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint32_t svldff1ub_gather_u32base_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint64_t svldff1ub_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1ub_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1ub_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sh_s32(svbool_t pg, const int16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1sh_s64(svbool_t pg, const int16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_u32(svbool_t pg, const int16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_u64(svbool_t pg, const int16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldff1sh_vnum_s32(svbool_t pg, const int16_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svldff1sh_vnum_s64(svbool_t pg, const int16_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_vnum_u32(svbool_t pg, const int16_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_vnum_u64(svbool_t pg, const int16_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_s32offset_s32(svbool_t pg, const int16_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_s64offset_s64(svbool_t pg, const int16_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_s32offset_u32(svbool_t pg,const int16_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_s64offset_u64(svbool_t pg,const int16_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_u32offset_s32(svbool_t pg, const int16_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_u64offset_s64(svbool_t pg, const int16_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_u32offset_u32(svbool_t pg,const int16_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_u64offset_u64(svbool_t pg,const int16_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_u32base_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int16_t*>(bases.vec[idx])[offset/sizeof(int16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_s32index_s32(svbool_t pg, const int16_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_s64index_s64(svbool_t pg, const int16_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_s32index_u32(svbool_t pg, const int16_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_s64index_u64(svbool_t pg, const int16_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_u32index_s32(svbool_t pg, const int16_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_u64index_s64(svbool_t pg, const int16_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_u32index_u32(svbool_t pg, const int16_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_u64index_u64(svbool_t pg, const int16_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1sh_gather_u32base_index_s32(svbool_t pg,svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svldff1sh_gather_u64base_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svldff1sh_gather_u32base_index_u32(svbool_t pg,svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svldff1sh_gather_u64base_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint32_t svldff1uh_s32(svbool_t pg, const uint16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1uh_s64(svbool_t pg, const uint16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_u32(svbool_t pg, const uint16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_u64(svbool_t pg, const uint16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldff1uh_vnum_s32(svbool_t pg, const uint16_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svldff1uh_vnum_s64(svbool_t pg, const uint16_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_vnum_u32(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_vnum_u64(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_u32base_s32(svbool_t pg, svuint32_t bases){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_u32base_u32(svbool_t pg, svuint32_t bases){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_s32offset_s32(svbool_t pg,const uint16_t *base,svint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_s64offset_s64(svbool_t pg,const uint16_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_s32offset_u32(svbool_t pg,const uint16_t *base,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_s64offset_u64(svbool_t pg,const uint16_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_u32offset_s32(svbool_t pg,const uint16_t *base,svuint32_t offsets){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_u64offset_s64(svbool_t pg,const uint16_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_u32offset_u32(svbool_t pg,const uint16_t *base,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_u64offset_u64(svbool_t pg,const uint16_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_u32base_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_u32base_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_s32index_s32(svbool_t pg, const uint16_t *base,svint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_s64index_s64(svbool_t pg, const uint16_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_s32index_u32(svbool_t pg,const uint16_t *base,svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_s64index_u64(svbool_t pg,const uint16_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_u32index_s32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_u64index_s64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_u32index_u32(svbool_t pg,const uint16_t *base,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_u64index_u64(svbool_t pg,const uint16_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint32_t svldff1uh_gather_u32base_index_s32(svbool_t pg,svuint32_t bases,int64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svldff1uh_gather_u64base_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint32_t svldff1uh_gather_u32base_index_u32(svbool_t pg,svuint32_t bases,int64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svldff1uh_gather_u64base_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint16_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svldff1sw_s64(svbool_t pg, const int32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_u64(svbool_t pg, const int32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1sw_vnum_s64(svbool_t pg, const int32_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_vnum_u64(svbool_t pg, const int32_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_s64offset_s64(svbool_t pg, const int32_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_s64offset_u64(svbool_t pg,const int32_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_u64offset_s64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_u64offset_u64(svbool_t pg,const int32_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_s64index_s64(svbool_t pg, const int32_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_s64index_u64(svbool_t pg, const int32_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_u64index_s64(svbool_t pg, const int32_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_u64index_u64(svbool_t pg, const int32_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1sw_gather_u64base_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svldff1sw_gather_u64base_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const int32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint64_t svldff1uw_s64(svbool_t pg, const uint32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_u64(svbool_t pg, const uint32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldff1uw_vnum_s64(svbool_t pg, const uint32_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_vnum_u64(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_u64base_s64(svbool_t pg, svuint64_t bases){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_u64base_u64(svbool_t pg, svuint64_t bases){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_s64offset_s64(svbool_t pg,const uint32_t *base,svint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_s64offset_u64(svbool_t pg,const uint32_t *base,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_u64offset_s64(svbool_t pg,const uint32_t *base,svuint64_t offsets){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_u64offset_u64(svbool_t pg,const uint32_t *base,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[offsets.vec[idx]/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_u64base_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_u64base_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = reinterpret_cast<const uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_s64index_s64(svbool_t pg, const uint32_t *base,svint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_s64index_u64(svbool_t pg,const uint32_t *base,svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_u64index_s64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_u64index_u64(svbool_t pg,const uint32_t *base,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[indices.vec[idx]];
         }
    }
    return res;
}
inline svint64_t svldff1uw_gather_u64base_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svuint64_t svldff1uw_gather_u64base_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = *reinterpret_cast<const uint32_t*>(bases.vec[index]);
         }
    }
    return res;
}
inline svint8_t svldnf1_s8(svbool_t pg, const int8_t *base){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldnf1_s16(svbool_t pg, const int16_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnf1_s32(svbool_t pg, const int32_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1_s64(svbool_t pg, const int64_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint8_t svldnf1_u8(svbool_t pg, const uint8_t *base){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldnf1_u16(svbool_t pg, const uint16_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnf1_u32(svbool_t pg, const uint32_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1_u64(svbool_t pg, const uint64_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat16_t svldnf1_f16(svbool_t pg, const float16_t *base){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat32_t svldnf1_f32(svbool_t pg, const float32_t *base){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat64_t svldnf1_f64(svbool_t pg, const float64_t *base){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint8_t svldnf1_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint16_t svldnf1_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldnf1_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldnf1_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svuint8_t svldnf1_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldnf1_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldnf1_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldnf1_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svfloat16_t svldnf1_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svfloat32_t svldnf1_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svfloat64_t svldnf1_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svint16_t svldnf1sb_s16(svbool_t pg, const int8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnf1sb_s32(svbool_t pg, const int8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1sb_s64(svbool_t pg, const int8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldnf1sb_u16(svbool_t pg, const int8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnf1sb_u32(svbool_t pg, const int8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1sb_u64(svbool_t pg, const int8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldnf1sb_vnum_s16(svbool_t pg, const int8_t *base, int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldnf1sb_vnum_s32(svbool_t pg, const int8_t *base, int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svldnf1sb_vnum_s64(svbool_t pg, const int8_t *base, int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldnf1sb_vnum_u16(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svldnf1sb_vnum_u32(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svldnf1sb_vnum_u64(svbool_t pg, const int8_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint16_t svldnf1ub_s16(svbool_t pg, const uint8_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnf1ub_s32(svbool_t pg, const uint8_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1ub_s64(svbool_t pg, const uint8_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldnf1ub_u16(svbool_t pg, const uint8_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnf1ub_u32(svbool_t pg, const uint8_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1ub_u64(svbool_t pg, const uint8_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldnf1ub_vnum_s16(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldnf1ub_vnum_s32(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint64_t svldnf1ub_vnum_s64(svbool_t pg, const uint8_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldnf1ub_vnum_u16(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint32_t svldnf1ub_vnum_u32(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint64_t svldnf1ub_vnum_u64(svbool_t pg, const uint8_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint32_t svldnf1sh_s32(svbool_t pg, const int16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1sh_s64(svbool_t pg, const int16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnf1sh_u32(svbool_t pg, const int16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1sh_u64(svbool_t pg, const int16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnf1sh_vnum_s32(svbool_t pg, const int16_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svldnf1sh_vnum_s64(svbool_t pg, const int16_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldnf1sh_vnum_u32(svbool_t pg, const int16_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svldnf1sh_vnum_u64(svbool_t pg, const int16_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldnf1uh_s32(svbool_t pg, const uint16_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1uh_s64(svbool_t pg, const uint16_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnf1uh_u32(svbool_t pg, const uint16_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1uh_u64(svbool_t pg, const uint16_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnf1uh_vnum_s32(svbool_t pg, const uint16_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svldnf1uh_vnum_s64(svbool_t pg, const uint16_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldnf1uh_vnum_u32(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint64_t svldnf1uh_vnum_u64(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint64_t svldnf1sw_s64(svbool_t pg, const int32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1sw_u64(svbool_t pg, const int32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1sw_vnum_s64(svbool_t pg, const int32_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldnf1sw_vnum_u64(svbool_t pg, const int32_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldnf1uw_s64(svbool_t pg, const uint32_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnf1uw_u64(svbool_t pg, const uint32_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnf1uw_vnum_s64(svbool_t pg, const uint32_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldnf1uw_vnum_u64(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint8_t svldnt1_s8(svbool_t pg, const int8_t *base){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint16_t svldnt1_s16(svbool_t pg, const int16_t *base){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint32_t svldnt1_s32(svbool_t pg, const int32_t *base){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint64_t svldnt1_s64(svbool_t pg, const int64_t *base){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint8_t svldnt1_u8(svbool_t pg, const uint8_t *base){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint16_t svldnt1_u16(svbool_t pg, const uint16_t *base){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint32_t svldnt1_u32(svbool_t pg, const uint32_t *base){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svuint64_t svldnt1_u64(svbool_t pg, const uint64_t *base){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat16_t svldnt1_f16(svbool_t pg, const float16_t *base){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat32_t svldnt1_f32(svbool_t pg, const float32_t *base){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svfloat64_t svldnt1_f64(svbool_t pg, const float64_t *base){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx];
         }
    }
    return res;
}
inline svint8_t svldnt1_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svint16_t svldnt1_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svint32_t svldnt1_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svint64_t svldnt1_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svuint8_t svldnt1_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*1];
         }
    }
    return res;
}
inline svuint16_t svldnt1_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svuint32_t svldnt1_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svuint64_t svldnt1_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svfloat16_t svldnt1_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*2];
         }
    }
    return res;
}
inline svfloat32_t svldnt1_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*4];
         }
    }
    return res;
}
inline svfloat64_t svldnt1_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = base[idx + vnum*res.Size*8];
         }
    }
    return res;
}
inline svint8x2_t svld2_s8(svbool_t pg, const int8_t *base){
    svint8x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svint16x2_t svld2_s16(svbool_t pg, const int16_t *base){
    svint16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svint32x2_t svld2_s32(svbool_t pg, const int32_t *base){
    svint32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svint64x2_t svld2_s64(svbool_t pg, const int64_t *base){
    svint64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svuint8x2_t svld2_u8(svbool_t pg, const uint8_t *base){
    svuint8x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svuint16x2_t svld2_u16(svbool_t pg, const uint16_t *base){
    svuint16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svuint32x2_t svld2_u32(svbool_t pg, const uint32_t *base){
    svuint32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svuint64x2_t svld2_u64(svbool_t pg, const uint64_t *base){
    svuint64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svfloat16x2_t svld2_f16(svbool_t pg, const float16_t *base){
    svfloat16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svfloat32x2_t svld2_f32(svbool_t pg, const float32_t *base){
    svfloat32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svfloat64x2_t svld2_f64(svbool_t pg, const float64_t *base){
    svfloat64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2];
            res.v1.vec[idx] = base[idx*2+1];
         }
    }
    return res;
}
inline svint8x2_t svld2_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svint16x2_t svld2_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svint32x2_t svld2_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svint64x2_t svld2_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svuint8x2_t svld2_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svuint16x2_t svld2_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svuint32x2_t svld2_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svuint64x2_t svld2_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svfloat16x2_t svld2_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svfloat32x2_t svld2_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svfloat64x2_t svld2_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64x2_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*2*vnum];
            res.v1.vec[idx] = base[idx*2*vnum+1];
         }
    }
    return res;
}
inline svint8x3_t svld3_s8(svbool_t pg, const int8_t *base){
    svint8x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svint16x3_t svld3_s16(svbool_t pg, const int16_t *base){
    svint16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svint32x3_t svld3_s32(svbool_t pg, const int32_t *base){
    svint32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svint64x3_t svld3_s64(svbool_t pg, const int64_t *base){
    svint64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svuint8x3_t svld3_u8(svbool_t pg, const uint8_t *base){
    svuint8x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svuint16x3_t svld3_u16(svbool_t pg, const uint16_t *base){
    svuint16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svuint32x3_t svld3_u32(svbool_t pg, const uint32_t *base){
    svuint32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svuint64x3_t svld3_u64(svbool_t pg, const uint64_t *base){
    svuint64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svfloat16x3_t svld3_f16(svbool_t pg, const float16_t *base){
    svfloat16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svfloat32x3_t svld3_f32(svbool_t pg, const float32_t *base){
    svfloat32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svfloat64x3_t svld3_f64(svbool_t pg, const float64_t *base){
    svfloat64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3];
            res.v1.vec[idx] = base[idx*3+1];
            res.v2.vec[idx] = base[idx*3+2];
         }
    }
    return res;
}
inline svint8x3_t svld3_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svint16x3_t svld3_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svint32x3_t svld3_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svint64x3_t svld3_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svuint8x3_t svld3_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svuint16x3_t svld3_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svuint32x3_t svld3_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svuint64x3_t svld3_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svfloat16x3_t svld3_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svfloat32x3_t svld3_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svfloat64x3_t svld3_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64x3_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*3*vnum];
            res.v1.vec[idx] = base[idx*3*vnum+1];
            res.v2.vec[idx] = base[idx*3*vnum+2];
         }
    }
    return res;
}
inline svint8x4_t svld4_s8(svbool_t pg, const int8_t *base){
    svint8x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svint16x4_t svld4_s16(svbool_t pg, const int16_t *base){
    svint16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svint32x4_t svld4_s32(svbool_t pg, const int32_t *base){
    svint32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svint64x4_t svld4_s64(svbool_t pg, const int64_t *base){
    svint64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svuint8x4_t svld4_u8(svbool_t pg, const uint8_t *base){
    svuint8x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svuint16x4_t svld4_u16(svbool_t pg, const uint16_t *base){
    svuint16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svuint32x4_t svld4_u32(svbool_t pg, const uint32_t *base){
    svuint32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svuint64x4_t svld4_u64(svbool_t pg, const uint64_t *base){
    svuint64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svfloat16x4_t svld4_f16(svbool_t pg, const float16_t *base){
    svfloat16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svfloat32x4_t svld4_f32(svbool_t pg, const float32_t *base){
    svfloat32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svfloat64x4_t svld4_f64(svbool_t pg, const float64_t *base){
    svfloat64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4];
            res.v1.vec[idx] = base[idx*4+1];
            res.v2.vec[idx] = base[idx*4+2];
            res.v3.vec[idx] = base[idx*4+3];
         }
    }
    return res;
}
inline svint8x4_t svld4_vnum_s8(svbool_t pg, const int8_t *base, int64_t vnum){
    svint8x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svint16x4_t svld4_vnum_s16(svbool_t pg, const int16_t *base,int64_t vnum){
    svint16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svint32x4_t svld4_vnum_s32(svbool_t pg, const int32_t *base,int64_t vnum){
    svint32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svint64x4_t svld4_vnum_s64(svbool_t pg, const int64_t *base,int64_t vnum){
    svint64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svuint8x4_t svld4_vnum_u8(svbool_t pg, const uint8_t *base, int64_t vnum){
    svuint8x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svuint16x4_t svld4_vnum_u16(svbool_t pg, const uint16_t *base,int64_t vnum){
    svuint16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svuint32x4_t svld4_vnum_u32(svbool_t pg, const uint32_t *base,int64_t vnum){
    svuint32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svuint64x4_t svld4_vnum_u64(svbool_t pg, const uint64_t *base,int64_t vnum){
    svuint64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svfloat16x4_t svld4_vnum_f16(svbool_t pg, const float16_t *base,int64_t vnum){
    svfloat16x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svfloat32x4_t svld4_vnum_f32(svbool_t pg, const float32_t *base,int64_t vnum){
    svfloat32x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}
inline svfloat64x4_t svld4_vnum_f64(svbool_t pg, const float64_t *base,int64_t vnum){
    svfloat64x4_t res;
    for(int idx = 0 ; idx < res.v0.Size ; ++idx){
        if(pg.vec[idx]){
            res.v0.vec[idx] = base[idx*4*vnum];
            res.v1.vec[idx] = base[idx*4*vnum+1];
            res.v2.vec[idx] = base[idx*4*vnum+2];
            res.v3.vec[idx] = base[idx*4*vnum+3];
         }
    }
    return res;
}

inline void   svst1_s8(svbool_t pg, int8_t *base, svint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_s16(svbool_t pg, int16_t *base, svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_s32(svbool_t pg, int32_t *base, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_s64(svbool_t pg, int64_t *base, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_u8(svbool_t pg, uint8_t *base, svuint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_u16(svbool_t pg, uint16_t *base, svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_u32(svbool_t pg, uint32_t *base, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_u64(svbool_t pg, uint64_t *base, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_f16(svbool_t pg, float16_t *base, svfloat16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_f32(svbool_t pg, float32_t *base, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void   svst1_f64(svbool_t pg, float64_t *base, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_s8(svbool_t pg, int8_t *base, int64_t vnum,svint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_s16(svbool_t pg, int16_t *base, int64_t vnum,svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_s32(svbool_t pg, int32_t *base, int64_t vnum,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_s64(svbool_t pg, int64_t *base, int64_t vnum,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_u8(svbool_t pg, uint8_t *base, int64_t vnum,svuint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_u16(svbool_t pg, uint16_t *base, int64_t vnum,svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_u32(svbool_t pg, uint32_t *base, int64_t vnum,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_u64(svbool_t pg, uint64_t *base, int64_t vnum,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_f16(svbool_t pg, float16_t *base, int64_t vnum,svfloat16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_f32(svbool_t pg, float32_t *base, int64_t vnum,svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}
inline void svst1_vnum_f64(svbool_t pg, float64_t *base, int64_t vnum,svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx+vnum*data.Size] = data.vec[idx];
        }
    }
}

inline void svst1_scatter_u32base_s32(svbool_t pg, svuint32_t bases,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<int32_t*>(bases.vec[idx]) = data.vec[idx];
        }
    }
}
inline void svst1_scatter_u64base_s64(svbool_t pg, svuint64_t bases,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<int64_t*>(bases.vec[idx]) = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_u32(svbool_t pg, svuint32_t bases,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint32_t*>(bases.vec[idx]) = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_u64(svbool_t pg, svuint64_t bases,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint64_t*>(bases.vec[idx]) = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_f32(svbool_t pg, svuint32_t bases,svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<float32_t*>(bases.vec[idx]) = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_f64(svbool_t pg, svuint64_t bases,svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<float64_t*>(bases.vec[idx]) = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32offset_s32(svbool_t pg, int32_t *base,svint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64offset_s64(svbool_t pg, int64_t *base,svint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32offset_u32(svbool_t pg, uint32_t *base,svint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64offset_u64(svbool_t pg, uint64_t *base,svint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32offset_f32(svbool_t pg, float32_t *base,svint32_t offsets, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(float32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64offset_f64(svbool_t pg, float64_t *base,svint64_t offsets, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(float64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32offset_s32(svbool_t pg, int32_t *base,svuint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64offset_s64(svbool_t pg, int64_t *base,svuint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32offset_u32(svbool_t pg, uint32_t *base,svuint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64offset_u64(svbool_t pg, uint64_t *base,svuint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32offset_f32(svbool_t pg, float32_t *base,svuint32_t offsets, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(float32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64offset_f64(svbool_t pg, float64_t *base,svuint64_t offsets, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(float64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<int32_t*>(bases.vec[idx])[offset/sizeof(int32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<int64_t*>(bases.vec[idx])[offset/sizeof(int64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint64_t*>(bases.vec[idx])[offset/sizeof(uint64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_offset_f32(svbool_t pg, svuint32_t bases,int64_t offset, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<float32_t*>(bases.vec[idx])[offset/sizeof(float32_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_offset_f64(svbool_t pg, svuint64_t bases,int64_t offset, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<float64_t*>(bases.vec[idx])[offset/sizeof(float64_t)] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32index_s32(svbool_t pg, int32_t *base,svint32_t indices, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64index_s64(svbool_t pg, int64_t *base,svint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32index_u32(svbool_t pg, uint32_t *base,svint32_t indices, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64index_u64(svbool_t pg, uint64_t *base,svint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s32index_f32(svbool_t pg, float32_t *base,svint32_t indices, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_s64index_f64(svbool_t pg, float64_t *base,svint64_t indices, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32index_s32(svbool_t pg, int32_t *base,svuint32_t indices, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64index_s64(svbool_t pg, int64_t *base,svuint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32index_u32(svbool_t pg, uint32_t *base,svuint32_t indices, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64index_u64(svbool_t pg, uint64_t *base,svuint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32index_f32(svbool_t pg, float32_t *base,svuint32_t indices, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64index_f64(svbool_t pg, float64_t *base,svuint64_t indices, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<int32_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<int64_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint64_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u32base_index_f32(svbool_t pg, svuint32_t bases,int64_t index, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<float32_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1_scatter_u64base_index_f64(svbool_t pg, svuint64_t bases,int64_t index, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<float64_t*>(bases.vec[idx])[index] = data.vec[idx];
         }
    }
}
inline void svst1b_s16(svbool_t        pg,   int8_t *base, svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_s32(svbool_t        pg,   int8_t *base, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_s64(svbool_t        pg,   int8_t *base, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_u16(svbool_t        pg,   uint8_t *base, svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_u32(svbool_t        pg,   uint8_t *base, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_u64(svbool_t        pg,   uint8_t *base, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_s16(svbool_t pg, int8_t *base, int64_t vnum,svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_s32(svbool_t pg, int8_t *base, int64_t vnum,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_s64(svbool_t pg, int8_t *base, int64_t vnum,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_u16(svbool_t pg, uint8_t *base, int64_t vnum,svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_u32(svbool_t pg, uint8_t *base, int64_t vnum,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_vnum_u64(svbool_t pg, uint8_t *base, int64_t vnum,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32base_s32(svbool_t pg, svuint32_t bases,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint8_t*>(bases.vec[idx]) = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64base_s64(svbool_t pg, svuint64_t bases,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint8_t*>(bases.vec[idx]) = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32base_u32(svbool_t pg, svuint32_t bases,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint8_t*>(bases.vec[idx]) = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64base_u64(svbool_t pg, svuint64_t bases,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint8_t*>(bases.vec[idx]) = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_s32offset_s32(svbool_t pg, int8_t *base,svint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int8_t)] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_s64offset_s64(svbool_t pg, int8_t *base,svint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int8_t)] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_s32offset_u32(svbool_t pg, uint8_t *base,svint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int8_t)] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_s64offset_u64(svbool_t pg, uint8_t *base,svint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int8_t)] = int8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32offset_s32(svbool_t pg, int8_t *base,svuint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64offset_s64(svbool_t pg, int8_t *base,svuint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32offset_u32(svbool_t pg, uint8_t *base,svuint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64offset_u64(svbool_t pg, uint8_t *base,svuint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1b_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint8_t*>(bases.vec[idx])[offset/sizeof(uint8_t)] = uint8_t(data.vec[idx]);
         }
    }
}
inline void svst1h_s32(svbool_t        pg,   int16_t *base, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_s64(svbool_t        pg,   int16_t *base, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_u32(svbool_t        pg,   uint16_t *base, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_u64(svbool_t        pg,   uint16_t *base, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_vnum_s32(svbool_t pg, int16_t *base, int64_t vnum,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_vnum_s64(svbool_t pg, int16_t *base, int64_t vnum,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_vnum_u32(svbool_t pg, uint16_t *base, int64_t vnum,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_vnum_u64(svbool_t pg, uint16_t *base, int64_t vnum,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_s32(svbool_t pg, svuint32_t bases,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint16_t*>(bases.vec[idx]) = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_s64(svbool_t pg, svuint64_t bases,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint16_t*>(bases.vec[idx]) = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_u32(svbool_t pg, svuint32_t bases,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint16_t*>(bases.vec[idx]) = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_u64(svbool_t pg, svuint64_t bases,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint16_t*>(bases.vec[idx]) = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s32offset_s32(svbool_t pg, int16_t *base,svint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int16_t)] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s64offset_s64(svbool_t pg, int16_t *base,svint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int16_t)] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s32offset_u32(svbool_t pg, uint16_t *base,svint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int16_t)] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s64offset_u64(svbool_t pg, uint16_t *base,svint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int16_t)] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32offset_s32(svbool_t pg, int16_t *base,svuint32_t offsets, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64offset_s64(svbool_t pg, int16_t *base,svuint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32offset_u32(svbool_t pg, uint16_t *base,svuint32_t offsets, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64offset_u64(svbool_t pg, uint16_t *base,svuint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[offset/sizeof(uint16_t)] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s32index_s32(svbool_t pg, int16_t *base,svint32_t indices, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s64index_s64(svbool_t pg, int16_t *base,svint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s32index_u32(svbool_t pg, uint16_t *base,svint32_t indices, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_s64index_u64(svbool_t pg, uint16_t *base,svint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32index_s32(svbool_t pg, int16_t *base,svuint32_t indices, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64index_s64(svbool_t pg, int16_t *base,svuint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32index_u32(svbool_t pg, uint16_t *base,svuint32_t indices, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64index_u64(svbool_t pg, uint16_t *base,svuint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases,int64_t index, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[index] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[index] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases,int64_t index, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[index] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1h_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint16_t*>(bases.vec[idx])[index] = uint16_t(data.vec[idx]);
         }
    }
}
inline void svst1w_s64(svbool_t pg, int32_t *base, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_u64(svbool_t pg, uint32_t *base, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_vnum_s64(svbool_t pg, int32_t *base, int64_t vnum,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_vnum_u64(svbool_t pg, uint32_t *base, int64_t vnum,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_s64(svbool_t pg, svuint64_t bases,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint32_t*>(bases.vec[idx]) = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_u64(svbool_t pg, svuint64_t bases,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            *reinterpret_cast<uint32_t*>(bases.vec[idx]) = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_s64offset_s64(svbool_t pg, int32_t *base,svint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int32_t)] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_s64offset_u64(svbool_t pg, uint32_t *base,svint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(int32_t)] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64offset_s64(svbool_t pg, int32_t *base,svuint64_t offsets, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint32_t)] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64offset_u64(svbool_t pg, uint32_t *base,svuint64_t offsets, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[offsets.vec[idx]/sizeof(uint32_t)] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[offset/sizeof(uint32_t)] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_s64index_s64(svbool_t pg, int32_t *base,svint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_s64index_u64(svbool_t pg, uint32_t *base,svint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = int32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64index_s64(svbool_t pg, int32_t *base,svuint64_t indices, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64index_u64(svbool_t pg, uint32_t *base,svuint64_t indices, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[indices.vec[idx]] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[index] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svst1w_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            reinterpret_cast<uint32_t*>(bases.vec[idx])[index] = uint32_t(data.vec[idx]);
         }
    }
}
inline void svstnt1_s8(svbool_t pg, int8_t *base, svint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_s16(svbool_t pg, int16_t *base, svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_s32(svbool_t pg, int32_t *base, svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_s64(svbool_t pg, int64_t *base, svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_u8(svbool_t pg, uint8_t *base, svuint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_u16(svbool_t pg, uint16_t *base, svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_u32(svbool_t pg, uint32_t *base, svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_u64(svbool_t pg, uint64_t *base, svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_f16(svbool_t pg, float16_t *base, svfloat16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_f32(svbool_t pg, float32_t *base, svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_f64(svbool_t pg, float64_t *base, svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_s8(svbool_t pg, int8_t *base, int64_t vnum,svint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_s16(svbool_t pg, int16_t *base, int64_t vnum,svint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_s32(svbool_t pg, int32_t *base, int64_t vnum,svint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_s64(svbool_t pg, int64_t *base, int64_t vnum,svint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_u8(svbool_t pg, uint8_t *base, int64_t vnum,svuint8_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_u16(svbool_t pg, uint16_t *base, int64_t vnum,svuint16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_u32(svbool_t pg, uint32_t *base, int64_t vnum,svuint32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_u64(svbool_t pg, uint64_t *base, int64_t vnum,svuint64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_f16(svbool_t pg, float16_t *base, int64_t vnum,svfloat16_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_f32(svbool_t pg, float32_t *base, int64_t vnum,svfloat32_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void svstnt1_vnum_f64(svbool_t pg, float64_t *base, int64_t vnum,svfloat64_t data){
    for(int idx = 0 ; idx < data.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*vnum] = (data.vec[idx]);
         }
    }
}
inline void   svst2_s8(svbool_t pg, int8_t *base, svint8x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_s16(svbool_t pg, int16_t *base, svint16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_s32(svbool_t pg, int32_t *base, svint32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_s64(svbool_t pg, int64_t *base, svint64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_u8(svbool_t pg, uint8_t *base, svuint8x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_u16(svbool_t pg, uint16_t *base, svuint16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_u32(svbool_t pg, uint32_t *base, svuint32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_u64(svbool_t pg, uint64_t *base, svuint64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_f16(svbool_t pg, float16_t *base, svfloat16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_f32(svbool_t pg, float32_t *base, svfloat32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_f64(svbool_t pg, float64_t *base, svfloat64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2] = (data.v0.vec[idx]);
            base[idx*2+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_s8(svbool_t pg, int8_t *base, int64_t vnum,svint8x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_s16(svbool_t pg, int16_t *base, int64_t vnum,svint16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_s32(svbool_t pg, int32_t *base, int64_t vnum,svint32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_s64(svbool_t pg, int64_t *base, int64_t vnum,svint64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_u8(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_u16(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_u32(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_u64(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_f16(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_f32(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst2_vnum_f64(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x2_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*2*vnum] = (data.v0.vec[idx]);
            base[idx*2*vnum+1] = (data.v1.vec[idx]);
         }
    }
}
inline void svst3_s8(svbool_t pg, int8_t *base, svint8x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_s16(svbool_t pg, int16_t *base, svint16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_s32(svbool_t pg, int32_t *base, svint32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_s64(svbool_t pg, int64_t *base, svint64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_u8(svbool_t pg, uint8_t *base, svuint8x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_u16(svbool_t pg, uint16_t *base, svuint16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_u32(svbool_t pg, uint32_t *base, svuint32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_u64(svbool_t pg, uint64_t *base, svuint64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_f16(svbool_t pg, float16_t *base, svfloat16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_f32(svbool_t pg, float32_t *base, svfloat32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_f64(svbool_t pg, float64_t *base, svfloat64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3] = (data.v0.vec[idx]);
            base[idx*3+1] = (data.v1.vec[idx]);
            base[idx*3+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_s8(svbool_t pg, int8_t *base, int64_t vnum,svint8x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_s16(svbool_t pg, int16_t *base, int64_t vnum,svint16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_s32(svbool_t pg, int32_t *base, int64_t vnum,svint32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_s64(svbool_t pg, int64_t *base, int64_t vnum,svint64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_u8(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_u16(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_u32(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_u64(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_f16(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_f32(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst3_vnum_f64(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x3_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*3*vnum] = (data.v0.vec[idx]);
            base[idx*3*vnum+1] = (data.v1.vec[idx]);
            base[idx*3*vnum+2] = (data.v2.vec[idx]);
         }
    }
}
inline void svst4_s8(svbool_t pg, int8_t *base, svint8x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_s16(svbool_t pg, int16_t *base, svint16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_s32(svbool_t pg, int32_t *base, svint32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_s64(svbool_t pg, int64_t *base, svint64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_u8(svbool_t pg, uint8_t *base, svuint8x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_u16(svbool_t pg, uint16_t *base, svuint16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_u32(svbool_t pg, uint32_t *base, svuint32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_u64(svbool_t pg, uint64_t *base, svuint64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_f16(svbool_t pg, float16_t *base, svfloat16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_f32(svbool_t pg, float32_t *base, svfloat32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_f64(svbool_t pg, float64_t *base, svfloat64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4] = (data.v0.vec[idx]);
            base[idx*4+1] = (data.v1.vec[idx]);
            base[idx*4+2] = (data.v2.vec[idx]);
            base[idx*4+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_s8(svbool_t pg, int8_t *base, int64_t vnum,svint8x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_s16(svbool_t pg, int16_t *base, int64_t vnum,svint16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_s32(svbool_t pg, int32_t *base, int64_t vnum,svint32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_s64(svbool_t pg, int64_t *base, int64_t vnum,svint64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_u8(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_u16(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_u32(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_u64(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_f16(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_f32(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svst4_vnum_f64(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x4_t data){
    for(int idx = 0 ; idx < data.v0.Size ; ++idx){
        if(pg.vec[idx]){
            base[idx*4*vnum] = (data.v0.vec[idx]);
            base[idx*4*vnum+1] = (data.v1.vec[idx]);
            base[idx*4*vnum+2] = (data.v2.vec[idx]);
            base[idx*4*vnum+3] = (data.v3.vec[idx]);
         }
    }
}
inline void svprfb(svbool_t /*pg*/, const void */*base*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_vnum(svbool_t /*pg*/, const void */*base*/, int64_t /*vnum*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u32base(svbool_t /*pg*/, svuint32_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u64base(svbool_t /*pg*/, svuint64_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_s32offset(svbool_t /*pg*/, const void */*base*/,svint32_t /*offsets*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_s64offset(svbool_t /*pg*/, const void */*base*/,svint64_t /*offsets*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u32offset(svbool_t /*pg*/, const void */*base*/,svuint32_t /*offsets*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u64offset(svbool_t /*pg*/, const void */*base*/,svuint64_t /*offsets*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u32base_offset(svbool_t /*pg*/, svuint32_t /*bases*/,int64_t /*offset*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfb_gather_u64base_offset(svbool_t /*pg*/, svuint64_t /*bases*/,int64_t /*offset*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh(svbool_t /*pg*/, const void */*base*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_vnum(svbool_t /*pg*/, const void */*base*/, int64_t /*vnum*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u32base(svbool_t /*pg*/, svuint32_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u64base(svbool_t /*pg*/, svuint64_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_s32index(svbool_t /*pg*/, const void */*base*/,svint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_s64index(svbool_t /*pg*/, const void */*base*/,svint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u32index(svbool_t /*pg*/, const void */*base*/,svuint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u64index(svbool_t /*pg*/, const void */*base*/,svuint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u32base_index(svbool_t /*pg*/, svuint32_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfh_gather_u64base_index(svbool_t /*pg*/, svuint64_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw(svbool_t /*pg*/, const void */*base*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_vnum(svbool_t /*pg*/, const void */*base*/, int64_t /*vnum*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u32base(svbool_t /*pg*/, svuint32_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u64base(svbool_t /*pg*/, svuint64_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_s32index(svbool_t /*pg*/, const void */*base*/,svint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_s64index(svbool_t /*pg*/, const void */*base*/,svint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u32index(svbool_t /*pg*/, const void */*base*/,svuint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u64index(svbool_t /*pg*/, const void */*base*/,svuint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u32base_index(svbool_t /*pg*/, svuint32_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfw_gather_u64base_index(svbool_t /*pg*/, svuint64_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd(svbool_t /*pg*/, const void */*base*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_vnum(svbool_t /*pg*/, const void */*base*/, int64_t /*vnum*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u32base(svbool_t /*pg*/, svuint32_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u64base(svbool_t /*pg*/, svuint64_t /*bases*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_s32index(svbool_t /*pg*/, const void */*base*/,svint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_s64index(svbool_t /*pg*/, const void */*base*/,svint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u32index(svbool_t /*pg*/, const void */*base*/,svuint32_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u64index(svbool_t /*pg*/, const void */*base*/,svuint64_t /*indices*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u32base_index(svbool_t /*pg*/, svuint32_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline void svprfd_gather_u64base_index(svbool_t /*pg*/, svuint64_t /*bases*/,int64_t /*index*/, svprfop /*op*/){
    // Do nothing
}
inline svuint32_t svadrb_u32base_s32offset(svuint32_t bases,svint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + offsets.vec[idx];
    }
    return res;
}
inline svuint64_t svadrb_u64base_s64offset(svuint64_t bases,svint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + offsets.vec[idx];
    }
    return res;
}
inline svuint32_t svadrb_u32base_u32offset(svuint32_t bases,svuint32_t offsets){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + offsets.vec[idx];
    }
    return res;
}
inline svuint64_t svadrb_u64base_u64offset(svuint64_t bases,svuint64_t offsets){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + offsets.vec[idx];
    }
    return res;
}
inline svuint32_t svadrh_u32base_s32index(svuint32_t bases, svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*2;
    }
    return res;
}
inline svuint64_t svadrh_u64base_s64index(svuint64_t bases, svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*2;
    }
    return res;
}
inline svuint32_t svadrh_u32base_u32index(svuint32_t bases,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*2;
    }
    return res;
}
inline svuint64_t svadrh_u64base_u64index(svuint64_t bases,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*2;
    }
    return res;
}
inline svuint32_t svadrw_u32base_s32index(svuint32_t bases, svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*4;
    }
    return res;
}
inline svuint64_t svadrw_u64base_s64index(svuint64_t bases, svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*4;
    }
    return res;
}
inline svuint32_t svadrw_u32base_u32index(svuint32_t bases,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*4;
    }
    return res;
}
inline svuint64_t svadrw_u64base_u64index(svuint64_t bases,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*4;
    }
    return res;
}
inline svuint32_t svadrd_u32base_s32index(svuint32_t bases, svint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*8;
    }
    return res;
}
inline svuint64_t svadrd_u64base_s64index(svuint64_t bases, svint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*8;
    }
    return res;
}
inline svuint32_t svadrd_u32base_u32index(svuint32_t bases,svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*8;
    }
    return res;
}
inline svuint64_t svadrd_u64base_u64index(svuint64_t bases,svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = bases.vec[idx] + indices.vec[idx]*8;
    }
    return res;
}
inline svint8_t svdup_n_s8(int8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svint16_t svdup_n_s16(int16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svint32_t svdup_n_s32(int32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svint64_t svdup_n_s64(int64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svuint8_t svdup_n_u8(uint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svuint16_t svdup_n_u16(uint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svuint32_t svdup_n_u32(uint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svuint64_t svdup_n_u64(uint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svfloat16_t svdup_n_f16(float16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svfloat32_t svdup_n_f32(float32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svfloat64_t svdup_n_f64(float64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
            res.vec[idx] = op;
    }
    return res;
}
inline svint8_t svdup_n_s8_z(svbool_t pg, int8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint16_t svdup_n_s16_z(svbool_t pg, int16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint32_t svdup_n_s32_z(svbool_t pg, int32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint64_t svdup_n_s64_z(svbool_t pg, int64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint8_t svdup_n_u8_z(svbool_t pg, uint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint16_t svdup_n_u16_z(svbool_t pg, uint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint32_t svdup_n_u32_z(svbool_t pg, uint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint64_t svdup_n_u64_z(svbool_t pg, uint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat16_t svdup_n_f16_z(svbool_t pg, float16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat32_t svdup_n_f32_z(svbool_t pg, float32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat64_t svdup_n_f64_z(svbool_t pg, float64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint8_t svdup_n_s8_m(svint8_t inactive, svbool_t pg, int8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint16_t svdup_n_s16_m(svint16_t inactive, svbool_t pg, int16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint32_t svdup_n_s32_m(svint32_t inactive, svbool_t pg, int32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint64_t svdup_n_s64_m(svint64_t inactive, svbool_t pg, int64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svdup_n_u8_m(svuint8_t inactive, svbool_t pg, uint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svdup_n_u16_m(svuint16_t inactive, svbool_t pg, uint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svdup_n_u32_m(svuint32_t inactive, svbool_t pg, uint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svdup_n_u64_m(svuint64_t inactive, svbool_t pg, uint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svfloat16_t svdup_n_f16_m(svfloat16_t inactive, svbool_t pg,float16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svfloat32_t svdup_n_f32_m(svfloat32_t inactive, svbool_t pg,float32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svfloat64_t svdup_n_f64_m(svfloat64_t inactive, svbool_t pg,float64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint8_t svdup_n_s8_x(svbool_t pg, int8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint16_t svdup_n_s16_x(svbool_t pg, int16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint32_t svdup_n_s32_x(svbool_t pg, int32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint64_t svdup_n_s64_x(svbool_t pg, int64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint8_t svdup_n_u8_x(svbool_t pg, uint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint16_t svdup_n_u16_x(svbool_t pg, uint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint32_t svdup_n_u32_x(svbool_t pg, uint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svuint64_t svdup_n_u64_x(svbool_t pg, uint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat16_t svdup_n_f16_x(svbool_t pg, float16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat32_t svdup_n_f32_x(svbool_t pg, float32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svfloat64_t svdup_n_f64_x(svbool_t pg, float64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op;
         }
    }
    return res;
}
inline svint8_t svdupq_n_s8(int8_t x0, int8_t x1, int8_t x2, int8_t x3,int8_t x4, int8_t x5, int8_t x6, int8_t x7,int8_t x8, int8_t x9, int8_t x10, int8_t x11,int8_t x12, int8_t x13, int8_t x14, int8_t x15){
    svint8_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
        res.vec[idx+4] = x4;
        res.vec[idx+5] = x5;
        res.vec[idx+6] = x6;
        res.vec[idx+7] = x7;
        res.vec[idx+8] = x8;
        res.vec[idx+9] = x9;
        res.vec[idx+10] = x10;
        res.vec[idx+11] = x11;
        res.vec[idx+12] = x12;
        res.vec[idx+13] = x13;
        res.vec[idx+14] = x14;
        res.vec[idx+15] = x15;
    }
    return res;
}
inline svuint8_t svdupq_n_u8(uint8_t x0, uint8_t x1, uint8_t x2, uint8_t x3,uint8_t x4, uint8_t x5, uint8_t x6, uint8_t x7,uint8_t x8, uint8_t x9, uint8_t x10, uint8_t x11,uint8_t x12, uint8_t x13, uint8_t x14, uint8_t x15){
    svuint8_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
        res.vec[idx+4] = x4;
        res.vec[idx+5] = x5;
        res.vec[idx+6] = x6;
        res.vec[idx+7] = x7;
        res.vec[idx+8] = x8;
        res.vec[idx+9] = x9;
        res.vec[idx+10] = x10;
        res.vec[idx+11] = x11;
        res.vec[idx+12] = x12;
        res.vec[idx+13] = x13;
        res.vec[idx+14] = x14;
        res.vec[idx+15] = x15;
    }
    return res;
}
inline svint16_t svdupq_n_s16(int16_t x0, int16_t x1, int16_t x2, int16_t x3,int16_t x4, int16_t x5, int16_t x6, int16_t x7){
    svint16_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
        res.vec[idx+4] = x4;
        res.vec[idx+5] = x5;
        res.vec[idx+6] = x6;
        res.vec[idx+7] = x7;
    }
    return res;
}
inline svuint16_t svdupq_n_u16(uint16_t x0, uint16_t x1, uint16_t x2,uint16_t x3, uint16_t x4, uint16_t x5,uint16_t x6, uint16_t x7){
    svuint16_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
        res.vec[idx+4] = x4;
        res.vec[idx+5] = x5;
        res.vec[idx+6] = x6;
        res.vec[idx+7] = x7;
    }
    return res;
}
inline svfloat16_t svdupq_n_f16(float16_t x0, float16_t x1, float16_t x2,float16_t x3, float16_t x4, float16_t x5,float16_t x6, float16_t x7){
    svfloat16_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
        res.vec[idx+4] = x4;
        res.vec[idx+5] = x5;
        res.vec[idx+6] = x6;
        res.vec[idx+7] = x7;
    }
    return res;
}
inline svint32_t svdupq_n_s32(int32_t x0, int32_t x1, int32_t x2, int32_t x3){
    svint32_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
    }
    return res;
}
inline svuint32_t svdupq_n_u32(uint32_t x0, uint32_t x1, uint32_t x2,uint32_t x3){
    svuint32_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
    }
    return res;
}
inline svfloat32_t svdupq_n_f32(float32_t x0, float32_t x1, float32_t x2,float32_t x3){
    svfloat32_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
        res.vec[idx+2] = x2;
        res.vec[idx+3] = x3;
    }
    return res;
}
inline svint64_t svdupq_n_s64(int64_t x0, int64_t x1){
    svint64_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
    }
    return res;
}
inline svuint64_t svdupq_n_u64(uint64_t x0, uint64_t x1){
    svuint64_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
    }
    return res;
}
inline svfloat64_t svdupq_n_f64(float64_t x0, float64_t x1){
    svfloat64_t res;
    for(int idx =  0 ; idx < res.Size ; idx += 16){
        res.vec[idx+0] = x0;
        res.vec[idx+1] = x1;
    }
    return res;
}

inline svint8_t svindex_s8(int8_t base, int8_t step){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svint16_t svindex_s16(int16_t base, int16_t step){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svint32_t svindex_s32(int32_t base, int32_t step){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svint64_t svindex_s64(int64_t base, int64_t step){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svuint8_t svindex_u8(uint8_t base, uint8_t step){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svuint16_t svindex_u16(uint16_t base, uint16_t step){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svuint32_t svindex_u32(uint32_t base, uint32_t step){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svuint64_t svindex_u64(uint64_t base, uint64_t step){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = base + step*idx;
    }
    return res;
}
inline svint8_t svadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}

inline svint8_t svadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint16_t svadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint32_t svadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint64_t svadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint8_t svadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint16_t svadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint32_t svadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint64_t svadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint8_t svadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint16_t svadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint32_t svadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint64_t svadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint8_t svadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint16_t svadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint32_t svadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint64_t svadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint8_t svadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint16_t svadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint32_t svadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint64_t svadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint8_t svadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint16_t svadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint32_t svadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svuint64_t svadd_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svint8_t svqadd_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint16_t svqadd_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint32_t svqadd_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint64_t svqadd_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint8_t svqadd_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint16_t svqadd_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint32_t svqadd_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint64_t svqadd_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint8_t svqadd_n_s8(svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svint16_t svqadd_n_s16(svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svint32_t svqadd_n_s32(svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svint64_t svqadd_n_s64(svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svuint8_t svqadd_n_u8(svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svuint16_t svqadd_n_u16(svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svuint32_t svqadd_n_u32(svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svuint64_t svqadd_n_u64(svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qadd(op1.vec[idx], op2);
    }
    return res;
}
inline svint8_t svsub_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svsub_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svsub_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svsub_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svsub_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svsub_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svsub_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svsub_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svsub_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svsub_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svsub_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svsub_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svsub_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svsub_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svsub_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svsub_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svsub_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svsub_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svsub_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svsub_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svsub_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svsub_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svsub_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svsub_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svsub_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint16_t svsub_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint32_t svsub_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint64_t svsub_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint8_t svsub_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint16_t svsub_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint32_t svsub_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint64_t svsub_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint8_t svsub_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint16_t svsub_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint32_t svsub_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint64_t svsub_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint8_t svsub_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint16_t svsub_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint32_t svsub_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint64_t svsub_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint8_t svsub_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint16_t svsub_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint32_t svsub_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint64_t svsub_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint8_t svsub_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint16_t svsub_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint32_t svsub_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint64_t svsub_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}

inline svint8_t svsubr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svsubr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svsubr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svsubr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svsubr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svsubr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svsubr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svsubr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svsubr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svsubr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svsubr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svsubr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svsubr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svsubr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svsubr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svsubr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svsubr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svsubr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svsubr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svsubr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svsubr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svsubr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svsubr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svsubr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svsubr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint16_t svsubr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint32_t svsubr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint64_t svsubr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint8_t svsubr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint16_t svsubr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint32_t svsubr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint64_t svsubr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint8_t svsubr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svsubr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svsubr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svsubr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svsubr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svsubr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svsubr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svsubr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svsubr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint16_t svsubr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint32_t svsubr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint64_t svsubr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint8_t svsubr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint16_t svsubr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint32_t svsubr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint64_t svsubr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint8_t svqsub_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint16_t svqsub_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint32_t svqsub_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint64_t svqsub_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint8_t svqsub_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint16_t svqsub_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint32_t svqsub_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svuint64_t svqsub_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svint8_t svqsub_n_s8(svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svint16_t svqsub_n_s16(svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svint32_t svqsub_n_s32(svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svint64_t svqsub_n_s64(svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svuint8_t svqsub_n_u8(svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svuint16_t svqsub_n_u16(svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svuint32_t svqsub_n_u32(svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svuint64_t svqsub_n_u64(svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_qsub(op1.vec[idx], op2);
    }
    return res;
}
inline svint8_t svabd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svabd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svabd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svabd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svabd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svabd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svabd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svabd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svabd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svabd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svabd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svabd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svabd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svabd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svabd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svabd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svabd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svabd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svabd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svabd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svabd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svabd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svabd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svabd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svabd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint16_t svabd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint32_t svabd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint64_t svabd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint8_t svabd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint16_t svabd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint32_t svabd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint64_t svabd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint8_t svabd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svabd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svabd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svabd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svabd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svabd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svabd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svabd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svabd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint16_t svabd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint32_t svabd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint64_t svabd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint8_t svabd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint16_t svabd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint32_t svabd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svuint64_t svabd_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svint8_t svmul_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmul_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}

inline svint32_t svmul_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmul_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}

inline svuint8_t svmul_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmul_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmul_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmul_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmul_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmul_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmul_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmul_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmul_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmul_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmul_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmul_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmul_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmul_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmul_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmul_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmul_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmul_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmul_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmul_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmul_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint16_t svmul_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}

inline svint32_t svmul_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint64_t svmul_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}

inline svuint8_t svmul_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint16_t svmul_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint32_t svmul_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint64_t svmul_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint8_t svmul_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint16_t svmul_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint32_t svmul_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint64_t svmul_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint8_t svmul_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint16_t svmul_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint32_t svmul_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint64_t svmul_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint8_t svmul_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint16_t svmul_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint32_t svmul_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint64_t svmul_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint8_t svmul_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint16_t svmul_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint32_t svmul_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svuint64_t svmul_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svint8_t svmulh_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmulh_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmulh_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmulh_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmulh_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmulh_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmulh_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmulh_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmulh_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmulh_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmulh_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmulh_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmulh_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmulh_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmulh_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmulh_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmulh_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmulh_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmulh_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmulh_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmulh_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmulh_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmulh_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmulh_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmulh_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint16_t svmulh_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint32_t svmulh_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint64_t svmulh_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint8_t svmulh_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint16_t svmulh_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint32_t svmulh_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint64_t svmulh_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint8_t svmulh_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmulh_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmulh_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmulh_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmulh_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmulh_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmulh_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmulh_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmulh_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint16_t svmulh_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint32_t svmulh_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint64_t svmulh_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint8_t svmulh_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint16_t svmulh_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint32_t svmulh_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svuint64_t svmulh_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svmulh(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svint8_t svmad_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmad_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmad_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmad_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmad_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmad_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmad_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmad_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmad_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmad_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmad_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmad_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmad_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmad_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmad_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmad_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmad_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmad_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmad_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmad_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmad_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmad_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmad_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmad_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmad_n_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint16_t svmad_n_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint32_t svmad_n_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint64_t svmad_n_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint8_t svmad_n_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint16_t svmad_n_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint32_t svmad_n_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint64_t svmad_n_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint8_t svmad_n_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmad_n_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmad_n_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmad_n_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmad_n_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmad_n_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmad_n_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmad_n_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmad_n_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint16_t svmad_n_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint32_t svmad_n_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint64_t svmad_n_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint8_t svmad_n_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint16_t svmad_n_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint32_t svmad_n_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svuint64_t svmad_n_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svint8_t svmla_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmla_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmla_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmla_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmla_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmla_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmla_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmla_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmla_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmla_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmla_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmla_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmla_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmla_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmla_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmla_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmla_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmla_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmla_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmla_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmla_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmla_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmla_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmla_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmla_n_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint16_t svmla_n_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint32_t svmla_n_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint64_t svmla_n_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint8_t svmla_n_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint16_t svmla_n_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint32_t svmla_n_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint64_t svmla_n_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint8_t svmla_n_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmla_n_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmla_n_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmla_n_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmla_n_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmla_n_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmla_n_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmla_n_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmla_n_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint16_t svmla_n_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint32_t svmla_n_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint64_t svmla_n_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint8_t svmla_n_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint16_t svmla_n_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint32_t svmla_n_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svuint64_t svmla_n_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svint8_t svmsb_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmsb_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmsb_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmsb_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmsb_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmsb_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmsb_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmsb_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmsb_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmsb_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmsb_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmsb_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmsb_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmsb_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmsb_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmsb_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmsb_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmsb_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmsb_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmsb_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmsb_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmsb_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmsb_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmsb_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmsb_n_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmsb_n_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmsb_n_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmsb_n_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmsb_n_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmsb_n_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmsb_n_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmsb_n_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmsb_n_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmsb_n_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmsb_n_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmsb_n_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmsb_n_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmsb_n_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmsb_n_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmsb_n_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmsb_n_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmsb_n_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmsb_n_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmsb_n_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmsb_n_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmsb_n_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmsb_n_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmsb_n_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmls_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmls_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmls_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmls_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmls_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmls_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmls_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmls_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmls_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmls_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmls_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmls_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmls_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmls_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmls_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmls_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmls_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint16_t svmls_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint32_t svmls_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint64_t svmls_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint8_t svmls_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint16_t svmls_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint32_t svmls_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svuint64_t svmls_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svint8_t svmls_n_s8_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint16_t svmls_n_s16_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint32_t svmls_n_s32_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint64_t svmls_n_s64_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint8_t svmls_n_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint16_t svmls_n_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint32_t svmls_n_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint64_t svmls_n_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint8_t svmls_n_s8_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmls_n_s16_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmls_n_s32_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmls_n_s64_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmls_n_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmls_n_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmls_n_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmls_n_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmls_n_s8_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint16_t svmls_n_s16_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint32_t svmls_n_s32_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint64_t svmls_n_s64_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint8_t svmls_n_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint16_t svmls_n_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint32_t svmls_n_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svuint64_t svmls_n_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svint32_t svdot_s32(svint32_t op1, svint8_t op2, svint8_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[idx*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svint64_t svdot_s64(svint64_t op1, svint16_t op2, svint16_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[idx*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint32_t svdot_u32(svuint32_t op1, svuint8_t op2, svuint8_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[idx*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint64_t svdot_u64(svuint64_t op1, svuint16_t op2, svuint16_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[idx*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svint32_t svdot_n_s32(svint32_t op1, svint8_t op2, int8_t op3){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svint64_t svdot_n_s64(svint64_t op1, svint16_t op2, int16_t op3){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint32_t svdot_n_u32(svuint32_t op1, svuint8_t op2, uint8_t op3){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint64_t svdot_n_u64(svuint64_t op1, svuint16_t op2, uint16_t op3){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svint32_t svdot_lane_s32(svint32_t op1, svint8_t op2, svint8_t op3,uint64_t imm_index){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[(((idx*4*8)/128)*128)/8+imm_index*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svint64_t svdot_lane_s64(svint64_t op1, svint16_t op2, svint16_t op3,uint64_t imm_index){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[(((idx*4*16)/128)*128)/16+imm_index*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint32_t svdot_lane_u32(svuint32_t op1, svuint8_t op2, svuint8_t op3,uint64_t imm_index){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[(((idx*4*8)/128)*128)/8+imm_index*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}
inline svuint64_t svdot_lane_u64(svuint64_t op1, svuint16_t op2, svuint16_t op3,uint64_t imm_index){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        for(int idxg = 0 ; idxg < 4 ; ++idxg){
            res.vec[idx] += (op2.vec[idx*4+idxg] * op3.vec[(((idx*4*16)/128)*128)/16+imm_index*4+idxg]);
        }
        res.vec[idx] += (op1.vec[idx]);
    }
    return res;
}

inline svint32_t svdiv_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdiv_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}

inline svuint32_t svdiv_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdiv_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svdiv_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdiv_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdiv_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdiv_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svdiv_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdiv_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdiv_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdiv_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}

inline svint32_t svdiv_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint64_t svdiv_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}

inline svuint32_t svdiv_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svuint64_t svdiv_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint32_t svdiv_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint64_t svdiv_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svuint32_t svdiv_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svuint64_t svdiv_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint32_t svdiv_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint64_t svdiv_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svuint32_t svdiv_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svuint64_t svdiv_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svint32_t svdivr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdivr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdivr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdivr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svdivr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svint64_t svdivr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svuint32_t svdivr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svuint64_t svdivr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svint32_t svdivr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdivr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdivr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdivr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svdivr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdivr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdivr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdivr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svdivr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svint64_t svdivr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svuint32_t svdivr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svuint64_t svdivr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }    }
    return res;
}
inline svint32_t svdivr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svdivr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svdivr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svdivr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == 0 ? 0 : op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmax_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmax_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}

inline svint32_t svmax_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}

inline svint64_t svmax_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmax_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmax_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmax_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmax_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmax_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmax_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmax_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmax_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmax_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmax_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmax_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmax_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmax_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmax_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmax_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmax_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmax_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmax_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmax_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmax_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmax_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint16_t svmax_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint32_t svmax_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint64_t svmax_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint8_t svmax_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint16_t svmax_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint32_t svmax_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint64_t svmax_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint8_t svmax_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmax_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmax_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmax_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmax_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmax_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmax_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmax_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmax_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint16_t svmax_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint32_t svmax_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint64_t svmax_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint8_t svmax_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint16_t svmax_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint32_t svmax_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint64_t svmax_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint8_t svmin_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmin_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}

inline svint32_t svmin_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx] ? op1.vec[idx] : op2.vec[idx]);
        }
    }
    return res;
}

inline svint64_t svmin_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmin_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmin_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmin_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmin_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmin_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmin_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmin_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmin_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmin_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmin_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmin_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmin_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmin_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svmin_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svmin_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svmin_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svmin_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svmin_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svmin_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svmin_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svmin_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint16_t svmin_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint32_t svmin_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint64_t svmin_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint8_t svmin_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint16_t svmin_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint32_t svmin_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint64_t svmin_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint8_t svmin_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svmin_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svmin_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svmin_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svmin_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svmin_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svmin_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svmin_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svmin_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint16_t svmin_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint32_t svmin_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint64_t svmin_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint8_t svmin_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint16_t svmin_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint32_t svmin_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svuint64_t svmin_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svint8_t svneg_s8_z(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svneg_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}

inline svint32_t svneg_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -op.vec[idx];
        }
        else{
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svneg_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -op.vec[idx];
        }
        else{
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}

inline svint8_t svneg_s8_m(svint8_t inactive, svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint16_t svneg_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svneg_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svneg_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint8_t svneg_s8_x(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svneg_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svneg_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svneg_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svabs_s8_z(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svabs_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svabs_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svabs_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svabs_s8_m(svint8_t inactive, svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint16_t svabs_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svabs_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svabs_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint8_t svabs_s8_x(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svabs_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svabs_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svabs_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svand_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svand_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svand_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svand_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svand_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svand_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svand_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svand_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svand_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svand_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svand_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svand_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svand_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svand_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svand_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svand_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svand_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svand_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svand_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svand_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svand_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svand_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svand_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svand_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svand_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint16_t svand_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint32_t svand_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint64_t svand_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint8_t svand_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint16_t svand_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint32_t svand_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint64_t svand_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint8_t svand_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svand_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svand_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svand_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svand_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svand_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svand_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svand_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svand_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint16_t svand_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint32_t svand_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint64_t svand_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint8_t svand_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint16_t svand_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint32_t svand_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svuint64_t svand_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  &  op2);
        }
    }
    return res;
}
inline svint8_t svbic_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svbic_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svbic_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svbic_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svbic_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svbic_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svbic_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svbic_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svbic_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svbic_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svbic_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svbic_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svbic_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svbic_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svbic_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svbic_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svbic_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svbic_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svbic_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svbic_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svbic_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svbic_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svbic_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svbic_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svbic_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint16_t svbic_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint32_t svbic_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint64_t svbic_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint8_t svbic_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint16_t svbic_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint32_t svbic_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint64_t svbic_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint8_t svbic_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svbic_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svbic_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svbic_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svbic_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svbic_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svbic_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svbic_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svbic_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint16_t svbic_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint32_t svbic_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint64_t svbic_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint8_t svbic_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint16_t svbic_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint32_t svbic_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svuint64_t svbic_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  & ! op2);
        }
    }
    return res;
}
inline svint8_t svorr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svorr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svorr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svorr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svorr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svorr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svorr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svorr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svorr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svorr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svorr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svorr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svorr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svorr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svorr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svorr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svorr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svorr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svorr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svorr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svorr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svorr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svorr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svorr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svorr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint16_t svorr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint32_t svorr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint64_t svorr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint8_t svorr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint16_t svorr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint32_t svorr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint64_t svorr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint8_t svorr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t svorr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t svorr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t svorr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svorr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svorr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svorr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svorr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t svorr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint16_t svorr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint32_t svorr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint64_t svorr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint8_t svorr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint16_t svorr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint32_t svorr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svuint64_t svorr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  |  op2);
        }
    }
    return res;
}
inline svint8_t sveor_s8_z(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t sveor_s16_z(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t sveor_s32_z(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t sveor_s64_z(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t sveor_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t sveor_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t sveor_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t sveor_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t sveor_s8_m(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t sveor_s16_m(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t sveor_s32_m(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t sveor_s64_m(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t sveor_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t sveor_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t sveor_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t sveor_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t sveor_s8_x(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint16_t sveor_s16_x(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint32_t sveor_s32_x(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint64_t sveor_s64_x(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t sveor_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t sveor_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t sveor_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t sveor_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2.vec[idx]);
        }
    }
    return res;
}
inline svint8_t sveor_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint16_t sveor_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint32_t sveor_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint64_t sveor_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint8_t sveor_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint16_t sveor_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint32_t sveor_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint64_t sveor_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint8_t sveor_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint16_t sveor_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint32_t sveor_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint64_t sveor_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint8_t sveor_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint16_t sveor_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint32_t sveor_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svuint64_t sveor_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svint8_t sveor_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint16_t sveor_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint32_t sveor_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint64_t sveor_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint8_t sveor_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint16_t sveor_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint32_t sveor_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svuint64_t sveor_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx]  ^  op2);
        }
    }
    return res;
}
inline svint8_t svnot_s8_z(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svnot_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svnot_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svnot_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svnot_u8_z(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svnot_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svnot_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svnot_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svnot_s8_m(svint8_t inactive, svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint16_t svnot_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint32_t svnot_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint64_t svnot_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svnot_u8_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svnot_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svnot_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svnot_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint8_t svnot_s8_x(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svnot_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svnot_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svnot_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svnot_u8_x(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svnot_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svnot_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svnot_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ~  op.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svcnot_s8_z(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svcnot_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svcnot_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svcnot_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svcnot_u8_z(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svcnot_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svcnot_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svcnot_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svcnot_s8_m(svint8_t inactive, svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint16_t svcnot_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint32_t svcnot_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint64_t svcnot_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svcnot_u8_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svcnot_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svcnot_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svcnot_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    else{
        res.vec[idx] = inactive.vec[idx];
    }
    }
    return res;
}
inline svint8_t svcnot_s8_x(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svcnot_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svcnot_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svcnot_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svcnot_u8_x(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svcnot_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svcnot_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svcnot_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = ( ! op.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svlsl_s8_z(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svlsl_s16_z(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svlsl_s32_z(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svlsl_s64_z(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsl_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsl_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsl_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svlsl_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svlsl_s8_m(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svlsl_s16_m(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svlsl_s32_m(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint64_t svlsl_s64_m(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsl_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsl_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsl_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svlsl_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svlsl_s8_x(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svlsl_s16_x(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svlsl_s32_x(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svlsl_s64_x(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsl_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsl_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsl_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svlsl_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svlsl_n_s64_z(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint64_t svlsl_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint64_t svlsl_n_s64_m(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svlsl_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint64_t svlsl_n_s64_x(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint64_t svlsl_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svlsl_wide_s8_z(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svlsl_wide_s16_z(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svlsl_wide_s32_z(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsl_wide_u8_z(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsl_wide_u16_z(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsl_wide_u32_z(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svlsl_wide_s8_m(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svlsl_wide_s16_m(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svlsl_wide_s32_m(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsl_wide_u8_m(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsl_wide_u16_m(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsl_wide_u32_m(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svlsl_wide_s8_x(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svlsl_wide_s16_x(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svlsl_wide_s32_x(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsl_wide_u8_x(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsl_wide_u16_x(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsl_wide_u32_x(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svlsl_n_s8_z(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint16_t svlsl_n_s16_z(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint32_t svlsl_n_s32_z(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint8_t svlsl_n_u8_z(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint16_t svlsl_n_u16_z(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint32_t svlsl_n_u32_z(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svlsl_n_s8_m(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svlsl_n_s16_m(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svlsl_n_s32_m(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsl_n_u8_m(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsl_n_u16_m(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsl_n_u32_m(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svlsl_n_s8_x(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint16_t svlsl_n_s16_x(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint32_t svlsl_n_s32_x(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint8_t svlsl_n_u8_x(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint16_t svlsl_n_u16_x(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint32_t svlsl_n_u32_x(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsl(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint8_t svlsr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svlsr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svlsr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svlsr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint64_t svlsr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint64_t svlsr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint64_t svlsr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint8_t svlsr_wide_u8_z(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsr_wide_u16_z(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsr_wide_u32_z(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsr_wide_u8_m(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsr_wide_u16_m(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsr_wide_u32_m(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsr_wide_u8_x(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint16_t svlsr_wide_u16_x(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint32_t svlsr_wide_u32_x(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svuint8_t svlsr_n_u8_z(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint16_t svlsr_n_u16_z(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint32_t svlsr_n_u32_z(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint8_t svlsr_n_u8_m(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint16_t svlsr_n_u16_m(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint32_t svlsr_n_u32_m(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svuint8_t svlsr_n_u8_x(svbool_t pg, svuint8_t op1, uint64_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint16_t svlsr_n_u16_x(svbool_t pg, svuint16_t op1, uint64_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svuint32_t svlsr_n_u32_x(svbool_t pg, svuint32_t op1, uint64_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svlsr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svasr_s8_z(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svasr_s16_z(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svasr_s32_z(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svasr_s64_z(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svasr_s8_m(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svasr_s16_m(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svasr_s32_m(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint64_t svasr_s64_m(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svasr_s8_x(svbool_t pg, svint8_t op1, svuint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svasr_s16_x(svbool_t pg, svint16_t op1, svuint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svasr_s32_x(svbool_t pg, svint32_t op1, svuint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svasr_s64_x(svbool_t pg, svint64_t op1, svuint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint64_t svasr_n_s64_z(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint64_t svasr_n_s64_m(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint64_t svasr_n_s64_x(svbool_t pg, svint64_t op1, uint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svasr_wide_s8_z(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svasr_wide_s16_z(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svasr_wide_s32_z(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svasr_wide_s8_m(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svasr_wide_s16_m(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svasr_wide_s32_m(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svasr_wide_s8_x(svbool_t pg, svint8_t op1, svuint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint16_t svasr_wide_s16_x(svbool_t pg, svint16_t op1, svuint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint32_t svasr_wide_s32_x(svbool_t pg, svint32_t op1, svuint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2.vec[idx]);
         }
    }
    return res;
}
inline svint8_t svasr_n_s8_z(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint16_t svasr_n_s16_z(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint32_t svasr_n_s32_z(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svasr_n_s8_m(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svasr_n_s16_m(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svasr_n_s32_m(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svasr_n_s8_x(svbool_t pg, svint8_t op1, uint64_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint16_t svasr_n_s16_x(svbool_t pg, svint16_t op1, uint64_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint32_t svasr_n_s32_x(svbool_t pg, svint32_t op1, uint64_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasr(op1.vec[idx], op2);
         }
    }
    return res;
}
inline svint8_t svasrd_n_s8_z(svbool_t pg, svint8_t op1, uint64_t imm2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint16_t svasrd_n_s16_z(svbool_t pg, svint16_t op1, uint64_t imm2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint32_t svasrd_n_s32_z(svbool_t pg, svint32_t op1, uint64_t imm2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint64_t svasrd_n_s64_z(svbool_t pg, svint64_t op1, uint64_t imm2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint8_t svasrd_n_s8_m(svbool_t pg, svint8_t op1, uint64_t imm2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint16_t svasrd_n_s16_m(svbool_t pg, svint16_t op1, uint64_t imm2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint32_t svasrd_n_s32_m(svbool_t pg, svint32_t op1, uint64_t imm2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint64_t svasrd_n_s64_m(svbool_t pg, svint64_t op1, uint64_t imm2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    else{
        res.vec[idx] = op1.vec[idx];
    }
    }
    return res;
}
inline svint8_t svasrd_n_s8_x(svbool_t pg, svint8_t op1, uint64_t imm2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint16_t svasrd_n_s16_x(svbool_t pg, svint16_t op1, uint64_t imm2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint32_t svasrd_n_s32_x(svbool_t pg, svint32_t op1, uint64_t imm2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint64_t svasrd_n_s64_x(svbool_t pg, svint64_t op1, uint64_t imm2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svasrd(op1.vec[idx], imm2);
         }
    }
    return res;
}
inline svint8_t svinsr_n_s8(svint8_t op1, int8_t op2){
    svint8_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svint16_t svinsr_n_s16(svint16_t op1, int16_t op2){
    svint16_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svint32_t svinsr_n_s32(svint32_t op1, int32_t op2){
    svint32_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svint64_t svinsr_n_s64(svint64_t op1, int64_t op2){
    svint64_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svuint8_t svinsr_n_u8(svuint8_t op1, uint8_t op2){
    svuint8_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svuint16_t svinsr_n_u16(svuint16_t op1, uint16_t op2){
    svuint16_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svuint32_t svinsr_n_u32(svuint32_t op1, uint32_t op2){
    svuint32_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svuint64_t svinsr_n_u64(svuint64_t op1, uint64_t op2){
    svuint64_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svfloat16_t svinsr_n_f16(svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svfloat32_t svinsr_n_f32(svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline svfloat64_t svinsr_n_f64(svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    res.vec[0] = op2;
    for(int idx = 1 ; idx < op1.Size ; ++idx){
            res.vec[idx] = op1.vec[idx-1];
    }
    return res;
}
inline int64_t svaddv_s8(svbool_t pg, svint8_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline int64_t svaddv_s16(svbool_t pg, svint16_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline int64_t svaddv_s32(svbool_t pg, svint32_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline int64_t svaddv_s64(svbool_t pg, svint64_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline uint64_t svaddv_u8(svbool_t pg, svuint8_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline uint64_t svaddv_u16(svbool_t pg, svuint16_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline uint64_t svaddv_u32(svbool_t pg, svuint32_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline uint64_t svaddv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
         }
    }
    return res;
}
inline int8_t svmaxv_s8(svbool_t pg, svint8_t op){
    int8_t res = std::numeric_limits<int8_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline int16_t svmaxv_s16(svbool_t pg, svint16_t op){
    int16_t res = std::numeric_limits<int16_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline int32_t svmaxv_s32(svbool_t pg, svint32_t op){
    int32_t res = std::numeric_limits<int32_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline int64_t svmaxv_s64(svbool_t pg, svint64_t op){
    int64_t res = std::numeric_limits<int64_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint8_t svmaxv_u8(svbool_t pg, svuint8_t op){
    uint8_t res = std::numeric_limits<uint8_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint16_t svmaxv_u16(svbool_t pg, svuint16_t op){
    uint16_t res = std::numeric_limits<uint16_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint32_t svmaxv_u32(svbool_t pg, svuint32_t op){
    uint32_t res = std::numeric_limits<uint32_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint64_t svmaxv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = std::numeric_limits<uint64_t>::min();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_max(res, op.vec[idx]);
         }
    }
    return res;
}
inline int8_t svminv_s8(svbool_t pg, svint8_t op){
    int8_t res = std::numeric_limits<int8_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline int16_t svminv_s16(svbool_t pg, svint16_t op){
    int16_t res = std::numeric_limits<int16_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline int32_t svminv_s32(svbool_t pg, svint32_t op){
    int32_t res = std::numeric_limits<int32_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline int64_t svminv_s64(svbool_t pg, svint64_t op){
    int64_t res = std::numeric_limits<int64_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint8_t svminv_u8(svbool_t pg, svuint8_t op){
    uint8_t res = std::numeric_limits<uint8_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint16_t svminv_u16(svbool_t pg, svuint16_t op){
    uint16_t res = std::numeric_limits<uint16_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint32_t svminv_u32(svbool_t pg, svuint32_t op){
    uint32_t res = std::numeric_limits<uint32_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline uint64_t svminv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = std::numeric_limits<uint64_t>::max();
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res = core_min(res, op.vec[idx]);
         }
    }
    return res;
}
inline int8_t svandv_s8(svbool_t pg, svint8_t op){
    int8_t res = (~int8_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline int16_t svandv_s16(svbool_t pg, svint16_t op){
    int16_t res = (~int16_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline int32_t svandv_s32(svbool_t pg, svint32_t op){
    int32_t res = (~int32_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline int64_t svandv_s64(svbool_t pg, svint64_t op){
    int64_t res = (~int64_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline uint8_t svandv_u8(svbool_t pg, svuint8_t op){
    uint8_t res = (~uint8_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline uint16_t svandv_u16(svbool_t pg, svuint16_t op){
    uint16_t res = (~uint16_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline uint32_t svandv_u32(svbool_t pg, svuint32_t op){
    uint32_t res = (~uint32_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline uint64_t svandv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = (~uint64_t(0));
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res &= (op.vec[idx]);
         }
    }
    return res;
}
inline int8_t svorv_s8(svbool_t pg, svint8_t op){
    int8_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline int16_t svorv_s16(svbool_t pg, svint16_t op){
    int16_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline int32_t svorv_s32(svbool_t pg, svint32_t op){
    int32_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline int64_t svorv_s64(svbool_t pg, svint64_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline uint8_t svorv_u8(svbool_t pg, svuint8_t op){
    uint8_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline uint16_t svorv_u16(svbool_t pg, svuint16_t op){
    uint16_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline uint32_t svorv_u32(svbool_t pg, svuint32_t op){
    uint32_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline uint64_t svorv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res |= (op.vec[idx]);
         }
    }
    return res;
}
inline int8_t sveorv_s8(svbool_t pg, svint8_t op){
    int8_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline int16_t sveorv_s16(svbool_t pg, svint16_t op){
    int16_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline int32_t sveorv_s32(svbool_t pg, svint32_t op){
    int32_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline int64_t sveorv_s64(svbool_t pg, svint64_t op){
    int64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline uint8_t sveorv_u8(svbool_t pg, svuint8_t op){
    uint8_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline uint16_t sveorv_u16(svbool_t pg, svuint16_t op){
    uint16_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline uint32_t sveorv_u32(svbool_t pg, svuint32_t op){
    uint32_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline uint64_t sveorv_u64(svbool_t pg, svuint64_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res ^= (op.vec[idx]);
         }
    }
    return res;
}
inline svbool_t svcmpeq_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t     svcmplt_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t     svcmplt_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmplt_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmple_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t     svcmple_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t     svcmple_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmple_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t     svcmpge_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t     svcmpge_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmpge_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_s64(svbool_t pg, svint64_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_u64(svbool_t pg, svuint64_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_s8(svbool_t pg, svint8_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_s16(svbool_t pg, svint16_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_s32(svbool_t pg, svint32_t op1, svint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_u8(svbool_t pg, svuint8_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_u16(svbool_t pg, svuint16_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_wide_u32(svbool_t pg, svuint32_t op1, svuint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_s8(svbool_t pg, svint8_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_s16(svbool_t pg, svint16_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_s32(svbool_t pg, svint32_t op1, int64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_u8(svbool_t pg, svuint8_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_u16(svbool_t pg, svuint16_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_u32(svbool_t pg, svuint32_t op1, uint64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t     svwhilelt_b8_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}

inline svbool_t svwhilelt_b16_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b32_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b64_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b8_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b16_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b32_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b64_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b8_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b16_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b32_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b64_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b8_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b16_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b32_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilelt_b64_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) < op2);
    }
    return res;
}
inline svbool_t svwhilele_b8_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b16_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b32_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b64_s32(int32_t op1, int32_t op2){
    svbool_t res;
    for(int32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b8_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b16_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b32_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b64_u32(uint32_t op1, uint32_t op2){
    svbool_t res;
    for(uint32_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b8_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b16_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b32_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b64_s64(int64_t op1, int64_t op2){
    svbool_t res;
    for(int64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b8_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b16_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b32_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svbool_t svwhilele_b64_u64(uint64_t op1, uint64_t op2){
    svbool_t res;
    for(uint64_t idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = ((op1+idx) <= op2);
    }
    return res;
}
inline svuint8_t svcls_s8_z(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcls_s16_z(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcls_s32_z(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcls_s64_z(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svcls_s8_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcls_s16_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcls_s32_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcls_s64_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svcls_s8_x(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcls_s16_x(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcls_s32_x(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcls_s64_x(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcls(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svclz_s8_z(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svclz_s16_z(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svclz_s32_z(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svclz_s64_z(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svclz_u8_z(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svclz_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svclz_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svclz_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svclz_s8_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svclz_s16_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svclz_s32_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svclz_s64_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svclz_u8_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svclz_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svclz_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svclz_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svclz_s8_x(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svclz_s16_x(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svclz_s32_x(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svclz_s64_x(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svclz_u8_x(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svclz_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svclz_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svclz_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svclz(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svcnt_s8_z(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_s16_z(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_s32_z(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_s64_z(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svcnt_u8_z(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_f16_z(svbool_t pg, svfloat16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_f32_z(svbool_t pg, svfloat32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_f64_z(svbool_t pg, svfloat64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svcnt_s8_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcnt_s16_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcnt_s32_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcnt_s64_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svcnt_u8_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcnt_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcnt_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcnt_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcnt_f16_m(svuint16_t inactive, svbool_t pg, svfloat16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcnt_f32_m(svuint32_t inactive, svbool_t pg, svfloat32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcnt_f64_m(svuint64_t inactive, svbool_t pg, svfloat64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svcnt_s8_x(svbool_t pg, svint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_s16_x(svbool_t pg, svint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_s32_x(svbool_t pg, svint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_s64_x(svbool_t pg, svint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svcnt_u8_x(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svcnt_f16_x(svbool_t pg, svfloat16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcnt_f32_x(svbool_t pg, svfloat32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcnt_f64_x(svbool_t pg, svfloat64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svcnt(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svextb_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svextb_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svextb_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svextb_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svextb_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svextb_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svextb_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svextb_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svextb_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svextb_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svextb_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svextb_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint16_t svextb_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svextb_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svextb_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svextb_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svextb_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svextb_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint8_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svexth_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svexth_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svexth_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svexth_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svexth_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svexth_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svexth_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint16_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svexth_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint16_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svexth_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svexth_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svexth_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svexth_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint16_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svextw_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int32_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svextw_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint32_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svextw_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int32_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svextw_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint32_t(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svextw_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = int32_t(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svextw_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = uint32_t(op.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svrbit_s8_z(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svrbit_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrbit_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrbit_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svrbit_u8_z(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svrbit_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrbit_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrbit_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint8_t svrbit_s8_m(svint8_t inactive, svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint16_t svrbit_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svrbit_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svrbit_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint8_t svrbit_u8_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svrbit_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svrbit_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svrbit_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint8_t svrbit_s8_x(svbool_t pg, svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svrbit_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrbit_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrbit_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint8_t svrbit_u8_x(svbool_t pg, svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svrbit_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrbit_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrbit_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrbit(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svrevb_s16_z(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrevb_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevb_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svrevb_u16_z(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrevb_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevb_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint16_t svrevb_s16_m(svint16_t inactive, svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svrevb_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svrevb_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svrevb_u16_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svrevb_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svrevb_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint16_t svrevb_s16_x(svbool_t pg, svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrevb_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevb_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint16_t svrevb_u16_x(svbool_t pg, svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrevb_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevb_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevb(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrevh_s32_z(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevh_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrevh_u32_z(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevh_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svint32_t svrevh_s32_m(svint32_t inactive, svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svrevh_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svrevh_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svrevh_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint32_t svrevh_s32_x(svbool_t pg, svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevh_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svrevh_u32_x(svbool_t pg, svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevh_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevh(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevw_s64_z(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevw_u64_z(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
    }
    return res;
}
inline svint64_t svrevw_s64_m(svint64_t inactive, svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svrevw_u64_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svint64_t svrevw_s64_x(svbool_t pg, svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svrevw_u64_x(svbool_t pg, svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_svrevw(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svadd_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svadd_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svadd_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svadd_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svadd_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svadd_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svadd_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svadd_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svadd_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svadd_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat32_t svadd_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat64_t svadd_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat16_t svadd_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat32_t svadd_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat64_t svadd_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat16_t svadd_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat32_t svadd_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat64_t svadd_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] + op2);
        }
    }
    return res;
}
inline svfloat16_t svcadd_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,uint64_t imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat32_t svcadd_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,uint64_t imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat64_t svcadd_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,uint64_t imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat16_t svcadd_f16_m(svbool_t               pg, svfloat16_t op1, svfloat16_t op2,uint64_t               imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svcadd_f32_m(svbool_t               pg, svfloat32_t op1, svfloat32_t op2,uint64_t               imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svcadd_f64_m(svbool_t               pg, svfloat64_t op1, svfloat64_t op2,uint64_t               imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svcadd_f16_x(svbool_t               pg, svfloat16_t op1, svfloat16_t op2,uint64_t               imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat32_t svcadd_f32_x(svbool_t               pg, svfloat32_t op1, svfloat32_t op2,uint64_t               imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat64_t svcadd_f64_x(svbool_t               pg, svfloat64_t op1, svfloat64_t op2,uint64_t               imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] - op2.vec[idx]);
            }
            else if (imm_rotation == 270){
                res.vec[idx] = (op1.vec[idx] - op2.vec[idx+1]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx]);
            }
            else{
                res.vec[idx] = (op1.vec[idx] + op2.vec[idx]);
                res.vec[idx+1] = (op1.vec[idx+1] + op2.vec[idx+1]);
            }
        }
    }
    return res;
}
inline svfloat16_t svsub_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsub_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsub_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsub_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsub_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsub_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsub_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsub_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsub_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsub_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat32_t svsub_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat64_t svsub_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat16_t svsub_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat32_t svsub_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat64_t svsub_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat16_t svsub_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat32_t svsub_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat64_t svsub_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat16_t svsubr_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsubr_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsubr_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsubr_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svsubr_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svsubr_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svsubr_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsubr_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsubr_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsubr_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat32_t svsubr_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat64_t svsubr_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat16_t svsubr_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svsubr_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svsubr_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svsubr_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat32_t svsubr_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat64_t svsubr_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_subr(op1.vec[idx], op2);
        }
    }
    return res;
}
inline svfloat16_t svabd_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svabd_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svabd_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svabd_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svabd_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svabd_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svabd_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svabd_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svabd_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svabd_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat32_t svabd_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat64_t svabd_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat16_t svabd_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svabd_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svabd_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svabd_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat32_t svabd_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat64_t svabd_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx] - op2);
        }
    }
    return res;
}
inline svfloat16_t svmul_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmul_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmul_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmul_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmul_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmul_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmul_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmul_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmul_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmul_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat32_t svmul_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}

inline svfloat64_t svmul_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}

inline svfloat16_t svmul_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat32_t svmul_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat64_t svmul_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat16_t svmul_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat32_t svmul_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat64_t svmul_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2);
        }
    }
    return res;
}
inline svfloat16_t svmul_lane_f16(svfloat16_t op1, svfloat16_t op2,uint64_t imm_index){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op1.vec[idx] * op2.vec[((idx/8)*8)+imm_index]);
    }
    return res;
}
inline svfloat32_t svmul_lane_f32(svfloat32_t op1, svfloat32_t op2,uint64_t imm_index){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
            res.vec[idx] = (op1.vec[idx] * op2.vec[((idx/4)*4)+imm_index]);
    }
    return res;
}
inline svfloat64_t svmul_lane_f64(svfloat64_t op1, svfloat64_t op2,uint64_t imm_index){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
            res.vec[idx] = (op1.vec[idx] * op2.vec[((idx/2)*2)+imm_index]);
    }
    return res;
}
inline svfloat16_t svmulx_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmulx_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmulx_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmulx_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmulx_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmulx_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmulx_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmulx_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmulx_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmulx_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmulx_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmulx_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmulx_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmulx_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmulx_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmulx_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmulx_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmulx_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_mulx(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmad_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmad_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmad_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmad_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmad_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmad_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmad_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmad_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmad_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmad_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat32_t svmad_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat64_t svmad_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat16_t svmad_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmad_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmad_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmad_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat32_t svmad_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat64_t svmad_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * op2.vec[idx]) + op3;
        }
    }
    return res;
}
inline svfloat16_t svmla_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmla_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmla_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmla_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmla_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmla_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmla_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmla_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmla_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmla_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat32_t svmla_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat64_t svmla_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat16_t svmla_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmla_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmla_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmla_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat32_t svmla_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat64_t svmla_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3);
        }
    }
    return res;
}
inline svfloat16_t svmla_lane_f16(svfloat16_t  op1,   svfloat16_t op2,svfloat16_t  op3,   uint64_t imm_index){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index]);
    }
    return res;
}
inline svfloat32_t svmla_lane_f32(svfloat32_t  op1,   svfloat32_t op2,svfloat32_t  op3,   uint64_t imm_index){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index]);
    }
    return res;
}
inline svfloat64_t svmla_lane_f64(svfloat64_t  op1,   svfloat64_t op2,svfloat64_t  op3,   uint64_t imm_index){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = op1.vec[idx] + (op2.vec[idx] * op3.vec[((idx/2)*2)+imm_index]);
    }
    return res;
}
inline svfloat16_t svcmla_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat32_t svcmla_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat64_t svcmla_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat16_t svcmla_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svcmla_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svcmla_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svcmla_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat32_t svcmla_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat64_t svcmla_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
        if(pg.vec[idx]){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx+1]) - (op2.vec[idx+1] * -op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx]) + (op2.vec[idx+1] * op3.vec[idx+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx]) - (op2.vec[idx+1] * -op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[idx+1]) + (op2.vec[idx+1] * -op3.vec[idx]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[idx+1]) - (op2.vec[idx+1] * op3.vec[idx]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx]) + (op2.vec[idx+1] * -op3.vec[idx+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[idx]) - (op2.vec[idx+1] * op3.vec[idx+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[idx+1]) + (op2.vec[idx+1] * op3.vec[idx]));
            }
        }
    }
    return res;
}
inline svfloat16_t svcmla_lane_f16(svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_index,uint64_t imm_rotation){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index+1]) - (op2.vec[idx+1] * -op3.vec[((idx/8)*8)+imm_index]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[((idx/8)*8)+imm_index]) + (op2.vec[idx+1] * op3.vec[((idx/8)*8)+imm_index+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[((idx/8)*8)+imm_index]) - (op2.vec[idx+1] * -op3.vec[((idx/8)*8)+imm_index+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[((idx/8)*8)+imm_index+1]) + (op2.vec[idx+1] * -op3.vec[((idx/8)*8)+imm_index]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[((idx/8)*8)+imm_index+1]) - (op2.vec[idx+1] * op3.vec[((idx/8)*8)+imm_index]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index]) + (op2.vec[idx+1] * -op3.vec[((idx/8)*8)+imm_index+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index]) - (op2.vec[idx+1] * op3.vec[((idx/8)*8)+imm_index+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index+1]) + (op2.vec[idx+1] * op3.vec[((idx/8)*8)+imm_index]));
            }
    }
    return res;
}
inline svfloat32_t svcmla_lane_f32(svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_index,uint64_t imm_rotation){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx += 2){
            if(imm_rotation == 90){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index+1]) - (op2.vec[idx+1] * -op3.vec[((idx/4)*4)+imm_index]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[((idx/4)*4)+imm_index]) + (op2.vec[idx+1] * op3.vec[((idx/4)*4)+imm_index+1]));
            }
            else if (imm_rotation == 180){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[((idx/4)*4)+imm_index]) - (op2.vec[idx+1] * -op3.vec[((idx/4)*4)+imm_index+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * -op3.vec[((idx/4)*4)+imm_index+1]) + (op2.vec[idx+1] * -op3.vec[((idx/4)*4)+imm_index]));
            }
            else if (imm_rotation == 270){
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * -op3.vec[((idx/4)*4)+imm_index+1]) - (op2.vec[idx+1] * op3.vec[((idx/4)*4)+imm_index]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index]) + (op2.vec[idx+1] * -op3.vec[((idx/4)*4)+imm_index+1]));
            }
            else{
                res.vec[idx] = op1.vec[idx] + ((op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index]) - (op2.vec[idx+1] * op3.vec[((idx/4)*4)+imm_index+1]));
                res.vec[idx+1] = op1.vec[idx+1] + ((op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index+1]) + (op2.vec[idx+1] * op3.vec[((idx/4)*4)+imm_index]));
            }
    }
    return res;
}
inline svfloat16_t svmsb_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmsb_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmsb_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmsb_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmsb_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmsb_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmsb_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmsb_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmsb_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3.vec[idx] - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmsb_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmsb_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmsb_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmsb_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmsb_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmsb_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmsb_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmsb_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmsb_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op3 - (op1.vec[idx] * op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmls_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmls_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmls_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmls_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmls_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmls_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmls_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svmls_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svmls_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svmls_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svmls_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svmls_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svmls_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmls_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmls_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmls_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svmls_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svmls_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svmls_lane_f16(svfloat16_t op1,   svfloat16_t op2,svfloat16_t op3,   uint64_t imm_index){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[((idx/8)*8)+imm_index]));
    }
    return res;
}
inline svfloat32_t svmls_lane_f32(svfloat32_t op1,   svfloat32_t op2,svfloat32_t op3,   uint64_t imm_index){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[((idx/4)*4)+imm_index]));
    }
    return res;
}
inline svfloat64_t svmls_lane_f64(svfloat64_t op1,   svfloat64_t op2,svfloat64_t op3,   uint64_t imm_index){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
            res.vec[idx] = (op1.vec[idx] - (op2.vec[idx] * op3.vec[((idx/2)*2)+imm_index]));
    }
    return res;
}
inline svfloat16_t svnmad_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svnmad_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svnmad_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svnmad_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmad_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmad_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmad_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svnmad_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svnmad_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svnmad_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat32_t svnmad_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat64_t svnmad_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat16_t svnmad_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmad_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmad_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmad_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat32_t svnmad_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat64_t svnmad_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -((op1.vec[idx] * op2.vec[idx]) + op3);
        }
    }
    return res;
}
inline svfloat16_t svnmla_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmla_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmla_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmla_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmla_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmla_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmla_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmla_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmla_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmla_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svnmla_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svnmla_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svnmla_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmla_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmla_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmla_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svnmla_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svnmla_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] + (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svnmsb_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmsb_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmsb_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmsb_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmsb_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmsb_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmsb_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmsb_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmsb_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3.vec[idx] - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmsb_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmsb_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmsb_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmsb_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmsb_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmsb_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmsb_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmsb_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmsb_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op3 - (op2.vec[idx] * op1.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmls_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmls_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmls_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmls_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmls_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmls_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmls_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svnmls_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svnmls_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svnmls_n_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svnmls_n_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svnmls_n_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svnmls_n_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svnmls_n_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svnmls_n_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svnmls_n_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat32_t svnmls_n_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat64_t svnmls_n_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op1.vec[idx] - (op2.vec[idx] * op3));
        }
    }
    return res;
}
inline svfloat16_t svdiv_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdiv_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdiv_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdiv_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdiv_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdiv_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdiv_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdiv_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdiv_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdiv_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat32_t svdiv_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}

inline svfloat64_t svdiv_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}

inline svfloat16_t svdiv_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat32_t svdiv_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat64_t svdiv_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat16_t svdiv_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat32_t svdiv_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat64_t svdiv_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] / op2);
        }
    }
    return res;
}
inline svfloat16_t svdivr_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdivr_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdivr_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2.vec[idx] / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdivr_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdivr_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svdivr_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svdivr_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svdivr_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op2 / op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmax_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmax_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}

inline svfloat64_t svmax_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx], op2.vec[idx]);
        }
    }
    return res;
}

inline svfloat16_t svmax_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmax_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmax_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmax_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmax_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmax_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmax_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmax_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmax_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmax_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmax_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmax_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmax_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmax_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmax_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_max(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmaxnm_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmaxnm_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmaxnm_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_maxnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmin_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmin_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}

inline svfloat64_t svmin_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx] ? op1.vec[idx] : op2.vec[idx]);
        }
    }
    return res;
}

inline svfloat16_t svmin_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmin_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmin_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmin_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svmin_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svmin_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svmin_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmin_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmin_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svmin_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svmin_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svmin_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svmin_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svmin_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svmin_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_min(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svminnm_f16_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svminnm_f32_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svminnm_f64_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svminnm_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svminnm_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svminnm_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svminnm_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svminnm_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svminnm_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svminnm_n_f16_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svminnm_n_f32_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svminnm_n_f64_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svminnm_n_f16_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svminnm_n_f32_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svminnm_n_f64_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svminnm_n_f16_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat32_t svminnm_n_f32_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat64_t svminnm_n_f64_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_minnm(op1.vec[idx] , op2);
        }
    }
    return res;
}
inline svfloat16_t svscale_f16_z(svbool_t pg, svfloat16_t op1, svint16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svscale_f32_z(svbool_t pg, svfloat32_t op1, svint32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svscale_f64_z(svbool_t pg, svfloat64_t op1, svint64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svscale_f16_m(svbool_t pg, svfloat16_t op1, svint16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svscale_f32_m(svbool_t pg, svfloat32_t op1, svint32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svscale_f64_m(svbool_t pg, svfloat64_t op1, svint64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svscale_f16_x(svbool_t pg, svfloat16_t op1, svint16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat32_t svscale_f32_x(svbool_t pg, svfloat32_t op1, svint32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat64_t svscale_f64_x(svbool_t pg, svfloat64_t op1, svint64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2.vec[idx]));
        }
    }
    return res;
}
inline svfloat16_t svscale_n_f16_z(svbool_t pg, svfloat16_t op1, int16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2));
        }
    }
    return res;
}
inline svfloat32_t svscale_n_f32_z(svbool_t pg, svfloat32_t op1, int32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
    }
    return res;
}
inline svfloat64_t svscale_n_f64_z(svbool_t pg, svfloat64_t op1, int64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
    }
    return res;
}
inline svfloat16_t svscale_n_f16_m(svbool_t pg, svfloat16_t op1, int16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svscale_n_f32_m(svbool_t pg, svfloat32_t op1, int32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svscale_n_f64_m(svbool_t pg, svfloat64_t op1, int64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
        else{
            res.vec[idx] = op1.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svscale_n_f16_x(svbool_t pg, svfloat16_t op1, int16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * float16_t(1L << op2));
        }
    }
    return res;
}
inline svfloat32_t svscale_n_f32_x(svbool_t pg, svfloat32_t op1, int32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
    }
    return res;
}
inline svfloat64_t svscale_n_f64_x(svbool_t pg, svfloat64_t op1, int64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] * (1L << op2));
        }
    }
    return res;
}
inline svfloat16_t svtsmul_f16(svfloat16_t op1, svuint16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(op2.vec[idx] & 1){
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svtsmul_f32(svfloat32_t op1, svuint32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(op2.vec[idx] & 1){
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svtsmul_f64(svfloat64_t op1, svuint64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(op2.vec[idx] & 1){
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
        else{
            res.vec[idx] = (op1.vec[idx] * op1.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svtmad_f16(svfloat16_t op1, svfloat16_t op2, uint64_t imm3){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op1.vec[idx] * core_abs(op2.vec[idx])) + core_tmad(op2.vec[idx], imm3);
    }
    return res;
}
inline svfloat32_t svtmad_f32(svfloat32_t op1, svfloat32_t op2, uint64_t imm3){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op1.vec[idx] * core_abs(op2.vec[idx])) + core_tmad(op2.vec[idx], imm3);
    }
    return res;
}
inline svfloat64_t svtmad_f64(svfloat64_t op1, svfloat64_t op2, uint64_t imm3){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op1.vec[idx] * core_abs(op2.vec[idx])) + core_tmad(op2.vec[idx], imm3);
    }
    return res;
}
inline svfloat16_t svtssel_f16(svfloat16_t op1, svuint16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op2.vec[idx] & 1 ? float16_t(1) : op1.vec[idx]);
        if(op2.vec[idx] & 2){
            res.vec[idx] = -res.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svtssel_f32(svfloat32_t op1, svuint32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op2.vec[idx] & 1 ? 1 : op1.vec[idx]);
        if(op2.vec[idx] & 2){
            res.vec[idx] = -res.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svtssel_f64(svfloat64_t op1, svuint64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = (op2.vec[idx] & 1 ? 1 : op1.vec[idx]);
        if(op2.vec[idx] & 2){
            res.vec[idx] = -res.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svabs_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svabs_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svabs_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svabs_f16_m(svfloat16_t inactive, svbool_t pg,svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svabs_f32_m(svfloat32_t inactive, svbool_t pg,svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svabs_f64_m(svfloat64_t inactive, svbool_t pg,svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svabs_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svabs_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svabs_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svneg_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svneg_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svneg_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svneg_f16_m(svfloat16_t inactive, svbool_t pg,svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svneg_f32_m(svfloat32_t inactive, svbool_t pg,svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svneg_f64_m(svfloat64_t inactive, svbool_t pg,svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svneg_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svneg_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svneg_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = -(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsqrt_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsqrt_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsqrt_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svsqrt_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svsqrt_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svsqrt_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svsqrt_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svsqrt_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svsqrt_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = std::sqrt(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svexpa_f16(svuint16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_expa<uint16_t, float16_t>(op.vec[idx]);
    }
    return res;
}
inline svfloat32_t svexpa_f32(svuint32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_expa<uint32_t, float32_t>(op.vec[idx]);
    }
    return res;
}
inline svfloat64_t svexpa_f64(svuint64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_expa<uint64_t, float64_t>(op.vec[idx]);
    }
    return res;
}
inline svfloat16_t svrecpe_f16(svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_recpe(op.vec[idx]);
    }
    return res;
}
inline svfloat32_t svrecpe_f32(svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_recpe(op.vec[idx]);
    }
    return res;
}
inline svfloat64_t svrecpe_f64(svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_recpe(op.vec[idx]);
    }
    return res;
}
inline svfloat16_t svrecps_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_recps(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svfloat32_t svrecps_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_recps(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svfloat64_t svrecps_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_recps(op1.vec[idx], op2.vec[idx]);
    }
    return res;
}
inline svfloat16_t svrecpx_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svrecpx_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svrecpx_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svrecpx_f16_m(svfloat16_t        inactive, svbool_t pg,svfloat16_t        op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrecpx_f32_m(svfloat32_t        inactive, svbool_t pg,svfloat32_t        op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrecpx_f64_m(svfloat64_t        inactive, svbool_t pg,svfloat64_t        op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrecpx_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svrecpx_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat64_t svrecpx_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_recpx(op.vec[idx]);
        }
    }
    return res;
}
inline svfloat16_t svrsqrte_f16(svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_rsqrte(op.vec[idx]);
    }
    return res;
}
inline svfloat32_t svrsqrte_f32(svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_rsqrte(op.vec[idx]);
    }
    return res;
}
inline svfloat64_t svrsqrte_f64(svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = core_rsqrte(op.vec[idx]);
    }
    return res;
}
inline svfloat16_t svrsqrts_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_rsqrts(op1.vec[idx],op2.vec[idx]);
    }
    return res;
}
inline svfloat32_t svrsqrts_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_rsqrts(op1.vec[idx],op2.vec[idx]);
    }
    return res;
}
inline svfloat64_t svrsqrts_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = core_rsqrts(op1.vec[idx],op2.vec[idx]);
    }
    return res;
}
inline svfloat16_t svrinta_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat32_t svrinta_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat64_t svrinta_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat16_t svrinta_f16_m(svfloat16_t inactive, svbool_t pg,svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrinta_f32_m(svfloat32_t inactive, svbool_t pg,svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrinta_f64_m(svfloat64_t inactive, svbool_t pg,svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrinta_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat32_t svrinta_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat64_t svrinta_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_a);
        }
    }
    return res;
}
inline svfloat16_t svrinti_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat32_t svrinti_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat64_t svrinti_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat16_t svrinti_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrinti_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrinti_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrinti_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat32_t svrinti_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat64_t svrinti_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_i);
        }
    }
    return res;
}
inline svfloat16_t svrintm_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat32_t svrintm_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat64_t svrintm_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat16_t svrintm_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrintm_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrintm_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrintm_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat32_t svrintm_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat64_t svrintm_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_m);
        }
    }
    return res;
}
inline svfloat16_t svrintn_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat32_t svrintn_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat64_t svrintn_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat16_t svrintn_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrintn_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrintn_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrintn_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat32_t svrintn_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat64_t svrintn_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_n);
        }
    }
    return res;
}
inline svfloat16_t svrintp_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat32_t svrintp_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat64_t svrintp_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat16_t svrintp_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrintp_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrintp_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrintp_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat32_t svrintp_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat64_t svrintp_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_p);
        }
    }
    return res;
}
inline svfloat16_t svrintx_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat32_t svrintx_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat64_t svrintx_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat16_t svrintx_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrintx_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrintx_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrintx_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat32_t svrintx_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat64_t svrintx_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_x);
        }
    }
    return res;
}
inline svfloat16_t svrintz_f16_z(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline svfloat32_t svrintz_f32_z(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline svfloat64_t svrintz_f64_z(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline svfloat16_t svrintz_f16_m(svfloat16_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svrintz_f32_m(svfloat32_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svrintz_f64_m(svfloat64_t  inactive, svbool_t pg,svfloat64_t  op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
        else{
            res.vec[idx] = inactive.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svrintz_f16_x(svbool_t pg, svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline svfloat32_t svrintz_f32_x(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline svfloat64_t svrintz_f64_x(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_ceil(op.vec[idx], core_ceil_type_z);
        }
    }
    return res;
}
inline float16_t svadda_f16(svbool_t pg, float16_t initial, svfloat16_t op){
    float16_t res = initial;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float32_t svadda_f32(svbool_t pg, float32_t initial, svfloat32_t op){
    float32_t res = initial;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float64_t svadda_f64(svbool_t pg, float64_t initial, svfloat64_t op){
    float64_t res = initial;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float16_t svaddv_f16(svbool_t pg, svfloat16_t op){
    float16_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float32_t svaddv_f32(svbool_t pg, svfloat32_t op){
    float32_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float64_t svaddv_f64(svbool_t pg, svfloat64_t op){ // TODO is not tree based
    float64_t res = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res += op.vec[idx];
        }
    }
    return res;
}
inline float16_t svmaxv_f16(svbool_t pg, svfloat16_t op){
    float16_t res = std::numeric_limits<float16_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float16_t>::infinity();
    }
    if(nbActive == nbNan){
        return float16_t(std::nanf("1"));
    }
    return res;
}
inline float32_t svmaxv_f32(svbool_t pg, svfloat32_t op){
    float32_t res = std::numeric_limits<float32_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float32_t>::infinity();
    }
    if(nbActive == nbNan){
        return float32_t(std::nanf("1"));
    }
    return res;
}
inline float64_t svmaxv_f64(svbool_t pg, svfloat64_t op){
    float64_t res = std::numeric_limits<float64_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float64_t>::infinity();
    }
    if(nbActive == nbNan){
        return float64_t(std::nan("1"));
    }
    return res;
}
inline float16_t svmaxnmv_f16(svbool_t pg, svfloat16_t op){
    float16_t res = std::numeric_limits<float16_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float16_t(std::nanf("1"));
    }
    return res;
}
inline float32_t svmaxnmv_f32(svbool_t pg, svfloat32_t op){
    float32_t res = std::numeric_limits<float32_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float32_t(std::nanf("1"));
    }
    return res;
}
inline float64_t svmaxnmv_f64(svbool_t pg, svfloat64_t op){
    float64_t res = std::numeric_limits<float64_t>::min();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_max(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float64_t(std::nan("1"));
    }
    return res;
}
inline float16_t svminv_f16(svbool_t pg, svfloat16_t op){
    float16_t res = std::numeric_limits<float16_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float16_t>::infinity();
    }
    if(nbActive == nbNan){
        return float16_t(std::nanf("1"));
    }
    return res;
}
inline float32_t svminv_f32(svbool_t pg, svfloat32_t op){
    float32_t res = std::numeric_limits<float32_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float32_t>::infinity();
    }
    if(nbActive == nbNan){
        return float32_t(std::nanf("1"));
    }
    return res;
}
inline float64_t svminv_f64(svbool_t pg, svfloat64_t op){
    float64_t res = std::numeric_limits<float64_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == 0){
        return std::numeric_limits<float64_t>::infinity();
    }
    if(nbActive == nbNan){
        return float64_t(std::nan("1"));
    }
    return res;
}
inline float16_t svminnmv_f16(svbool_t pg, svfloat16_t op){
    float16_t res = std::numeric_limits<float16_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float16_t(std::nanf("1"));
    }
    return res;
}
inline float32_t svminnmv_f32(svbool_t pg, svfloat32_t op){
    float32_t res = std::numeric_limits<float32_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float32_t(std::nanf("1"));
    }
    return res;
}
inline float64_t svminnmv_f64(svbool_t pg, svfloat64_t op){
    float64_t res = std::numeric_limits<float64_t>::max();
    int nbActive = 0;
    int nbNan = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            nbActive += 1;
            if(core_isnan(op.vec[idx])){
                nbNan += 1;
            }
            else{
                res = core_min(res, op.vec[idx]);
            }
        }
    }

    if(nbActive == nbNan){
        return float64_t(std::nan("1"));
    }
    return res;
}
inline svbool_t svcmpeq_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpeq_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] == op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmpne_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] != op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmplt_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmplt_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmplt_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmplt_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] < op2);
        }
    }
    return res;
}
inline svbool_t svcmple_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmple_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmple_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svcmple_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmple_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] <= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpge_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] >= op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpgt_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] > op2);
        }
    }
    return res;
}
inline svbool_t svcmpuo_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2.vec[idx]));
        }
    }
    return res;
}
inline svbool_t svcmpuo_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2.vec[idx]));
        }
    }
    return res;
}
inline svbool_t svcmpuo_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2.vec[idx]));
        }
    }
    return res;
}
inline svbool_t svcmpuo_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2));
        }
    }
    return res;
}
inline svbool_t svcmpuo_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2));
        }
    }
    return res;
}
inline svbool_t svcmpuo_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (core_isnan(op1.vec[idx]) || core_isnan(op2));
        }
    }
    return res;
}
inline svbool_t svaclt_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svaclt_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svaclt_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svaclt_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svaclt_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svaclt_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) < core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacle_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacle_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacle_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacle_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacle_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacle_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) <= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacge_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacge_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacge_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacge_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacge_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacge_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) >= core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacgt_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacgt_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacgt_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svacgt_n_f16(svbool_t pg, svfloat16_t op1, float16_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacgt_n_f32(svbool_t pg, svfloat32_t op1, float32_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2);
        }
    }
    return res;
}
inline svbool_t svacgt_n_f64(svbool_t pg, svfloat64_t op1, float64_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = core_abs(op1.vec[idx]) > core_abs(op2);
        }
    }
    return res;
}
inline svint16_t svcvt_s16_f16_z(svbool_t pg, svfloat16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcvt_u16_f16_z(svbool_t pg, svfloat16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f16_z(svbool_t pg, svfloat16_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f32_z(svbool_t pg, svfloat32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f64_z(svbool_t pg, svfloat64_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f16_z(svbool_t pg, svfloat16_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f32_z(svbool_t pg, svfloat32_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f64_z(svbool_t pg, svfloat64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f16_z(svbool_t pg, svfloat16_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f32_z(svbool_t pg, svfloat32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f64_z(svbool_t pg, svfloat64_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f16_z(svbool_t pg, svfloat16_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f32_z(svbool_t pg, svfloat32_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f64_z(svbool_t pg, svfloat64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint16_t svcvt_s16_f16_m(svint16_t inactive, svbool_t pg,svfloat16_t op){
    svint16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcvt_u16_f16_m(svuint16_t inactive, svbool_t pg,svfloat16_t op){
    svuint16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f16_m(svint32_t inactive, svbool_t pg,svfloat16_t op){
    svint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f32_m(svint32_t inactive, svbool_t pg,svfloat32_t op){
    svint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f64_m(svint32_t inactive, svbool_t pg,svfloat64_t op){
    svint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f16_m(svint64_t inactive, svbool_t pg,svfloat16_t op){
    svint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f32_m(svint64_t inactive, svbool_t pg,svfloat32_t op){
    svint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f64_m(svint64_t inactive, svbool_t pg,svfloat64_t op){
    svint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f16_m(svuint32_t inactive, svbool_t pg,svfloat16_t op){
    svuint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f32_m(svuint32_t inactive, svbool_t pg,svfloat32_t op){
    svuint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f64_m(svuint32_t inactive, svbool_t pg,svfloat64_t op){
    svuint32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f16_m(svuint64_t inactive, svbool_t pg,svfloat16_t op){
    svuint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f32_m(svuint64_t inactive, svbool_t pg,svfloat32_t op){
    svuint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f64_m(svuint64_t inactive, svbool_t pg,svfloat64_t op){
    svuint64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint16_t svcvt_s16_f16_x(svbool_t pg, svfloat16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint16_t svcvt_u16_f16_x(svbool_t pg, svfloat16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f16_x(svbool_t pg, svfloat16_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f32_x(svbool_t pg, svfloat32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint32_t svcvt_s32_f64_x(svbool_t pg, svfloat64_t op){
    svint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f16_x(svbool_t pg, svfloat16_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f32_x(svbool_t pg, svfloat32_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svint64_t svcvt_s64_f64_x(svbool_t pg, svfloat64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f16_x(svbool_t pg, svfloat16_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f32_x(svbool_t pg, svfloat32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint32_t svcvt_u32_f64_x(svbool_t pg, svfloat64_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f16_x(svbool_t pg, svfloat16_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f32_x(svbool_t pg, svfloat32_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svuint64_t svcvt_u64_f64_x(svbool_t pg, svfloat64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s16_z(svbool_t           pg,   svint16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u16_z(svbool_t           pg,   svuint16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s32_z(svbool_t           pg,   svint32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s32_z(svbool_t           pg,   svint32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s32_z(svbool_t           pg,   svint32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s64_z(svbool_t           pg,   svint64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s64_z(svbool_t           pg,   svint64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s64_z(svbool_t       pg,   svint64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u32_z(svbool_t       pg,   svuint32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u32_z(svbool_t       pg,   svuint32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u32_z(svbool_t       pg,   svuint32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u64_z(svbool_t       pg,   svuint64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u64_z(svbool_t       pg,   svuint64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u64_z(svbool_t       pg,   svuint64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s16_m(svfloat16_t inactive,            svbool_t pg,svint16_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u16_m(svfloat16_t inactive,            svbool_t pg,svuint16_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s32_m(svfloat16_t inactive,            svbool_t pg,svint32_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s32_m(svfloat32_t inactive,            svbool_t pg,svint32_t op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s32_m(svfloat64_t inactive,            svbool_t pg,svint32_t op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s64_m(svfloat16_t inactive,            svbool_t pg,svint64_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s64_m(svfloat32_t inactive,            svbool_t pg,svint64_t op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s64_m(svfloat64_t inactive,            svbool_t pg,svint64_t op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u32_m(svfloat16_t inactive,            svbool_t pg,svuint32_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u32_m(svfloat32_t inactive,            svbool_t pg,svuint32_t op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u32_m(svfloat64_t inactive,            svbool_t pg,svuint32_t op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u64_m(svfloat16_t inactive,            svbool_t pg,svuint64_t op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u64_m(svfloat32_t inactive,            svbool_t pg,svuint64_t op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u64_m(svfloat64_t inactive,            svbool_t pg,svuint64_t op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s16_x(svbool_t       pg,   svint16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u16_x(svbool_t       pg,   svuint16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s32_x(svbool_t       pg,   svint32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s32_x(svbool_t       pg,   svint32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s32_x(svbool_t       pg,   svint32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_s64_x(svbool_t       pg,   svint64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_s64_x(svbool_t       pg,   svint64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_s64_x(svbool_t       pg,   svint64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u32_x(svbool_t       pg,   svuint32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u32_x(svbool_t       pg,   svuint32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u32_x(svbool_t       pg,   svuint32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_u64_x(svbool_t       pg,   svuint64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_u64_x(svbool_t       pg,   svuint64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_u64_x(svbool_t pg, svuint64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f16_z(svbool_t pg, svfloat16_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f16_z(svbool_t pg, svfloat16_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f32_z(svbool_t pg, svfloat32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f16_m(svfloat32_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f16_m(svfloat64_t  inactive, svbool_t pg,svfloat16_t  op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f32_m(svfloat64_t  inactive, svbool_t pg,svfloat32_t  op){
    svfloat64_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f16_x(svbool_t pg, svfloat16_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f16_x(svbool_t pg, svfloat16_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat64_t svcvt_f64_f32_x(svbool_t pg, svfloat32_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f32_z(svbool_t pg, svfloat32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f64_z(svbool_t pg, svfloat64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f64_z(svbool_t pg, svfloat64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f32_m(svfloat16_t inactive, svbool_t pg,svfloat32_t   op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f64_m(svfloat16_t   inactive, svbool_t pg,svfloat64_t   op){
    svfloat16_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f64_m(svfloat32_t   inactive, svbool_t pg,svfloat64_t   op){
    svfloat32_t res = inactive;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f32_x(svbool_t pg, svfloat32_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat16_t svcvt_f16_f64_x(svbool_t pg, svfloat64_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline svfloat32_t svcvt_f32_f64_x(svbool_t pg, svfloat64_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < core_min(res.Size, op.Size) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = op.vec[idx];
        }
    }
    return res;
}
inline int8_t svlasta_s8(svbool_t pg, svint8_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline int16_t svlasta_s16(svbool_t pg, svint16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline int32_t svlasta_s32(svbool_t pg, svint32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline int64_t svlasta_s64(svbool_t pg, svint64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline uint8_t svlasta_u8(svbool_t pg, svuint8_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline uint16_t svlasta_u16(svbool_t pg, svuint16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline uint32_t svlasta_u32(svbool_t pg, svuint32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline uint64_t svlasta_u64(svbool_t pg, svuint64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline float16_t svlasta_f16(svbool_t pg, svfloat16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline float32_t svlasta_f32(svbool_t pg, svfloat32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline float64_t svlasta_f64(svbool_t pg, svfloat64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[(idx+1)%op.Size];
        }
    }
    return op.vec[0];
}
inline int8_t svlastb_s8(svbool_t pg, svint8_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline int16_t svlastb_s16(svbool_t pg, svint16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline int32_t svlastb_s32(svbool_t pg, svint32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline int64_t svlastb_s64(svbool_t pg, svint64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline uint8_t svlastb_u8(svbool_t pg, svuint8_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline uint16_t svlastb_u16(svbool_t pg, svuint16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline uint32_t svlastb_u32(svbool_t pg, svuint32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline uint64_t svlastb_u64(svbool_t pg, svuint64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline float16_t svlastb_f16(svbool_t pg, svfloat16_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline float32_t svlastb_f32(svbool_t pg, svfloat32_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline float64_t svlastb_f64(svbool_t pg, svfloat64_t op){
    for( int idx = op.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return op.vec[op.Size-1];
}
inline svint8_t svclasta_s8(svbool_t pg, svint8_t fallback, svint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint8_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svint16_t svclasta_s16(svbool_t pg, svint16_t fallback, svint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint16_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svint32_t svclasta_s32(svbool_t pg, svint32_t fallback, svint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint32_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svint64_t svclasta_s64(svbool_t pg, svint64_t fallback, svint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint64_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svuint8_t svclasta_u8(svbool_t pg, svuint8_t fallback, svuint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint8_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svuint16_t svclasta_u16(svbool_t pg, svuint16_t fallback,svuint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint16_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svuint32_t svclasta_u32(svbool_t pg, svuint32_t fallback,svuint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint32_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svuint64_t svclasta_u64(svbool_t pg, svuint64_t fallback,svuint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint64_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svfloat16_t svclasta_f16(svbool_t pg, svfloat16_t fallback,svfloat16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat16_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svfloat32_t svclasta_f32(svbool_t pg, svfloat32_t fallback,svfloat32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat32_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline svfloat64_t svclasta_f64(svbool_t pg, svfloat64_t fallback,svfloat64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat64_t res;
            res.vec[(idx+1)%data.Size] = data.vec[(idx+1)%data.Size];
            return res;
        }
    }
    return fallback;
}
inline int8_t svclasta_n_s8(svbool_t pg, int8_t fallback, svint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline int16_t svclasta_n_s16(svbool_t pg, int16_t fallback, svint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline int32_t svclasta_n_s32(svbool_t pg, int32_t fallback, svint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline int64_t svclasta_n_s64(svbool_t pg, int64_t fallback, svint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline uint8_t svclasta_n_u8(svbool_t pg, uint8_t fallback, svuint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline uint16_t svclasta_n_u16(svbool_t pg, uint16_t fallback, svuint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline uint32_t svclasta_n_u32(svbool_t pg, uint32_t fallback, svuint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline uint64_t svclasta_n_u64(svbool_t pg, uint64_t fallback, svuint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline float16_t svclasta_n_f16(svbool_t pg, float16_t fallback,svfloat16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline float32_t svclasta_n_f32(svbool_t pg, float32_t fallback,svfloat32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline float64_t svclasta_n_f64(svbool_t pg, float64_t fallback,svfloat64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[(idx+1)%data.Size];;
        }
    }
    return fallback;
}
inline svint8_t svclastb_s8(svbool_t pg, svint8_t fallback, svint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint8_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svint16_t svclastb_s16(svbool_t pg, svint16_t fallback, svint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint16_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svint32_t svclastb_s32(svbool_t pg, svint32_t fallback, svint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint32_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svint64_t svclastb_s64(svbool_t pg, svint64_t fallback, svint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svint64_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svuint8_t svclastb_u8(svbool_t pg, svuint8_t fallback, svuint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint8_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svuint16_t svclastb_u16(svbool_t pg, svuint16_t fallback,svuint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint16_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svuint32_t svclastb_u32(svbool_t pg, svuint32_t fallback,svuint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint32_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svuint64_t svclastb_u64(svbool_t pg, svuint64_t fallback,svuint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svuint64_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svfloat16_t svclastb_f16(svbool_t pg, svfloat16_t fallback,svfloat16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat16_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svfloat32_t svclastb_f32(svbool_t pg, svfloat32_t fallback,svfloat32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat32_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline svfloat64_t svclastb_f64(svbool_t pg, svfloat64_t fallback,svfloat64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            svfloat64_t res;
            res.vec[idx] = data.vec[idx];
            return res;
        }
    }
    return fallback;
}
inline int8_t svclastb_n_s8(svbool_t pg, int8_t fallback, svint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline int16_t svclastb_n_s16(svbool_t pg, int16_t fallback, svint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline int32_t svclastb_n_s32(svbool_t pg, int32_t fallback, svint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline int64_t svclastb_n_s64(svbool_t pg, int64_t fallback, svint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline uint8_t svclastb_n_u8(svbool_t pg, uint8_t fallback, svuint8_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline uint16_t svclastb_n_u16(svbool_t pg, uint16_t fallback, svuint16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline uint32_t svclastb_n_u32(svbool_t pg, uint32_t fallback, svuint32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline uint64_t svclastb_n_u64(svbool_t pg, uint64_t fallback, svuint64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline float16_t svclastb_n_f16(svbool_t pg, float16_t fallback,svfloat16_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline float32_t svclastb_n_f32(svbool_t pg, float32_t fallback,svfloat32_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}
inline float64_t svclastb_n_f64(svbool_t pg, float64_t fallback,svfloat64_t data){
    for( int idx = data.Size-1 ; idx >= 0 ; --idx){
        if(pg.vec[idx]){
            return data.vec[idx];;
        }
    }
    return fallback;
}

inline svint32_t svcompact_s32(svbool_t pg, svint32_t op){
    svint32_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}

inline svint64_t svcompact_s64(svbool_t pg, svint64_t op){
    svint64_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}
inline svuint32_t svcompact_u32(svbool_t pg, svuint32_t op){
    svuint32_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}
inline svuint64_t svcompact_u64(svbool_t pg, svuint64_t op){
    svuint64_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}
inline svfloat32_t svcompact_f32(svbool_t pg, svfloat32_t op){
    svfloat32_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}

inline svfloat64_t svcompact_f64(svbool_t pg, svfloat64_t op){
    svfloat64_t res;
    int insertIdx = 0;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        if(pg.vec[idx]){
            res.vec[insertIdx++] = (op.vec[idx]);
        }
    }
    return res;
}

inline svint8_t svsplice_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint16_t svsplice_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint32_t svsplice_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint64_t svsplice_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint8_t svsplice_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint16_t svsplice_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint32_t svsplice_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint64_t svsplice_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat16_t svsplice_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat32_t svsplice_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat64_t svsplice_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    int idx = 0;
    int idxOp1 = 0;
    while(idxOp1 < op1.Size){
        if(pg.vec[idxOp1]){
            res.vec[idx] = op1.vec[idxOp1];
            idx += 1;
        }
        idxOp1 += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint8_t svext_s8(svint8_t op1, svint8_t op2, uint64_t imm3){
    svint8_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint16_t svext_s16(svint16_t op1, svint16_t op2, uint64_t imm3){
    svint16_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint32_t svext_s32(svint32_t op1, svint32_t op2, uint64_t imm3){
    svint32_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint64_t svext_s64(svint64_t op1, svint64_t op2, uint64_t imm3){
    svint64_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint8_t svext_u8(svuint8_t op1, svuint8_t op2, uint64_t imm3){
    svuint8_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint16_t svext_u16(svuint16_t op1, svuint16_t op2, uint64_t imm3){
    svuint16_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint32_t svext_u32(svuint32_t op1, svuint32_t op2, uint64_t imm3){
    svuint32_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svuint64_t svext_u64(svuint64_t op1, svuint64_t op2, uint64_t imm3){
    svuint64_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat16_t svext_f16(svfloat16_t op1, svfloat16_t op2, uint64_t imm3){
    svfloat16_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat32_t svext_f32(svfloat32_t op1, svfloat32_t op2, uint64_t imm3){
    svfloat32_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svfloat64_t svext_f64(svfloat64_t op1, svfloat64_t op2, uint64_t imm3){
    svfloat64_t res;
    if(op1.Size <= imm3){
        return op1;
    }
    int idx = 0;
    while(idx+imm3 < op1.Size){
        res.vec[idx] = op1.vec[idx+imm3];
        idx += 1;
    }
    while(idx < res.Size){
        res.vec[idx] = op2.vec[idx];
        idx += 1;
    }
    return res;
}
inline svint8_t svsel_s8(svbool_t pg, svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svint16_t svsel_s16(svbool_t pg, svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}

inline svint32_t svsel_s32(svbool_t pg, svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svint64_t svsel_s64(svbool_t pg, svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}

inline svuint8_t svsel_u8(svbool_t pg, svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svuint16_t svsel_u16(svbool_t pg, svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svuint32_t svsel_u32(svbool_t pg, svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svuint64_t svsel_u64(svbool_t pg, svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svfloat16_t svsel_f16(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svfloat32_t svsel_f32(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}

inline svfloat64_t svsel_f64(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}

inline svbool_t svsel_b(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = ((pg.vec[idx])? op1.vec[idx] : op2.vec[idx]);
    }
    return res;
}
inline svint8_t svdup_lane_s8(svint8_t data, uint8_t index){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svint16_t svdup_lane_s16(svint16_t data, uint16_t index){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svint32_t svdup_lane_s32(svint32_t data, uint32_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svint64_t svdup_lane_s64(svint64_t data, uint64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svuint8_t svdup_lane_u8(svuint8_t data, uint8_t index){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svuint16_t svdup_lane_u16(svuint16_t data, uint16_t index){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svuint32_t svdup_lane_u32(svuint32_t data, uint32_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svuint64_t svdup_lane_u64(svuint64_t data, uint64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svfloat16_t svdup_lane_f16(svfloat16_t data, uint16_t index){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svfloat32_t svdup_lane_f32(svfloat32_t data, uint32_t index){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svfloat64_t svdup_lane_f64(svfloat64_t data, uint64_t index){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index];
    }
    return res;
}
inline svint8_t svdupq_lane_s8(svint8_t data, uint64_t index){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*16 + idx%16];
    }
    return res;
}
inline svint16_t svdupq_lane_s16(svint16_t data, uint64_t index){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*8 + idx%8];
    }
    return res;
}
inline svint32_t svdupq_lane_s32(svint32_t data, uint64_t index){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*4 + idx%4];
    }
    return res;
}
inline svint64_t svdupq_lane_s64(svint64_t data, uint64_t index){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*2 + idx%2];
    }
    return res;
}
inline svuint8_t svdupq_lane_u8(svuint8_t data, uint64_t index){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*16 + idx%16];
    }
    return res;
}
inline svuint16_t svdupq_lane_u16(svuint16_t data, uint64_t index){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*8 + idx%8];
    }
    return res;
}
inline svuint32_t svdupq_lane_u32(svuint32_t data, uint64_t index){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*4 + idx%4];
    }
    return res;
}
inline svuint64_t svdupq_lane_u64(svuint64_t data, uint64_t index){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*2 + idx%2];
    }
    return res;
}
inline svfloat16_t svdupq_lane_f16(svfloat16_t data, uint64_t index){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*8 + idx%8];
    }
    return res;
}
inline svfloat32_t svdupq_lane_f32(svfloat32_t data, uint64_t index){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*4 + idx%4];
    }
    return res;
}
inline svfloat64_t svdupq_lane_f64(svfloat64_t data, uint64_t index){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[index*2 + idx%2];
    }
    return res;
}
inline svint8_t svtbl_s8(svint8_t data, svuint8_t indices){
    svint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svint16_t svtbl_s16(svint16_t data, svuint16_t indices){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}

inline svint32_t svtbl_s32(svint32_t data, svuint32_t indices){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}

inline svint64_t svtbl_s64(svint64_t data, svuint64_t indices){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svuint8_t svtbl_u8(svuint8_t data, svuint8_t indices){
    svuint8_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svuint16_t svtbl_u16(svuint16_t data, svuint16_t indices){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svuint32_t svtbl_u32(svuint32_t data, svuint32_t indices){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svuint64_t svtbl_u64(svuint64_t data, svuint64_t indices){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svfloat16_t svtbl_f16(svfloat16_t data, svuint16_t indices){
    svfloat16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}
inline svfloat32_t svtbl_f32(svfloat32_t data, svuint32_t indices){
    svfloat32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}

inline svfloat64_t svtbl_f64(svfloat64_t data, svuint64_t indices){
    svfloat64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = data.vec[indices.vec[idx]];
    }
    return res;
}

inline svint8_t svrev_s8(svint8_t op){
    svint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svint16_t svrev_s16(svint16_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}

inline svint32_t svrev_s32(svint32_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}

inline svint64_t svrev_s64(svint64_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svuint8_t svrev_u8(svuint8_t op){
    svuint8_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svuint16_t svrev_u16(svuint16_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svuint32_t svrev_u32(svuint32_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svuint64_t svrev_u64(svuint64_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svfloat16_t svrev_f16(svfloat16_t op){
    svfloat16_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}
inline svfloat32_t svrev_f32(svfloat32_t op){
    svfloat32_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}

inline svfloat64_t svrev_f64(svfloat64_t op){
    svfloat64_t res;
    for(int idx = 0 ; idx < op.Size ; ++idx){
        res.vec[idx] = op.vec[op.Size-idx-1];
    }
    return res;
}

inline svbool_t svrev_b8(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = op.vec[FARM_NB_BITS_IN_VEC/8-idx-1];
    }
    return res;
}
inline svbool_t svrev_b16(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = op.vec[FARM_NB_BITS_IN_VEC/16-idx-1];
    }
    return res;
}
inline svbool_t svrev_b32(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = op.vec[FARM_NB_BITS_IN_VEC/32-idx-1];
    }
    return res;
}
inline svbool_t svrev_b64(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = op.vec[FARM_NB_BITS_IN_VEC/64-idx-1];
    }
    return res;
}
inline svint8_t svtrn1_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svint16_t svtrn1_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svint32_t svtrn1_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svint64_t svtrn1_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svuint8_t svtrn1_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svuint16_t svtrn1_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svuint32_t svtrn1_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svuint64_t svtrn1_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svfloat16_t svtrn1_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svfloat32_t svtrn1_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svfloat64_t svtrn1_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svbool_t    svtrn1_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svbool_t    svtrn1_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}

inline svbool_t    svtrn1_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}
inline svbool_t    svtrn1_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; idx+=2){
        res.vec[idx] = op1.vec[idx];
        res.vec[idx+1] = op2.vec[idx];
    }
    return res;
}

inline svint8_t svtrn2_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svint16_t svtrn2_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svint32_t svtrn2_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svint64_t svtrn2_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svuint8_t svtrn2_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svuint16_t svtrn2_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svuint32_t svtrn2_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svuint64_t svtrn2_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat16_t svtrn2_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat32_t svtrn2_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat64_t svtrn2_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t    svtrn2_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t    svtrn2_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16/2 ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}

inline svbool_t    svtrn2_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32/2 ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t    svtrn2_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64/2 ; idx+=2){
        res.vec[idx] = op1.vec[idx+1];
        res.vec[idx+1] = op2.vec[idx+1];
    }
    return res;
}

inline svint16_t svunpkhi_s16(svint8_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svint32_t svunpkhi_s32(svint16_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svint64_t svunpkhi_s64(svint32_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint16_t svunpkhi_u16(svuint8_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint32_t svunpkhi_u32(svuint16_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint64_t svunpkhi_u64(svuint32_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svbool_t svunpkhi_b(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; ++idx){
        res.vec[idx] = op.vec[idx+FARM_NB_BITS_IN_VEC/8/2];
    }
    return res;
}
inline svint16_t svunpklo_s16(svint8_t op){
    svint16_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svint32_t svunpklo_s32(svint16_t op){
    svint32_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svint64_t svunpklo_s64(svint32_t op){
    svint64_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint16_t svunpklo_u16(svuint8_t op){
    svuint16_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint32_t svunpklo_u32(svuint16_t op){
    svuint32_t res;
    for(int idx = 0 ; idx < op.Size/2 ; ++idx){
        res.vec[idx] = op.vec[idx+op.Size/2];
    }
    return res;
}
inline svuint64_t svunpklo_u64(svuint32_t op){
    svuint64_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; ++idx){
        res.vec[idx] = op.vec[idx];
    }
    return res;
}
inline svbool_t svunpklo_b(svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; ++idx){
        res.vec[idx] = op.vec[idx];
    }
    return res;
}
inline svint8_t svuzp1_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svint16_t svuzp1_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svint32_t svuzp1_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svint64_t svuzp1_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svuint8_t svuzp1_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svuint16_t svuzp1_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svuint32_t svuzp1_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svuint64_t svuzp1_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svfloat16_t svuzp1_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svfloat32_t svuzp1_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svfloat64_t svuzp1_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx];
    }
    return res;
}
inline svbool_t svuzp1_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/8/2] = op2.vec[idx];
    }
    return res;
}
inline svbool_t svuzp1_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/16/2] = op2.vec[idx];
    }
    return res;
}
inline svbool_t svuzp1_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/32/2] = op2.vec[idx];
    }
    return res;
}
inline svbool_t svuzp1_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/64/2] = op2.vec[idx];
    }
    return res;
}
inline svint8_t svuzp2_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svint16_t svuzp2_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svint32_t svuzp2_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svint64_t svuzp2_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svuint8_t svuzp2_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svuint16_t svuzp2_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svuint32_t svuzp2_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svuint64_t svuzp2_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat16_t svuzp2_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat32_t svuzp2_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svfloat64_t svuzp2_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+op1.Size/2] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t svuzp2_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/8/2] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t svuzp2_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/16/2] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t svuzp2_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/32/2] = op2.vec[idx+1];
    }
    return res;
}
inline svbool_t svuzp2_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; idx+=2){
        res.vec[idx/2] = op1.vec[idx+1];
        res.vec[idx/2+FARM_NB_BITS_IN_VEC/64/2] = op2.vec[idx+1];
    }
    return res;
}
inline svint8_t svzip1_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svint16_t svzip1_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svint32_t svzip1_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svint64_t svzip1_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svuint8_t svzip1_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svuint16_t svzip1_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svuint32_t svzip1_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svuint64_t svzip1_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svfloat16_t svzip1_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svfloat32_t svzip1_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}

inline svfloat64_t svzip1_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}

inline svbool_t    svzip1_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svbool_t    svzip1_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}

inline svbool_t    svzip1_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}
inline svbool_t    svzip1_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx];
        res.vec[idx*2+1] = op2.vec[idx];
    }
    return res;
}

inline svint8_t svzip2_s8(svint8_t op1, svint8_t op2){
    svint8_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svint16_t svzip2_s16(svint16_t op1, svint16_t op2){
    svint16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svint32_t svzip2_s32(svint32_t op1, svint32_t op2){
    svint32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svint64_t svzip2_s64(svint64_t op1, svint64_t op2){
    svint64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svuint8_t svzip2_u8(svuint8_t op1, svuint8_t op2){
    svuint8_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svuint16_t svzip2_u16(svuint16_t op1, svuint16_t op2){
    svuint16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svuint32_t svzip2_u32(svuint32_t op1, svuint32_t op2){
    svuint32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svuint64_t svzip2_u64(svuint64_t op1, svuint64_t op2){
    svuint64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svfloat16_t svzip2_f16(svfloat16_t op1, svfloat16_t op2){
    svfloat16_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svfloat32_t svzip2_f32(svfloat32_t op1, svfloat32_t op2){
    svfloat32_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svfloat64_t svzip2_f64(svfloat64_t op1, svfloat64_t op2){
    svfloat64_t res;
    for(int idx = 0 ; idx < op1.Size/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+op1.Size/2];
        res.vec[idx*2+1] = op2.vec[idx+op1.Size/2];
    }
    return res;
}
inline svbool_t svzip2_b8(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+FARM_NB_BITS_IN_VEC/8/2];
        res.vec[idx*2+1] = op2.vec[idx+FARM_NB_BITS_IN_VEC/8/2];
    }
    return res;
}
inline svbool_t svzip2_b16(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+FARM_NB_BITS_IN_VEC/16/2];
        res.vec[idx*2+1] = op2.vec[idx+FARM_NB_BITS_IN_VEC/16/2];
    }
    return res;
}
inline svbool_t svzip2_b32(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+FARM_NB_BITS_IN_VEC/32/2];
        res.vec[idx*2+1] = op2.vec[idx+FARM_NB_BITS_IN_VEC/32/2];
    }
    return res;
}
inline svbool_t svzip2_b64(svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64/2 ; ++idx){
        res.vec[idx*2] = op1.vec[idx+FARM_NB_BITS_IN_VEC/64/2];
        res.vec[idx*2+1] = op2.vec[idx+FARM_NB_BITS_IN_VEC/64/2];
    }
    return res;
}
inline svbool_t      svptrue_b8(){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t      svptrue_b16(){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = true;
    }
    return res;
}

inline svbool_t      svptrue_b32(){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t      svptrue_b64(){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = true;
    }
    return res;
}

inline svbool_t      svptrue_pat_b8(svpattern pattern){
    svbool_t res;
    const int Size = FARM_NB_BITS_IN_VEC/8;
    const int Pow2lSize = core_fls(Size);
    for(int idx = 0 ; idx < Size ; ++idx){
        switch(pattern){
            case SV_POW2 :
            res.vec[idx] = (idx < Pow2lSize ? true : false);
            break;
            case SV_VL1 :
            res.vec[idx] = (idx < 1 ? true : false);
            break;
            case SV_VL2 :
            res.vec[idx] = (idx < 2 ? true : false);
            break;
            case SV_VL3 :
            res.vec[idx] = (idx < 3 ? true : false);
            break;
            case SV_VL4 :
            res.vec[idx] = (idx < 4 ? true : false);
            break;
            case SV_VL5 :
            res.vec[idx] = (idx < 5 ? true : false);
            break;
            case SV_VL6 :
            res.vec[idx] = (idx < 6 ? true : false);
            break;
            case SV_VL7 :
            res.vec[idx] = (idx < 7 ? true : false);
            break;
            case SV_VL8 :
            res.vec[idx] = (idx < 8 ? true : false);
            break;
            case SV_VL16 :
            res.vec[idx] = (idx < 16 ? true : false);
            break;
            case SV_VL32 :
            res.vec[idx] = (idx < 32 ? true : false);
            break;
            case SV_VL64 :
            res.vec[idx] = (idx < 64 ? true : false);
            break;
            case SV_VL128 :
            res.vec[idx] = (idx < 128 ? true : false);
            break;
            case SV_VL256 :
            res.vec[idx] = (idx < 256 ? true : false);
            break;
            case SV_MUL4 :
            res.vec[idx] = (idx < (Size/4)*4 ? true : false);
            break;
            case SV_MUL3 :
            res.vec[idx] = (idx < (Size/3)*3 ? true : false);
            break;
            case SV_ALL :
            res.vec[idx] = true;
            break;
        }
    }
    return res;
}
inline svbool_t      svptrue_pat_b16(svpattern pattern){
    svbool_t res;
    const int Size = FARM_NB_BITS_IN_VEC/16;
    const int Pow2lSize = core_fls(Size);
    for(int idx = 0 ; idx < Size ; ++idx){
        switch(pattern){
            case SV_POW2 :
            res.vec[idx] = (idx < Pow2lSize ? true : false);
            break;
            case SV_VL1 :
            res.vec[idx] = (idx < 1 ? true : false);
            break;
            case SV_VL2 :
            res.vec[idx] = (idx < 2 ? true : false);
            break;
            case SV_VL3 :
            res.vec[idx] = (idx < 3 ? true : false);
            break;
            case SV_VL4 :
            res.vec[idx] = (idx < 4 ? true : false);
            break;
            case SV_VL5 :
            res.vec[idx] = (idx < 5 ? true : false);
            break;
            case SV_VL6 :
            res.vec[idx] = (idx < 6 ? true : false);
            break;
            case SV_VL7 :
            res.vec[idx] = (idx < 7 ? true : false);
            break;
            case SV_VL8 :
            res.vec[idx] = (idx < 8 ? true : false);
            break;
            case SV_VL16 :
            res.vec[idx] = (idx < 16 ? true : false);
            break;
            case SV_VL32 :
            res.vec[idx] = (idx < 32 ? true : false);
            break;
            case SV_VL64 :
            res.vec[idx] = (idx < 64 ? true : false);
            break;
            case SV_VL128 :
            res.vec[idx] = (idx < 128 ? true : false);
            break;
            case SV_VL256 :
            res.vec[idx] = (idx < 256 ? true : false);
            break;
            case SV_MUL4 :
            res.vec[idx] = (idx < (Size/4)*4 ? true : false);
            break;
            case SV_MUL3 :
            res.vec[idx] = (idx < (Size/3)*3 ? true : false);
            break;
            case SV_ALL :
            res.vec[idx] = true;
            break;
        }
    }
    return res;
}
inline svbool_t      svptrue_pat_b32(svpattern pattern){
    svbool_t res;
    const int Size = FARM_NB_BITS_IN_VEC/32;
    const int Pow2lSize = core_fls(Size);
    for(int idx = 0 ; idx < Size ; ++idx){
        switch(pattern){
            case SV_POW2 :
            res.vec[idx] = (idx < Pow2lSize ? true : false);
            break;
            case SV_VL1 :
            res.vec[idx] = (idx < 1 ? true : false);
            break;
            case SV_VL2 :
            res.vec[idx] = (idx < 2 ? true : false);
            break;
            case SV_VL3 :
            res.vec[idx] = (idx < 3 ? true : false);
            break;
            case SV_VL4 :
            res.vec[idx] = (idx < 4 ? true : false);
            break;
            case SV_VL5 :
            res.vec[idx] = (idx < 5 ? true : false);
            break;
            case SV_VL6 :
            res.vec[idx] = (idx < 6 ? true : false);
            break;
            case SV_VL7 :
            res.vec[idx] = (idx < 7 ? true : false);
            break;
            case SV_VL8 :
            res.vec[idx] = (idx < 8 ? true : false);
            break;
            case SV_VL16 :
            res.vec[idx] = (idx < 16 ? true : false);
            break;
            case SV_VL32 :
            res.vec[idx] = (idx < 32 ? true : false);
            break;
            case SV_VL64 :
            res.vec[idx] = (idx < 64 ? true : false);
            break;
            case SV_VL128 :
            res.vec[idx] = (idx < 128 ? true : false);
            break;
            case SV_VL256 :
            res.vec[idx] = (idx < 256 ? true : false);
            break;
            case SV_MUL4 :
            res.vec[idx] = (idx < (Size/4)*4 ? true : false);
            break;
            case SV_MUL3 :
            res.vec[idx] = (idx < (Size/3)*3 ? true : false);
            break;
            case SV_ALL :
            res.vec[idx] = true;
            break;
        }
    }
    return res;
}
inline svbool_t      svptrue_pat_b64(svpattern pattern){
    svbool_t res;
    const int Size = FARM_NB_BITS_IN_VEC/64;
    const int Pow2lSize = core_fls(Size);
    for(int idx = 0 ; idx < Size ; ++idx){
        switch(pattern){
            case SV_POW2 :
            res.vec[idx] = (idx < Pow2lSize ? true : false);
            break;
            case SV_VL1 :
            res.vec[idx] = (idx < 1 ? true : false);
            break;
            case SV_VL2 :
            res.vec[idx] = (idx < 2 ? true : false);
            break;
            case SV_VL3 :
            res.vec[idx] = (idx < 3 ? true : false);
            break;
            case SV_VL4 :
            res.vec[idx] = (idx < 4 ? true : false);
            break;
            case SV_VL5 :
            res.vec[idx] = (idx < 5 ? true : false);
            break;
            case SV_VL6 :
            res.vec[idx] = (idx < 6 ? true : false);
            break;
            case SV_VL7 :
            res.vec[idx] = (idx < 7 ? true : false);
            break;
            case SV_VL8 :
            res.vec[idx] = (idx < 8 ? true : false);
            break;
            case SV_VL16 :
            res.vec[idx] = (idx < 16 ? true : false);
            break;
            case SV_VL32 :
            res.vec[idx] = (idx < 32 ? true : false);
            break;
            case SV_VL64 :
            res.vec[idx] = (idx < 64 ? true : false);
            break;
            case SV_VL128 :
            res.vec[idx] = (idx < 128 ? true : false);
            break;
            case SV_VL256 :
            res.vec[idx] = (idx < 256 ? true : false);
            break;
            case SV_MUL4 :
            res.vec[idx] = (idx < (Size/4)*4 ? true : false);
            break;
            case SV_MUL3 :
            res.vec[idx] = (idx < (Size/3)*3 ? true : false);
            break;
            case SV_ALL :
            res.vec[idx] = true;
            break;
        }
    }
    return res;
}
inline svbool_t svpfalse_b(){
    return svbool_t();
}

inline svbool_t      svdup_n_b8(bool op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        res.vec[idx] = op;
    }
    return res;
}
inline svbool_t      svdup_n_b16(bool op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/16 ; ++idx){
        res.vec[idx] = op;
    }
    return res;
}
inline svbool_t      svdup_n_b32(bool op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/32 ; ++idx){
        res.vec[idx] = op;
    }
    return res;
}
inline svbool_t      svdup_n_b64(bool op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/64 ; ++idx){
        res.vec[idx] = op;
    }
    return res;
}
template <class Type>
inline void core_svdupq_n(bool* vec, const Type& val){
    for(int idx = 0 ; idx < int(sizeof(Type)*8) ; ++idx){
        vec[idx] = (1 & (val>>idx));
    }
}
inline svbool_t svdupq_n_b8(unsigned char x0, unsigned char x1, unsigned char x2, unsigned char x3, unsigned char x4, unsigned char x5,unsigned char x6, unsigned char x7, unsigned char x8, unsigned char x9, unsigned char x10,unsigned char x11, unsigned char x12, unsigned char x13, unsigned char x14, unsigned char x15){
    svbool_t res;
    core_svdupq_n(&res.vec[0*8], x0);
    core_svdupq_n(&res.vec[1*8], x1);
    core_svdupq_n(&res.vec[2*8], x2);
    core_svdupq_n(&res.vec[3*8], x3);
    core_svdupq_n(&res.vec[4*8], x4);
    core_svdupq_n(&res.vec[5*8], x5);
    core_svdupq_n(&res.vec[6*8], x6);
    core_svdupq_n(&res.vec[7*8], x7);
    core_svdupq_n(&res.vec[8*8], x8);
    core_svdupq_n(&res.vec[9*8], x9);
    core_svdupq_n(&res.vec[10*8], x10);
    core_svdupq_n(&res.vec[11*8], x11);
    core_svdupq_n(&res.vec[12*8], x12);
    core_svdupq_n(&res.vec[13*8], x13);
    core_svdupq_n(&res.vec[14*8], x14);
    core_svdupq_n(&res.vec[15*8], x15);
    return res;
}
inline svbool_t svdupq_n_b16(unsigned short x0, unsigned short x1, unsigned short x2, unsigned short x3, unsigned short x4,unsigned short x5, unsigned short x6, unsigned short x7){
    svbool_t res;
    core_svdupq_n(&res.vec[0*16], x0);
    core_svdupq_n(&res.vec[1*16], x1);
    core_svdupq_n(&res.vec[2*16], x2);
    core_svdupq_n(&res.vec[3*16], x3);
    core_svdupq_n(&res.vec[4*16], x4);
    core_svdupq_n(&res.vec[5*16], x5);
    core_svdupq_n(&res.vec[6*16], x6);
    core_svdupq_n(&res.vec[7*16], x7);
    return res;
}
inline svbool_t svdupq_n_b32(unsigned int x0, unsigned int x1, unsigned int x2, unsigned int x3){
    svbool_t res;
    core_svdupq_n(&res.vec[0*32], x0);
    core_svdupq_n(&res.vec[1*32], x1);
    core_svdupq_n(&res.vec[2*32], x2);
    core_svdupq_n(&res.vec[3*32], x3);
    return res;
}
inline svbool_t svdupq_n_b64(unsigned long int x0, unsigned long int x1){
    svbool_t res;
    core_svdupq_n(&res.vec[0*64], x0);
    core_svdupq_n(&res.vec[1*64], x1);
    return res;
}
inline svbool_t svmov_b_z(svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svand_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] && op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svbic_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] && !op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svnand_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = !(op1.vec[idx] && op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svorr_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] || op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svorn_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] || !op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t svnor_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = !(op1.vec[idx] || op2.vec[idx]);
        }
    }
    return res;
}
inline svbool_t sveor_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = (op1.vec[idx] ^ op2.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svnot_b_z(svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < FARM_NB_BITS_IN_VEC/8 ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = !(op.vec[idx]);
        }
    }
    return res;
}

inline svbool_t svbrka_b_z(svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = true;
            if(op.vec[idx]){
                break;
            }
        }
    }
    return res;
}
inline svbool_t svbrka_b_m(svbool_t inactive, svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(inactive.vec[idx] && pg.vec[idx]){
            res.vec[idx] = true;
            if(op.vec[idx]){
                break;
            }
        }
    }
    return res;
}
inline svbool_t svbrkb_b_z(svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx]){
            if(op.vec[idx] == false){
                res.vec[idx] = true;
            }
            else{
                break;
            }
        }
    }
    return res;
}
inline svbool_t svbrkb_b_m(svbool_t inactive, svbool_t pg, svbool_t op){
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(inactive.vec[idx] && pg.vec[idx]){
            if(op.vec[idx] == false){
                res.vec[idx] = true;
            }
            else{
                break;
            }
        }
    }
    return res;
}

inline svbool_t svbrkn_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    for(int idx = (FARM_NB_BITS_IN_VEC/8)-1 ; idx >= 0  ; --idx){
        if(pg.vec[idx]){
            if(op1.vec[idx] == false){
                return svbool_t();
            }
            break;
        }
    }
    return op2;
}
inline svbool_t svbrkpa_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    for(int idx = (FARM_NB_BITS_IN_VEC/8)-1 ; idx >= 0  ; --idx){
        if(pg.vec[idx]){
            if(op1.vec[idx] == false){
                return svbool_t();
            }
            break;
        }
    }
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx]){
            res.vec[idx] = true;
            if(op2.vec[idx]){
                break;
            }
        }
    }
    return res;
}
inline svbool_t svbrkpb_b_z(svbool_t pg, svbool_t op1, svbool_t op2){
    for(int idx = (FARM_NB_BITS_IN_VEC/8)-1 ; idx >= 0  ; --idx){
        if(pg.vec[idx]){
            if(op1.vec[idx] == false){
                return svbool_t();
            }
            break;
        }
    }
    svbool_t res;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx]){
            if(!op2.vec[idx]){
                res.vec[idx] = true;
            }
            else{
                break;
            }
        }
    }
    return res;
}

inline svbool_t svpfirst_b(svbool_t pg, svbool_t op){
    int idx = 0;
    while(idx < (FARM_NB_BITS_IN_VEC/8) && !pg.vec[idx]){
        ++idx;
    }
    svbool_t res = op;
    if(idx < (FARM_NB_BITS_IN_VEC/8)){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t svpnext_b8(svbool_t pg, svbool_t op){
    int idx = 0;
    while(idx < (FARM_NB_BITS_IN_VEC/8) && !op.vec[idx]){
        ++idx;
    }
    svbool_t res;
    if(idx < (FARM_NB_BITS_IN_VEC/8) && pg.vec[idx]){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t svpnext_b16(svbool_t pg, svbool_t op){
    int idx = 0;
    while(idx < (FARM_NB_BITS_IN_VEC/16) && !op.vec[idx]){
        ++idx;
    }
    svbool_t res;
    if(idx < (FARM_NB_BITS_IN_VEC/16) && pg.vec[idx]){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t svpnext_b32(svbool_t pg, svbool_t op){
    int idx = 0;
    while(idx < (FARM_NB_BITS_IN_VEC/32) && !op.vec[idx]){
        ++idx;
    }
    svbool_t res;
    if(idx < (FARM_NB_BITS_IN_VEC/32) && pg.vec[idx]){
        res.vec[idx] = true;
    }
    return res;
}
inline svbool_t svpnext_b64(svbool_t pg, svbool_t op){
    int idx = 0;
    while(idx < (FARM_NB_BITS_IN_VEC/64) && !op.vec[idx]){
        ++idx;
    }
    svbool_t res;
    if(idx < (FARM_NB_BITS_IN_VEC/64) && pg.vec[idx]){
        res.vec[idx] = true;
    }
    return res;
}
inline bool svptest_any(svbool_t pg, svbool_t op){
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx] && op.vec[idx]){
            return true;
        }
    }
    return false;
}
inline bool svptest_first(svbool_t pg, svbool_t op){
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return false;
}
inline bool svptest_last(svbool_t pg, svbool_t op){
    for(int idx = (FARM_NB_BITS_IN_VEC/8)-1 ; idx >= 0  ; --idx){
        if(pg.vec[idx]){
            return op.vec[idx];
        }
    }
    return false;
}
inline svbool_t svrdffr(){// Not supported
    return svbool_t();
}
inline void svsetffr(){// Not supported
}
inline void svwrffr(svbool_t /*op*/){// Not supported
}
inline uint64_t     svcntp_b8(svbool_t pg, svbool_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/8) ; ++idx){
        if(pg.vec[idx] && op.vec[idx]){
            res += 1;
        }
    }
    return res;
}
inline uint64_t     svcntp_b16(svbool_t pg, svbool_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/16) ; ++idx){
        if(pg.vec[idx] && op.vec[idx]){
            res += 1;
        }
    }
    return res;
}

inline uint64_t     svcntp_b32(svbool_t pg, svbool_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/32) ; ++idx){
        if(pg.vec[idx] && op.vec[idx]){
            res += 1;
        }
    }
    return res;
}
inline uint64_t     svcntp_b64(svbool_t pg, svbool_t op){
    uint64_t res = 0;
    for(int idx = 0 ; idx < (FARM_NB_BITS_IN_VEC/64) ; ++idx){
        if(pg.vec[idx] && op.vec[idx]){
            res += 1;
        }
    }
    return res;
}
inline uint64_t svcntb(){
    return FARM_NB_BITS_IN_VEC/8;
}
inline uint64_t svcntb_pat(svpattern pattern){
    return svcntp_b8(svptrue_b8(), svptrue_pat_b8(pattern));
}
inline uint64_t svcnth(){
    return FARM_NB_BITS_IN_VEC/16;
}
inline uint64_t svcnth_pat(svpattern pattern){
    return svcntp_b16(svptrue_b16(), svptrue_pat_b16(pattern));
}
inline uint64_t svcntw(){
    return FARM_NB_BITS_IN_VEC/32;
}
inline uint64_t svcntw_pat(svpattern pattern){
    return svcntp_b32(svptrue_b32(), svptrue_pat_b32(pattern));
}
inline uint64_t svcntd(){
    return FARM_NB_BITS_IN_VEC/64;
}
inline uint64_t svcntd_pat(svpattern pattern){
    return svcntp_b64(svptrue_b64(), svptrue_pat_b64(pattern));
}
inline uint64_t svlen_s8(svint8_t op){
    return op.Size;
}
inline uint64_t svlen_s16(svint16_t op){
    return op.Size;
}
inline uint64_t svlen_s32(svint32_t op){
    return op.Size;
}
inline uint64_t    svlen_s64(svint64_t op){
    return op.Size;
}
inline uint64_t    svlen_u8(svuint8_t op){
    return op.Size;
}
inline uint64_t    svlen_u16(svuint16_t op){
    return op.Size;
}
inline uint64_t    svlen_u32(svuint32_t op){
    return op.Size;
}
inline uint64_t    svlen_u64(svuint64_t op){
    return op.Size;
}
inline uint64_t    svlen_f16(svfloat16_t op){
    return op.Size;
}
inline uint64_t    svlen_f32(svfloat32_t op){
    return op.Size;
}
inline uint64_t    svlen_f64(svfloat64_t op){
    return op.Size;
}
inline int32_t svqincb_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline int64_t svqincb_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline uint32_t svqincb_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline uint64_t svqincb_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline int32_t svqincb_n_s32(int32_t op, uint64_t imm_factor){
    return svqincb_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqincb_n_s64(int64_t op, uint64_t imm_factor){
    return svqincb_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqincb_n_u32(uint32_t op, uint64_t imm_factor){
    return svqincb_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqincb_n_u64(uint64_t op, uint64_t imm_factor){
    return svqincb_pat_n_u64(op, SV_ALL, imm_factor);
}
inline int32_t svqinch_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline int64_t svqinch_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline uint32_t svqinch_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline uint64_t svqinch_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline int32_t svqinch_n_s32(int32_t op, uint64_t imm_factor){
    return svqinch_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqinch_n_s64(int64_t op, uint64_t imm_factor){
    return svqinch_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqinch_n_u32(uint32_t op, uint64_t imm_factor){
    return svqinch_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqinch_n_u64(uint64_t op, uint64_t imm_factor){
    return svqinch_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint16_t svqinch_pat_s16(svint16_t op, svpattern pattern,uint64_t imm_factor){
    svint16_t res;
    uint64_t val = svcnth_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svuint16_t svqinch_pat_u16(svuint16_t op, svpattern pattern,uint64_t imm_factor){
    svuint16_t res;
    uint64_t val = svcnth_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svint16_t svqinch_s16(svint16_t op, uint64_t imm_factor){
    return svqinch_pat_s16(op, SV_ALL, imm_factor);
}
inline svuint16_t svqinch_u16(svuint16_t op, uint64_t imm_factor){
    return svqinch_pat_u16(op, SV_ALL, imm_factor);
}
inline int32_t svqincw_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline int64_t svqincw_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline uint32_t svqincw_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline uint64_t svqincw_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline int32_t svqincw_n_s32(int32_t op, uint64_t imm_factor){
    return svqincw_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqincw_n_s64(int64_t op, uint64_t imm_factor){
    return svqincw_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqincw_n_u32(uint32_t op, uint64_t imm_factor){
    return svqincw_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqincw_n_u64(uint64_t op, uint64_t imm_factor){
    return svqincw_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint32_t svqincw_pat_s32(svint32_t op, svpattern pattern,uint64_t imm_factor){
    svint32_t res;
    uint64_t val = svcntw_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svuint32_t svqincw_pat_u32(svuint32_t op, svpattern pattern,uint64_t imm_factor){
    svuint32_t res;
    uint64_t val = svcntw_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svint32_t svqincw_s32(svint32_t op, uint64_t imm_factor){
    return svqincw_pat_s32(op, SV_ALL, imm_factor);
}
inline svuint32_t svqincw_u32(svuint32_t op, uint64_t imm_factor){
    return svqincw_pat_u32(op, SV_ALL, imm_factor);
}
inline int32_t svqincd_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline int64_t svqincd_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline uint32_t svqincd_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline uint64_t svqincd_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline int32_t svqincd_n_s32(int32_t op, uint64_t imm_factor){
    return svqincd_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqincd_n_s64(int64_t op, uint64_t imm_factor){
    return svqincd_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqincd_n_u32(uint32_t op, uint64_t imm_factor){
    return svqincd_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqincd_n_u64(uint64_t op, uint64_t imm_factor){
    return svqincd_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint64_t svqincd_pat_s64(svint64_t op, svpattern pattern,uint64_t imm_factor){
    svint64_t res;
    uint64_t val = svcntd_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svuint64_t svqincd_pat_u64(svuint64_t op, svpattern pattern,uint64_t imm_factor){
    svuint64_t res;
    uint64_t val = svcntd_pat(pattern);
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] + val * imm_factor;
    }
    return res;
}
inline svint64_t svqincd_s64(svint64_t op, uint64_t imm_factor){
    return svqincd_pat_s64(op, SV_ALL, imm_factor);
}
inline svuint64_t svqincd_u64(svuint64_t op, uint64_t imm_factor){
    return svqincd_pat_u64(op, SV_ALL, imm_factor);
}
inline int32_t svqincp_n_s32_b8(int32_t op, svbool_t pg){
    return op + svcntp_b8(svptrue_b8(), pg);
}
inline int32_t svqincp_n_s32_b16(int32_t op, svbool_t pg){
    return op + svcntp_b16(svptrue_b16(), pg);
}
inline int32_t svqincp_n_s32_b32(int32_t op, svbool_t pg){
    return op + svcntp_b32(svptrue_b32(), pg);
}
inline int32_t svqincp_n_s32_b64(int32_t op, svbool_t pg){
    return op + svcntp_b64(svptrue_b64(), pg);
}
inline int64_t svqincp_n_s64_b8(int64_t op, svbool_t pg){
    return op + svcntp_b8(svptrue_b8(), pg);
}
inline int64_t svqincp_n_s64_b16(int64_t op, svbool_t pg){
    return op + svcntp_b16(svptrue_b16(), pg);
}
inline int64_t svqincp_n_s64_b32(int64_t op, svbool_t pg){
    return op + svcntp_b32(svptrue_b32(), pg);
}
inline int64_t svqincp_n_s64_b64(int64_t op, svbool_t pg){
    return op + svcntp_b64(svptrue_b64(), pg);
}
inline uint32_t svqincp_n_u32_b8(uint32_t op, svbool_t pg){
    return op + svcntp_b8(svptrue_b8(), pg);
}
inline uint32_t svqincp_n_u32_b16(uint32_t op, svbool_t pg){
    return op + svcntp_b16(svptrue_b16(), pg);
}
inline uint32_t svqincp_n_u32_b32(uint32_t op, svbool_t pg){
    return op + svcntp_b32(svptrue_b32(), pg);
}
inline uint32_t svqincp_n_u32_b64(uint32_t op, svbool_t pg){
    return op + svcntp_b64(svptrue_b64(), pg);
}
inline uint64_t svqincp_n_u64_b8(uint64_t op, svbool_t pg){
    return op + svcntp_b8(svptrue_b8(), pg);
}
inline uint64_t svqincp_n_u64_b16(uint64_t op, svbool_t pg){
    return op + svcntp_b16(svptrue_b16(), pg);
}
inline uint64_t svqincp_n_u64_b32(uint64_t op, svbool_t pg){
    return op + svcntp_b32(svptrue_b32(), pg);
}
inline uint64_t svqincp_n_u64_b64(uint64_t op, svbool_t pg){
    return op + svcntp_b64(svptrue_b64(), pg);
}
inline svint16_t svqincp_s16(svint16_t op, svbool_t pg){
    svint16_t res;
    uint64_t val = svcntp_b16(svptrue_b16(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svint32_t svqincp_s32(svint32_t op, svbool_t pg){
    svint32_t res;
    uint64_t val = svcntp_b32(svptrue_b32(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svint64_t svqincp_s64(svint64_t op, svbool_t pg){
    svint64_t res;
    uint64_t val = svcntp_b64(svptrue_b64(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint16_t svqincp_u16(svuint16_t op, svbool_t pg){
    svuint16_t res;
    uint64_t val = svcntp_b16(svptrue_b16(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint32_t svqincp_u32(svuint32_t op, svbool_t pg){
    svuint32_t res;
    uint64_t val = svcntp_b32(svptrue_b32(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint64_t svqincp_u64(svuint64_t op, svbool_t pg){
    svuint64_t res;
    uint64_t val = svcntp_b64(svptrue_b64(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline int32_t svqdecb_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline int64_t svqdecb_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline uint32_t svqdecb_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline uint64_t svqdecb_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntb_pat(pattern) * imm_factor;
}
inline int32_t svqdecb_n_s32(int32_t op, uint64_t imm_factor){
    return svqdecb_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqdecb_n_s64(int64_t op, uint64_t imm_factor){
    return svqdecb_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqdecb_n_u32(uint32_t op, uint64_t imm_factor){
    return svqdecb_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqdecb_n_u64(uint64_t op, uint64_t imm_factor){
    return svqdecb_pat_n_u64(op, SV_ALL, imm_factor);
}
inline int32_t svqdech_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline int64_t svqdech_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline uint32_t svqdech_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline uint64_t svqdech_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcnth_pat(pattern) * imm_factor;
}
inline int32_t svqdech_n_s32(int32_t op, uint64_t imm_factor){
    return svqdech_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqdech_n_s64(int64_t op, uint64_t imm_factor){
    return svqdech_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqdech_n_u32(uint32_t op, uint64_t imm_factor){
    return svqdech_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqdech_n_u64(uint64_t op, uint64_t imm_factor){
    return svqdech_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint16_t svqdech_pat_s16(svint16_t op, svpattern pattern,uint64_t imm_factor){
    svint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcnth_pat(pattern) * imm_factor;
    }
    return res;
}
inline svuint16_t svqdech_pat_u16(svuint16_t op, svpattern pattern,uint64_t imm_factor){
    svuint16_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcnth_pat(pattern) * imm_factor;
    }
    return res;
}
inline svint16_t svqdech_s16(svint16_t op, uint64_t imm_factor){
    return svqdech_pat_s16(op, SV_ALL, imm_factor);
}
inline svuint16_t svqdech_u16(svuint16_t op, uint64_t imm_factor){
    return svqdech_pat_u16(op, SV_ALL, imm_factor);
}
inline int32_t svqdecw_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline int64_t svqdecw_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline uint32_t svqdecw_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline uint64_t svqdecw_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntw_pat(pattern) * imm_factor;
}
inline int32_t svqdecw_n_s32(int32_t op, uint64_t imm_factor){
    return svqdecw_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqdecw_n_s64(int64_t op, uint64_t imm_factor){
    return svqdecw_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqdecw_n_u32(uint32_t op, uint64_t imm_factor){
    return svqdecw_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqdecw_n_u64(uint64_t op, uint64_t imm_factor){
    return svqdecw_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint32_t svqdecw_pat_s32(svint32_t op, svpattern pattern,uint64_t imm_factor){
    svint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcntw_pat(pattern) * imm_factor;
    }
    return res;
}
inline svuint32_t svqdecw_pat_u32(svuint32_t op, svpattern pattern,uint64_t imm_factor){
    svuint32_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcntw_pat(pattern) * imm_factor;
    }
    return res;
}
inline svint32_t svqdecw_s32(svint32_t op, uint64_t imm_factor){
    return svqdecw_pat_s32(op, SV_ALL, imm_factor);
}
inline svuint32_t svqdecw_u32(svuint32_t op, uint64_t imm_factor){
    return svqdecw_pat_u32(op, SV_ALL, imm_factor);
}
inline int32_t svqdecd_pat_n_s32(int32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline int64_t svqdecd_pat_n_s64(int64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline uint32_t svqdecd_pat_n_u32(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline uint64_t svqdecd_pat_n_u64(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return op + svcntd_pat(pattern) * imm_factor;
}
inline int32_t svqdecd_n_s32(int32_t op, uint64_t imm_factor){
    return svqdecd_pat_n_s32(op, SV_ALL, imm_factor);
}
inline int64_t svqdecd_n_s64(int64_t op, uint64_t imm_factor){
    return svqdecd_pat_n_s64(op, SV_ALL, imm_factor);
}
inline uint32_t svqdecd_n_u32(uint32_t op, uint64_t imm_factor){
    return svqdecd_pat_n_u32(op, SV_ALL, imm_factor);
}
inline uint64_t svqdecd_n_u64(uint64_t op, uint64_t imm_factor){
    return svqdecd_pat_n_u64(op, SV_ALL, imm_factor);
}
inline svint64_t svqdecd_pat_s64(svint64_t op, svpattern pattern,uint64_t imm_factor){
    svint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcntd_pat(pattern) * imm_factor;
    }
    return res;
}
inline svuint64_t svqdecd_pat_u64(svuint64_t op, svpattern pattern,uint64_t imm_factor){
    svuint64_t res;
    for(int idx = 0 ; idx < res.Size ; ++idx){
        res.vec[idx] = op.vec[idx] - svcntd_pat(pattern) * imm_factor;
    }
    return res;
}
inline svint64_t svqdecd_s64(svint64_t op, uint64_t imm_factor){
    return svqdecd_pat_s64(op, SV_ALL, imm_factor);
}
inline svuint64_t svqdecd_u64(svuint64_t op, uint64_t imm_factor){
    return svqdecd_pat_u64(op, SV_ALL, imm_factor);
}
inline int32_t svqdecp_n_s32_b8(int32_t op, svbool_t pg){
    return op - svcntp_b8(svptrue_b8(), pg);
}
inline int32_t svqdecp_n_s32_b16(int32_t op, svbool_t pg){
    return op - svcntp_b16(svptrue_b16(), pg);
}
inline int32_t svqdecp_n_s32_b32(int32_t op, svbool_t pg){
    return op - svcntp_b32(svptrue_b32(), pg);
}
inline int32_t svqdecp_n_s32_b64(int32_t op, svbool_t pg){
    return op - svcntp_b64(svptrue_b64(), pg);
}
inline int64_t svqdecp_n_s64_b8(int64_t op, svbool_t pg){
    return op - svcntp_b8(svptrue_b8(), pg);
}
inline int64_t svqdecp_n_s64_b16(int64_t op, svbool_t pg){
    return op - svcntp_b16(svptrue_b16(), pg);
}
inline int64_t svqdecp_n_s64_b32(int64_t op, svbool_t pg){
    return op - svcntp_b32(svptrue_b32(), pg);
}
inline int64_t svqdecp_n_s64_b64(int64_t op, svbool_t pg){
    return op - svcntp_b64(svptrue_b64(), pg);
}
inline uint32_t svqdecp_n_u32_b8(uint32_t op, svbool_t pg){
    return op - svcntp_b8(svptrue_b8(), pg);
}
inline uint32_t svqdecp_n_u32_b16(uint32_t op, svbool_t pg){
    return op - svcntp_b16(svptrue_b16(), pg);
}
inline uint32_t svqdecp_n_u32_b32(uint32_t op, svbool_t pg){
    return op - svcntp_b32(svptrue_b32(), pg);
}
inline uint32_t svqdecp_n_u32_b64(uint32_t op, svbool_t pg){
    return op - svcntp_b64(svptrue_b64(), pg);
}
inline uint64_t svqdecp_n_u64_b8(uint64_t op, svbool_t pg){
    return op - svcntp_b8(svptrue_b8(), pg);
}
inline uint64_t svqdecp_n_u64_b16(uint64_t op, svbool_t pg){
    return op - svcntp_b16(svptrue_b16(), pg);
}
inline uint64_t svqdecp_n_u64_b32(uint64_t op, svbool_t pg){
    return op - svcntp_b32(svptrue_b32(), pg);
}
inline uint64_t svqdecp_n_u64_b64(uint64_t op, svbool_t pg){
    return op - svcntp_b64(svptrue_b64(), pg);
}
inline svint16_t svqdecp_s16(svint16_t op, svbool_t pg){
    svint16_t res;
    uint64_t val = svcntp_b16(svptrue_b16(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svint32_t svqdecp_s32(svint32_t op, svbool_t pg){
    svint32_t res;
    uint64_t val = svcntp_b32(svptrue_b32(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svint64_t svqdecp_s64(svint64_t op, svbool_t pg){
    svint64_t res;
    uint64_t val = svcntp_b64(svptrue_b64(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint16_t svqdecp_u16(svuint16_t op, svbool_t pg){
    svuint16_t res;
    uint64_t val = svcntp_b16(svptrue_b16(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint32_t svqdecp_u32(svuint32_t op, svbool_t pg){
    svuint32_t res;
    uint64_t val = svcntp_b32(svptrue_b32(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}
inline svuint64_t svqdecp_u64(svuint64_t op, svbool_t pg){
    svuint64_t res;
    uint64_t val = svcntp_b64(svptrue_b64(), pg);
for(int idx = 0 ; idx < res.Size ; ++idx){
    res.vec[idx] = op.vec[idx] - val;
}
return res;
}

inline svint8_t svreinterpret_s8_s8(svint8_t op){
    return core_svreinterpret<svint8_t, svint8_t>(op);
}
inline svint8_t svreinterpret_s8_s16(svint16_t op){
    return core_svreinterpret<svint8_t, svint16_t>(op);
}
inline svint8_t svreinterpret_s8_s32(svint32_t op){
    return core_svreinterpret<svint8_t, svint32_t>(op);
}
inline svint8_t svreinterpret_s8_s64(svint64_t op){
    return core_svreinterpret<svint8_t, svint64_t>(op);
}
inline svint8_t svreinterpret_s8_u8(svuint8_t op){
    return core_svreinterpret<svint8_t, svuint8_t>(op);
}
inline svint8_t svreinterpret_s8_u16(svuint16_t op){
    return core_svreinterpret<svint8_t, svuint16_t>(op);
}
inline svint8_t svreinterpret_s8_u32(svuint32_t op){
    return core_svreinterpret<svint8_t, svuint32_t>(op);
}
inline svint8_t svreinterpret_s8_u64(svuint64_t op){
    return core_svreinterpret<svint8_t, svuint64_t>(op);
}
inline svint8_t svreinterpret_s8_f16(svfloat16_t op){
    return core_svreinterpret<svint8_t, svfloat16_t>(op);
}
inline svint8_t svreinterpret_s8_f32(svfloat32_t op){
    return core_svreinterpret<svint8_t, svfloat32_t>(op);
}
inline svint8_t svreinterpret_s8_f64(svfloat64_t op){
    return core_svreinterpret<svint8_t, svfloat64_t>(op);
}
inline svint16_t svreinterpret_s16_s8(svint8_t op){
    return core_svreinterpret<svint16_t, svint8_t>(op);
}
inline svint16_t svreinterpret_s16_s16(svint16_t op){
    return core_svreinterpret<svint16_t, svint16_t>(op);
}
inline svint16_t svreinterpret_s16_s32(svint32_t op){
    return core_svreinterpret<svint16_t, svint32_t>(op);
}
inline svint16_t svreinterpret_s16_s64(svint64_t op){
    return core_svreinterpret<svint16_t, svint64_t>(op);
}
inline svint16_t svreinterpret_s16_u8(svuint8_t op){
    return core_svreinterpret<svint16_t, svuint8_t>(op);
}
inline svint16_t svreinterpret_s16_u16(svuint16_t op){
    return core_svreinterpret<svint16_t, svuint16_t>(op);
}
inline svint16_t svreinterpret_s16_u32(svuint32_t op){
    return core_svreinterpret<svint16_t, svuint32_t>(op);
}
inline svint16_t svreinterpret_s16_u64(svuint64_t op){
    return core_svreinterpret<svint16_t, svuint64_t>(op);
}
inline svint16_t svreinterpret_s16_f16(svfloat16_t op){
    return core_svreinterpret<svint16_t, svfloat16_t>(op);
}
inline svint16_t svreinterpret_s16_f32(svfloat32_t op){
    return core_svreinterpret<svint16_t, svfloat32_t>(op);
}
inline svint16_t svreinterpret_s16_f64(svfloat64_t op){
    return core_svreinterpret<svint16_t, svfloat64_t>(op);
}
inline svint32_t svreinterpret_s32_s8(svint8_t op){
    return core_svreinterpret<svint32_t, svint8_t>(op);
}
inline svint32_t svreinterpret_s32_s16(svint16_t op){
    return core_svreinterpret<svint32_t, svint16_t>(op);
}
inline svint32_t svreinterpret_s32_s32(svint32_t op){
    return core_svreinterpret<svint32_t, svint32_t>(op);
}
inline svint32_t svreinterpret_s32_s64(svint64_t op){
    return core_svreinterpret<svint32_t, svint64_t>(op);
}
inline svint32_t svreinterpret_s32_u8(svuint8_t op){
    return core_svreinterpret<svint32_t, svuint8_t>(op);
}
inline svint32_t svreinterpret_s32_u16(svuint16_t op){
    return core_svreinterpret<svint32_t, svuint16_t>(op);
}
inline svint32_t svreinterpret_s32_u32(svuint32_t op){
    return core_svreinterpret<svint32_t, svuint32_t>(op);
}
inline svint32_t svreinterpret_s32_u64(svuint64_t op){
    return core_svreinterpret<svint32_t, svuint64_t>(op);
}
inline svint32_t svreinterpret_s32_f16(svfloat16_t op){
    return core_svreinterpret<svint32_t, svfloat16_t>(op);
}
inline svint32_t svreinterpret_s32_f32(svfloat32_t op){
    return core_svreinterpret<svint32_t, svfloat32_t>(op);
}
inline svint32_t svreinterpret_s32_f64(svfloat64_t op){
    return core_svreinterpret<svint32_t, svfloat64_t>(op);
}
inline svint64_t svreinterpret_s64_s8(svint8_t op){
    return core_svreinterpret<svint64_t, svint8_t>(op);
}
inline svint64_t svreinterpret_s64_s16(svint16_t op){
    return core_svreinterpret<svint64_t, svint16_t>(op);
}
inline svint64_t svreinterpret_s64_s32(svint32_t op){
    return core_svreinterpret<svint64_t, svint32_t>(op);
}
inline svint64_t svreinterpret_s64_s64(svint64_t op){
    return core_svreinterpret<svint64_t, svint64_t>(op);
}
inline svint64_t svreinterpret_s64_u8(svuint8_t op){
    return core_svreinterpret<svint64_t, svuint8_t>(op);
}
inline svint64_t svreinterpret_s64_u16(svuint16_t op){
    return core_svreinterpret<svint64_t, svuint16_t>(op);
}
inline svint64_t svreinterpret_s64_u32(svuint32_t op){
    return core_svreinterpret<svint64_t, svuint32_t>(op);
}
inline svint64_t svreinterpret_s64_u64(svuint64_t op){
    return core_svreinterpret<svint64_t, svuint64_t>(op);
}
inline svint64_t svreinterpret_s64_f16(svfloat16_t op){
    return core_svreinterpret<svint64_t, svfloat16_t>(op);
}
inline svint64_t svreinterpret_s64_f32(svfloat32_t op){
    return core_svreinterpret<svint64_t, svfloat32_t>(op);
}
inline svint64_t svreinterpret_s64_f64(svfloat64_t op){
    return core_svreinterpret<svint64_t, svfloat64_t>(op);
}
inline svuint8_t svreinterpret_u8_s8(svint8_t op){
    return core_svreinterpret<svuint8_t, svint8_t>(op);
}
inline svuint8_t svreinterpret_u8_s16(svint16_t op){
    return core_svreinterpret<svuint8_t, svint16_t>(op);
}
inline svuint8_t svreinterpret_u8_s32(svint32_t op){
    return core_svreinterpret<svuint8_t, svint32_t>(op);
}
inline svuint8_t svreinterpret_u8_s64(svint64_t op){
    return core_svreinterpret<svuint8_t, svint64_t>(op);
}
inline svuint8_t svreinterpret_u8_u8(svuint8_t op){
    return core_svreinterpret<svuint8_t, svuint8_t>(op);
}
inline svuint8_t svreinterpret_u8_u16(svuint16_t op){
    return core_svreinterpret<svuint8_t, svuint16_t>(op);
}
inline svuint8_t svreinterpret_u8_u32(svuint32_t op){
    return core_svreinterpret<svuint8_t, svuint32_t>(op);
}
inline svuint8_t svreinterpret_u8_u64(svuint64_t op){
    return core_svreinterpret<svuint8_t, svuint64_t>(op);
}
inline svuint8_t svreinterpret_u8_f16(svfloat16_t op){
    return core_svreinterpret<svuint8_t, svfloat16_t>(op);
}
inline svuint8_t svreinterpret_u8_f32(svfloat32_t op){
    return core_svreinterpret<svuint8_t, svfloat32_t>(op);
}
inline svuint8_t svreinterpret_u8_f64(svfloat64_t op){
    return core_svreinterpret<svuint8_t, svfloat64_t>(op);
}
inline svuint16_t svreinterpret_u16_s8(svint8_t op){
    return core_svreinterpret<svuint16_t, svint8_t>(op);
}
inline svuint16_t svreinterpret_u16_s16(svint16_t op){
    return core_svreinterpret<svuint16_t, svint16_t>(op);
}
inline svuint16_t svreinterpret_u16_s32(svint32_t op){
    return core_svreinterpret<svuint16_t, svint32_t>(op);
}
inline svuint16_t svreinterpret_u16_s64(svint64_t op){
    return core_svreinterpret<svuint16_t, svint64_t>(op);
}
inline svuint16_t svreinterpret_u16_u8(svuint8_t op){
    return core_svreinterpret<svuint16_t, svuint8_t>(op);
}
inline svuint16_t svreinterpret_u16_u16(svuint16_t op){
    return core_svreinterpret<svuint16_t, svuint16_t>(op);
}
inline svuint16_t svreinterpret_u16_u32(svuint32_t op){
    return core_svreinterpret<svuint16_t, svuint32_t>(op);
}
inline svuint16_t svreinterpret_u16_u64(svuint64_t op){
    return core_svreinterpret<svuint16_t, svuint64_t>(op);
}
inline svuint16_t svreinterpret_u16_f16(svfloat16_t op){
    return core_svreinterpret<svuint16_t, svfloat16_t>(op);
}
inline svuint16_t svreinterpret_u16_f32(svfloat32_t op){
    return core_svreinterpret<svuint16_t, svfloat32_t>(op);
}
inline svuint16_t svreinterpret_u16_f64(svfloat64_t op){
    return core_svreinterpret<svuint16_t, svfloat64_t>(op);
}
inline svuint32_t svreinterpret_u32_s8(svint8_t op){
    return core_svreinterpret<svuint32_t, svint8_t>(op);
}
inline svuint32_t svreinterpret_u32_s16(svint16_t op){
    return core_svreinterpret<svuint32_t, svint16_t>(op);
}
inline svuint32_t svreinterpret_u32_s32(svint32_t op){
    return core_svreinterpret<svuint32_t, svint32_t>(op);
}
inline svuint32_t svreinterpret_u32_s64(svint64_t op){
    return core_svreinterpret<svuint32_t, svint64_t>(op);
}
inline svuint32_t svreinterpret_u32_u8(svuint8_t op){
    return core_svreinterpret<svuint32_t, svuint8_t>(op);
}
inline svuint32_t svreinterpret_u32_u16(svuint16_t op){
    return core_svreinterpret<svuint32_t, svuint16_t>(op);
}
inline svuint32_t svreinterpret_u32_u32(svuint32_t op){
    return core_svreinterpret<svuint32_t, svuint32_t>(op);
}
inline svuint32_t svreinterpret_u32_u64(svuint64_t op){
    return core_svreinterpret<svuint32_t, svuint64_t>(op);
}
inline svuint32_t svreinterpret_u32_f16(svfloat16_t op){
    return core_svreinterpret<svuint32_t, svfloat16_t>(op);
}
inline svuint32_t svreinterpret_u32_f32(svfloat32_t op){
    return core_svreinterpret<svuint32_t, svfloat32_t>(op);
}
inline svuint32_t svreinterpret_u32_f64(svfloat64_t op){
    return core_svreinterpret<svuint32_t, svfloat64_t>(op);
}
inline svuint64_t svreinterpret_u64_s8(svint8_t op){
    return core_svreinterpret<svuint64_t, svint8_t>(op);
}
inline svuint64_t svreinterpret_u64_s16(svint16_t op){
    return core_svreinterpret<svuint64_t, svint16_t>(op);
}
inline svuint64_t svreinterpret_u64_s32(svint32_t op){
    return core_svreinterpret<svuint64_t, svint32_t>(op);
}
inline svuint64_t svreinterpret_u64_s64(svint64_t op){
    return core_svreinterpret<svuint64_t, svint64_t>(op);
}
inline svuint64_t svreinterpret_u64_u8(svuint8_t op){
    return core_svreinterpret<svuint64_t, svuint8_t>(op);
}
inline svuint64_t svreinterpret_u64_u16(svuint16_t op){
    return core_svreinterpret<svuint64_t, svuint16_t>(op);
}
inline svuint64_t svreinterpret_u64_u32(svuint32_t op){
    return core_svreinterpret<svuint64_t, svuint32_t>(op);
}
inline svuint64_t svreinterpret_u64_u64(svuint64_t op){
    return core_svreinterpret<svuint64_t, svuint64_t>(op);
}
inline svuint64_t svreinterpret_u64_f16(svfloat16_t op){
    return core_svreinterpret<svuint64_t, svfloat16_t>(op);
}
inline svuint64_t svreinterpret_u64_f32(svfloat32_t op){
    return core_svreinterpret<svuint64_t, svfloat32_t>(op);
}
inline svuint64_t svreinterpret_u64_f64(svfloat64_t op){
    return core_svreinterpret<svuint64_t, svfloat64_t>(op);
}
inline svfloat16_t svreinterpret_f16_s8(svint8_t op){
    return core_svreinterpret<svfloat16_t, svint8_t>(op);
}
inline svfloat16_t svreinterpret_f16_s16(svint16_t op){
    return core_svreinterpret<svfloat16_t, svint16_t>(op);
}
inline svfloat16_t svreinterpret_f16_s32(svint32_t op){
    return core_svreinterpret<svfloat16_t, svint32_t>(op);
}
inline svfloat16_t svreinterpret_f16_s64(svint64_t op){
    return core_svreinterpret<svfloat16_t, svint64_t>(op);
}
inline svfloat16_t svreinterpret_f16_u8(svuint8_t op){
    return core_svreinterpret<svfloat16_t, svuint8_t>(op);
}
inline svfloat16_t svreinterpret_f16_u16(svuint16_t op){
    return core_svreinterpret<svfloat16_t, svuint16_t>(op);
}
inline svfloat16_t svreinterpret_f16_u32(svuint32_t op){
    return core_svreinterpret<svfloat16_t, svuint32_t>(op);
}
inline svfloat16_t svreinterpret_f16_u64(svuint64_t op){
    return core_svreinterpret<svfloat16_t, svuint64_t>(op);
}
inline svfloat16_t svreinterpret_f16_f16(svfloat16_t op){
    return core_svreinterpret<svfloat16_t, svfloat16_t>(op);
}
inline svfloat16_t svreinterpret_f16_f32(svfloat32_t op){
    return core_svreinterpret<svfloat16_t, svfloat32_t>(op);
}
inline svfloat16_t svreinterpret_f16_f64(svfloat64_t op){
    return core_svreinterpret<svfloat16_t, svfloat64_t>(op);
}
inline svfloat32_t svreinterpret_f32_s8(svint8_t op){
    return core_svreinterpret<svfloat32_t, svint8_t>(op);
}
inline svfloat32_t svreinterpret_f32_s16(svint16_t op){
    return core_svreinterpret<svfloat32_t, svint16_t>(op);
}
inline svfloat32_t svreinterpret_f32_s32(svint32_t op){
    return core_svreinterpret<svfloat32_t, svint32_t>(op);
}
inline svfloat32_t svreinterpret_f32_s64(svint64_t op){
    return core_svreinterpret<svfloat32_t, svint64_t>(op);
}
inline svfloat32_t svreinterpret_f32_u8(svuint8_t op){
    return core_svreinterpret<svfloat32_t, svuint8_t>(op);
}
inline svfloat32_t svreinterpret_f32_u16(svuint16_t op){
    return core_svreinterpret<svfloat32_t, svuint16_t>(op);
}
inline svfloat32_t svreinterpret_f32_u32(svuint32_t op){
    return core_svreinterpret<svfloat32_t, svuint32_t>(op);
}
inline svfloat32_t svreinterpret_f32_u64(svuint64_t op){
    return core_svreinterpret<svfloat32_t, svuint64_t>(op);
}
inline svfloat32_t svreinterpret_f32_f16(svfloat16_t op){
    return core_svreinterpret<svfloat32_t, svfloat16_t>(op);
}
inline svfloat32_t svreinterpret_f32_f32(svfloat32_t op){
    return core_svreinterpret<svfloat32_t, svfloat32_t>(op);
}
inline svfloat32_t svreinterpret_f32_f64(svfloat64_t op){
    return core_svreinterpret<svfloat32_t, svfloat64_t>(op);
}
inline svfloat64_t svreinterpret_f64_s8(svint8_t op){
    return core_svreinterpret<svfloat64_t, svint8_t>(op);
}
inline svfloat64_t svreinterpret_f64_s16(svint16_t op){
    return core_svreinterpret<svfloat64_t, svint16_t>(op);
}
inline svfloat64_t svreinterpret_f64_s32(svint32_t op){
    return core_svreinterpret<svfloat64_t, svint32_t>(op);
}
inline svfloat64_t svreinterpret_f64_s64(svint64_t op){
    return core_svreinterpret<svfloat64_t, svint64_t>(op);
}
inline svfloat64_t svreinterpret_f64_u8(svuint8_t op){
    return core_svreinterpret<svfloat64_t, svuint8_t>(op);
}
inline svfloat64_t svreinterpret_f64_u16(svuint16_t op){
    return core_svreinterpret<svfloat64_t, svuint16_t>(op);
}
inline svfloat64_t svreinterpret_f64_u32(svuint32_t op){
    return core_svreinterpret<svfloat64_t, svuint32_t>(op);
}
inline svfloat64_t svreinterpret_f64_u64(svuint64_t op){
    return core_svreinterpret<svfloat64_t, svuint64_t>(op);
}
inline svfloat64_t svreinterpret_f64_f16(svfloat16_t op){
    return core_svreinterpret<svfloat64_t, svfloat16_t>(op);
}
inline svfloat64_t svreinterpret_f64_f32(svfloat32_t op){
    return core_svreinterpret<svfloat64_t, svfloat32_t>(op);
}
inline svfloat64_t svreinterpret_f64_f64(svfloat64_t op){
    return core_svreinterpret<svfloat64_t, svfloat64_t>(op);
}

/////////////////////////////////////////////////////////////
/// Generic names for overloading
/////////////////////////////////////////////////////////////

inline svint8_t svld1(svbool_t pg, const int8_t *base){
    return svld1_s8(pg,base);
}
inline svint16_t svld1(svbool_t pg, const int16_t *base){
    return svld1_s16(pg,base);
}
inline svint32_t svld1(svbool_t pg, const int32_t *base){
    return svld1_s32(pg,base);
}
inline svint64_t svld1(svbool_t pg, const int64_t *base){
    return svld1_s64(pg,base);
}
inline svuint8_t svld1(svbool_t pg, const uint8_t *base){
    return svld1_u8(pg,base);
}
inline svuint16_t svld1(svbool_t pg, const uint16_t *base){
    return svld1_u16(pg,base);
}
inline svuint32_t svld1(svbool_t pg, const uint32_t *base){
    return svld1_u32(pg,base);
}
inline svuint64_t svld1(svbool_t pg, const uint64_t *base){
    return svld1_u64(pg,base);
}
inline svfloat16_t svld1(svbool_t pg, const float16_t *base){
    return svld1_f16(pg,base);
}
inline svfloat32_t svld1(svbool_t pg, const float32_t *base){
    return svld1_f32(pg,base);
}
inline svfloat64_t svld1(svbool_t pg, const float64_t *base){
    return svld1_f64(pg,base);
}
inline svint8_t svld1_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svld1_vnum_s8(pg,base,vnum);
}
inline svint16_t svld1_vnum(svbool_t pg, const int16_t *base, int64_t vnum){
    return svld1_vnum_s16(pg,base,vnum);
}
inline svint32_t svld1_vnum(svbool_t pg, const int32_t *base, int64_t vnum){
    return svld1_vnum_s32(pg,base,vnum);
}
inline svint64_t svld1_vnum(svbool_t pg, const int64_t *base, int64_t vnum){
    return svld1_vnum_s64(pg,base,vnum);
}
inline svuint8_t svld1_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svld1_vnum_u8(pg,base,vnum);
}
inline svuint16_t svld1_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svld1_vnum_u16(pg,base,vnum);
}
inline svuint32_t svld1_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svld1_vnum_u32(pg,base,vnum);
}
inline svuint64_t svld1_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svld1_vnum_u64(pg,base,vnum);
}
inline svfloat16_t svld1_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svld1_vnum_f16(pg,base,vnum);
}
inline svfloat32_t svld1_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svld1_vnum_f32(pg,base,vnum);
}
inline svfloat64_t svld1_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svld1_vnum_f64(pg,base,vnum);
}
inline svint32_t svld1_gather_s32(svbool_t pg, svuint32_t bases){
    return svld1_gather_u32base_s32(pg,bases);
}
inline svint64_t svld1_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1_gather_u64base_s64(pg,bases);
}
inline svuint32_t svld1_gather_u32(svbool_t pg, svuint32_t bases){
    return svld1_gather_u32base_u32(pg,bases);
}
inline svuint64_t svld1_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1_gather_u64base_u64(pg,bases);
}
inline svfloat32_t svld1_gather_f32(svbool_t pg, svuint32_t bases){
    return svld1_gather_u32base_f32(pg,bases);
}
inline svfloat64_t svld1_gather_f64(svbool_t pg, svuint64_t bases){
    return svld1_gather_u64base_f64(pg,bases);
}
inline svint32_t svld1_gather_offset(svbool_t pg, const int32_t *base,svint32_t offsets){
    return svld1_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svld1_gather_offset(svbool_t pg, const int64_t *base,svint64_t offsets){
    return svld1_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1_gather_offset(svbool_t pg, const uint32_t *base,svint32_t offsets){
    return svld1_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1_gather_offset(svbool_t pg, const uint64_t *base,svint64_t offsets){
    return svld1_gather_s64offset_u64(pg,base,offsets);
}
inline svfloat32_t svld1_gather_offset(svbool_t pg,const float32_t *base,svint32_t offsets){
    return svld1_gather_s32offset_f32(pg,base,offsets);
}
inline svfloat64_t svld1_gather_offset(svbool_t pg,const float64_t *base,svint64_t offsets){
    return svld1_gather_s64offset_f64(pg,base,offsets);
}
inline svint32_t svld1_gather_offset(svbool_t pg, const int32_t *base,svuint32_t offsets){
    return svld1_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svld1_gather_offset(svbool_t pg, const int64_t *base,svuint64_t offsets){
    return svld1_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1_gather_offset(svbool_t pg, const uint32_t *base,svuint32_t offsets){
    return svld1_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1_gather_offset(svbool_t pg, const uint64_t *base,svuint64_t offsets){
    return svld1_gather_u64offset_u64(pg,base,offsets);
}
inline svfloat32_t svld1_gather_offset(svbool_t pg,const float32_t *base,svuint32_t offsets){
    return svld1_gather_u32offset_f32(pg,base,offsets);
}
inline svfloat64_t svld1_gather_offset(svbool_t pg,const float64_t *base,svuint64_t offsets){
    return svld1_gather_u64offset_f64(pg,base,offsets);
}
inline svint32_t svld1_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svld1_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svld1_gather_offset_u32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svld1_gather_offset_u64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1_gather_u64base_offset_u64(pg,bases,offset);
}
inline svfloat32_t svld1_gather_offset_f32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1_gather_u32base_offset_f32(pg,bases,offset);
}
inline svfloat64_t svld1_gather_offset_f64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1_gather_u64base_offset_f64(pg,bases,offset);
}
inline svint32_t svld1_gather_index(svbool_t pg, const int32_t *base,svint32_t indices){
    return svld1_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svld1_gather_index(svbool_t pg, const int64_t *base,svint64_t indices){
    return svld1_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svld1_gather_index(svbool_t pg, const uint32_t *base,svint32_t indices){
    return svld1_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svld1_gather_index(svbool_t pg, const uint64_t *base,svint64_t indices){
    return svld1_gather_s64index_u64(pg,base,indices);
}
inline svfloat32_t svld1_gather_index(svbool_t pg,const float32_t *base,svint32_t indices){
    return svld1_gather_s32index_f32(pg,base,indices);
}
inline svfloat64_t svld1_gather_index(svbool_t pg,const float64_t *base,svint64_t indices){
    return svld1_gather_s64index_f64(pg,base,indices);
}
inline svint32_t svld1_gather_index(svbool_t pg, const int32_t *base,svuint32_t indices){
    return svld1_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svld1_gather_index(svbool_t pg, const int64_t *base,svuint64_t indices){
    return svld1_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svld1_gather_index(svbool_t pg, const uint32_t *base,svuint32_t indices){
    return svld1_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svld1_gather_index(svbool_t pg, const uint64_t *base,svuint64_t indices){
    return svld1_gather_u64index_u64(pg,base,indices);
}
inline svfloat32_t svld1_gather_index(svbool_t pg,const float32_t *base,svuint32_t indices){
    return svld1_gather_u32index_f32(pg,base,indices);
}
inline svfloat64_t svld1_gather_index(svbool_t pg,const float64_t *base,svuint64_t indices){
    return svld1_gather_u64index_f64(pg,base,indices);
}
inline svint32_t svld1_gather_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svld1_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svld1_gather_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svld1_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1_gather_u64base_index_u64(pg,bases,index);
}
inline svfloat32_t svld1_gather_index_f32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1_gather_u32base_index_f32(pg,bases,index);
}
inline svfloat64_t svld1_gather_index_f64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1_gather_u64base_index_f64(pg,bases,index);
}
inline svint32_t svld1sb_gather_s32(svbool_t pg, svuint32_t bases){
    return svld1sb_gather_u32base_s32(pg,bases);
}
inline svint64_t svld1sb_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1sb_gather_u64base_s64(pg,bases);
}
inline svuint32_t svld1sb_gather_u32(svbool_t pg, svuint32_t bases){
    return svld1sb_gather_u32base_u32(pg,bases);
}
inline svuint64_t svld1sb_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1sb_gather_u64base_u64(pg,bases);
}
inline svint32_t svld1sb_gather_offset_s32(svbool_t pg, const int8_t *base,svint32_t offsets){
    return svld1sb_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svld1sb_gather_offset_s64(svbool_t pg, const int8_t *base,svint64_t offsets){
    return svld1sb_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1sb_gather_offset_u32(svbool_t pg, const int8_t *base,svint32_t offsets){
    return svld1sb_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1sb_gather_offset_u64(svbool_t pg, const int8_t *base,svint64_t offsets){
    return svld1sb_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svld1sb_gather_offset_s32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    return svld1sb_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svld1sb_gather_offset_s64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    return svld1sb_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1sb_gather_offset_u32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    return svld1sb_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1sb_gather_offset_u64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    return svld1sb_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svld1sb_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1sb_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svld1sb_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1sb_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svld1sb_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svld1sb_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svld1sb_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1sb_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svld1ub_gather_s32(svbool_t pg, svuint32_t bases){
    return svld1ub_gather_u32base_s32(pg,bases);
}
inline svint64_t svld1ub_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1ub_gather_u64base_s64(pg,bases);
}
inline svuint32_t svld1ub_gather_u32(svbool_t pg, svuint32_t bases){
    return svld1ub_gather_u32base_u32(pg,bases);
}
inline svuint64_t svld1ub_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1ub_gather_u64base_u64(pg,bases);
}
inline svint32_t svld1ub_gather_offset_s32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    return svld1ub_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svld1ub_gather_offset_s64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    return svld1ub_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1ub_gather_offset_u32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    return svld1ub_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1ub_gather_offset_u64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    return svld1ub_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svld1ub_gather_offset_s32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    return svld1ub_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svld1ub_gather_offset_s64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    return svld1ub_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1ub_gather_offset_u32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    return svld1ub_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1ub_gather_offset_u64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    return svld1ub_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svld1ub_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1ub_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svld1ub_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1ub_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svld1ub_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svld1ub_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svld1ub_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1ub_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svld1sh_gather_s32(svbool_t pg, svuint32_t bases){
    return svld1sh_gather_u32base_s32(pg,bases);
}
inline svint64_t svld1sh_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1sh_gather_u64base_s64(pg,bases);
}
inline svuint32_t svld1sh_gather_u32(svbool_t pg, svuint32_t bases){
    return svld1sh_gather_u32base_u32(pg,bases);
}
inline svuint64_t svld1sh_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1sh_gather_u64base_u64(pg,bases);
}
inline svint32_t svld1sh_gather_offset_s32(svbool_t pg, const int16_t *base,svint32_t offsets){
    return svld1sh_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svld1sh_gather_offset_s64(svbool_t pg, const int16_t *base,svint64_t offsets){
    return svld1sh_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1sh_gather_offset_u32(svbool_t pg, const int16_t *base,svint32_t offsets){
    return svld1sh_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1sh_gather_offset_u64(svbool_t pg, const int16_t *base,svint64_t offsets){
    return svld1sh_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svld1sh_gather_offset_s32(svbool_t pg, const int16_t *base,svuint32_t offsets){
    return svld1sh_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svld1sh_gather_offset_s64(svbool_t pg, const int16_t *base,svuint64_t offsets){
    return svld1sh_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1sh_gather_offset_u32(svbool_t pg, const int16_t *base,svuint32_t offsets){
    return svld1sh_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1sh_gather_offset_u64(svbool_t pg, const int16_t *base,svuint64_t offsets){
    return svld1sh_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svld1sh_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1sh_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svld1sh_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1sh_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svld1sh_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svld1sh_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svld1sh_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1sh_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svld1sh_gather_index_s32(svbool_t pg, const int16_t *base,svint32_t indices){
    return svld1sh_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svld1sh_gather_index_s64(svbool_t pg, const int16_t *base,svint64_t indices){
    return svld1sh_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svld1sh_gather_index_u32(svbool_t pg, const int16_t *base,svint32_t indices){
    return svld1sh_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svld1sh_gather_index_u64(svbool_t pg, const int16_t *base,svint64_t indices){
    return svld1sh_gather_s64index_u64(pg,base,indices);
}
inline svint32_t svld1sh_gather_index_s32(svbool_t pg, const int16_t *base,svuint32_t indices){
    return svld1sh_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svld1sh_gather_index_s64(svbool_t pg, const int16_t *base,svuint64_t indices){
    return svld1sh_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svld1sh_gather_index_u32(svbool_t pg, const int16_t *base,svuint32_t indices){
    return svld1sh_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svld1sh_gather_index_u64(svbool_t pg, const int16_t *base,svuint64_t indices){
    return svld1sh_gather_u64index_u64(pg,base,indices);
}
inline svint32_t svld1sh_gather_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1sh_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svld1sh_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1sh_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svld1sh_gather_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1sh_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svld1sh_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1sh_gather_u64base_index_u64(pg,bases,index);
}
inline svint32_t svld1uh_gather_s32(svbool_t pg, svuint32_t bases){
    return svld1uh_gather_u32base_s32(pg,bases);
}
inline svint64_t svld1uh_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1uh_gather_u64base_s64(pg,bases);
}
inline svuint32_t svld1uh_gather_u32(svbool_t pg, svuint32_t bases){
    return svld1uh_gather_u32base_u32(pg,bases);
}
inline svuint64_t svld1uh_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1uh_gather_u64base_u64(pg,bases);
}
inline svint32_t svld1uh_gather_offset_s32(svbool_t pg, const uint16_t *base,svint32_t offsets){
    return svld1uh_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svld1uh_gather_offset_s64(svbool_t pg, const uint16_t *base,svint64_t offsets){
    return svld1uh_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1uh_gather_offset_u32(svbool_t pg, const uint16_t *base,svint32_t offsets){
    return svld1uh_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1uh_gather_offset_u64(svbool_t pg, const uint16_t *base,svint64_t offsets){
    return svld1uh_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svld1uh_gather_offset_s32(svbool_t pg, const uint16_t *base,svuint32_t offsets){
    return svld1uh_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svld1uh_gather_offset_s64(svbool_t pg, const uint16_t *base,svuint64_t offsets){
    return svld1uh_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svld1uh_gather_offset_u32(svbool_t pg, const uint16_t *base,svuint32_t offsets){
    return svld1uh_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svld1uh_gather_offset_u64(svbool_t pg, const uint16_t *base,svuint64_t offsets){
    return svld1uh_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svld1uh_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svld1uh_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svld1uh_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1uh_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svld1uh_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svld1uh_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svld1uh_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1uh_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svld1uh_gather_index_s32(svbool_t pg, const uint16_t *base,svint32_t indices){
    return svld1uh_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svld1uh_gather_index_s64(svbool_t pg, const uint16_t *base,svint64_t indices){
    return svld1uh_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svld1uh_gather_index_u32(svbool_t pg, const uint16_t *base,svint32_t indices){
    return svld1uh_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svld1uh_gather_index_u64(svbool_t pg, const uint16_t *base,svint64_t indices){
    return svld1uh_gather_s64index_u64(pg,base,indices);
}
inline svint32_t svld1uh_gather_index_s32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    return svld1uh_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svld1uh_gather_index_s64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    return svld1uh_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svld1uh_gather_index_u32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    return svld1uh_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svld1uh_gather_index_u64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    return svld1uh_gather_u64index_u64(pg,base,indices);
}
inline svint32_t svld1uh_gather_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1uh_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svld1uh_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1uh_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svld1uh_gather_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    return svld1uh_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svld1uh_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1uh_gather_u64base_index_u64(pg,bases,index);
}
inline svint64_t svld1sw_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1sw_gather_u64base_s64(pg,bases);
}
inline svuint64_t svld1sw_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1sw_gather_u64base_u64(pg,bases);
}
inline svint64_t svld1sw_gather_offset_s64(svbool_t pg, const int32_t *base,svint64_t offsets){
    return svld1sw_gather_s64offset_s64(pg,base,offsets);
}
inline svuint64_t svld1sw_gather_offset_u64(svbool_t pg, const int32_t *base,svint64_t offsets){
    return svld1sw_gather_s64offset_u64(pg,base,offsets);
}
inline svint64_t svld1sw_gather_offset_s64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    return svld1sw_gather_u64offset_s64(pg,base,offsets);
}
inline svuint64_t svld1sw_gather_offset_u64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    return svld1sw_gather_u64offset_u64(pg,base,offsets);
}
inline svint64_t svld1sw_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1sw_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint64_t svld1sw_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1sw_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint64_t svld1sw_gather_index_s64(svbool_t pg, const int32_t *base,svint64_t indices){
    return svld1sw_gather_s64index_s64(pg,base,indices);
}
inline svuint64_t svld1sw_gather_index_u64(svbool_t pg, const int32_t *base,svint64_t indices){
    return svld1sw_gather_s64index_u64(pg,base,indices);
}
inline svint64_t svld1sw_gather_index_s64(svbool_t pg, const int32_t *base,svuint64_t indices){
    return svld1sw_gather_u64index_s64(pg,base,indices);
}
inline svuint64_t svld1sw_gather_index_u64(svbool_t pg, const int32_t *base,svuint64_t indices){
    return svld1sw_gather_u64index_u64(pg,base,indices);
}
inline svint64_t svld1sw_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1sw_gather_u64base_index_s64(pg,bases,index);
}
inline svuint64_t svld1sw_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1sw_gather_u64base_index_u64(pg,bases,index);
}
inline svint64_t svld1uw_gather_s64(svbool_t pg, svuint64_t bases){
    return svld1uw_gather_u64base_s64(pg,bases);
}
inline svuint64_t svld1uw_gather_u64(svbool_t pg, svuint64_t bases){
    return svld1uw_gather_u64base_u64(pg,bases);
}
inline svint64_t svld1uw_gather_offset_s64(svbool_t pg, const uint32_t *base,svint64_t offsets){
    return svld1uw_gather_s64offset_s64(pg,base,offsets);
}
inline svuint64_t svld1uw_gather_offset_u64(svbool_t pg, const uint32_t *base,svint64_t offsets){
    return svld1uw_gather_s64offset_u64(pg,base,offsets);
}
inline svint64_t svld1uw_gather_offset_s64(svbool_t pg, const uint32_t *base,svuint64_t offsets){
    return svld1uw_gather_u64offset_s64(pg,base,offsets);
}
inline svuint64_t svld1uw_gather_offset_u64(svbool_t pg, const uint32_t *base,svuint64_t offsets){
    return svld1uw_gather_u64offset_u64(pg,base,offsets);
}
inline svint64_t svld1uw_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svld1uw_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint64_t svld1uw_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svld1uw_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint64_t svld1uw_gather_index_s64(svbool_t pg, const uint32_t *base,svint64_t indices){
    return svld1uw_gather_s64index_s64(pg,base,indices);
}
inline svuint64_t svld1uw_gather_index_u64(svbool_t pg, const uint32_t *base,svint64_t indices){
    return svld1uw_gather_s64index_u64(pg,base,indices);
}
inline svint64_t svld1uw_gather_index_s64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    return svld1uw_gather_u64index_s64(pg,base,indices);
}
inline svuint64_t svld1uw_gather_index_u64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    return svld1uw_gather_u64index_u64(pg,base,indices);
}
inline svint64_t svld1uw_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1uw_gather_u64base_index_s64(pg,bases,index);
}
inline svuint64_t svld1uw_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svld1uw_gather_u64base_index_u64(pg,bases,index);
}
inline svint8_t svld1rq(svbool_t pg, const int8_t *base){
    return svld1rq_s8(pg,base);
}
inline svint16_t svld1rq(svbool_t pg, const int16_t *base){
    return svld1rq_s16(pg,base);
}
inline svint32_t svld1rq(svbool_t pg, const int32_t *base){
    return svld1rq_s32(pg,base);
}
inline svint64_t svld1rq(svbool_t pg, const int64_t *base){
    return svld1rq_s64(pg,base);
}
inline svuint8_t svld1rq(svbool_t pg, const uint8_t *base){
    return svld1rq_u8(pg,base);
}
inline svuint16_t svld1rq(svbool_t pg, const uint16_t *base){
    return svld1rq_u16(pg,base);
}
inline svuint32_t svld1rq(svbool_t pg, const uint32_t *base){
    return svld1rq_u32(pg,base);
}
inline svuint64_t svld1rq(svbool_t pg, const uint64_t *base){
    return svld1rq_u64(pg,base);
}
inline svfloat16_t svld1rq(svbool_t pg, const float16_t *base){
    return svld1rq_f16(pg,base);
}
inline svfloat32_t svld1rq(svbool_t pg, const float32_t *base){
    return svld1rq_f32(pg,base);
}
inline svfloat64_t svld1rq(svbool_t pg, const float64_t *base){
    return svld1rq_f64(pg,base);
}
inline svint8_t svldff1(svbool_t pg, const int8_t *base){
    return svldff1_s8(pg,base);
}
inline svint16_t svldff1(svbool_t pg, const int16_t *base){
    return svldff1_s16(pg,base);
}
inline svint32_t svldff1(svbool_t pg, const int32_t *base){
    return svldff1_s32(pg,base);
}
inline svint64_t svldff1(svbool_t pg, const int64_t *base){
    return svldff1_s64(pg,base);
}
inline svuint8_t svldff1(svbool_t pg, const uint8_t *base){
    return svldff1_u8(pg,base);
}
inline svuint16_t svldff1(svbool_t pg, const uint16_t *base){
    return svldff1_u16(pg,base);
}
inline svuint32_t svldff1(svbool_t pg, const uint32_t *base){
    return svldff1_u32(pg,base);
}
inline svuint64_t svldff1(svbool_t pg, const uint64_t *base){
    return svldff1_u64(pg,base);
}
inline svfloat16_t svldff1(svbool_t pg, const float16_t *base){
    return svldff1_f16(pg,base);
}
inline svfloat32_t svldff1(svbool_t pg, const float32_t *base){
    return svldff1_f32(pg,base);
}
inline svfloat64_t svldff1(svbool_t pg, const float64_t *base){
    return svldff1_f64(pg,base);
}
inline svint8_t svldff1_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svldff1_vnum_s8(pg,base,vnum);
}
inline svint16_t svldff1_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svldff1_vnum_s16(pg,base,vnum);
}
inline svint32_t svldff1_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svldff1_vnum_s32(pg,base,vnum);
}
inline svint64_t svldff1_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svldff1_vnum_s64(pg,base,vnum);
}
inline svuint8_t svldff1_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svldff1_vnum_u8(pg,base,vnum);
}
inline svuint16_t svldff1_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svldff1_vnum_u16(pg,base,vnum);
}
inline svuint32_t svldff1_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svldff1_vnum_u32(pg,base,vnum);
}
inline svuint64_t svldff1_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svldff1_vnum_u64(pg,base,vnum);
}
inline svfloat16_t svldff1_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svldff1_vnum_f16(pg,base,vnum);
}
inline svfloat32_t svldff1_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svldff1_vnum_f32(pg,base,vnum);
}
inline svfloat64_t svldff1_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svldff1_vnum_f64(pg,base,vnum);
}
inline svint32_t svldff1_gather_s32(svbool_t pg, svuint32_t bases){
    return svldff1_gather_u32base_s32(pg,bases);
}
inline svint64_t svldff1_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1_gather_u64base_s64(pg,bases);
}
inline svuint32_t svldff1_gather_u32(svbool_t pg, svuint32_t bases){
    return svldff1_gather_u32base_u32(pg,bases);
}
inline svuint64_t svldff1_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1_gather_u64base_u64(pg,bases);
}
inline svfloat32_t svldff1_gather_f32(svbool_t pg, svuint32_t bases){
    return svldff1_gather_u32base_f32(pg,bases);
}
inline svfloat64_t svldff1_gather_f64(svbool_t pg, svuint64_t bases){
    return svldff1_gather_u64base_f64(pg,bases);
}
inline svint32_t svldff1_gather_offset(svbool_t pg, const int32_t *base,svint32_t offsets){
    return svldff1_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1_gather_offset(svbool_t pg, const int64_t *base,svint64_t offsets){
    return svldff1_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1_gather_offset(svbool_t pg,const uint32_t *base,svint32_t offsets){
    return svldff1_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1_gather_offset(svbool_t pg,const uint64_t *base,svint64_t offsets){
    return svldff1_gather_s64offset_u64(pg,base,offsets);
}
inline svfloat32_t svldff1_gather_offset(svbool_t pg,const float32_t *base,svint32_t offsets){
    return svldff1_gather_s32offset_f32(pg,base,offsets);
}
inline svfloat64_t svldff1_gather_offset(svbool_t pg,const float64_t *base,svint64_t offsets){
    return svldff1_gather_s64offset_f64(pg,base,offsets);
}
inline svint32_t svldff1_gather_offset(svbool_t pg, const int32_t *base,svuint32_t offsets){
    return svldff1_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1_gather_offset(svbool_t pg, const int64_t *base,svuint64_t offsets){
    return svldff1_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1_gather_offset(svbool_t pg,const uint32_t *base,svuint32_t offsets){
    return svldff1_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1_gather_offset(svbool_t pg,const uint64_t *base,svuint64_t offsets){
    return svldff1_gather_u64offset_u64(pg,base,offsets);
}
inline svfloat32_t svldff1_gather_offset(svbool_t pg,const float32_t *base,svuint32_t offsets){
    return svldff1_gather_u32offset_f32(pg,base,offsets);
}
inline svfloat64_t svldff1_gather_offset(svbool_t pg,const float64_t *base,svuint64_t offsets){
    return svldff1_gather_u64offset_f64(pg,base,offsets);
}
inline svint32_t svldff1_gather_offset_s32(svbool_t pg, svuint32_t bases,int64_t offset){
    return svldff1_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svldff1_gather_offset_s64(svbool_t pg, svuint64_t bases,int64_t offset){
    return svldff1_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svldff1_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svldff1_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1_gather_u64base_offset_u64(pg,bases,offset);
}
inline svfloat32_t svldff1_gather_offset_f32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1_gather_u32base_offset_f32(pg,bases,offset);
}
inline svfloat64_t svldff1_gather_offset_f64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1_gather_u64base_offset_f64(pg,bases,offset);
}
inline svint32_t svldff1_gather_index(svbool_t pg, const int32_t *base,svint32_t indices){
    return svldff1_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svldff1_gather_index(svbool_t pg, const int64_t *base,svint64_t indices){
    return svldff1_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svldff1_gather_index(svbool_t pg,const uint32_t *base,svint32_t indices){
    return svldff1_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svldff1_gather_index(svbool_t pg,const uint64_t *base,svint64_t indices){
    return svldff1_gather_s64index_u64(pg,base,indices);
}
inline svfloat32_t svldff1_gather_index(svbool_t pg,const float32_t *base,svint32_t indices){
    return svldff1_gather_s32index_f32(pg,base,indices);
}
inline svfloat64_t svldff1_gather_index(svbool_t pg,const float64_t *base,svint64_t indices){
    return svldff1_gather_s64index_f64(pg,base,indices);
}
inline svint32_t svldff1_gather_index(svbool_t pg, const int32_t *base,svuint32_t indices){
    return svldff1_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svldff1_gather_index(svbool_t pg, const int64_t *base,svuint64_t indices){
    return svldff1_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svldff1_gather_index(svbool_t pg,const uint32_t *base,svuint32_t indices){
    return svldff1_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svldff1_gather_index(svbool_t pg,const uint64_t *base,svuint64_t indices){
    return svldff1_gather_u64index_u64(pg,base,indices);
}
inline svfloat32_t svldff1_gather_index(svbool_t pg,const float32_t *base,svuint32_t indices){
    return svldff1_gather_u32index_f32(pg,base,indices);
}
inline svfloat64_t svldff1_gather_index(svbool_t pg,const float64_t *base,svuint64_t indices){
    return svldff1_gather_u64index_f64(pg,base,indices);
}
inline svint32_t svldff1_gather_index_s32(svbool_t pg, svuint32_t bases,int64_t index){
    return svldff1_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svldff1_gather_index_s64(svbool_t pg, svuint64_t bases,int64_t index){
    return svldff1_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svldff1_gather_index_u32(svbool_t pg, svuint32_t bases,int64_t index){
    return svldff1_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svldff1_gather_index_u64(svbool_t pg, svuint64_t bases,int64_t index){
    return svldff1_gather_u64base_index_u64(pg,bases,index);
}
inline svfloat32_t svldff1_gather_index_f32(svbool_t pg,svuint32_t bases,int64_t index){
    return svldff1_gather_u32base_index_f32(pg,bases,index);
}
inline svfloat64_t svldff1_gather_index_f64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1_gather_u64base_index_f64(pg,bases,index);
}
inline svint32_t svldff1sb_gather_s32(svbool_t pg, svuint32_t bases){
    return svldff1sb_gather_u32base_s32(pg,bases);
}
inline svint64_t svldff1sb_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1sb_gather_u64base_s64(pg,bases);
}
inline svuint32_t svldff1sb_gather_u32(svbool_t pg, svuint32_t bases){
    return svldff1sb_gather_u32base_u32(pg,bases);
}
inline svuint64_t svldff1sb_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1sb_gather_u64base_u64(pg,bases);
}
inline svint32_t svldff1sb_gather_offset_s32(svbool_t pg, const int8_t *base,svint32_t offsets){
    return svldff1sb_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1sb_gather_offset_s64(svbool_t pg, const int8_t *base,svint64_t offsets){
    return svldff1sb_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1sb_gather_offset_u32(svbool_t pg, const int8_t *base,svint32_t offsets){
    return svldff1sb_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1sb_gather_offset_u64(svbool_t pg, const int8_t *base,svint64_t offsets){
    return svldff1sb_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1sb_gather_offset_s32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    return svldff1sb_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1sb_gather_offset_s64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    return svldff1sb_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1sb_gather_offset_u32(svbool_t pg, const int8_t *base,svuint32_t offsets){
    return svldff1sb_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1sb_gather_offset_u64(svbool_t pg, const int8_t *base,svuint64_t offsets){
    return svldff1sb_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1sb_gather_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1sb_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svldff1sb_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sb_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svldff1sb_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1sb_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svldff1sb_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sb_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svldff1ub_gather_s32(svbool_t pg, svuint32_t bases){
    return svldff1ub_gather_u32base_s32(pg,bases);
}
inline svint64_t svldff1ub_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1ub_gather_u64base_s64(pg,bases);
}
inline svuint32_t svldff1ub_gather_u32(svbool_t pg, svuint32_t bases){
    return svldff1ub_gather_u32base_u32(pg,bases);
}
inline svuint64_t svldff1ub_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1ub_gather_u64base_u64(pg,bases);
}
inline svint32_t svldff1ub_gather_offset_s32(svbool_t pg, const uint8_t *base,svint32_t offsets){
    return svldff1ub_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1ub_gather_offset_s64(svbool_t pg, const uint8_t *base,svint64_t offsets){
    return svldff1ub_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1ub_gather_offset_u32(svbool_t pg,const uint8_t *base,svint32_t offsets){
    return svldff1ub_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1ub_gather_offset_u64(svbool_t pg,const uint8_t *base,svint64_t offsets){
    return svldff1ub_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1ub_gather_offset_s32(svbool_t pg, const uint8_t *base,svuint32_t offsets){
    return svldff1ub_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1ub_gather_offset_s64(svbool_t pg, const uint8_t *base,svuint64_t offsets){
    return svldff1ub_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1ub_gather_offset_u32(svbool_t pg,const uint8_t *base,svuint32_t offsets){
    return svldff1ub_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1ub_gather_offset_u64(svbool_t pg,const uint8_t *base,svuint64_t offsets){
    return svldff1ub_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1ub_gather_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1ub_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svldff1ub_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1ub_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svldff1ub_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1ub_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svldff1ub_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1ub_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svldff1sh_gather_s32(svbool_t pg, svuint32_t bases){
    return svldff1sh_gather_u32base_s32(pg,bases);
}
inline svint64_t svldff1sh_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1sh_gather_u64base_s64(pg,bases);
}
inline svuint32_t svldff1sh_gather_u32(svbool_t pg, svuint32_t bases){
    return svldff1sh_gather_u32base_u32(pg,bases);
}
inline svuint64_t svldff1sh_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1sh_gather_u64base_u64(pg,bases);
}
inline svint32_t svldff1sh_gather_offset_s32(svbool_t pg, const int16_t                *base,svint32_t offsets){
    return svldff1sh_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1sh_gather_offset_s64(svbool_t pg, const int16_t                *base,svint64_t offsets){
    return svldff1sh_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1sh_gather_offset_u32(svbool_t pg,const int16_t *base,svint32_t offsets){
    return svldff1sh_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1sh_gather_offset_u64(svbool_t pg,const int16_t *base,svint64_t offsets){
    return svldff1sh_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1sh_gather_offset_s32(svbool_t pg, const int16_t                *base,svuint32_t offsets){
    return svldff1sh_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1sh_gather_offset_s64(svbool_t pg, const int16_t                *base,svuint64_t offsets){
    return svldff1sh_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1sh_gather_offset_u32(svbool_t pg,const int16_t *base,svuint32_t offsets){
    return svldff1sh_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1sh_gather_offset_u64(svbool_t pg,const int16_t *base,svuint64_t offsets){
    return svldff1sh_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1sh_gather_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1sh_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svldff1sh_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sh_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svldff1sh_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1sh_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svldff1sh_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sh_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svldff1sh_gather_index_s32(svbool_t pg, const int16_t *base,svint32_t indices){
    return svldff1sh_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svldff1sh_gather_index_s64(svbool_t pg, const int16_t *base,svint64_t indices){
    return svldff1sh_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svldff1sh_gather_index_u32(svbool_t pg, const int16_t *base,svint32_t indices){
    return svldff1sh_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svldff1sh_gather_index_u64(svbool_t pg, const int16_t *base,svint64_t indices){
    return svldff1sh_gather_s64index_u64(pg,base,indices);
}
inline svint32_t svldff1sh_gather_index_s32(svbool_t pg, const int16_t *base,svuint32_t indices){
    return svldff1sh_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svldff1sh_gather_index_s64(svbool_t pg, const int16_t *base,svuint64_t indices){
    return svldff1sh_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svldff1sh_gather_index_u32(svbool_t pg, const int16_t *base,svuint32_t indices){
    return svldff1sh_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svldff1sh_gather_index_u64(svbool_t pg, const int16_t *base,svuint64_t indices){
    return svldff1sh_gather_u64index_u64(pg,base,indices);
}
inline svint32_t svldff1sh_gather_index_s32(svbool_t pg,svuint32_t bases,int64_t index){
    return svldff1sh_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svldff1sh_gather_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1sh_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svldff1sh_gather_index_u32(svbool_t pg,svuint32_t bases,int64_t index){
    return svldff1sh_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svldff1sh_gather_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1sh_gather_u64base_index_u64(pg,bases,index);
}
inline svint32_t svldff1uh_gather_s32(svbool_t pg, svuint32_t bases){
    return svldff1uh_gather_u32base_s32(pg,bases);
}
inline svint64_t svldff1uh_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1uh_gather_u64base_s64(pg,bases);
}
inline svuint32_t svldff1uh_gather_u32(svbool_t pg, svuint32_t bases){
    return svldff1uh_gather_u32base_u32(pg,bases);
}
inline svuint64_t svldff1uh_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1uh_gather_u64base_u64(pg,bases);
}
inline svint32_t svldff1uh_gather_offset_s32(svbool_t pg,const uint16_t *base,svint32_t offsets){
    return svldff1uh_gather_s32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1uh_gather_offset_s64(svbool_t pg,const uint16_t *base,svint64_t offsets){
    return svldff1uh_gather_s64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1uh_gather_offset_u32(svbool_t pg,const uint16_t *base,svint32_t offsets){
    return svldff1uh_gather_s32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1uh_gather_offset_u64(svbool_t pg,const uint16_t *base,svint64_t offsets){
    return svldff1uh_gather_s64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1uh_gather_offset_s32(svbool_t pg,const uint16_t *base,svuint32_t offsets){
    return svldff1uh_gather_u32offset_s32(pg,base,offsets);
}
inline svint64_t svldff1uh_gather_offset_s64(svbool_t pg,const uint16_t *base,svuint64_t offsets){
    return svldff1uh_gather_u64offset_s64(pg,base,offsets);
}
inline svuint32_t svldff1uh_gather_offset_u32(svbool_t pg,const uint16_t *base,svuint32_t offsets){
    return svldff1uh_gather_u32offset_u32(pg,base,offsets);
}
inline svuint64_t svldff1uh_gather_offset_u64(svbool_t pg,const uint16_t *base,svuint64_t offsets){
    return svldff1uh_gather_u64offset_u64(pg,base,offsets);
}
inline svint32_t svldff1uh_gather_offset_s32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1uh_gather_u32base_offset_s32(pg,bases,offset);
}
inline svint64_t svldff1uh_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1uh_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint32_t svldff1uh_gather_offset_u32(svbool_t pg,svuint32_t bases,int64_t offset){
    return svldff1uh_gather_u32base_offset_u32(pg,bases,offset);
}
inline svuint64_t svldff1uh_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1uh_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint32_t svldff1uh_gather_index_s32(svbool_t pg, const uint16_t *base,svint32_t indices){
    return svldff1uh_gather_s32index_s32(pg,base,indices);
}
inline svint64_t svldff1uh_gather_index_s64(svbool_t pg, const uint16_t *base,svint64_t indices){
    return svldff1uh_gather_s64index_s64(pg,base,indices);
}
inline svuint32_t svldff1uh_gather_index_u32(svbool_t pg,const uint16_t *base,svint32_t indices){
    return svldff1uh_gather_s32index_u32(pg,base,indices);
}
inline svuint64_t svldff1uh_gather_index_u64(svbool_t pg,const uint16_t *base,svint64_t indices){
    return svldff1uh_gather_s64index_u64(pg,base,indices);
}
inline svint32_t svldff1uh_gather_index_s32(svbool_t pg, const uint16_t *base,svuint32_t indices){
    return svldff1uh_gather_u32index_s32(pg,base,indices);
}
inline svint64_t svldff1uh_gather_index_s64(svbool_t pg, const uint16_t *base,svuint64_t indices){
    return svldff1uh_gather_u64index_s64(pg,base,indices);
}
inline svuint32_t svldff1uh_gather_index_u32(svbool_t pg,const uint16_t *base,svuint32_t indices){
    return svldff1uh_gather_u32index_u32(pg,base,indices);
}
inline svuint64_t svldff1uh_gather_index_u64(svbool_t pg,const uint16_t *base,svuint64_t indices){
    return svldff1uh_gather_u64index_u64(pg,base,indices);
}
inline svint32_t svldff1uh_gather_index_s32(svbool_t pg,svuint32_t bases,int64_t index){
    return svldff1uh_gather_u32base_index_s32(pg,bases,index);
}
inline svint64_t svldff1uh_gather_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1uh_gather_u64base_index_s64(pg,bases,index);
}
inline svuint32_t svldff1uh_gather_index_u32(svbool_t pg,svuint32_t bases,int64_t index){
    return svldff1uh_gather_u32base_index_u32(pg,bases,index);
}
inline svuint64_t svldff1uh_gather_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1uh_gather_u64base_index_u64(pg,bases,index);
}
inline svint64_t svldff1sw_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1sw_gather_u64base_s64(pg,bases);
}
inline svuint64_t svldff1sw_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1sw_gather_u64base_u64(pg,bases);
}
inline svint64_t svldff1sw_gather_offset_s64(svbool_t pg, const int32_t *base,svint64_t offsets){
    return svldff1sw_gather_s64offset_s64(pg,base,offsets);
}
inline svuint64_t svldff1sw_gather_offset_u64(svbool_t pg,const int32_t *base,svint64_t offsets){
    return svldff1sw_gather_s64offset_u64(pg,base,offsets);
}
inline svint64_t svldff1sw_gather_offset_s64(svbool_t pg, const int32_t *base,svuint64_t offsets){
    return svldff1sw_gather_u64offset_s64(pg,base,offsets);
}
inline svuint64_t svldff1sw_gather_offset_u64(svbool_t pg,const int32_t *base,svuint64_t offsets){
    return svldff1sw_gather_u64offset_u64(pg,base,offsets);
}
inline svint64_t svldff1sw_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sw_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint64_t svldff1sw_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1sw_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint64_t svldff1sw_gather_index_s64(svbool_t pg, const int32_t *base,svint64_t indices){
    return svldff1sw_gather_s64index_s64(pg,base,indices);
}
inline svuint64_t svldff1sw_gather_index_u64(svbool_t pg, const int32_t *base,svint64_t indices){
    return svldff1sw_gather_s64index_u64(pg,base,indices);
}
inline svint64_t svldff1sw_gather_index_s64(svbool_t pg, const int32_t *base,svuint64_t indices){
    return svldff1sw_gather_u64index_s64(pg,base,indices);
}
inline svuint64_t svldff1sw_gather_index_u64(svbool_t pg, const int32_t *base,svuint64_t indices){
    return svldff1sw_gather_u64index_u64(pg,base,indices);
}
inline svint64_t svldff1sw_gather_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1sw_gather_u64base_index_s64(pg,bases,index);
}
inline svuint64_t svldff1sw_gather_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1sw_gather_u64base_index_u64(pg,bases,index);
}
inline svint64_t svldff1uw_gather_s64(svbool_t pg, svuint64_t bases){
    return svldff1uw_gather_u64base_s64(pg,bases);
}
inline svuint64_t svldff1uw_gather_u64(svbool_t pg, svuint64_t bases){
    return svldff1uw_gather_u64base_u64(pg,bases);
}
inline svint64_t svldff1uw_gather_offset_s64(svbool_t pg,const uint32_t *base,svint64_t offsets){
    return svldff1uw_gather_s64offset_s64(pg,base,offsets);
}
inline svuint64_t svldff1uw_gather_offset_u64(svbool_t pg,const uint32_t *base,svint64_t offsets){
    return svldff1uw_gather_s64offset_u64(pg,base,offsets);
}
inline svint64_t svldff1uw_gather_offset_s64(svbool_t pg,const uint32_t *base,svuint64_t offsets){
    return svldff1uw_gather_u64offset_s64(pg,base,offsets);
}
inline svuint64_t svldff1uw_gather_offset_u64(svbool_t pg,const uint32_t *base,svuint64_t offsets){
    return svldff1uw_gather_u64offset_u64(pg,base,offsets);
}
inline svint64_t svldff1uw_gather_offset_s64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1uw_gather_u64base_offset_s64(pg,bases,offset);
}
inline svuint64_t svldff1uw_gather_offset_u64(svbool_t pg,svuint64_t bases,int64_t offset){
    return svldff1uw_gather_u64base_offset_u64(pg,bases,offset);
}
inline svint64_t svldff1uw_gather_index_s64(svbool_t pg, const uint32_t *base,svint64_t indices){
    return svldff1uw_gather_s64index_s64(pg,base,indices);
}
inline svuint64_t svldff1uw_gather_index_u64(svbool_t pg,const uint32_t *base,svint64_t indices){
    return svldff1uw_gather_s64index_u64(pg,base,indices);
}
inline svint64_t svldff1uw_gather_index_s64(svbool_t pg, const uint32_t *base,svuint64_t indices){
    return svldff1uw_gather_u64index_s64(pg,base,indices);
}
inline svuint64_t svldff1uw_gather_index_u64(svbool_t pg,const uint32_t *base,svuint64_t indices){
    return svldff1uw_gather_u64index_u64(pg,base,indices);
}
inline svint64_t svldff1uw_gather_index_s64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1uw_gather_u64base_index_s64(pg,bases,index);
}
inline svuint64_t svldff1uw_gather_index_u64(svbool_t pg,svuint64_t bases,int64_t index){
    return svldff1uw_gather_u64base_index_u64(pg,bases,index);
}
inline svint8_t svldnf1(svbool_t pg, const int8_t *base){
    return svldnf1_s8(pg,base);
}
inline svint16_t svldnf1(svbool_t pg, const int16_t *base){
    return svldnf1_s16(pg,base);
}
inline svint32_t svldnf1(svbool_t pg, const int32_t *base){
    return svldnf1_s32(pg,base);
}
inline svint64_t svldnf1(svbool_t pg, const int64_t *base){
    return svldnf1_s64(pg,base);
}
inline svuint8_t svldnf1(svbool_t pg, const uint8_t *base){
    return svldnf1_u8(pg,base);
}
inline svuint16_t svldnf1(svbool_t pg, const uint16_t *base){
    return svldnf1_u16(pg,base);
}
inline svuint32_t svldnf1(svbool_t pg, const uint32_t *base){
    return svldnf1_u32(pg,base);
}
inline svuint64_t svldnf1(svbool_t pg, const uint64_t *base){
    return svldnf1_u64(pg,base);
}
inline svfloat16_t svldnf1(svbool_t pg, const float16_t *base){
    return svldnf1_f16(pg,base);
}
inline svfloat32_t svldnf1(svbool_t pg, const float32_t *base){
    return svldnf1_f32(pg,base);
}
inline svfloat64_t svldnf1(svbool_t pg, const float64_t *base){
    return svldnf1_f64(pg,base);
}
inline svint8_t svldnf1_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svldnf1_vnum_s8(pg,base,vnum);
}
inline svint16_t svldnf1_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svldnf1_vnum_s16(pg,base,vnum);
}
inline svint32_t svldnf1_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svldnf1_vnum_s32(pg,base,vnum);
}
inline svint64_t svldnf1_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svldnf1_vnum_s64(pg,base,vnum);
}
inline svuint8_t svldnf1_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svldnf1_vnum_u8(pg,base,vnum);
}
inline svuint16_t svldnf1_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svldnf1_vnum_u16(pg,base,vnum);
}
inline svuint32_t svldnf1_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svldnf1_vnum_u32(pg,base,vnum);
}
inline svuint64_t svldnf1_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svldnf1_vnum_u64(pg,base,vnum);
}
inline svfloat16_t svldnf1_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svldnf1_vnum_f16(pg,base,vnum);
}
inline svfloat32_t svldnf1_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svldnf1_vnum_f32(pg,base,vnum);
}
inline svfloat64_t svldnf1_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svldnf1_vnum_f64(pg,base,vnum);
}
inline svint8_t svldnt1(svbool_t pg, const int8_t *base){
    return svldnt1_s8(pg,base);
}
inline svint16_t svldnt1(svbool_t pg, const int16_t *base){
    return svldnt1_s16(pg,base);
}
inline svint32_t svldnt1(svbool_t pg, const int32_t *base){
    return svldnt1_s32(pg,base);
}
inline svint64_t svldnt1(svbool_t pg, const int64_t *base){
    return svldnt1_s64(pg,base);
}
inline svuint8_t svldnt1(svbool_t pg, const uint8_t *base){
    return svldnt1_u8(pg,base);
}
inline svuint16_t svldnt1(svbool_t pg, const uint16_t *base){
    return svldnt1_u16(pg,base);
}
inline svuint32_t svldnt1(svbool_t pg, const uint32_t *base){
    return svldnt1_u32(pg,base);
}
inline svuint64_t svldnt1(svbool_t pg, const uint64_t *base){
    return svldnt1_u64(pg,base);
}
inline svfloat16_t svldnt1(svbool_t pg, const float16_t *base){
    return svldnt1_f16(pg,base);
}
inline svfloat32_t svldnt1(svbool_t pg, const float32_t *base){
    return svldnt1_f32(pg,base);
}
inline svfloat64_t svldnt1(svbool_t pg, const float64_t *base){
    return svldnt1_f64(pg,base);
}
inline svint8_t svldnt1_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svldnt1_vnum_s8(pg,base,vnum);
}
inline svint16_t svldnt1_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svldnt1_vnum_s16(pg,base,vnum);
}
inline svint32_t svldnt1_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svldnt1_vnum_s32(pg,base,vnum);
}
inline svint64_t svldnt1_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svldnt1_vnum_s64(pg,base,vnum);
}
inline svuint8_t svldnt1_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svldnt1_vnum_u8(pg,base,vnum);
}
inline svuint16_t svldnt1_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svldnt1_vnum_u16(pg,base,vnum);
}
inline svuint32_t svldnt1_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svldnt1_vnum_u32(pg,base,vnum);
}
inline svuint64_t svldnt1_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svldnt1_vnum_u64(pg,base,vnum);
}
inline svfloat16_t svldnt1_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svldnt1_vnum_f16(pg,base,vnum);
}
inline svfloat32_t svldnt1_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svldnt1_vnum_f32(pg,base,vnum);
}
inline svfloat64_t svldnt1_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svldnt1_vnum_f64(pg,base,vnum);
}
inline svint8x2_t svld2(svbool_t pg, const int8_t *base){
    return svld2_s8(pg,base);
}
inline svint16x2_t svld2(svbool_t pg, const int16_t *base){
    return svld2_s16(pg,base);
}
inline svint32x2_t svld2(svbool_t pg, const int32_t *base){
    return svld2_s32(pg,base);
}
inline svint64x2_t svld2(svbool_t pg, const int64_t *base){
    return svld2_s64(pg,base);
}
inline svuint8x2_t svld2(svbool_t pg, const uint8_t *base){
    return svld2_u8(pg,base);
}
inline svuint16x2_t svld2(svbool_t pg, const uint16_t *base){
    return svld2_u16(pg,base);
}
inline svuint32x2_t svld2(svbool_t pg, const uint32_t *base){
    return svld2_u32(pg,base);
}
inline svuint64x2_t svld2(svbool_t pg, const uint64_t *base){
    return svld2_u64(pg,base);
}
inline svfloat16x2_t svld2(svbool_t pg, const float16_t *base){
    return svld2_f16(pg,base);
}
inline svfloat32x2_t svld2(svbool_t pg, const float32_t *base){
    return svld2_f32(pg,base);
}
inline svfloat64x2_t svld2(svbool_t pg, const float64_t *base){
    return svld2_f64(pg,base);
}
inline svint8x2_t svld2_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svld2_vnum_s8(pg,base,vnum);
}
inline svint16x2_t svld2_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svld2_vnum_s16(pg,base,vnum);
}
inline svint32x2_t svld2_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svld2_vnum_s32(pg,base,vnum);
}
inline svint64x2_t svld2_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svld2_vnum_s64(pg,base,vnum);
}
inline svuint8x2_t svld2_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svld2_vnum_u8(pg,base,vnum);
}
inline svuint16x2_t svld2_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svld2_vnum_u16(pg,base,vnum);
}
inline svuint32x2_t svld2_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svld2_vnum_u32(pg,base,vnum);
}
inline svuint64x2_t svld2_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svld2_vnum_u64(pg,base,vnum);
}
inline svfloat16x2_t svld2_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svld2_vnum_f16(pg,base,vnum);
}
inline svfloat32x2_t svld2_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svld2_vnum_f32(pg,base,vnum);
}
inline svfloat64x2_t svld2_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svld2_vnum_f64(pg,base,vnum);
}
inline svint8x3_t svld3(svbool_t pg, const int8_t *base){
    return svld3_s8(pg,base);
}
inline svint16x3_t svld3(svbool_t pg, const int16_t *base){
    return svld3_s16(pg,base);
}
inline svint32x3_t svld3(svbool_t pg, const int32_t *base){
    return svld3_s32(pg,base);
}
inline svint64x3_t svld3(svbool_t pg, const int64_t *base){
    return svld3_s64(pg,base);
}
inline svuint8x3_t svld3(svbool_t pg, const uint8_t *base){
    return svld3_u8(pg,base);
}
inline svuint16x3_t svld3(svbool_t pg, const uint16_t *base){
    return svld3_u16(pg,base);
}
inline svuint32x3_t svld3(svbool_t pg, const uint32_t *base){
    return svld3_u32(pg,base);
}
inline svuint64x3_t svld3(svbool_t pg, const uint64_t *base){
    return svld3_u64(pg,base);
}
inline svfloat16x3_t svld3(svbool_t pg, const float16_t *base){
    return svld3_f16(pg,base);
}
inline svfloat32x3_t svld3(svbool_t pg, const float32_t *base){
    return svld3_f32(pg,base);
}
inline svfloat64x3_t svld3(svbool_t pg, const float64_t *base){
    return svld3_f64(pg,base);
}
inline svint8x3_t svld3_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svld3_vnum_s8(pg,base,vnum);
}
inline svint16x3_t svld3_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svld3_vnum_s16(pg,base,vnum);
}
inline svint32x3_t svld3_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svld3_vnum_s32(pg,base,vnum);
}
inline svint64x3_t svld3_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svld3_vnum_s64(pg,base,vnum);
}
inline svuint8x3_t svld3_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svld3_vnum_u8(pg,base,vnum);
}
inline svuint16x3_t svld3_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svld3_vnum_u16(pg,base,vnum);
}
inline svuint32x3_t svld3_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svld3_vnum_u32(pg,base,vnum);
}
inline svuint64x3_t svld3_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svld3_vnum_u64(pg,base,vnum);
}
inline svfloat16x3_t svld3_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svld3_vnum_f16(pg,base,vnum);
}
inline svfloat32x3_t svld3_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svld3_vnum_f32(pg,base,vnum);
}
inline svfloat64x3_t svld3_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svld3_vnum_f64(pg,base,vnum);
}
inline svint8x4_t svld4(svbool_t pg, const int8_t *base){
    return svld4_s8(pg,base);
}
inline svint16x4_t svld4(svbool_t pg, const int16_t *base){
    return svld4_s16(pg,base);
}
inline svint32x4_t svld4(svbool_t pg, const int32_t *base){
    return svld4_s32(pg,base);
}
inline svint64x4_t svld4(svbool_t pg, const int64_t *base){
    return svld4_s64(pg,base);
}
inline svuint8x4_t svld4(svbool_t pg, const uint8_t *base){
    return svld4_u8(pg,base);
}
inline svuint16x4_t svld4(svbool_t pg, const uint16_t *base){
    return svld4_u16(pg,base);
}
inline svuint32x4_t svld4(svbool_t pg, const uint32_t *base){
    return svld4_u32(pg,base);
}
inline svuint64x4_t svld4(svbool_t pg, const uint64_t *base){
    return svld4_u64(pg,base);
}
inline svfloat16x4_t svld4(svbool_t pg, const float16_t *base){
    return svld4_f16(pg,base);
}
inline svfloat32x4_t svld4(svbool_t pg, const float32_t *base){
    return svld4_f32(pg,base);
}
inline svfloat64x4_t svld4(svbool_t pg, const float64_t *base){
    return svld4_f64(pg,base);
}
inline svint8x4_t svld4_vnum(svbool_t pg, const int8_t *base, int64_t vnum){
    return svld4_vnum_s8(pg,base,vnum);
}
inline svint16x4_t svld4_vnum(svbool_t pg, const int16_t *base,int64_t vnum){
    return svld4_vnum_s16(pg,base,vnum);
}
inline svint32x4_t svld4_vnum(svbool_t pg, const int32_t *base,int64_t vnum){
    return svld4_vnum_s32(pg,base,vnum);
}
inline svint64x4_t svld4_vnum(svbool_t pg, const int64_t *base,int64_t vnum){
    return svld4_vnum_s64(pg,base,vnum);
}
inline svuint8x4_t svld4_vnum(svbool_t pg, const uint8_t *base, int64_t vnum){
    return svld4_vnum_u8(pg,base,vnum);
}
inline svuint16x4_t svld4_vnum(svbool_t pg, const uint16_t *base,int64_t vnum){
    return svld4_vnum_u16(pg,base,vnum);
}
inline svuint32x4_t svld4_vnum(svbool_t pg, const uint32_t *base,int64_t vnum){
    return svld4_vnum_u32(pg,base,vnum);
}
inline svuint64x4_t svld4_vnum(svbool_t pg, const uint64_t *base,int64_t vnum){
    return svld4_vnum_u64(pg,base,vnum);
}
inline svfloat16x4_t svld4_vnum(svbool_t pg, const float16_t *base,int64_t vnum){
    return svld4_vnum_f16(pg,base,vnum);
}
inline svfloat32x4_t svld4_vnum(svbool_t pg, const float32_t *base,int64_t vnum){
    return svld4_vnum_f32(pg,base,vnum);
}
inline svfloat64x4_t svld4_vnum(svbool_t pg, const float64_t *base,int64_t vnum){
    return svld4_vnum_f64(pg,base,vnum);
}
inline void   svst1(svbool_t pg, int8_t *base, svint8_t data){
 svst1_s8(pg,base,data);
}
inline void   svst1(svbool_t pg, int16_t *base, svint16_t data){
 svst1_s16(pg,base,data);
}
inline void   svst1(svbool_t pg, int32_t *base, svint32_t data){
 svst1_s32(pg,base,data);
}
inline void   svst1(svbool_t pg, int64_t *base, svint64_t data){
 svst1_s64(pg,base,data);
}
inline void   svst1(svbool_t pg, uint8_t *base, svuint8_t data){
 svst1_u8(pg,base,data);
}
inline void   svst1(svbool_t pg, uint16_t *base, svuint16_t data){
 svst1_u16(pg,base,data);
}
inline void   svst1(svbool_t pg, uint32_t *base, svuint32_t data){
 svst1_u32(pg,base,data);
}
inline void   svst1(svbool_t pg, uint64_t *base, svuint64_t data){
 svst1_u64(pg,base,data);
}
inline void   svst1(svbool_t pg, float16_t *base, svfloat16_t data){
 svst1_f16(pg,base,data);
}
inline void   svst1(svbool_t pg, float32_t *base, svfloat32_t data){
 svst1_f32(pg,base,data);
}
inline void   svst1(svbool_t pg, float64_t *base, svfloat64_t data){
 svst1_f64(pg,base,data);
}
inline void svst1_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint8_t data){
 svst1_vnum_s8(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint16_t data){
 svst1_vnum_s16(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint32_t data){
 svst1_vnum_s32(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, int64_t *base, int64_t vnum,svint64_t data){
 svst1_vnum_s64(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint8_t data){
 svst1_vnum_u8(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint16_t data){
 svst1_vnum_u16(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint32_t data){
 svst1_vnum_u32(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, uint64_t *base, int64_t vnum,svuint64_t data){
 svst1_vnum_u64(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, float16_t *base, int64_t vnum,svfloat16_t data){
 svst1_vnum_f16(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, float32_t *base, int64_t vnum,svfloat32_t data){
 svst1_vnum_f32(pg,base,vnum,data);
}
inline void svst1_vnum(svbool_t pg, float64_t *base, int64_t vnum,svfloat64_t data){
 svst1_vnum_f64(pg,base,vnum,data);
}
inline void svst1_scatter(svbool_t pg, svuint32_t                bases,svint32_t data){
 svst1_scatter_u32base_s32(pg,bases,data);
}
inline void svst1_scatter(svbool_t pg, svuint64_t                bases,svint64_t data){
 svst1_scatter_u64base_s64(pg,bases,data);
}
inline void svst1_scatter(svbool_t pg, svuint32_t                bases,svuint32_t data){
 svst1_scatter_u32base_u32(pg,bases,data);
}
inline void svst1_scatter(svbool_t pg, svuint64_t                bases,svuint64_t data){
 svst1_scatter_u64base_u64(pg,bases,data);
}
inline void svst1_scatter(svbool_t pg, svuint32_t                bases,svfloat32_t data){
 svst1_scatter_u32base_f32(pg,bases,data);
}
inline void svst1_scatter(svbool_t pg, svuint64_t                bases,svfloat64_t data){
 svst1_scatter_u64base_f64(pg,bases,data);
}
inline void svst1_scatter_offset(svbool_t pg, int32_t *base,svint32_t offsets, svint32_t data){
 svst1_scatter_s32offset_s32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, int64_t *base,svint64_t offsets, svint64_t data){
 svst1_scatter_s64offset_s64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, uint32_t *base,svint32_t offsets, svuint32_t data){
 svst1_scatter_s32offset_u32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, uint64_t *base,svint64_t offsets, svuint64_t data){
 svst1_scatter_s64offset_u64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, float32_t *base,svint32_t offsets, svfloat32_t data){
 svst1_scatter_s32offset_f32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, float64_t *base,svint64_t offsets, svfloat64_t data){
 svst1_scatter_s64offset_f64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, int32_t *base,svuint32_t offsets, svint32_t data){
 svst1_scatter_u32offset_s32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, int64_t *base,svuint64_t offsets, svint64_t data){
 svst1_scatter_u64offset_s64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, uint32_t *base,svuint32_t offsets, svuint32_t data){
 svst1_scatter_u32offset_u32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, uint64_t *base,svuint64_t offsets, svuint64_t data){
 svst1_scatter_u64offset_u64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, float32_t *base,svuint32_t offsets, svfloat32_t data){
 svst1_scatter_u32offset_f32(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, float64_t *base,svuint64_t offsets, svfloat64_t data){
 svst1_scatter_u64offset_f64(pg,base,offsets,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
 svst1_scatter_u32base_offset_s32(pg,bases,offset,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
 svst1_scatter_u64base_offset_s64(pg,bases,offset,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
 svst1_scatter_u32base_offset_u32(pg,bases,offset,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
 svst1_scatter_u64base_offset_u64(pg,bases,offset,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svfloat32_t data){
 svst1_scatter_u32base_offset_f32(pg,bases,offset,data);
}
inline void svst1_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svfloat64_t data){
 svst1_scatter_u64base_offset_f64(pg,bases,offset,data);
}
inline void svst1_scatter_index(svbool_t pg, int32_t *base,svint32_t indices, svint32_t data){
 svst1_scatter_s32index_s32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, int64_t *base,svint64_t indices, svint64_t data){
 svst1_scatter_s64index_s64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, uint32_t *base,svint32_t indices, svuint32_t data){
 svst1_scatter_s32index_u32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, uint64_t *base,svint64_t indices, svuint64_t data){
 svst1_scatter_s64index_u64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, float32_t *base,svint32_t indices, svfloat32_t data){
 svst1_scatter_s32index_f32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, float64_t *base,svint64_t indices, svfloat64_t data){
 svst1_scatter_s64index_f64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, int32_t *base,svuint32_t indices, svint32_t data){
 svst1_scatter_u32index_s32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, int64_t *base,svuint64_t indices, svint64_t data){
 svst1_scatter_u64index_s64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, uint32_t *base,svuint32_t indices, svuint32_t data){
 svst1_scatter_u32index_u32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, uint64_t *base,svuint64_t indices, svuint64_t data){
 svst1_scatter_u64index_u64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, float32_t *base,svuint32_t indices, svfloat32_t data){
 svst1_scatter_u32index_f32(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, float64_t *base,svuint64_t indices, svfloat64_t data){
 svst1_scatter_u64index_f64(pg,base,indices,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint32_t bases,int64_t index, svint32_t data){
 svst1_scatter_u32base_index_s32(pg,bases,index,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
 svst1_scatter_u64base_index_s64(pg,bases,index,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint32_t bases,int64_t index, svuint32_t data){
 svst1_scatter_u32base_index_u32(pg,bases,index,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
 svst1_scatter_u64base_index_u64(pg,bases,index,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint32_t bases,int64_t index, svfloat32_t data){
 svst1_scatter_u32base_index_f32(pg,bases,index,data);
}
inline void svst1_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svfloat64_t data){
 svst1_scatter_u64base_index_f64(pg,bases,index,data);
}
inline void   svst1b(svbool_t        pg,   int8_t *base, svint16_t data){
 svst1b_s16(pg,base,data);
}
inline void   svst1b(svbool_t        pg,   int8_t *base, svint32_t data){
 svst1b_s32(pg,base,data);
}
inline void   svst1b(svbool_t        pg,   int8_t *base, svint64_t data){
 svst1b_s64(pg,base,data);
}
inline void   svst1b(svbool_t        pg,   uint8_t *base, svuint16_t data){
 svst1b_u16(pg,base,data);
}
inline void   svst1b(svbool_t        pg,   uint8_t *base, svuint32_t data){
 svst1b_u32(pg,base,data);
}
inline void   svst1b(svbool_t        pg,   uint8_t *base, svuint64_t data){
 svst1b_u64(pg,base,data);
}
inline void svst1b_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint16_t data){
 svst1b_vnum_s16(pg,base,vnum,data);
}
inline void svst1b_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint32_t data){
 svst1b_vnum_s32(pg,base,vnum,data);
}
inline void svst1b_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint64_t data){
 svst1b_vnum_s64(pg,base,vnum,data);
}
inline void svst1b_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint16_t data){
 svst1b_vnum_u16(pg,base,vnum,data);
}
inline void svst1b_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint32_t data){
 svst1b_vnum_u32(pg,base,vnum,data);
}
inline void svst1b_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint64_t data){
 svst1b_vnum_u64(pg,base,vnum,data);
}
inline void svst1b_scatter(svbool_t pg, svuint32_t bases,svint32_t data){
 svst1b_scatter_u32base_s32(pg,bases,data);
}
inline void svst1b_scatter(svbool_t pg, svuint64_t bases,svint64_t data){
 svst1b_scatter_u64base_s64(pg,bases,data);
}
inline void svst1b_scatter(svbool_t pg, svuint32_t bases,svuint32_t data){
 svst1b_scatter_u32base_u32(pg,bases,data);
}
inline void svst1b_scatter(svbool_t pg, svuint64_t bases,svuint64_t data){
 svst1b_scatter_u64base_u64(pg,bases,data);
}
inline void svst1b_scatter_offset(svbool_t pg, int8_t *base,svint32_t offsets, svint32_t data){
 svst1b_scatter_s32offset_s32(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, int8_t *base,svint64_t offsets, svint64_t data){
 svst1b_scatter_s64offset_s64(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, uint8_t *base,svint32_t offsets, svuint32_t data){
 svst1b_scatter_s32offset_u32(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, uint8_t *base,svint64_t offsets, svuint64_t data){
 svst1b_scatter_s64offset_u64(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, int8_t *base,svuint32_t offsets, svint32_t data){
 svst1b_scatter_u32offset_s32(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, int8_t *base,svuint64_t offsets, svint64_t data){
 svst1b_scatter_u64offset_s64(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, uint8_t *base,svuint32_t offsets, svuint32_t data){
 svst1b_scatter_u32offset_u32(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, uint8_t *base,svuint64_t offsets, svuint64_t data){
 svst1b_scatter_u64offset_u64(pg,base,offsets,data);
}
inline void svst1b_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
 svst1b_scatter_u32base_offset_s32(pg,bases,offset,data);
}
inline void svst1b_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
 svst1b_scatter_u64base_offset_s64(pg,bases,offset,data);
}
inline void svst1b_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
 svst1b_scatter_u32base_offset_u32(pg,bases,offset,data);
}
inline void svst1b_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
 svst1b_scatter_u64base_offset_u64(pg,bases,offset,data);
}
inline void   svst1h(svbool_t        pg,   int16_t *base, svint32_t data){
 svst1h_s32(pg,base,data);
}
inline void   svst1h(svbool_t        pg,   int16_t *base, svint64_t data){
 svst1h_s64(pg,base,data);
}
inline void   svst1h(svbool_t        pg,   uint16_t *base, svuint32_t data){
 svst1h_u32(pg,base,data);
}
inline void   svst1h(svbool_t        pg,   uint16_t *base, svuint64_t data){
 svst1h_u64(pg,base,data);
}
inline void svst1h_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint32_t data){
 svst1h_vnum_s32(pg,base,vnum,data);
}
inline void svst1h_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint64_t data){
 svst1h_vnum_s64(pg,base,vnum,data);
}
inline void svst1h_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint32_t data){
 svst1h_vnum_u32(pg,base,vnum,data);
}
inline void svst1h_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint64_t data){
 svst1h_vnum_u64(pg,base,vnum,data);
}
inline void svst1h_scatter(svbool_t pg, svuint32_t                bases,svint32_t data){
 svst1h_scatter_u32base_s32(pg,bases,data);
}
inline void svst1h_scatter(svbool_t pg, svuint64_t                bases,svint64_t data){
 svst1h_scatter_u64base_s64(pg,bases,data);
}
inline void svst1h_scatter(svbool_t pg, svuint32_t                bases,svuint32_t data){
 svst1h_scatter_u32base_u32(pg,bases,data);
}
inline void svst1h_scatter(svbool_t pg, svuint64_t                bases,svuint64_t data){
 svst1h_scatter_u64base_u64(pg,bases,data);
}
inline void svst1h_scatter_offset(svbool_t pg, int16_t *base,svint32_t offsets, svint32_t data){
 svst1h_scatter_s32offset_s32(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, int16_t *base,svint64_t offsets, svint64_t data){
 svst1h_scatter_s64offset_s64(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, uint16_t *base,svint32_t offsets, svuint32_t data){
 svst1h_scatter_s32offset_u32(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, uint16_t *base,svint64_t offsets, svuint64_t data){
 svst1h_scatter_s64offset_u64(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, int16_t *base,svuint32_t offsets, svint32_t data){
 svst1h_scatter_u32offset_s32(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, int16_t *base,svuint64_t offsets, svint64_t data){
 svst1h_scatter_u64offset_s64(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, uint16_t *base,svuint32_t offsets, svuint32_t data){
 svst1h_scatter_u32offset_u32(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, uint16_t *base,svuint64_t offsets, svuint64_t data){
 svst1h_scatter_u64offset_u64(pg,base,offsets,data);
}
inline void svst1h_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svint32_t data){
 svst1h_scatter_u32base_offset_s32(pg,bases,offset,data);
}
inline void svst1h_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
 svst1h_scatter_u64base_offset_s64(pg,bases,offset,data);
}
inline void svst1h_scatter_offset(svbool_t pg, svuint32_t bases,int64_t offset, svuint32_t data){
 svst1h_scatter_u32base_offset_u32(pg,bases,offset,data);
}
inline void svst1h_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
 svst1h_scatter_u64base_offset_u64(pg,bases,offset,data);
}
inline void svst1h_scatter_index(svbool_t pg, int16_t *base,svint32_t indices, svint32_t data){
 svst1h_scatter_s32index_s32(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, int16_t *base,svint64_t indices, svint64_t data){
 svst1h_scatter_s64index_s64(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, uint16_t *base,svint32_t indices, svuint32_t data){
 svst1h_scatter_s32index_u32(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, uint16_t *base,svint64_t indices, svuint64_t data){
 svst1h_scatter_s64index_u64(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, int16_t *base,svuint32_t indices, svint32_t data){
 svst1h_scatter_u32index_s32(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, int16_t *base,svuint64_t indices, svint64_t data){
 svst1h_scatter_u64index_s64(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, uint16_t *base,svuint32_t indices, svuint32_t data){
 svst1h_scatter_u32index_u32(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, uint16_t *base,svuint64_t indices, svuint64_t data){
 svst1h_scatter_u64index_u64(pg,base,indices,data);
}
inline void svst1h_scatter_index(svbool_t pg, svuint32_t bases,int64_t index, svint32_t data){
 svst1h_scatter_u32base_index_s32(pg,bases,index,data);
}
inline void svst1h_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
 svst1h_scatter_u64base_index_s64(pg,bases,index,data);
}
inline void svst1h_scatter_index(svbool_t pg, svuint32_t bases,int64_t index, svuint32_t data){
 svst1h_scatter_u32base_index_u32(pg,bases,index,data);
}
inline void svst1h_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
 svst1h_scatter_u64base_index_u64(pg,bases,index,data);
}
inline void svst1w(svbool_t pg, int32_t *base, svint64_t data){
 svst1w_s64(pg,base,data);
}
inline void svst1w(svbool_t pg, uint32_t *base, svuint64_t data){
 svst1w_u64(pg,base,data);
}
inline void svst1w_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint64_t data){
 svst1w_vnum_s64(pg,base,vnum,data);
}
inline void svst1w_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint64_t data){
 svst1w_vnum_u64(pg,base,vnum,data);
}
inline void svst1w_scatter(svbool_t pg, svuint64_t bases,svint64_t data){
 svst1w_scatter_u64base_s64(pg,bases,data);
}
inline void svst1w_scatter(svbool_t pg, svuint64_t bases,svuint64_t data){
 svst1w_scatter_u64base_u64(pg,bases,data);
}
inline void svst1w_scatter_offset(svbool_t pg, int32_t *base,svint64_t offsets, svint64_t data){
 svst1w_scatter_s64offset_s64(pg,base,offsets,data);
}
inline void svst1w_scatter_offset(svbool_t pg, uint32_t *base,svint64_t offsets, svuint64_t data){
 svst1w_scatter_s64offset_u64(pg,base,offsets,data);
}
inline void svst1w_scatter_offset(svbool_t pg, int32_t *base,svuint64_t offsets, svint64_t data){
 svst1w_scatter_u64offset_s64(pg,base,offsets,data);
}
inline void svst1w_scatter_offset(svbool_t pg, uint32_t *base,svuint64_t offsets, svuint64_t data){
 svst1w_scatter_u64offset_u64(pg,base,offsets,data);
}
inline void svst1w_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svint64_t data){
 svst1w_scatter_u64base_offset_s64(pg,bases,offset,data);
}
inline void svst1w_scatter_offset(svbool_t pg, svuint64_t bases,int64_t offset, svuint64_t data){
 svst1w_scatter_u64base_offset_u64(pg,bases,offset,data);
}
inline void svst1w_scatter_index(svbool_t pg, int32_t *base,svint64_t indices, svint64_t data){
 svst1w_scatter_s64index_s64(pg,base,indices,data);
}
inline void svst1w_scatter_index(svbool_t pg, uint32_t *base,svint64_t indices, svuint64_t data){
 svst1w_scatter_s64index_u64(pg,base,indices,data);
}
inline void svst1w_scatter_index(svbool_t pg, int32_t *base,svuint64_t indices, svint64_t data){
 svst1w_scatter_u64index_s64(pg,base,indices,data);
}
inline void svst1w_scatter_index(svbool_t pg, uint32_t *base,svuint64_t indices, svuint64_t data){
 svst1w_scatter_u64index_u64(pg,base,indices,data);
}
inline void svst1w_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svint64_t data){
 svst1w_scatter_u64base_index_s64(pg,bases,index,data);
}
inline void svst1w_scatter_index(svbool_t pg, svuint64_t bases,int64_t index, svuint64_t data){
 svst1w_scatter_u64base_index_u64(pg,bases,index,data);
}
inline void svstnt1(svbool_t pg, int8_t *base, svint8_t data){
 svstnt1_s8(pg,base,data);
}
inline void   svstnt1(svbool_t pg, int16_t *base, svint16_t data){
 svstnt1_s16(pg,base,data);
}
inline void   svstnt1(svbool_t pg, int32_t *base, svint32_t data){
 svstnt1_s32(pg,base,data);
}
inline void   svstnt1(svbool_t pg, int64_t *base, svint64_t data){
 svstnt1_s64(pg,base,data);
}
inline void   svstnt1(svbool_t pg, uint8_t *base, svuint8_t data){
 svstnt1_u8(pg,base,data);
}
inline void   svstnt1(svbool_t pg, uint16_t *base, svuint16_t data){
 svstnt1_u16(pg,base,data);
}
inline void   svstnt1(svbool_t pg, uint32_t *base, svuint32_t data){
 svstnt1_u32(pg,base,data);
}
inline void   svstnt1(svbool_t pg, uint64_t *base, svuint64_t data){
 svstnt1_u64(pg,base,data);
}
inline void   svstnt1(svbool_t pg, float16_t *base, svfloat16_t data){
 svstnt1_f16(pg,base,data);
}
inline void   svstnt1(svbool_t pg, float32_t *base, svfloat32_t data){
 svstnt1_f32(pg,base,data);
}
inline void   svstnt1(svbool_t pg, float64_t *base, svfloat64_t data){
 svstnt1_f64(pg,base,data);
}
inline void svstnt1_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint8_t data){
 svstnt1_vnum_s8(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint16_t data){
 svstnt1_vnum_s16(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint32_t data){
 svstnt1_vnum_s32(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, int64_t *base, int64_t vnum,svint64_t data){
 svstnt1_vnum_s64(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint8_t data){
 svstnt1_vnum_u8(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint16_t data){
 svstnt1_vnum_u16(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint32_t data){
 svstnt1_vnum_u32(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, uint64_t *base, int64_t vnum,svuint64_t data){
 svstnt1_vnum_u64(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, float16_t *base, int64_t vnum,svfloat16_t data){
 svstnt1_vnum_f16(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, float32_t *base, int64_t vnum,svfloat32_t data){
 svstnt1_vnum_f32(pg,base,vnum,data);
}
inline void svstnt1_vnum(svbool_t pg, float64_t *base, int64_t vnum,svfloat64_t data){
 svstnt1_vnum_f64(pg,base,vnum,data);
}
inline void   svst2(svbool_t pg, int8_t *base, svint8x2_t data){
 svst2_s8(pg,base,data);
}
inline void   svst2(svbool_t pg, int16_t *base, svint16x2_t data){
 svst2_s16(pg,base,data);
}
inline void   svst2(svbool_t pg, int32_t *base, svint32x2_t data){
 svst2_s32(pg,base,data);
}
inline void   svst2(svbool_t pg, int64_t *base, svint64x2_t data){
 svst2_s64(pg,base,data);
}
inline void   svst2(svbool_t pg, uint8_t *base, svuint8x2_t data){
 svst2_u8(pg,base,data);
}
inline void   svst2(svbool_t pg, uint16_t *base, svuint16x2_t data){
 svst2_u16(pg,base,data);
}
inline void   svst2(svbool_t pg, uint32_t *base, svuint32x2_t data){
 svst2_u32(pg,base,data);
}
inline void   svst2(svbool_t pg, uint64_t *base, svuint64x2_t data){
 svst2_u64(pg,base,data);
}
inline void   svst2(svbool_t pg, float16_t *base, svfloat16x2_t data){
 svst2_f16(pg,base,data);
}
inline void   svst2(svbool_t pg, float32_t *base, svfloat32x2_t data){
 svst2_f32(pg,base,data);
}
inline void svst2(svbool_t pg, float64_t *base, svfloat64x2_t data){
 svst2_f64(pg,base,data);
}
inline void svst2_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint8x2_t data){
 svst2_vnum_s8(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint16x2_t data){
 svst2_vnum_s16(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint32x2_t data){
 svst2_vnum_s32(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, int64_t *base, int64_t vnum,svint64x2_t data){
 svst2_vnum_s64(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x2_t data){
 svst2_vnum_u8(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x2_t data){
 svst2_vnum_u16(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x2_t data){
 svst2_vnum_u32(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x2_t data){
 svst2_vnum_u64(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x2_t data){
 svst2_vnum_f16(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x2_t data){
 svst2_vnum_f32(pg,base,vnum,data);
}
inline void svst2_vnum(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x2_t data){
 svst2_vnum_f64(pg,base,vnum,data);
}
inline void   svst3(svbool_t pg, int8_t *base, svint8x3_t data){
 svst3_s8(pg,base,data);
}
inline void   svst3(svbool_t pg, int16_t *base, svint16x3_t data){
 svst3_s16(pg,base,data);
}
inline void   svst3(svbool_t pg, int32_t *base, svint32x3_t data){
 svst3_s32(pg,base,data);
}
inline void   svst3(svbool_t pg, int64_t *base, svint64x3_t data){
 svst3_s64(pg,base,data);
}
inline void   svst3(svbool_t pg, uint8_t *base, svuint8x3_t data){
 svst3_u8(pg,base,data);
}
inline void   svst3(svbool_t pg, uint16_t *base, svuint16x3_t data){
 svst3_u16(pg,base,data);
}
inline void   svst3(svbool_t pg, uint32_t *base, svuint32x3_t data){
 svst3_u32(pg,base,data);
}
inline void   svst3(svbool_t pg, uint64_t *base, svuint64x3_t data){
 svst3_u64(pg,base,data);
}
inline void   svst3(svbool_t pg, float16_t *base, svfloat16x3_t data){
 svst3_f16(pg,base,data);
}
inline void   svst3(svbool_t pg, float32_t *base, svfloat32x3_t data){
 svst3_f32(pg,base,data);
}
inline void   svst3(svbool_t pg, float64_t *base, svfloat64x3_t data){
 svst3_f64(pg,base,data);
}
inline void svst3_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint8x3_t data){
 svst3_vnum_s8(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint16x3_t data){
 svst3_vnum_s16(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint32x3_t data){
 svst3_vnum_s32(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, int64_t *base, int64_t vnum,svint64x3_t data){
 svst3_vnum_s64(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x3_t data){
 svst3_vnum_u8(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x3_t data){
 svst3_vnum_u16(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x3_t data){
 svst3_vnum_u32(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x3_t data){
 svst3_vnum_u64(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x3_t data){
 svst3_vnum_f16(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x3_t data){
 svst3_vnum_f32(pg,base,vnum,data);
}
inline void svst3_vnum(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x3_t data){
 svst3_vnum_f64(pg,base,vnum,data);
}
inline void   svst4(svbool_t pg, int8_t *base, svint8x4_t data){
 svst4_s8(pg,base,data);
}
inline void   svst4(svbool_t pg, int16_t *base, svint16x4_t data){
 svst4_s16(pg,base,data);
}
inline void   svst4(svbool_t pg, int32_t *base, svint32x4_t data){
 svst4_s32(pg,base,data);
}
inline void   svst4(svbool_t pg, int64_t *base, svint64x4_t data){
 svst4_s64(pg,base,data);
}
inline void   svst4(svbool_t pg, uint8_t *base, svuint8x4_t data){
 svst4_u8(pg,base,data);
}
inline void   svst4(svbool_t pg, uint16_t *base, svuint16x4_t data){
 svst4_u16(pg,base,data);
}
inline void   svst4(svbool_t pg, uint32_t *base, svuint32x4_t data){
 svst4_u32(pg,base,data);
}
inline void   svst4(svbool_t pg, uint64_t *base, svuint64x4_t data){
 svst4_u64(pg,base,data);
}
inline void   svst4(svbool_t pg, float16_t *base, svfloat16x4_t data){
 svst4_f16(pg,base,data);
}
inline void   svst4(svbool_t pg, float32_t *base, svfloat32x4_t data){
 svst4_f32(pg,base,data);
}
inline void   svst4(svbool_t pg, float64_t *base, svfloat64x4_t data){
 svst4_f64(pg,base,data);
}
inline void svst4_vnum(svbool_t pg, int8_t *base, int64_t vnum,svint8x4_t data){
 svst4_vnum_s8(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, int16_t *base, int64_t vnum,svint16x4_t data){
 svst4_vnum_s16(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, int32_t *base, int64_t vnum,svint32x4_t data){
 svst4_vnum_s32(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, int64_t *base, int64_t vnum,svint64x4_t data){
 svst4_vnum_s64(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, uint8_t *base, int64_t vnum,svuint8x4_t data){
 svst4_vnum_u8(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, uint16_t *base, int64_t vnum,svuint16x4_t data){
 svst4_vnum_u16(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, uint32_t *base, int64_t vnum,svuint32x4_t data){
 svst4_vnum_u32(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, uint64_t *base, int64_t vnum,svuint64x4_t data){
 svst4_vnum_u64(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, float16_t *base, int64_t vnum,svfloat16x4_t data){
 svst4_vnum_f16(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, float32_t *base, int64_t vnum,svfloat32x4_t data){
 svst4_vnum_f32(pg,base,vnum,data);
}
inline void svst4_vnum(svbool_t pg, float64_t *base, int64_t vnum,svfloat64x4_t data){
 svst4_vnum_f64(pg,base,vnum,data);
}
inline void svprfb_gather(svbool_t pg, svuint32_t bases, svprfop op){
 svprfb_gather_u32base(pg,bases,op);
}
inline void svprfb_gather(svbool_t pg, svuint64_t bases, svprfop op){
 svprfb_gather_u64base(pg,bases,op);
}
inline void svprfb_gather_offset(svbool_t pg, const void *base,svint32_t offsets, svprfop op){
 svprfb_gather_s32offset(pg,base,offsets,op);
}
inline void svprfb_gather_offset(svbool_t pg, const void *base,svint64_t offsets, svprfop op){
 svprfb_gather_s64offset(pg,base,offsets,op);
}
inline void svprfb_gather_offset(svbool_t pg, const void *base,svuint32_t offsets, svprfop op){
 svprfb_gather_u32offset(pg,base,offsets,op);
}
inline void svprfb_gather_offset(svbool_t pg, const void *base,svuint64_t offsets, svprfop op){
 svprfb_gather_u64offset(pg,base,offsets,op);
}
inline void svprfb_gather_offset(svbool_t pg, svuint32_t                bases,int64_t offset, svprfop                op){
 svprfb_gather_u32base_offset(pg,bases,offset,op);
}
inline void svprfb_gather_offset(svbool_t pg, svuint64_t                bases,int64_t offset, svprfop                op){
 svprfb_gather_u64base_offset(pg,bases,offset,op);
}
inline void svprfh_gather(svbool_t pg, svuint32_t bases, svprfop op){
 svprfh_gather_u32base(pg,bases,op);
}
inline void svprfh_gather(svbool_t pg, svuint64_t bases, svprfop op){
 svprfh_gather_u64base(pg,bases,op);
}
inline void svprfh_gather_index(svbool_t pg, const void *base,svint32_t indices, svprfop op){
 svprfh_gather_s32index(pg,base,indices,op);
}
inline void svprfh_gather_index(svbool_t pg, const void *base,svint64_t indices, svprfop op){
 svprfh_gather_s64index(pg,base,indices,op);
}
inline void svprfh_gather_index(svbool_t pg, const void *base,svuint32_t indices, svprfop op){
 svprfh_gather_u32index(pg,base,indices,op);
}
inline void svprfh_gather_index(svbool_t pg, const void *base,svuint64_t indices, svprfop op){
 svprfh_gather_u64index(pg,base,indices,op);
}
inline void svprfh_gather_index(svbool_t pg, svuint32_t bases,int64_t index, svprfop op){
 svprfh_gather_u32base_index(pg,bases,index,op);
}
inline void svprfh_gather_index(svbool_t pg, svuint64_t bases,int64_t index, svprfop op){
 svprfh_gather_u64base_index(pg,bases,index,op);
}
inline void svprfw_gather(svbool_t pg, svuint32_t bases, svprfop op){
 svprfw_gather_u32base(pg,bases,op);
}
inline void svprfw_gather(svbool_t pg, svuint64_t bases, svprfop op){
 svprfw_gather_u64base(pg,bases,op);
}
inline void svprfw_gather_index(svbool_t pg, const void *base,svint32_t indices, svprfop op){
 svprfw_gather_s32index(pg,base,indices,op);
}
inline void svprfw_gather_index(svbool_t pg, const void *base,svint64_t indices, svprfop op){
 svprfw_gather_s64index(pg,base,indices,op);
}
inline void svprfw_gather_index(svbool_t pg, const void *base,svuint32_t indices, svprfop op){
 svprfw_gather_u32index(pg,base,indices,op);
}
inline void svprfw_gather_index(svbool_t pg, const void *base,svuint64_t indices, svprfop op){
 svprfw_gather_u64index(pg,base,indices,op);
}
inline void svprfw_gather_index(svbool_t pg, svuint32_t bases,int64_t index, svprfop op){
 svprfw_gather_u32base_index(pg,bases,index,op);
}
inline void svprfw_gather_index(svbool_t pg, svuint64_t bases,int64_t index, svprfop op){
 svprfw_gather_u64base_index(pg,bases,index,op);
}
inline void svprfd_gather(svbool_t pg, svuint32_t bases, svprfop op){
 svprfd_gather_u32base(pg,bases,op);
}
inline void svprfd_gather(svbool_t pg, svuint64_t bases, svprfop op){
 svprfd_gather_u64base(pg,bases,op);
}
inline void svprfd_gather_index(svbool_t pg, const void *base,svint32_t indices, svprfop op){
 svprfd_gather_s32index(pg,base,indices,op);
}
inline void svprfd_gather_index(svbool_t pg, const void *base,svint64_t indices, svprfop op){
 svprfd_gather_s64index(pg,base,indices,op);
}
inline void svprfd_gather_index(svbool_t pg, const void *base,svuint32_t indices, svprfop op){
 svprfd_gather_u32index(pg,base,indices,op);
}
inline void svprfd_gather_index(svbool_t pg, const void *base,svuint64_t indices, svprfop op){
 svprfd_gather_u64index(pg,base,indices,op);
}
inline void svprfd_gather_index(svbool_t pg, svuint32_t bases,int64_t index, svprfop op){
 svprfd_gather_u32base_index(pg,bases,index,op);
}
inline void svprfd_gather_index(svbool_t pg, svuint64_t bases,int64_t index, svprfop op){
 svprfd_gather_u64base_index(pg,bases,index,op);
}
inline svuint32_t svadrb_offset(svuint32_t bases,svint32_t offsets){
    return svadrb_u32base_s32offset(bases,offsets);
}
inline svuint64_t svadrb_offset(svuint64_t bases,svint64_t offsets){
    return svadrb_u64base_s64offset(bases,offsets);
}
inline svuint32_t svadrb_offset(svuint32_t bases,svuint32_t offsets){
    return svadrb_u32base_u32offset(bases,offsets);
}
inline svuint64_t svadrb_offset(svuint64_t bases,svuint64_t offsets){
    return svadrb_u64base_u64offset(bases,offsets);
}
inline svuint32_t svadrh_index(svuint32_t bases, svint32_t indices){
    return svadrh_u32base_s32index(bases,indices);
}
inline svuint64_t svadrh_index(svuint64_t bases, svint64_t indices){
    return svadrh_u64base_s64index(bases,indices);
}
inline svuint32_t svadrh_index(svuint32_t bases,svuint32_t indices){
    return svadrh_u32base_u32index(bases,indices);
}
inline svuint64_t svadrh_index(svuint64_t bases,svuint64_t indices){
    return svadrh_u64base_u64index(bases,indices);
}
inline svuint32_t svadrw_index(svuint32_t bases, svint32_t indices){
    return svadrw_u32base_s32index(bases,indices);
}
inline svuint64_t svadrw_index(svuint64_t bases, svint64_t indices){
    return svadrw_u64base_s64index(bases,indices);
}
inline svuint32_t svadrw_index(svuint32_t bases,svuint32_t indices){
    return svadrw_u32base_u32index(bases,indices);
}
inline svuint64_t svadrw_index(svuint64_t bases,svuint64_t indices){
    return svadrw_u64base_u64index(bases,indices);
}
inline svuint32_t svadrd_index(svuint32_t bases, svint32_t indices){
    return svadrd_u32base_s32index(bases,indices);
}
inline svuint64_t svadrd_index(svuint64_t bases, svint64_t indices){
    return svadrd_u64base_s64index(bases,indices);
}
inline svuint32_t svadrd_index(svuint32_t bases,svuint32_t indices){
    return svadrd_u32base_u32index(bases,indices);
}
inline svuint64_t svadrd_index(svuint64_t bases,svuint64_t indices){
    return svadrd_u64base_u64index(bases,indices);
}
inline svint8_t svdup_s8(int8_t op){
    return svdup_n_s8(op);
}
inline svint16_t svdup_s16(int16_t op){
    return svdup_n_s16(op);
}
inline svint32_t svdup_s32(int32_t op){
    return svdup_n_s32(op);
}
inline svint64_t svdup_s64(int64_t op){
    return svdup_n_s64(op);
}
inline svuint8_t svdup_u8(uint8_t op){
    return svdup_n_u8(op);
}
inline svuint16_t svdup_u16(uint16_t op){
    return svdup_n_u16(op);
}
inline svuint32_t svdup_u32(uint32_t op){
    return svdup_n_u32(op);
}
inline svuint64_t svdup_u64(uint64_t op){
    return svdup_n_u64(op);
}
inline svfloat16_t svdup_f16(float16_t op){
    return svdup_n_f16(op);
}
inline svfloat32_t svdup_f32(float32_t op){
    return svdup_n_f32(op);
}
inline svfloat64_t svdup_f64(float64_t op){
    return svdup_n_f64(op);
}
inline svint8_t svdup_s8_z(svbool_t pg, int8_t op){
    return svdup_n_s8_z(pg,op);
}
inline svint16_t svdup_s16_z(svbool_t pg, int16_t op){
    return svdup_n_s16_z(pg,op);
}
inline svint32_t svdup_s32_z(svbool_t pg, int32_t op){
    return svdup_n_s32_z(pg,op);
}
inline svint64_t svdup_s64_z(svbool_t pg, int64_t op){
    return svdup_n_s64_z(pg,op);
}
inline svuint8_t svdup_u8_z(svbool_t pg, uint8_t op){
    return svdup_n_u8_z(pg,op);
}
inline svuint16_t svdup_u16_z(svbool_t pg, uint16_t op){
    return svdup_n_u16_z(pg,op);
}
inline svuint32_t svdup_u32_z(svbool_t pg, uint32_t op){
    return svdup_n_u32_z(pg,op);
}
inline svuint64_t svdup_u64_z(svbool_t pg, uint64_t op){
    return svdup_n_u64_z(pg,op);
}
inline svfloat16_t svdup_f16_z(svbool_t pg, float16_t op){
    return svdup_n_f16_z(pg,op);
}
inline svfloat32_t svdup_f32_z(svbool_t pg, float32_t op){
    return svdup_n_f32_z(pg,op);
}
inline svfloat64_t svdup_f64_z(svbool_t pg, float64_t op){
    return svdup_n_f64_z(pg,op);
}
inline svint8_t svdup_s8_m(svint8_t inactive, svbool_t pg, int8_t op){
    return svdup_n_s8_m(inactive,pg,op);
}
inline svint16_t svdup_s16_m(svint16_t inactive, svbool_t pg, int16_t op){
    return svdup_n_s16_m(inactive,pg,op);
}
inline svint32_t svdup_s32_m(svint32_t inactive, svbool_t pg, int32_t op){
    return svdup_n_s32_m(inactive,pg,op);
}
inline svint64_t svdup_s64_m(svint64_t inactive, svbool_t pg, int64_t op){
    return svdup_n_s64_m(inactive,pg,op);
}
inline svuint8_t svdup_u8_m(svuint8_t inactive, svbool_t pg, uint8_t op){
    return svdup_n_u8_m(inactive,pg,op);
}
inline svuint16_t svdup_u16_m(svuint16_t inactive, svbool_t pg, uint16_t op){
    return svdup_n_u16_m(inactive,pg,op);
}
inline svuint32_t svdup_u32_m(svuint32_t inactive, svbool_t pg, uint32_t op){
    return svdup_n_u32_m(inactive,pg,op);
}
inline svuint64_t svdup_u64_m(svuint64_t inactive, svbool_t pg, uint64_t op){
    return svdup_n_u64_m(inactive,pg,op);
}
inline svfloat16_t svdup_f16_m(svfloat16_t inactive, svbool_t pg,float16_t op){
    return svdup_n_f16_m(inactive,pg,op);
}
inline svfloat32_t svdup_f32_m(svfloat32_t inactive, svbool_t pg,float32_t op){
    return svdup_n_f32_m(inactive,pg,op);
}
inline svfloat64_t svdup_f64_m(svfloat64_t inactive, svbool_t pg,float64_t op){
    return svdup_n_f64_m(inactive,pg,op);
}
inline svint8_t svdup_s8_x(svbool_t pg, int8_t op){
    return svdup_n_s8_x(pg,op);
}
inline svint16_t svdup_s16_x(svbool_t pg, int16_t op){
    return svdup_n_s16_x(pg,op);
}
inline svint32_t svdup_s32_x(svbool_t pg, int32_t op){
    return svdup_n_s32_x(pg,op);
}
inline svint64_t svdup_s64_x(svbool_t pg, int64_t op){
    return svdup_n_s64_x(pg,op);
}
inline svuint8_t svdup_u8_x(svbool_t pg, uint8_t op){
    return svdup_n_u8_x(pg,op);
}
inline svuint16_t svdup_u16_x(svbool_t pg, uint16_t op){
    return svdup_n_u16_x(pg,op);
}
inline svuint32_t svdup_u32_x(svbool_t pg, uint32_t op){
    return svdup_n_u32_x(pg,op);
}
inline svuint64_t svdup_u64_x(svbool_t pg, uint64_t op){
    return svdup_n_u64_x(pg,op);
}
inline svfloat16_t svdup_f16_x(svbool_t pg, float16_t op){
    return svdup_n_f16_x(pg,op);
}
inline svfloat32_t svdup_f32_x(svbool_t pg, float32_t op){
    return svdup_n_f32_x(pg,op);
}
inline svfloat64_t svdup_f64_x(svbool_t pg, float64_t op){
    return svdup_n_f64_x(pg,op);
}
inline svint8_t svdupq_s8(int8_t x0, int8_t x1, int8_t x2, int8_t x3,int8_t x4, int8_t x5, int8_t x6, int8_t x7,int8_t x8, int8_t x9, int8_t x10, int8_t x11,int8_t x12, int8_t x13, int8_t x14, int8_t x15){
    return svdupq_n_s8(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
}
inline svuint8_t svdupq_u8(uint8_t x0, uint8_t x1, uint8_t x2, uint8_t x3,uint8_t x4, uint8_t x5, uint8_t x6, uint8_t x7,uint8_t x8, uint8_t x9, uint8_t x10, uint8_t x11,uint8_t x12, uint8_t x13, uint8_t x14, uint8_t x15){
    return svdupq_n_u8(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
}
inline svint16_t svdupq_s16(int16_t x0, int16_t x1, int16_t x2, int16_t x3,int16_t x4, int16_t x5, int16_t x6, int16_t x7){
    return svdupq_n_s16(x0,x1,x2,x3,x4,x5,x6,x7);
}
inline svuint16_t svdupq_u16(uint16_t x0, uint16_t x1, uint16_t x2,uint16_t x3, uint16_t x4, uint16_t x5,uint16_t x6, uint16_t x7){
    return svdupq_n_u16(x0,x1,x2,x3,x4,x5,x6,x7);
}
inline svfloat16_t svdupq_f16(float16_t x0, float16_t x1, float16_t x2,float16_t x3, float16_t x4, float16_t x5,float16_t x6, float16_t x7){
    return svdupq_n_f16(x0,x1,x2,x3,x4,x5,x6,x7);
}
inline svint32_t svdupq_s32(int32_t x0, int32_t x1, int32_t x2, int32_t x3){
    return svdupq_n_s32(x0,x1,x2,x3);
}
inline svuint32_t svdupq_u32(uint32_t x0, uint32_t x1, uint32_t x2,uint32_t x3){
    return svdupq_n_u32(x0,x1,x2,x3);
}
inline svfloat32_t svdupq_f32(float32_t x0, float32_t x1, float32_t x2,float32_t x3){
    return svdupq_n_f32(x0,x1,x2,x3);
}
inline svint64_t svdupq_s64(int64_t x0, int64_t x1){
    return svdupq_n_s64(x0,x1);
}
inline svuint64_t svdupq_u64(uint64_t x0, uint64_t x1){
    return svdupq_n_u64(x0,x1);
}
inline svfloat64_t svdupq_f64(float64_t x0, float64_t x1){
    return svdupq_n_f64(x0,x1);
}
inline svint8_t svadd_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svadd_s8_z(pg,op1,op2);
}
inline svint16_t svadd_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svadd_s16_z(pg,op1,op2);
}
inline svint32_t svadd_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svadd_s32_z(pg,op1,op2);
}
inline svint64_t svadd_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svadd_s64_z(pg,op1,op2);
}
inline svuint8_t svadd_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svadd_u8_z(pg,op1,op2);
}
inline svuint16_t svadd_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svadd_u16_z(pg,op1,op2);
}
inline svuint32_t svadd_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svadd_u32_z(pg,op1,op2);
}
inline svuint64_t svadd_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svadd_u64_z(pg,op1,op2);
}
inline svint8_t svadd_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svadd_s8_m(pg,op1,op2);
}
inline svint16_t svadd_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svadd_s16_m(pg,op1,op2);
}
inline svint32_t svadd_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svadd_s32_m(pg,op1,op2);
}
inline svint64_t svadd_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svadd_s64_m(pg,op1,op2);
}
inline svuint8_t svadd_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svadd_u8_m(pg,op1,op2);
}
inline svuint16_t svadd_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svadd_u16_m(pg,op1,op2);
}
inline svuint32_t svadd_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svadd_u32_m(pg,op1,op2);
}
inline svuint64_t svadd_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svadd_u64_m(pg,op1,op2);
}
inline svint8_t svadd_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svadd_s8_x(pg,op1,op2);
}
inline svint16_t svadd_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svadd_s16_x(pg,op1,op2);
}
inline svint32_t svadd_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svadd_s32_x(pg,op1,op2);
}
inline svint64_t svadd_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svadd_s64_x(pg,op1,op2);
}
inline svuint8_t svadd_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svadd_u8_x(pg,op1,op2);
}
inline svuint16_t svadd_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svadd_u16_x(pg,op1,op2);
}
inline svuint32_t svadd_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svadd_u32_x(pg,op1,op2);
}
inline svuint64_t svadd_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svadd_u64_x(pg,op1,op2);
}
inline svint8_t svadd_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svadd_n_s8_z(pg,op1,op2);
}
inline svint16_t svadd_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svadd_n_s16_z(pg,op1,op2);
}
inline svint32_t svadd_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svadd_n_s32_z(pg,op1,op2);
}
inline svint64_t svadd_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svadd_n_s64_z(pg,op1,op2);
}
inline svuint8_t svadd_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svadd_n_u8_z(pg,op1,op2);
}
inline svuint16_t svadd_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svadd_n_u16_z(pg,op1,op2);
}
inline svuint32_t svadd_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svadd_n_u32_z(pg,op1,op2);
}
inline svuint64_t svadd_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svadd_n_u64_z(pg,op1,op2);
}
inline svint8_t svadd_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svadd_n_s8_m(pg,op1,op2);
}
inline svint16_t svadd_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svadd_n_s16_m(pg,op1,op2);
}
inline svint32_t svadd_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svadd_n_s32_m(pg,op1,op2);
}
inline svint64_t svadd_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svadd_n_s64_m(pg,op1,op2);
}
inline svuint8_t svadd_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svadd_n_u8_m(pg,op1,op2);
}
inline svuint16_t svadd_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svadd_n_u16_m(pg,op1,op2);
}
inline svuint32_t svadd_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svadd_n_u32_m(pg,op1,op2);
}
inline svuint64_t svadd_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svadd_n_u64_m(pg,op1,op2);
}
inline svint8_t svadd_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svadd_n_s8_x(pg,op1,op2);
}
inline svint16_t svadd_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svadd_n_s16_x(pg,op1,op2);
}
inline svint32_t svadd_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svadd_n_s32_x(pg,op1,op2);
}
inline svint64_t svadd_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svadd_n_s64_x(pg,op1,op2);
}
inline svuint8_t svadd_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svadd_n_u8_x(pg,op1,op2);
}
inline svuint16_t svadd_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svadd_n_u16_x(pg,op1,op2);
}
inline svuint32_t svadd_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svadd_n_u32_x(pg,op1,op2);
}
inline svuint64_t svadd_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svadd_n_u64_x(pg,op1,op2);
}
inline svint8_t svqadd(svint8_t op1, svint8_t op2){
    return svqadd_s8(op1,op2);
}
inline svint16_t svqadd(svint16_t op1, svint16_t op2){
    return svqadd_s16(op1,op2);
}
inline svint32_t svqadd(svint32_t op1, svint32_t op2){
    return svqadd_s32(op1,op2);
}
inline svint64_t svqadd(svint64_t op1, svint64_t op2){
    return svqadd_s64(op1,op2);
}
inline svuint8_t svqadd(svuint8_t op1, svuint8_t op2){
    return svqadd_u8(op1,op2);
}
inline svuint16_t svqadd(svuint16_t op1, svuint16_t op2){
    return svqadd_u16(op1,op2);
}
inline svuint32_t svqadd(svuint32_t op1, svuint32_t op2){
    return svqadd_u32(op1,op2);
}
inline svuint64_t svqadd(svuint64_t op1, svuint64_t op2){
    return svqadd_u64(op1,op2);
}
inline svint8_t svqadd(svint8_t op1, int8_t op2){
    return svqadd_n_s8(op1,op2);
}
inline svint16_t svqadd(svint16_t op1, int16_t op2){
    return svqadd_n_s16(op1,op2);
}
inline svint32_t svqadd(svint32_t op1, int32_t op2){
    return svqadd_n_s32(op1,op2);
}
inline svint64_t svqadd(svint64_t op1, int64_t op2){
    return svqadd_n_s64(op1,op2);
}
inline svuint8_t svqadd(svuint8_t op1, uint8_t op2){
    return svqadd_n_u8(op1,op2);
}
inline svuint16_t svqadd(svuint16_t op1, uint16_t op2){
    return svqadd_n_u16(op1,op2);
}
inline svuint32_t svqadd(svuint32_t op1, uint32_t op2){
    return svqadd_n_u32(op1,op2);
}
inline svuint64_t svqadd(svuint64_t op1, uint64_t op2){
    return svqadd_n_u64(op1,op2);
}
inline svint8_t svsub_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsub_s8_z(pg,op1,op2);
}
inline svint16_t svsub_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsub_s16_z(pg,op1,op2);
}
inline svint32_t svsub_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsub_s32_z(pg,op1,op2);
}
inline svint64_t svsub_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsub_s64_z(pg,op1,op2);
}
inline svuint8_t svsub_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsub_u8_z(pg,op1,op2);
}
inline svuint16_t svsub_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsub_u16_z(pg,op1,op2);
}
inline svuint32_t svsub_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsub_u32_z(pg,op1,op2);
}
inline svuint64_t svsub_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsub_u64_z(pg,op1,op2);
}
inline svint8_t svsub_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsub_s8_m(pg,op1,op2);
}
inline svint16_t svsub_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsub_s16_m(pg,op1,op2);
}
inline svint32_t svsub_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsub_s32_m(pg,op1,op2);
}
inline svint64_t svsub_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsub_s64_m(pg,op1,op2);
}
inline svuint8_t svsub_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsub_u8_m(pg,op1,op2);
}
inline svuint16_t svsub_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsub_u16_m(pg,op1,op2);
}
inline svuint32_t svsub_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsub_u32_m(pg,op1,op2);
}
inline svuint64_t svsub_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsub_u64_m(pg,op1,op2);
}
inline svint8_t svsub_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsub_s8_x(pg,op1,op2);
}
inline svint16_t svsub_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsub_s16_x(pg,op1,op2);
}
inline svint32_t svsub_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsub_s32_x(pg,op1,op2);
}
inline svint64_t svsub_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsub_s64_x(pg,op1,op2);
}
inline svuint8_t svsub_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsub_u8_x(pg,op1,op2);
}
inline svuint16_t svsub_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsub_u16_x(pg,op1,op2);
}
inline svuint32_t svsub_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsub_u32_x(pg,op1,op2);
}
inline svuint64_t svsub_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsub_u64_x(pg,op1,op2);
}
inline svint8_t svsub_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svsub_n_s8_z(pg,op1,op2);
}
inline svint16_t svsub_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svsub_n_s16_z(pg,op1,op2);
}
inline svint32_t svsub_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svsub_n_s32_z(pg,op1,op2);
}
inline svint64_t svsub_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svsub_n_s64_z(pg,op1,op2);
}
inline svuint8_t svsub_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsub_n_u8_z(pg,op1,op2);
}
inline svuint16_t svsub_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsub_n_u16_z(pg,op1,op2);
}
inline svuint32_t svsub_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsub_n_u32_z(pg,op1,op2);
}
inline svuint64_t svsub_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsub_n_u64_z(pg,op1,op2);
}
inline svint8_t svsub_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svsub_n_s8_m(pg,op1,op2);
}
inline svint16_t svsub_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svsub_n_s16_m(pg,op1,op2);
}
inline svint32_t svsub_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svsub_n_s32_m(pg,op1,op2);
}
inline svint64_t svsub_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svsub_n_s64_m(pg,op1,op2);
}
inline svuint8_t svsub_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsub_n_u8_m(pg,op1,op2);
}
inline svuint16_t svsub_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsub_n_u16_m(pg,op1,op2);
}
inline svuint32_t svsub_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsub_n_u32_m(pg,op1,op2);
}
inline svuint64_t svsub_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsub_n_u64_m(pg,op1,op2);
}
inline svint8_t svsub_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svsub_n_s8_x(pg,op1,op2);
}
inline svint16_t svsub_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svsub_n_s16_x(pg,op1,op2);
}
inline svint32_t svsub_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svsub_n_s32_x(pg,op1,op2);
}
inline svint64_t svsub_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svsub_n_s64_x(pg,op1,op2);
}
inline svuint8_t svsub_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsub_n_u8_x(pg,op1,op2);
}
inline svuint16_t svsub_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsub_n_u16_x(pg,op1,op2);
}
inline svuint32_t svsub_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsub_n_u32_x(pg,op1,op2);
}
inline svuint64_t svsub_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsub_n_u64_x(pg,op1,op2);
}
inline svint8_t svsubr_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsubr_s8_z(pg,op1,op2);
}
inline svint16_t svsubr_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsubr_s16_z(pg,op1,op2);
}
inline svint32_t svsubr_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsubr_s32_z(pg,op1,op2);
}
inline svint64_t svsubr_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsubr_s64_z(pg,op1,op2);
}
inline svuint8_t svsubr_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsubr_u8_z(pg,op1,op2);
}
inline svuint16_t svsubr_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsubr_u16_z(pg,op1,op2);
}
inline svuint32_t svsubr_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsubr_u32_z(pg,op1,op2);
}
inline svuint64_t svsubr_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsubr_u64_z(pg,op1,op2);
}
inline svint8_t svsubr_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsubr_s8_m(pg,op1,op2);
}
inline svint16_t svsubr_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsubr_s16_m(pg,op1,op2);
}
inline svint32_t svsubr_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsubr_s32_m(pg,op1,op2);
}
inline svint64_t svsubr_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsubr_s64_m(pg,op1,op2);
}
inline svuint8_t svsubr_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsubr_u8_m(pg,op1,op2);
}
inline svuint16_t svsubr_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsubr_u16_m(pg,op1,op2);
}
inline svuint32_t svsubr_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsubr_u32_m(pg,op1,op2);
}
inline svuint64_t svsubr_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsubr_u64_m(pg,op1,op2);
}
inline svint8_t svsubr_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsubr_s8_x(pg,op1,op2);
}
inline svint16_t svsubr_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsubr_s16_x(pg,op1,op2);
}
inline svint32_t svsubr_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsubr_s32_x(pg,op1,op2);
}
inline svint64_t svsubr_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsubr_s64_x(pg,op1,op2);
}
inline svuint8_t svsubr_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsubr_u8_x(pg,op1,op2);
}
inline svuint16_t svsubr_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsubr_u16_x(pg,op1,op2);
}
inline svuint32_t svsubr_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsubr_u32_x(pg,op1,op2);
}
inline svuint64_t svsubr_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsubr_u64_x(pg,op1,op2);
}
inline svint8_t svsubr_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svsubr_n_s8_z(pg,op1,op2);
}
inline svint16_t svsubr_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svsubr_n_s16_z(pg,op1,op2);
}
inline svint32_t svsubr_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svsubr_n_s32_z(pg,op1,op2);
}
inline svint64_t svsubr_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svsubr_n_s64_z(pg,op1,op2);
}
inline svuint8_t svsubr_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsubr_n_u8_z(pg,op1,op2);
}
inline svuint16_t svsubr_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsubr_n_u16_z(pg,op1,op2);
}
inline svuint32_t svsubr_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsubr_n_u32_z(pg,op1,op2);
}
inline svuint64_t svsubr_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsubr_n_u64_z(pg,op1,op2);
}
inline svint8_t svsubr_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svsubr_n_s8_m(pg,op1,op2);
}
inline svint16_t svsubr_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svsubr_n_s16_m(pg,op1,op2);
}
inline svint32_t svsubr_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svsubr_n_s32_m(pg,op1,op2);
}
inline svint64_t svsubr_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svsubr_n_s64_m(pg,op1,op2);
}
inline svuint8_t svsubr_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsubr_n_u8_m(pg,op1,op2);
}
inline svuint16_t svsubr_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsubr_n_u16_m(pg,op1,op2);
}
inline svuint32_t svsubr_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsubr_n_u32_m(pg,op1,op2);
}
inline svuint64_t svsubr_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsubr_n_u64_m(pg,op1,op2);
}
inline svint8_t svsubr_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svsubr_n_s8_x(pg,op1,op2);
}
inline svint16_t svsubr_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svsubr_n_s16_x(pg,op1,op2);
}
inline svint32_t svsubr_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svsubr_n_s32_x(pg,op1,op2);
}
inline svint64_t svsubr_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svsubr_n_s64_x(pg,op1,op2);
}
inline svuint8_t svsubr_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svsubr_n_u8_x(pg,op1,op2);
}
inline svuint16_t svsubr_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svsubr_n_u16_x(pg,op1,op2);
}
inline svuint32_t svsubr_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svsubr_n_u32_x(pg,op1,op2);
}
inline svuint64_t svsubr_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svsubr_n_u64_x(pg,op1,op2);
}
inline svint8_t svqsub(svint8_t op1, svint8_t op2){
    return svqsub_s8(op1,op2);
}
inline svint16_t svqsub(svint16_t op1, svint16_t op2){
    return svqsub_s16(op1,op2);
}
inline svint32_t svqsub(svint32_t op1, svint32_t op2){
    return svqsub_s32(op1,op2);
}
inline svint64_t svqsub(svint64_t op1, svint64_t op2){
    return svqsub_s64(op1,op2);
}
inline svuint8_t svqsub(svuint8_t op1, svuint8_t op2){
    return svqsub_u8(op1,op2);
}
inline svuint16_t svqsub(svuint16_t op1, svuint16_t op2){
    return svqsub_u16(op1,op2);
}
inline svuint32_t svqsub(svuint32_t op1, svuint32_t op2){
    return svqsub_u32(op1,op2);
}
inline svuint64_t svqsub(svuint64_t op1, svuint64_t op2){
    return svqsub_u64(op1,op2);
}
inline svint8_t svqsub(svint8_t op1, int8_t op2){
    return svqsub_n_s8(op1,op2);
}
inline svint16_t svqsub(svint16_t op1, int16_t op2){
    return svqsub_n_s16(op1,op2);
}
inline svint32_t svqsub(svint32_t op1, int32_t op2){
    return svqsub_n_s32(op1,op2);
}
inline svint64_t svqsub(svint64_t op1, int64_t op2){
    return svqsub_n_s64(op1,op2);
}
inline svuint8_t svqsub(svuint8_t op1, uint8_t op2){
    return svqsub_n_u8(op1,op2);
}
inline svuint16_t svqsub(svuint16_t op1, uint16_t op2){
    return svqsub_n_u16(op1,op2);
}
inline svuint32_t svqsub(svuint32_t op1, uint32_t op2){
    return svqsub_n_u32(op1,op2);
}
inline svuint64_t svqsub(svuint64_t op1, uint64_t op2){
    return svqsub_n_u64(op1,op2);
}
inline svint8_t svabd_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svabd_s8_z(pg,op1,op2);
}
inline svint16_t svabd_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svabd_s16_z(pg,op1,op2);
}
inline svint32_t svabd_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svabd_s32_z(pg,op1,op2);
}
inline svint64_t svabd_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svabd_s64_z(pg,op1,op2);
}
inline svuint8_t svabd_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svabd_u8_z(pg,op1,op2);
}
inline svuint16_t svabd_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svabd_u16_z(pg,op1,op2);
}
inline svuint32_t svabd_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svabd_u32_z(pg,op1,op2);
}
inline svuint64_t svabd_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svabd_u64_z(pg,op1,op2);
}
inline svint8_t svabd_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svabd_s8_m(pg,op1,op2);
}
inline svint16_t svabd_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svabd_s16_m(pg,op1,op2);
}
inline svint32_t svabd_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svabd_s32_m(pg,op1,op2);
}
inline svint64_t svabd_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svabd_s64_m(pg,op1,op2);
}
inline svuint8_t svabd_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svabd_u8_m(pg,op1,op2);
}
inline svuint16_t svabd_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svabd_u16_m(pg,op1,op2);
}
inline svuint32_t svabd_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svabd_u32_m(pg,op1,op2);
}
inline svuint64_t svabd_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svabd_u64_m(pg,op1,op2);
}
inline svint8_t svabd_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svabd_s8_x(pg,op1,op2);
}
inline svint16_t svabd_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svabd_s16_x(pg,op1,op2);
}
inline svint32_t svabd_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svabd_s32_x(pg,op1,op2);
}
inline svint64_t svabd_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svabd_s64_x(pg,op1,op2);
}
inline svuint8_t svabd_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svabd_u8_x(pg,op1,op2);
}
inline svuint16_t svabd_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svabd_u16_x(pg,op1,op2);
}
inline svuint32_t svabd_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svabd_u32_x(pg,op1,op2);
}
inline svuint64_t svabd_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svabd_u64_x(pg,op1,op2);
}
inline svint8_t svabd_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svabd_n_s8_z(pg,op1,op2);
}
inline svint16_t svabd_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svabd_n_s16_z(pg,op1,op2);
}
inline svint32_t svabd_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svabd_n_s32_z(pg,op1,op2);
}
inline svint64_t svabd_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svabd_n_s64_z(pg,op1,op2);
}
inline svuint8_t svabd_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svabd_n_u8_z(pg,op1,op2);
}
inline svuint16_t svabd_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svabd_n_u16_z(pg,op1,op2);
}
inline svuint32_t svabd_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svabd_n_u32_z(pg,op1,op2);
}
inline svuint64_t svabd_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svabd_n_u64_z(pg,op1,op2);
}
inline svint8_t svabd_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svabd_n_s8_m(pg,op1,op2);
}
inline svint16_t svabd_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svabd_n_s16_m(pg,op1,op2);
}
inline svint32_t svabd_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svabd_n_s32_m(pg,op1,op2);
}
inline svint64_t svabd_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svabd_n_s64_m(pg,op1,op2);
}
inline svuint8_t svabd_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svabd_n_u8_m(pg,op1,op2);
}
inline svuint16_t svabd_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svabd_n_u16_m(pg,op1,op2);
}
inline svuint32_t svabd_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svabd_n_u32_m(pg,op1,op2);
}
inline svuint64_t svabd_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svabd_n_u64_m(pg,op1,op2);
}
inline svint8_t svabd_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svabd_n_s8_x(pg,op1,op2);
}
inline svint16_t svabd_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svabd_n_s16_x(pg,op1,op2);
}
inline svint32_t svabd_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svabd_n_s32_x(pg,op1,op2);
}
inline svint64_t svabd_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svabd_n_s64_x(pg,op1,op2);
}
inline svuint8_t svabd_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svabd_n_u8_x(pg,op1,op2);
}
inline svuint16_t svabd_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svabd_n_u16_x(pg,op1,op2);
}
inline svuint32_t svabd_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svabd_n_u32_x(pg,op1,op2);
}
inline svuint64_t svabd_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svabd_n_u64_x(pg,op1,op2);
}
inline svint8_t svmul_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmul_s8_z(pg,op1,op2);
}
inline svint16_t svmul_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmul_s16_z(pg,op1,op2);
}
inline svint32_t svmul_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmul_s32_z(pg,op1,op2);
}
inline svint64_t svmul_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmul_s64_z(pg,op1,op2);
}
inline svuint8_t svmul_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmul_u8_z(pg,op1,op2);
}
inline svuint16_t svmul_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmul_u16_z(pg,op1,op2);
}
inline svuint32_t svmul_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmul_u32_z(pg,op1,op2);
}
inline svuint64_t svmul_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmul_u64_z(pg,op1,op2);
}
inline svint8_t svmul_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmul_s8_m(pg,op1,op2);
}
inline svint16_t svmul_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmul_s16_m(pg,op1,op2);
}
inline svint32_t svmul_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmul_s32_m(pg,op1,op2);
}
inline svint64_t svmul_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmul_s64_m(pg,op1,op2);
}
inline svuint8_t svmul_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmul_u8_m(pg,op1,op2);
}
inline svuint16_t svmul_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmul_u16_m(pg,op1,op2);
}
inline svuint32_t svmul_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmul_u32_m(pg,op1,op2);
}
inline svuint64_t svmul_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmul_u64_m(pg,op1,op2);
}
inline svint8_t svmul_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmul_s8_x(pg,op1,op2);
}
inline svint16_t svmul_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmul_s16_x(pg,op1,op2);
}
inline svint32_t svmul_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmul_s32_x(pg,op1,op2);
}
inline svint64_t svmul_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmul_s64_x(pg,op1,op2);
}
inline svuint8_t svmul_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmul_u8_x(pg,op1,op2);
}
inline svuint16_t svmul_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmul_u16_x(pg,op1,op2);
}
inline svuint32_t svmul_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmul_u32_x(pg,op1,op2);
}
inline svuint64_t svmul_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmul_u64_x(pg,op1,op2);
}
inline svint8_t svmul_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svmul_n_s8_z(pg,op1,op2);
}
inline svint16_t svmul_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svmul_n_s16_z(pg,op1,op2);
}
inline svint32_t svmul_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svmul_n_s32_z(pg,op1,op2);
}
inline svint64_t svmul_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svmul_n_s64_z(pg,op1,op2);
}
inline svuint8_t svmul_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmul_n_u8_z(pg,op1,op2);
}
inline svuint16_t svmul_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmul_n_u16_z(pg,op1,op2);
}
inline svuint32_t svmul_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmul_n_u32_z(pg,op1,op2);
}
inline svuint64_t svmul_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmul_n_u64_z(pg,op1,op2);
}
inline svint8_t svmul_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svmul_n_s8_m(pg,op1,op2);
}
inline svint16_t svmul_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svmul_n_s16_m(pg,op1,op2);
}
inline svint32_t svmul_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svmul_n_s32_m(pg,op1,op2);
}
inline svint64_t svmul_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svmul_n_s64_m(pg,op1,op2);
}
inline svuint8_t svmul_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmul_n_u8_m(pg,op1,op2);
}
inline svuint16_t svmul_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmul_n_u16_m(pg,op1,op2);
}
inline svuint32_t svmul_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmul_n_u32_m(pg,op1,op2);
}
inline svuint64_t svmul_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmul_n_u64_m(pg,op1,op2);
}
inline svint8_t svmul_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svmul_n_s8_x(pg,op1,op2);
}
inline svint16_t svmul_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svmul_n_s16_x(pg,op1,op2);
}
inline svint32_t svmul_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svmul_n_s32_x(pg,op1,op2);
}
inline svint64_t svmul_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svmul_n_s64_x(pg,op1,op2);
}
inline svuint8_t svmul_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmul_n_u8_x(pg,op1,op2);
}
inline svuint16_t svmul_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmul_n_u16_x(pg,op1,op2);
}
inline svuint32_t svmul_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmul_n_u32_x(pg,op1,op2);
}
inline svuint64_t svmul_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmul_n_u64_x(pg,op1,op2);
}
inline svint8_t svmulh_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmulh_s8_z(pg,op1,op2);
}
inline svint16_t svmulh_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmulh_s16_z(pg,op1,op2);
}
inline svint32_t svmulh_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmulh_s32_z(pg,op1,op2);
}
inline svint64_t svmulh_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmulh_s64_z(pg,op1,op2);
}
inline svuint8_t svmulh_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmulh_u8_z(pg,op1,op2);
}
inline svuint16_t svmulh_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmulh_u16_z(pg,op1,op2);
}
inline svuint32_t svmulh_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmulh_u32_z(pg,op1,op2);
}
inline svuint64_t svmulh_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmulh_u64_z(pg,op1,op2);
}
inline svint8_t svmulh_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmulh_s8_m(pg,op1,op2);
}
inline svint16_t svmulh_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmulh_s16_m(pg,op1,op2);
}
inline svint32_t svmulh_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmulh_s32_m(pg,op1,op2);
}
inline svint64_t svmulh_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmulh_s64_m(pg,op1,op2);
}
inline svuint8_t svmulh_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmulh_u8_m(pg,op1,op2);
}
inline svuint16_t svmulh_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmulh_u16_m(pg,op1,op2);
}
inline svuint32_t svmulh_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmulh_u32_m(pg,op1,op2);
}
inline svuint64_t svmulh_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmulh_u64_m(pg,op1,op2);
}
inline svint8_t svmulh_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmulh_s8_x(pg,op1,op2);
}
inline svint16_t svmulh_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmulh_s16_x(pg,op1,op2);
}
inline svint32_t svmulh_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmulh_s32_x(pg,op1,op2);
}
inline svint64_t svmulh_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmulh_s64_x(pg,op1,op2);
}
inline svuint8_t svmulh_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmulh_u8_x(pg,op1,op2);
}
inline svuint16_t svmulh_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmulh_u16_x(pg,op1,op2);
}
inline svuint32_t svmulh_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmulh_u32_x(pg,op1,op2);
}
inline svuint64_t svmulh_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmulh_u64_x(pg,op1,op2);
}
inline svint8_t svmulh_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svmulh_n_s8_z(pg,op1,op2);
}
inline svint16_t svmulh_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svmulh_n_s16_z(pg,op1,op2);
}
inline svint32_t svmulh_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svmulh_n_s32_z(pg,op1,op2);
}
inline svint64_t svmulh_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svmulh_n_s64_z(pg,op1,op2);
}
inline svuint8_t svmulh_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmulh_n_u8_z(pg,op1,op2);
}
inline svuint16_t svmulh_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmulh_n_u16_z(pg,op1,op2);
}
inline svuint32_t svmulh_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmulh_n_u32_z(pg,op1,op2);
}
inline svuint64_t svmulh_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmulh_n_u64_z(pg,op1,op2);
}
inline svint8_t svmulh_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svmulh_n_s8_m(pg,op1,op2);
}
inline svint16_t svmulh_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svmulh_n_s16_m(pg,op1,op2);
}
inline svint32_t svmulh_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svmulh_n_s32_m(pg,op1,op2);
}
inline svint64_t svmulh_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svmulh_n_s64_m(pg,op1,op2);
}
inline svuint8_t svmulh_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmulh_n_u8_m(pg,op1,op2);
}
inline svuint16_t svmulh_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmulh_n_u16_m(pg,op1,op2);
}
inline svuint32_t svmulh_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmulh_n_u32_m(pg,op1,op2);
}
inline svuint64_t svmulh_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmulh_n_u64_m(pg,op1,op2);
}
inline svint8_t svmulh_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svmulh_n_s8_x(pg,op1,op2);
}
inline svint16_t svmulh_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svmulh_n_s16_x(pg,op1,op2);
}
inline svint32_t svmulh_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svmulh_n_s32_x(pg,op1,op2);
}
inline svint64_t svmulh_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svmulh_n_s64_x(pg,op1,op2);
}
inline svuint8_t svmulh_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmulh_n_u8_x(pg,op1,op2);
}
inline svuint16_t svmulh_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmulh_n_u16_x(pg,op1,op2);
}
inline svuint32_t svmulh_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmulh_n_u32_x(pg,op1,op2);
}
inline svuint64_t svmulh_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmulh_n_u64_x(pg,op1,op2);
}
inline svint8_t svmad_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmad_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmad_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmad_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmad_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmad_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmad_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmad_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmad_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmad_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmad_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmad_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmad_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmad_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmad_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmad_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmad_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmad_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmad_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmad_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmad_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmad_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmad_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmad_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmad_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmad_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmad_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmad_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmad_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmad_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmad_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmad_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmad_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmad_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmad_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmad_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmad_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmad_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmad_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmad_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmad_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmad_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmad_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmad_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmad_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmad_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmad_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmad_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmad_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmad_n_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmad_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmad_n_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmad_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmad_n_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmad_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmad_n_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmad_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmad_n_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmad_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmad_n_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmad_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmad_n_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmad_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmad_n_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmad_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmad_n_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmad_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmad_n_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmad_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmad_n_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmad_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmad_n_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmad_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmad_n_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmad_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmad_n_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmad_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmad_n_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmad_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmad_n_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmad_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmad_n_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmad_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmad_n_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmad_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmad_n_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmad_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmad_n_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmad_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmad_n_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmad_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmad_n_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmad_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmad_n_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmad_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmad_n_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmla_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmla_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmla_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmla_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmla_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmla_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmla_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmla_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmla_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmla_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmla_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmla_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmla_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmla_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmla_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmla_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmla_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmla_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmla_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmla_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmla_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmla_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmla_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmla_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmla_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmla_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmla_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmla_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmla_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmla_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmla_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmla_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmla_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmla_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmla_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmla_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmla_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmla_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmla_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmla_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmla_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmla_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmla_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmla_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmla_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmla_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmla_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmla_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmla_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmla_n_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmla_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmla_n_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmla_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmla_n_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmla_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmla_n_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmla_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmla_n_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmla_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmla_n_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmla_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmla_n_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmla_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmla_n_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmla_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmla_n_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmla_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmla_n_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmla_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmla_n_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmla_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmla_n_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmla_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmla_n_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmla_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmla_n_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmla_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmla_n_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmla_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmla_n_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmla_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmla_n_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmla_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmla_n_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmla_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmla_n_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmla_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmla_n_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmla_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmla_n_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmla_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmla_n_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmla_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmla_n_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmla_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmla_n_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmsb_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmsb_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmsb_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmsb_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmsb_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmsb_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmsb_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmsb_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmsb_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmsb_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmsb_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmsb_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmsb_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmsb_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmsb_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmsb_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmsb_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmsb_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmsb_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmsb_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmsb_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmsb_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmsb_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmsb_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmsb_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmsb_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmsb_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmsb_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmsb_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmsb_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmsb_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmsb_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmsb_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmsb_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmsb_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmsb_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmsb_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmsb_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmsb_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmsb_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmsb_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmsb_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmsb_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmsb_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmsb_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmsb_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmsb_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmsb_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmsb_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmsb_n_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmsb_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmsb_n_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmsb_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmsb_n_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmsb_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmsb_n_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmsb_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmsb_n_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmsb_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmsb_n_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmsb_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmsb_n_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmsb_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmsb_n_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmsb_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmsb_n_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmsb_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmsb_n_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmsb_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmsb_n_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmsb_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmsb_n_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmsb_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmsb_n_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmsb_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmsb_n_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmsb_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmsb_n_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmsb_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmsb_n_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmsb_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmsb_n_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmsb_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmsb_n_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmsb_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmsb_n_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmsb_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmsb_n_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmsb_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmsb_n_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmsb_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmsb_n_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmsb_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmsb_n_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmsb_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmsb_n_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmls_z(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmls_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmls_z(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmls_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmls_z(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmls_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmls_z(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmls_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmls_z(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmls_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmls_z(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmls_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmls_z(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmls_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmls_z(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmls_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmls_m(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmls_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmls_m(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmls_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmls_m(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmls_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmls_m(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmls_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmls_m(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmls_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmls_m(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmls_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmls_m(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmls_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmls_m(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmls_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmls_x(svbool_t pg, svint8_t op1, svint8_t op2,svint8_t op3){
    return svmls_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmls_x(svbool_t pg, svint16_t op1, svint16_t op2,svint16_t op3){
    return svmls_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmls_x(svbool_t pg, svint32_t op1, svint32_t op2,svint32_t op3){
    return svmls_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmls_x(svbool_t pg, svint64_t op1, svint64_t op2,svint64_t op3){
    return svmls_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmls_x(svbool_t pg, svuint8_t op1, svuint8_t op2,svuint8_t op3){
    return svmls_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmls_x(svbool_t pg, svuint16_t op1, svuint16_t op2,svuint16_t op3){
    return svmls_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmls_x(svbool_t pg, svuint32_t op1, svuint32_t op2,svuint32_t op3){
    return svmls_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmls_x(svbool_t pg, svuint64_t op1, svuint64_t op2,svuint64_t op3){
    return svmls_u64_x(pg,op1,op2,op3);
}
inline svint8_t svmls_z(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmls_n_s8_z(pg,op1,op2,op3);
}
inline svint16_t svmls_z(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmls_n_s16_z(pg,op1,op2,op3);
}
inline svint32_t svmls_z(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmls_n_s32_z(pg,op1,op2,op3);
}
inline svint64_t svmls_z(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmls_n_s64_z(pg,op1,op2,op3);
}
inline svuint8_t svmls_z(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmls_n_u8_z(pg,op1,op2,op3);
}
inline svuint16_t svmls_z(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmls_n_u16_z(pg,op1,op2,op3);
}
inline svuint32_t svmls_z(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmls_n_u32_z(pg,op1,op2,op3);
}
inline svuint64_t svmls_z(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmls_n_u64_z(pg,op1,op2,op3);
}
inline svint8_t svmls_m(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmls_n_s8_m(pg,op1,op2,op3);
}
inline svint16_t svmls_m(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmls_n_s16_m(pg,op1,op2,op3);
}
inline svint32_t svmls_m(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmls_n_s32_m(pg,op1,op2,op3);
}
inline svint64_t svmls_m(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmls_n_s64_m(pg,op1,op2,op3);
}
inline svuint8_t svmls_m(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmls_n_u8_m(pg,op1,op2,op3);
}
inline svuint16_t svmls_m(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmls_n_u16_m(pg,op1,op2,op3);
}
inline svuint32_t svmls_m(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmls_n_u32_m(pg,op1,op2,op3);
}
inline svuint64_t svmls_m(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmls_n_u64_m(pg,op1,op2,op3);
}
inline svint8_t svmls_x(svbool_t pg, svint8_t op1, svint8_t op2,int8_t op3){
    return svmls_n_s8_x(pg,op1,op2,op3);
}
inline svint16_t svmls_x(svbool_t pg, svint16_t op1, svint16_t op2,int16_t op3){
    return svmls_n_s16_x(pg,op1,op2,op3);
}
inline svint32_t svmls_x(svbool_t pg, svint32_t op1, svint32_t op2,int32_t op3){
    return svmls_n_s32_x(pg,op1,op2,op3);
}
inline svint64_t svmls_x(svbool_t pg, svint64_t op1, svint64_t op2,int64_t op3){
    return svmls_n_s64_x(pg,op1,op2,op3);
}
inline svuint8_t svmls_x(svbool_t pg, svuint8_t op1, svuint8_t op2,uint8_t op3){
    return svmls_n_u8_x(pg,op1,op2,op3);
}
inline svuint16_t svmls_x(svbool_t pg, svuint16_t op1, svuint16_t op2,uint16_t op3){
    return svmls_n_u16_x(pg,op1,op2,op3);
}
inline svuint32_t svmls_x(svbool_t pg, svuint32_t op1, svuint32_t op2,uint32_t op3){
    return svmls_n_u32_x(pg,op1,op2,op3);
}
inline svuint64_t svmls_x(svbool_t pg, svuint64_t op1, svuint64_t op2,uint64_t op3){
    return svmls_n_u64_x(pg,op1,op2,op3);
}
inline svint32_t svdot(svint32_t op1, svint8_t op2, svint8_t op3){
    return svdot_s32(op1,op2,op3);
}
inline svint64_t svdot(svint64_t op1, svint16_t op2, svint16_t op3){
    return svdot_s64(op1,op2,op3);
}
inline svuint32_t svdot(svuint32_t op1, svuint8_t op2, svuint8_t op3){
    return svdot_u32(op1,op2,op3);
}
inline svuint64_t svdot(svuint64_t op1, svuint16_t op2, svuint16_t op3){
    return svdot_u64(op1,op2,op3);
}
inline svint32_t svdot(svint32_t op1, svint8_t op2, int8_t op3){
    return svdot_n_s32(op1,op2,op3);
}
inline svint64_t svdot(svint64_t op1, svint16_t op2, int16_t op3){
    return svdot_n_s64(op1,op2,op3);
}
inline svuint32_t svdot(svuint32_t op1, svuint8_t op2, uint8_t op3){
    return svdot_n_u32(op1,op2,op3);
}
inline svuint64_t svdot(svuint64_t op1, svuint16_t op2, uint16_t op3){
    return svdot_n_u64(op1,op2,op3);
}
inline svint32_t svdot_lane(svint32_t op1, svint8_t op2, svint8_t op3,uint64_t imm_index){
    return svdot_lane_s32(op1,op2,op3,imm_index);
}
inline svint64_t svdot_lane(svint64_t op1, svint16_t op2, svint16_t op3,uint64_t imm_index){
    return svdot_lane_s64(op1,op2,op3,imm_index);
}
inline svuint32_t svdot_lane(svuint32_t op1, svuint8_t op2, svuint8_t op3,uint64_t imm_index){
    return svdot_lane_u32(op1,op2,op3,imm_index);
}
inline svuint64_t svdot_lane(svuint64_t op1, svuint16_t op2, svuint16_t op3,uint64_t imm_index){
    return svdot_lane_u64(op1,op2,op3,imm_index);
}
inline svint32_t svdiv_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdiv_s32_z(pg,op1,op2);
}
inline svint64_t svdiv_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdiv_s64_z(pg,op1,op2);
}
inline svuint32_t svdiv_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdiv_u32_z(pg,op1,op2);
}
inline svuint64_t svdiv_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdiv_u64_z(pg,op1,op2);
}
inline svint32_t svdiv_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdiv_s32_m(pg,op1,op2);
}
inline svint64_t svdiv_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdiv_s64_m(pg,op1,op2);
}
inline svuint32_t svdiv_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdiv_u32_m(pg,op1,op2);
}
inline svuint64_t svdiv_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdiv_u64_m(pg,op1,op2);
}
inline svint32_t svdiv_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdiv_s32_x(pg,op1,op2);
}
inline svint64_t svdiv_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdiv_s64_x(pg,op1,op2);
}
inline svuint32_t svdiv_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdiv_u32_x(pg,op1,op2);
}
inline svuint64_t svdiv_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdiv_u64_x(pg,op1,op2);
}
inline svint32_t svdiv_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svdiv_n_s32_z(pg,op1,op2);
}
inline svint64_t svdiv_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svdiv_n_s64_z(pg,op1,op2);
}
inline svuint32_t svdiv_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdiv_n_u32_z(pg,op1,op2);
}
inline svuint64_t svdiv_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdiv_n_u64_z(pg,op1,op2);
}
inline svint32_t svdiv_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svdiv_n_s32_m(pg,op1,op2);
}
inline svint64_t svdiv_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svdiv_n_s64_m(pg,op1,op2);
}
inline svuint32_t svdiv_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdiv_n_u32_m(pg,op1,op2);
}
inline svuint64_t svdiv_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdiv_n_u64_m(pg,op1,op2);
}
inline svint32_t svdiv_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svdiv_n_s32_x(pg,op1,op2);
}
inline svint64_t svdiv_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svdiv_n_s64_x(pg,op1,op2);
}
inline svuint32_t svdiv_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdiv_n_u32_x(pg,op1,op2);
}
inline svuint64_t svdiv_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdiv_n_u64_x(pg,op1,op2);
}
inline svint32_t svdivr_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdivr_s32_z(pg,op1,op2);
}
inline svint64_t svdivr_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdivr_s64_z(pg,op1,op2);
}
inline svuint32_t svdivr_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdivr_u32_z(pg,op1,op2);
}
inline svuint64_t svdivr_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdivr_u64_z(pg,op1,op2);
}
inline svint32_t svdivr_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdivr_s32_m(pg,op1,op2);
}
inline svint64_t svdivr_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdivr_s64_m(pg,op1,op2);
}
inline svuint32_t svdivr_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdivr_u32_m(pg,op1,op2);
}
inline svuint64_t svdivr_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdivr_u64_m(pg,op1,op2);
}
inline svint32_t svdivr_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svdivr_s32_x(pg,op1,op2);
}
inline svint64_t svdivr_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svdivr_s64_x(pg,op1,op2);
}
inline svuint32_t svdivr_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svdivr_u32_x(pg,op1,op2);
}
inline svuint64_t svdivr_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svdivr_u64_x(pg,op1,op2);
}
inline svint32_t svdivr_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svdivr_n_s32_z(pg,op1,op2);
}
inline svint64_t svdivr_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svdivr_n_s64_z(pg,op1,op2);
}
inline svuint32_t svdivr_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdivr_n_u32_z(pg,op1,op2);
}
inline svuint64_t svdivr_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdivr_n_u64_z(pg,op1,op2);
}
inline svint32_t svdivr_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svdivr_n_s32_m(pg,op1,op2);
}
inline svint64_t svdivr_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svdivr_n_s64_m(pg,op1,op2);
}
inline svuint32_t svdivr_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdivr_n_u32_m(pg,op1,op2);
}
inline svuint64_t svdivr_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdivr_n_u64_m(pg,op1,op2);
}
inline svint32_t svdivr_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svdivr_n_s32_x(pg,op1,op2);
}
inline svint64_t svdivr_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svdivr_n_s64_x(pg,op1,op2);
}
inline svuint32_t svdivr_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svdivr_n_u32_x(pg,op1,op2);
}
inline svuint64_t svdivr_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svdivr_n_u64_x(pg,op1,op2);
}
inline svint8_t svmax_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmax_s8_z(pg,op1,op2);
}
inline svint16_t svmax_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmax_s16_z(pg,op1,op2);
}
inline svint32_t svmax_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmax_s32_z(pg,op1,op2);
}
inline svint64_t svmax_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmax_s64_z(pg,op1,op2);
}
inline svuint8_t svmax_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmax_u8_z(pg,op1,op2);
}
inline svuint16_t svmax_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmax_u16_z(pg,op1,op2);
}
inline svuint32_t svmax_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmax_u32_z(pg,op1,op2);
}
inline svuint64_t svmax_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmax_u64_z(pg,op1,op2);
}
inline svint8_t svmax_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmax_s8_m(pg,op1,op2);
}
inline svint16_t svmax_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmax_s16_m(pg,op1,op2);
}
inline svint32_t svmax_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmax_s32_m(pg,op1,op2);
}
inline svint64_t svmax_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmax_s64_m(pg,op1,op2);
}
inline svuint8_t svmax_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmax_u8_m(pg,op1,op2);
}
inline svuint16_t svmax_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmax_u16_m(pg,op1,op2);
}
inline svuint32_t svmax_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmax_u32_m(pg,op1,op2);
}
inline svuint64_t svmax_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmax_u64_m(pg,op1,op2);
}
inline svint8_t svmax_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmax_s8_x(pg,op1,op2);
}
inline svint16_t svmax_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmax_s16_x(pg,op1,op2);
}
inline svint32_t svmax_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmax_s32_x(pg,op1,op2);
}
inline svint64_t svmax_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmax_s64_x(pg,op1,op2);
}
inline svuint8_t svmax_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmax_u8_x(pg,op1,op2);
}
inline svuint16_t svmax_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmax_u16_x(pg,op1,op2);
}
inline svuint32_t svmax_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmax_u32_x(pg,op1,op2);
}
inline svuint64_t svmax_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmax_u64_x(pg,op1,op2);
}
inline svint8_t svmax_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svmax_n_s8_z(pg,op1,op2);
}
inline svint16_t svmax_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svmax_n_s16_z(pg,op1,op2);
}
inline svint32_t svmax_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svmax_n_s32_z(pg,op1,op2);
}
inline svint64_t svmax_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svmax_n_s64_z(pg,op1,op2);
}
inline svuint8_t svmax_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmax_n_u8_z(pg,op1,op2);
}
inline svuint16_t svmax_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmax_n_u16_z(pg,op1,op2);
}
inline svuint32_t svmax_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmax_n_u32_z(pg,op1,op2);
}
inline svuint64_t svmax_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmax_n_u64_z(pg,op1,op2);
}
inline svint8_t svmax_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svmax_n_s8_m(pg,op1,op2);
}
inline svint16_t svmax_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svmax_n_s16_m(pg,op1,op2);
}
inline svint32_t svmax_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svmax_n_s32_m(pg,op1,op2);
}
inline svint64_t svmax_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svmax_n_s64_m(pg,op1,op2);
}
inline svuint8_t svmax_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmax_n_u8_m(pg,op1,op2);
}
inline svuint16_t svmax_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmax_n_u16_m(pg,op1,op2);
}
inline svuint32_t svmax_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmax_n_u32_m(pg,op1,op2);
}
inline svuint64_t svmax_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmax_n_u64_m(pg,op1,op2);
}
inline svint8_t svmax_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svmax_n_s8_x(pg,op1,op2);
}
inline svint16_t svmax_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svmax_n_s16_x(pg,op1,op2);
}
inline svint32_t svmax_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svmax_n_s32_x(pg,op1,op2);
}
inline svint64_t svmax_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svmax_n_s64_x(pg,op1,op2);
}
inline svuint8_t svmax_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmax_n_u8_x(pg,op1,op2);
}
inline svuint16_t svmax_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmax_n_u16_x(pg,op1,op2);
}
inline svuint32_t svmax_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmax_n_u32_x(pg,op1,op2);
}
inline svuint64_t svmax_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmax_n_u64_x(pg,op1,op2);
}
inline svint8_t svmin_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmin_s8_z(pg,op1,op2);
}
inline svint16_t svmin_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmin_s16_z(pg,op1,op2);
}
inline svint32_t svmin_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmin_s32_z(pg,op1,op2);
}
inline svint64_t svmin_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmin_s64_z(pg,op1,op2);
}
inline svuint8_t svmin_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmin_u8_z(pg,op1,op2);
}
inline svuint16_t svmin_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmin_u16_z(pg,op1,op2);
}
inline svuint32_t svmin_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmin_u32_z(pg,op1,op2);
}
inline svuint64_t svmin_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmin_u64_z(pg,op1,op2);
}
inline svint8_t svmin_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmin_s8_m(pg,op1,op2);
}
inline svint16_t svmin_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmin_s16_m(pg,op1,op2);
}
inline svint32_t svmin_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmin_s32_m(pg,op1,op2);
}
inline svint64_t svmin_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmin_s64_m(pg,op1,op2);
}
inline svuint8_t svmin_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmin_u8_m(pg,op1,op2);
}
inline svuint16_t svmin_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmin_u16_m(pg,op1,op2);
}
inline svuint32_t svmin_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmin_u32_m(pg,op1,op2);
}
inline svuint64_t svmin_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmin_u64_m(pg,op1,op2);
}
inline svint8_t svmin_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svmin_s8_x(pg,op1,op2);
}
inline svint16_t svmin_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svmin_s16_x(pg,op1,op2);
}
inline svint32_t svmin_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svmin_s32_x(pg,op1,op2);
}
inline svint64_t svmin_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svmin_s64_x(pg,op1,op2);
}
inline svuint8_t svmin_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svmin_u8_x(pg,op1,op2);
}
inline svuint16_t svmin_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svmin_u16_x(pg,op1,op2);
}
inline svuint32_t svmin_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svmin_u32_x(pg,op1,op2);
}
inline svuint64_t svmin_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svmin_u64_x(pg,op1,op2);
}
inline svint8_t svmin_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svmin_n_s8_z(pg,op1,op2);
}
inline svint16_t svmin_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svmin_n_s16_z(pg,op1,op2);
}
inline svint32_t svmin_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svmin_n_s32_z(pg,op1,op2);
}
inline svint64_t svmin_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svmin_n_s64_z(pg,op1,op2);
}
inline svuint8_t svmin_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmin_n_u8_z(pg,op1,op2);
}
inline svuint16_t svmin_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmin_n_u16_z(pg,op1,op2);
}
inline svuint32_t svmin_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmin_n_u32_z(pg,op1,op2);
}
inline svuint64_t svmin_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmin_n_u64_z(pg,op1,op2);
}
inline svint8_t svmin_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svmin_n_s8_m(pg,op1,op2);
}
inline svint16_t svmin_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svmin_n_s16_m(pg,op1,op2);
}
inline svint32_t svmin_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svmin_n_s32_m(pg,op1,op2);
}
inline svint64_t svmin_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svmin_n_s64_m(pg,op1,op2);
}
inline svuint8_t svmin_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmin_n_u8_m(pg,op1,op2);
}
inline svuint16_t svmin_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmin_n_u16_m(pg,op1,op2);
}
inline svuint32_t svmin_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmin_n_u32_m(pg,op1,op2);
}
inline svuint64_t svmin_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmin_n_u64_m(pg,op1,op2);
}
inline svint8_t svmin_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svmin_n_s8_x(pg,op1,op2);
}
inline svint16_t svmin_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svmin_n_s16_x(pg,op1,op2);
}
inline svint32_t svmin_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svmin_n_s32_x(pg,op1,op2);
}
inline svint64_t svmin_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svmin_n_s64_x(pg,op1,op2);
}
inline svuint8_t svmin_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svmin_n_u8_x(pg,op1,op2);
}
inline svuint16_t svmin_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svmin_n_u16_x(pg,op1,op2);
}
inline svuint32_t svmin_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svmin_n_u32_x(pg,op1,op2);
}
inline svuint64_t svmin_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svmin_n_u64_x(pg,op1,op2);
}
inline svint8_t svneg_z(svbool_t pg, svint8_t op){
    return svneg_s8_z(pg,op);
}
inline svint16_t svneg_z(svbool_t pg, svint16_t op){
    return svneg_s16_z(pg,op);
}
inline svint32_t svneg_z(svbool_t pg, svint32_t op){
    return svneg_s32_z(pg,op);
}
inline svint64_t svneg_z(svbool_t pg, svint64_t op){
    return svneg_s64_z(pg,op);
}
inline svint8_t svneg_m(svint8_t inactive, svbool_t pg, svint8_t op){
    return svneg_s8_m(inactive,pg,op);
}
inline svint16_t svneg_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svneg_s16_m(inactive,pg,op);
}
inline svint32_t svneg_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svneg_s32_m(inactive,pg,op);
}
inline svint64_t svneg_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svneg_s64_m(inactive,pg,op);
}
inline svint8_t svneg_x(svbool_t pg, svint8_t op){
    return svneg_s8_x(pg,op);
}
inline svint16_t svneg_x(svbool_t pg, svint16_t op){
    return svneg_s16_x(pg,op);
}
inline svint32_t svneg_x(svbool_t pg, svint32_t op){
    return svneg_s32_x(pg,op);
}
inline svint64_t svneg_x(svbool_t pg, svint64_t op){
    return svneg_s64_x(pg,op);
}
inline svint8_t svabs_z(svbool_t pg, svint8_t op){
    return svabs_s8_z(pg,op);
}
inline svint16_t svabs_z(svbool_t pg, svint16_t op){
    return svabs_s16_z(pg,op);
}
inline svint32_t svabs_z(svbool_t pg, svint32_t op){
    return svabs_s32_z(pg,op);
}
inline svint64_t svabs_z(svbool_t pg, svint64_t op){
    return svabs_s64_z(pg,op);
}
inline svint8_t svabs_m(svint8_t inactive, svbool_t pg, svint8_t op){
    return svabs_s8_m(inactive,pg,op);
}
inline svint16_t svabs_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svabs_s16_m(inactive,pg,op);
}
inline svint32_t svabs_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svabs_s32_m(inactive,pg,op);
}
inline svint64_t svabs_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svabs_s64_m(inactive,pg,op);
}
inline svint8_t svabs_x(svbool_t pg, svint8_t op){
    return svabs_s8_x(pg,op);
}
inline svint16_t svabs_x(svbool_t pg, svint16_t op){
    return svabs_s16_x(pg,op);
}
inline svint32_t svabs_x(svbool_t pg, svint32_t op){
    return svabs_s32_x(pg,op);
}
inline svint64_t svabs_x(svbool_t pg, svint64_t op){
    return svabs_s64_x(pg,op);
}
inline svint8_t svand_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svand_s8_z(pg,op1,op2);
}
inline svint16_t svand_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svand_s16_z(pg,op1,op2);
}
inline svint32_t svand_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svand_s32_z(pg,op1,op2);
}
inline svint64_t svand_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svand_s64_z(pg,op1,op2);
}
inline svuint8_t svand_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svand_u8_z(pg,op1,op2);
}
inline svuint16_t svand_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svand_u16_z(pg,op1,op2);
}
inline svuint32_t svand_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svand_u32_z(pg,op1,op2);
}
inline svuint64_t svand_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svand_u64_z(pg,op1,op2);
}
inline svint8_t svand_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svand_s8_m(pg,op1,op2);
}
inline svint16_t svand_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svand_s16_m(pg,op1,op2);
}
inline svint32_t svand_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svand_s32_m(pg,op1,op2);
}
inline svint64_t svand_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svand_s64_m(pg,op1,op2);
}
inline svuint8_t svand_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svand_u8_m(pg,op1,op2);
}
inline svuint16_t svand_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svand_u16_m(pg,op1,op2);
}
inline svuint32_t svand_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svand_u32_m(pg,op1,op2);
}
inline svuint64_t svand_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svand_u64_m(pg,op1,op2);
}
inline svint8_t svand_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svand_s8_x(pg,op1,op2);
}
inline svint16_t svand_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svand_s16_x(pg,op1,op2);
}
inline svint32_t svand_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svand_s32_x(pg,op1,op2);
}
inline svint64_t svand_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svand_s64_x(pg,op1,op2);
}
inline svuint8_t svand_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svand_u8_x(pg,op1,op2);
}
inline svuint16_t svand_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svand_u16_x(pg,op1,op2);
}
inline svuint32_t svand_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svand_u32_x(pg,op1,op2);
}
inline svuint64_t svand_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svand_u64_x(pg,op1,op2);
}
inline svint8_t svand_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svand_n_s8_z(pg,op1,op2);
}
inline svint16_t svand_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svand_n_s16_z(pg,op1,op2);
}
inline svint32_t svand_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svand_n_s32_z(pg,op1,op2);
}
inline svint64_t svand_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svand_n_s64_z(pg,op1,op2);
}
inline svuint8_t svand_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svand_n_u8_z(pg,op1,op2);
}
inline svuint16_t svand_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svand_n_u16_z(pg,op1,op2);
}
inline svuint32_t svand_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svand_n_u32_z(pg,op1,op2);
}
inline svuint64_t svand_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svand_n_u64_z(pg,op1,op2);
}
inline svint8_t svand_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svand_n_s8_m(pg,op1,op2);
}
inline svint16_t svand_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svand_n_s16_m(pg,op1,op2);
}
inline svint32_t svand_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svand_n_s32_m(pg,op1,op2);
}
inline svint64_t svand_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svand_n_s64_m(pg,op1,op2);
}
inline svuint8_t svand_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svand_n_u8_m(pg,op1,op2);
}
inline svuint16_t svand_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svand_n_u16_m(pg,op1,op2);
}
inline svuint32_t svand_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svand_n_u32_m(pg,op1,op2);
}
inline svuint64_t svand_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svand_n_u64_m(pg,op1,op2);
}
inline svint8_t svand_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svand_n_s8_x(pg,op1,op2);
}
inline svint16_t svand_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svand_n_s16_x(pg,op1,op2);
}
inline svint32_t svand_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svand_n_s32_x(pg,op1,op2);
}
inline svint64_t svand_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svand_n_s64_x(pg,op1,op2);
}
inline svuint8_t svand_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svand_n_u8_x(pg,op1,op2);
}
inline svuint16_t svand_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svand_n_u16_x(pg,op1,op2);
}
inline svuint32_t svand_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svand_n_u32_x(pg,op1,op2);
}
inline svuint64_t svand_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svand_n_u64_x(pg,op1,op2);
}
inline svint8_t svbic_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svbic_s8_z(pg,op1,op2);
}
inline svint16_t svbic_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svbic_s16_z(pg,op1,op2);
}
inline svint32_t svbic_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svbic_s32_z(pg,op1,op2);
}
inline svint64_t svbic_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svbic_s64_z(pg,op1,op2);
}
inline svuint8_t svbic_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svbic_u8_z(pg,op1,op2);
}
inline svuint16_t svbic_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svbic_u16_z(pg,op1,op2);
}
inline svuint32_t svbic_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svbic_u32_z(pg,op1,op2);
}
inline svuint64_t svbic_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svbic_u64_z(pg,op1,op2);
}
inline svint8_t svbic_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svbic_s8_m(pg,op1,op2);
}
inline svint16_t svbic_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svbic_s16_m(pg,op1,op2);
}
inline svint32_t svbic_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svbic_s32_m(pg,op1,op2);
}
inline svint64_t svbic_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svbic_s64_m(pg,op1,op2);
}
inline svuint8_t svbic_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svbic_u8_m(pg,op1,op2);
}
inline svuint16_t svbic_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svbic_u16_m(pg,op1,op2);
}
inline svuint32_t svbic_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svbic_u32_m(pg,op1,op2);
}
inline svuint64_t svbic_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svbic_u64_m(pg,op1,op2);
}
inline svint8_t svbic_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svbic_s8_x(pg,op1,op2);
}
inline svint16_t svbic_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svbic_s16_x(pg,op1,op2);
}
inline svint32_t svbic_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svbic_s32_x(pg,op1,op2);
}
inline svint64_t svbic_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svbic_s64_x(pg,op1,op2);
}
inline svuint8_t svbic_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svbic_u8_x(pg,op1,op2);
}
inline svuint16_t svbic_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svbic_u16_x(pg,op1,op2);
}
inline svuint32_t svbic_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svbic_u32_x(pg,op1,op2);
}
inline svuint64_t svbic_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svbic_u64_x(pg,op1,op2);
}
inline svint8_t svbic_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svbic_n_s8_z(pg,op1,op2);
}
inline svint16_t svbic_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svbic_n_s16_z(pg,op1,op2);
}
inline svint32_t svbic_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svbic_n_s32_z(pg,op1,op2);
}
inline svint64_t svbic_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svbic_n_s64_z(pg,op1,op2);
}
inline svuint8_t svbic_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svbic_n_u8_z(pg,op1,op2);
}
inline svuint16_t svbic_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svbic_n_u16_z(pg,op1,op2);
}
inline svuint32_t svbic_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svbic_n_u32_z(pg,op1,op2);
}
inline svuint64_t svbic_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svbic_n_u64_z(pg,op1,op2);
}
inline svint8_t svbic_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svbic_n_s8_m(pg,op1,op2);
}
inline svint16_t svbic_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svbic_n_s16_m(pg,op1,op2);
}
inline svint32_t svbic_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svbic_n_s32_m(pg,op1,op2);
}
inline svint64_t svbic_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svbic_n_s64_m(pg,op1,op2);
}
inline svuint8_t svbic_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svbic_n_u8_m(pg,op1,op2);
}
inline svuint16_t svbic_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svbic_n_u16_m(pg,op1,op2);
}
inline svuint32_t svbic_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svbic_n_u32_m(pg,op1,op2);
}
inline svuint64_t svbic_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svbic_n_u64_m(pg,op1,op2);
}
inline svint8_t svbic_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svbic_n_s8_x(pg,op1,op2);
}
inline svint16_t svbic_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svbic_n_s16_x(pg,op1,op2);
}
inline svint32_t svbic_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svbic_n_s32_x(pg,op1,op2);
}
inline svint64_t svbic_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svbic_n_s64_x(pg,op1,op2);
}
inline svuint8_t svbic_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svbic_n_u8_x(pg,op1,op2);
}
inline svuint16_t svbic_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svbic_n_u16_x(pg,op1,op2);
}
inline svuint32_t svbic_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svbic_n_u32_x(pg,op1,op2);
}
inline svuint64_t svbic_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svbic_n_u64_x(pg,op1,op2);
}
inline svint8_t svorr_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return svorr_s8_z(pg,op1,op2);
}
inline svint16_t svorr_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return svorr_s16_z(pg,op1,op2);
}
inline svint32_t svorr_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return svorr_s32_z(pg,op1,op2);
}
inline svint64_t svorr_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return svorr_s64_z(pg,op1,op2);
}
inline svuint8_t svorr_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svorr_u8_z(pg,op1,op2);
}
inline svuint16_t svorr_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svorr_u16_z(pg,op1,op2);
}
inline svuint32_t svorr_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svorr_u32_z(pg,op1,op2);
}
inline svuint64_t svorr_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svorr_u64_z(pg,op1,op2);
}
inline svint8_t svorr_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return svorr_s8_m(pg,op1,op2);
}
inline svint16_t svorr_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return svorr_s16_m(pg,op1,op2);
}
inline svint32_t svorr_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return svorr_s32_m(pg,op1,op2);
}
inline svint64_t svorr_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return svorr_s64_m(pg,op1,op2);
}
inline svuint8_t svorr_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svorr_u8_m(pg,op1,op2);
}
inline svuint16_t svorr_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svorr_u16_m(pg,op1,op2);
}
inline svuint32_t svorr_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svorr_u32_m(pg,op1,op2);
}
inline svuint64_t svorr_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svorr_u64_m(pg,op1,op2);
}
inline svint8_t svorr_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return svorr_s8_x(pg,op1,op2);
}
inline svint16_t svorr_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return svorr_s16_x(pg,op1,op2);
}
inline svint32_t svorr_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return svorr_s32_x(pg,op1,op2);
}
inline svint64_t svorr_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return svorr_s64_x(pg,op1,op2);
}
inline svuint8_t svorr_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svorr_u8_x(pg,op1,op2);
}
inline svuint16_t svorr_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svorr_u16_x(pg,op1,op2);
}
inline svuint32_t svorr_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svorr_u32_x(pg,op1,op2);
}
inline svuint64_t svorr_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svorr_u64_x(pg,op1,op2);
}
inline svint8_t svorr_z(svbool_t pg, svint8_t op1, int8_t op2){
    return svorr_n_s8_z(pg,op1,op2);
}
inline svint16_t svorr_z(svbool_t pg, svint16_t op1, int16_t op2){
    return svorr_n_s16_z(pg,op1,op2);
}
inline svint32_t svorr_z(svbool_t pg, svint32_t op1, int32_t op2){
    return svorr_n_s32_z(pg,op1,op2);
}
inline svint64_t svorr_z(svbool_t pg, svint64_t op1, int64_t op2){
    return svorr_n_s64_z(pg,op1,op2);
}
inline svuint8_t svorr_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svorr_n_u8_z(pg,op1,op2);
}
inline svuint16_t svorr_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svorr_n_u16_z(pg,op1,op2);
}
inline svuint32_t svorr_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svorr_n_u32_z(pg,op1,op2);
}
inline svuint64_t svorr_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svorr_n_u64_z(pg,op1,op2);
}
inline svint8_t svorr_m(svbool_t pg, svint8_t op1, int8_t op2){
    return svorr_n_s8_m(pg,op1,op2);
}
inline svint16_t svorr_m(svbool_t pg, svint16_t op1, int16_t op2){
    return svorr_n_s16_m(pg,op1,op2);
}
inline svint32_t svorr_m(svbool_t pg, svint32_t op1, int32_t op2){
    return svorr_n_s32_m(pg,op1,op2);
}
inline svint64_t svorr_m(svbool_t pg, svint64_t op1, int64_t op2){
    return svorr_n_s64_m(pg,op1,op2);
}
inline svuint8_t svorr_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svorr_n_u8_m(pg,op1,op2);
}
inline svuint16_t svorr_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svorr_n_u16_m(pg,op1,op2);
}
inline svuint32_t svorr_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svorr_n_u32_m(pg,op1,op2);
}
inline svuint64_t svorr_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svorr_n_u64_m(pg,op1,op2);
}
inline svint8_t svorr_x(svbool_t pg, svint8_t op1, int8_t op2){
    return svorr_n_s8_x(pg,op1,op2);
}
inline svint16_t svorr_x(svbool_t pg, svint16_t op1, int16_t op2){
    return svorr_n_s16_x(pg,op1,op2);
}
inline svint32_t svorr_x(svbool_t pg, svint32_t op1, int32_t op2){
    return svorr_n_s32_x(pg,op1,op2);
}
inline svint64_t svorr_x(svbool_t pg, svint64_t op1, int64_t op2){
    return svorr_n_s64_x(pg,op1,op2);
}
inline svuint8_t svorr_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return svorr_n_u8_x(pg,op1,op2);
}
inline svuint16_t svorr_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return svorr_n_u16_x(pg,op1,op2);
}
inline svuint32_t svorr_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return svorr_n_u32_x(pg,op1,op2);
}
inline svuint64_t svorr_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svorr_n_u64_x(pg,op1,op2);
}
inline svint8_t sveor_z(svbool_t pg, svint8_t op1, svint8_t op2){
    return sveor_s8_z(pg,op1,op2);
}
inline svint16_t sveor_z(svbool_t pg, svint16_t op1, svint16_t op2){
    return sveor_s16_z(pg,op1,op2);
}
inline svint32_t sveor_z(svbool_t pg, svint32_t op1, svint32_t op2){
    return sveor_s32_z(pg,op1,op2);
}
inline svint64_t sveor_z(svbool_t pg, svint64_t op1, svint64_t op2){
    return sveor_s64_z(pg,op1,op2);
}
inline svuint8_t sveor_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return sveor_u8_z(pg,op1,op2);
}
inline svuint16_t sveor_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return sveor_u16_z(pg,op1,op2);
}
inline svuint32_t sveor_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return sveor_u32_z(pg,op1,op2);
}
inline svuint64_t sveor_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return sveor_u64_z(pg,op1,op2);
}
inline svint8_t sveor_m(svbool_t pg, svint8_t op1, svint8_t op2){
    return sveor_s8_m(pg,op1,op2);
}
inline svint16_t sveor_m(svbool_t pg, svint16_t op1, svint16_t op2){
    return sveor_s16_m(pg,op1,op2);
}
inline svint32_t sveor_m(svbool_t pg, svint32_t op1, svint32_t op2){
    return sveor_s32_m(pg,op1,op2);
}
inline svint64_t sveor_m(svbool_t pg, svint64_t op1, svint64_t op2){
    return sveor_s64_m(pg,op1,op2);
}
inline svuint8_t sveor_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return sveor_u8_m(pg,op1,op2);
}
inline svuint16_t sveor_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return sveor_u16_m(pg,op1,op2);
}
inline svuint32_t sveor_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return sveor_u32_m(pg,op1,op2);
}
inline svuint64_t sveor_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return sveor_u64_m(pg,op1,op2);
}
inline svint8_t sveor_x(svbool_t pg, svint8_t op1, svint8_t op2){
    return sveor_s8_x(pg,op1,op2);
}
inline svint16_t sveor_x(svbool_t pg, svint16_t op1, svint16_t op2){
    return sveor_s16_x(pg,op1,op2);
}
inline svint32_t sveor_x(svbool_t pg, svint32_t op1, svint32_t op2){
    return sveor_s32_x(pg,op1,op2);
}
inline svint64_t sveor_x(svbool_t pg, svint64_t op1, svint64_t op2){
    return sveor_s64_x(pg,op1,op2);
}
inline svuint8_t sveor_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return sveor_u8_x(pg,op1,op2);
}
inline svuint16_t sveor_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return sveor_u16_x(pg,op1,op2);
}
inline svuint32_t sveor_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return sveor_u32_x(pg,op1,op2);
}
inline svuint64_t sveor_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return sveor_u64_x(pg,op1,op2);
}
inline svint8_t sveor_z(svbool_t pg, svint8_t op1, int8_t op2){
    return sveor_n_s8_z(pg,op1,op2);
}
inline svint16_t sveor_z(svbool_t pg, svint16_t op1, int16_t op2){
    return sveor_n_s16_z(pg,op1,op2);
}
inline svint32_t sveor_z(svbool_t pg, svint32_t op1, int32_t op2){
    return sveor_n_s32_z(pg,op1,op2);
}
inline svint64_t sveor_z(svbool_t pg, svint64_t op1, int64_t op2){
    return sveor_n_s64_z(pg,op1,op2);
}
inline svuint8_t sveor_z(svbool_t pg, svuint8_t op1, uint8_t op2){
    return sveor_n_u8_z(pg,op1,op2);
}
inline svuint16_t sveor_z(svbool_t pg, svuint16_t op1, uint16_t op2){
    return sveor_n_u16_z(pg,op1,op2);
}
inline svuint32_t sveor_z(svbool_t pg, svuint32_t op1, uint32_t op2){
    return sveor_n_u32_z(pg,op1,op2);
}
inline svuint64_t sveor_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return sveor_n_u64_z(pg,op1,op2);
}
inline svint8_t sveor_m(svbool_t pg, svint8_t op1, int8_t op2){
    return sveor_n_s8_m(pg,op1,op2);
}
inline svint16_t sveor_m(svbool_t pg, svint16_t op1, int16_t op2){
    return sveor_n_s16_m(pg,op1,op2);
}
inline svint32_t sveor_m(svbool_t pg, svint32_t op1, int32_t op2){
    return sveor_n_s32_m(pg,op1,op2);
}
inline svint64_t sveor_m(svbool_t pg, svint64_t op1, int64_t op2){
    return sveor_n_s64_m(pg,op1,op2);
}
inline svuint8_t sveor_m(svbool_t pg, svuint8_t op1, uint8_t op2){
    return sveor_n_u8_m(pg,op1,op2);
}
inline svuint16_t sveor_m(svbool_t pg, svuint16_t op1, uint16_t op2){
    return sveor_n_u16_m(pg,op1,op2);
}
inline svuint32_t sveor_m(svbool_t pg, svuint32_t op1, uint32_t op2){
    return sveor_n_u32_m(pg,op1,op2);
}
inline svuint64_t sveor_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return sveor_n_u64_m(pg,op1,op2);
}
inline svint8_t sveor_x(svbool_t pg, svint8_t op1, int8_t op2){
    return sveor_n_s8_x(pg,op1,op2);
}
inline svint16_t sveor_x(svbool_t pg, svint16_t op1, int16_t op2){
    return sveor_n_s16_x(pg,op1,op2);
}
inline svint32_t sveor_x(svbool_t pg, svint32_t op1, int32_t op2){
    return sveor_n_s32_x(pg,op1,op2);
}
inline svint64_t sveor_x(svbool_t pg, svint64_t op1, int64_t op2){
    return sveor_n_s64_x(pg,op1,op2);
}
inline svuint8_t sveor_x(svbool_t pg, svuint8_t op1, uint8_t op2){
    return sveor_n_u8_x(pg,op1,op2);
}
inline svuint16_t sveor_x(svbool_t pg, svuint16_t op1, uint16_t op2){
    return sveor_n_u16_x(pg,op1,op2);
}
inline svuint32_t sveor_x(svbool_t pg, svuint32_t op1, uint32_t op2){
    return sveor_n_u32_x(pg,op1,op2);
}
inline svuint64_t sveor_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return sveor_n_u64_x(pg,op1,op2);
}
inline svint8_t svnot_z(svbool_t pg, svint8_t op){
    return svnot_s8_z(pg,op);
}
inline svint16_t svnot_z(svbool_t pg, svint16_t op){
    return svnot_s16_z(pg,op);
}
inline svint32_t svnot_z(svbool_t pg, svint32_t op){
    return svnot_s32_z(pg,op);
}
inline svint64_t svnot_z(svbool_t pg, svint64_t op){
    return svnot_s64_z(pg,op);
}
inline svuint8_t svnot_z(svbool_t pg, svuint8_t op){
    return svnot_u8_z(pg,op);
}
inline svuint16_t svnot_z(svbool_t pg, svuint16_t op){
    return svnot_u16_z(pg,op);
}
inline svuint32_t svnot_z(svbool_t pg, svuint32_t op){
    return svnot_u32_z(pg,op);
}
inline svuint64_t svnot_z(svbool_t pg, svuint64_t op){
    return svnot_u64_z(pg,op);
}
inline svint8_t svnot_m(svint8_t inactive, svbool_t pg, svint8_t op){
    return svnot_s8_m(inactive,pg,op);
}
inline svint16_t svnot_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svnot_s16_m(inactive,pg,op);
}
inline svint32_t svnot_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svnot_s32_m(inactive,pg,op);
}
inline svint64_t svnot_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svnot_s64_m(inactive,pg,op);
}
inline svuint8_t svnot_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    return svnot_u8_m(inactive,pg,op);
}
inline svuint16_t svnot_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svnot_u16_m(inactive,pg,op);
}
inline svuint32_t svnot_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svnot_u32_m(inactive,pg,op);
}
inline svuint64_t svnot_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svnot_u64_m(inactive,pg,op);
}
inline svint8_t svnot_x(svbool_t pg, svint8_t op){
    return svnot_s8_x(pg,op);
}
inline svint16_t svnot_x(svbool_t pg, svint16_t op){
    return svnot_s16_x(pg,op);
}
inline svint32_t svnot_x(svbool_t pg, svint32_t op){
    return svnot_s32_x(pg,op);
}
inline svint64_t svnot_x(svbool_t pg, svint64_t op){
    return svnot_s64_x(pg,op);
}
inline svuint8_t svnot_x(svbool_t pg, svuint8_t op){
    return svnot_u8_x(pg,op);
}
inline svuint16_t svnot_x(svbool_t pg, svuint16_t op){
    return svnot_u16_x(pg,op);
}
inline svuint32_t svnot_x(svbool_t pg, svuint32_t op){
    return svnot_u32_x(pg,op);
}
inline svuint64_t svnot_x(svbool_t pg, svuint64_t op){
    return svnot_u64_x(pg,op);
}
inline svint8_t svcnot_z(svbool_t pg, svint8_t op){
    return svcnot_s8_z(pg,op);
}
inline svint16_t svcnot_z(svbool_t pg, svint16_t op){
    return svcnot_s16_z(pg,op);
}
inline svint32_t svcnot_z(svbool_t pg, svint32_t op){
    return svcnot_s32_z(pg,op);
}
inline svint64_t svcnot_z(svbool_t pg, svint64_t op){
    return svcnot_s64_z(pg,op);
}
inline svuint8_t svcnot_z(svbool_t pg, svuint8_t op){
    return svcnot_u8_z(pg,op);
}
inline svuint16_t svcnot_z(svbool_t pg, svuint16_t op){
    return svcnot_u16_z(pg,op);
}
inline svuint32_t svcnot_z(svbool_t pg, svuint32_t op){
    return svcnot_u32_z(pg,op);
}
inline svuint64_t svcnot_z(svbool_t pg, svuint64_t op){
    return svcnot_u64_z(pg,op);
}
inline svint8_t svcnot_m(svint8_t inactive, svbool_t pg, svint8_t op){
    return svcnot_s8_m(inactive,pg,op);
}
inline svint16_t svcnot_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svcnot_s16_m(inactive,pg,op);
}
inline svint32_t svcnot_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svcnot_s32_m(inactive,pg,op);
}
inline svint64_t svcnot_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svcnot_s64_m(inactive,pg,op);
}
inline svuint8_t svcnot_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    return svcnot_u8_m(inactive,pg,op);
}
inline svuint16_t svcnot_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svcnot_u16_m(inactive,pg,op);
}
inline svuint32_t svcnot_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svcnot_u32_m(inactive,pg,op);
}
inline svuint64_t svcnot_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svcnot_u64_m(inactive,pg,op);
}
inline svint8_t svcnot_x(svbool_t pg, svint8_t op){
    return svcnot_s8_x(pg,op);
}
inline svint16_t svcnot_x(svbool_t pg, svint16_t op){
    return svcnot_s16_x(pg,op);
}
inline svint32_t svcnot_x(svbool_t pg, svint32_t op){
    return svcnot_s32_x(pg,op);
}
inline svint64_t svcnot_x(svbool_t pg, svint64_t op){
    return svcnot_s64_x(pg,op);
}
inline svuint8_t svcnot_x(svbool_t pg, svuint8_t op){
    return svcnot_u8_x(pg,op);
}
inline svuint16_t svcnot_x(svbool_t pg, svuint16_t op){
    return svcnot_u16_x(pg,op);
}
inline svuint32_t svcnot_x(svbool_t pg, svuint32_t op){
    return svcnot_u32_x(pg,op);
}
inline svuint64_t svcnot_x(svbool_t pg, svuint64_t op){
    return svcnot_u64_x(pg,op);
}
inline svint8_t svlsl_z(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svlsl_s8_z(pg,op1,op2);
}
inline svint16_t svlsl_z(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svlsl_s16_z(pg,op1,op2);
}
inline svint32_t svlsl_z(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svlsl_s32_z(pg,op1,op2);
}
inline svint64_t svlsl_z(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svlsl_s64_z(pg,op1,op2);
}
inline svuint8_t svlsl_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsl_u8_z(pg,op1,op2);
}
inline svuint16_t svlsl_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsl_u16_z(pg,op1,op2);
}
inline svuint32_t svlsl_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsl_u32_z(pg,op1,op2);
}
inline svuint64_t svlsl_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsl_u64_z(pg,op1,op2);
}
inline svint8_t svlsl_m(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svlsl_s8_m(pg,op1,op2);
}
inline svint16_t svlsl_m(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svlsl_s16_m(pg,op1,op2);
}
inline svint32_t svlsl_m(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svlsl_s32_m(pg,op1,op2);
}
inline svint64_t svlsl_m(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svlsl_s64_m(pg,op1,op2);
}
inline svuint8_t svlsl_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsl_u8_m(pg,op1,op2);
}
inline svuint16_t svlsl_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsl_u16_m(pg,op1,op2);
}
inline svuint32_t svlsl_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsl_u32_m(pg,op1,op2);
}
inline svuint64_t svlsl_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsl_u64_m(pg,op1,op2);
}
inline svint8_t svlsl_x(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svlsl_s8_x(pg,op1,op2);
}
inline svint16_t svlsl_x(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svlsl_s16_x(pg,op1,op2);
}
inline svint32_t svlsl_x(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svlsl_s32_x(pg,op1,op2);
}
inline svint64_t svlsl_x(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svlsl_s64_x(pg,op1,op2);
}
inline svuint8_t svlsl_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsl_u8_x(pg,op1,op2);
}
inline svuint16_t svlsl_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsl_u16_x(pg,op1,op2);
}
inline svuint32_t svlsl_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsl_u32_x(pg,op1,op2);
}
inline svuint64_t svlsl_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsl_u64_x(pg,op1,op2);
}
inline svint64_t svlsl_z(svbool_t pg, svint64_t op1, uint64_t op2){
    return svlsl_n_s64_z(pg,op1,op2);
}
inline svuint64_t svlsl_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsl_n_u64_z(pg,op1,op2);
}
inline svint64_t svlsl_m(svbool_t pg, svint64_t op1, uint64_t op2){
    return svlsl_n_s64_m(pg,op1,op2);
}
inline svuint64_t svlsl_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsl_n_u64_m(pg,op1,op2);
}
inline svint64_t svlsl_x(svbool_t pg, svint64_t op1, uint64_t op2){
    return svlsl_n_s64_x(pg,op1,op2);
}
inline svuint64_t svlsl_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsl_n_u64_x(pg,op1,op2);
}
inline svint8_t svlsl_wide_z(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svlsl_wide_s8_z(pg,op1,op2);
}
inline svint16_t svlsl_wide_z(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svlsl_wide_s16_z(pg,op1,op2);
}
inline svint32_t svlsl_wide_z(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svlsl_wide_s32_z(pg,op1,op2);
}
inline svuint8_t svlsl_wide_z(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsl_wide_u8_z(pg,op1,op2);
}
inline svuint16_t svlsl_wide_z(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsl_wide_u16_z(pg,op1,op2);
}
inline svuint32_t svlsl_wide_z(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsl_wide_u32_z(pg,op1,op2);
}
inline svint8_t svlsl_wide_m(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svlsl_wide_s8_m(pg,op1,op2);
}
inline svint16_t svlsl_wide_m(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svlsl_wide_s16_m(pg,op1,op2);
}
inline svint32_t svlsl_wide_m(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svlsl_wide_s32_m(pg,op1,op2);
}
inline svuint8_t svlsl_wide_m(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsl_wide_u8_m(pg,op1,op2);
}
inline svuint16_t svlsl_wide_m(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsl_wide_u16_m(pg,op1,op2);
}
inline svuint32_t svlsl_wide_m(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsl_wide_u32_m(pg,op1,op2);
}
inline svint8_t svlsl_wide_x(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svlsl_wide_s8_x(pg,op1,op2);
}
inline svint16_t svlsl_wide_x(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svlsl_wide_s16_x(pg,op1,op2);
}
inline svint32_t svlsl_wide_x(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svlsl_wide_s32_x(pg,op1,op2);
}
inline svuint8_t svlsl_wide_x(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsl_wide_u8_x(pg,op1,op2);
}
inline svuint16_t svlsl_wide_x(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsl_wide_u16_x(pg,op1,op2);
}
inline svuint32_t svlsl_wide_x(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsl_wide_u32_x(pg,op1,op2);
}
inline svint8_t svlsl_z(svbool_t pg, svint8_t op1, uint64_t op2){
    return svlsl_n_s8_z(pg,op1,op2);
}
inline svint16_t svlsl_z(svbool_t pg, svint16_t op1, uint64_t op2){
    return svlsl_n_s16_z(pg,op1,op2);
}
inline svint32_t svlsl_z(svbool_t pg, svint32_t op1, uint64_t op2){
    return svlsl_n_s32_z(pg,op1,op2);
}
inline svuint8_t svlsl_z(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsl_n_u8_z(pg,op1,op2);
}
inline svuint16_t svlsl_z(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsl_n_u16_z(pg,op1,op2);
}
inline svuint32_t svlsl_z(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsl_n_u32_z(pg,op1,op2);
}
inline svint8_t svlsl_m(svbool_t pg, svint8_t op1, uint64_t op2){
    return svlsl_n_s8_m(pg,op1,op2);
}
inline svint16_t svlsl_m(svbool_t pg, svint16_t op1, uint64_t op2){
    return svlsl_n_s16_m(pg,op1,op2);
}
inline svint32_t svlsl_m(svbool_t pg, svint32_t op1, uint64_t op2){
    return svlsl_n_s32_m(pg,op1,op2);
}
inline svuint8_t svlsl_m(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsl_n_u8_m(pg,op1,op2);
}
inline svuint16_t svlsl_m(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsl_n_u16_m(pg,op1,op2);
}
inline svuint32_t svlsl_m(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsl_n_u32_m(pg,op1,op2);
}
inline svint8_t svlsl_x(svbool_t pg, svint8_t op1, uint64_t op2){
    return svlsl_n_s8_x(pg,op1,op2);
}
inline svint16_t svlsl_x(svbool_t pg, svint16_t op1, uint64_t op2){
    return svlsl_n_s16_x(pg,op1,op2);
}
inline svint32_t svlsl_x(svbool_t pg, svint32_t op1, uint64_t op2){
    return svlsl_n_s32_x(pg,op1,op2);
}
inline svuint8_t svlsl_x(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsl_n_u8_x(pg,op1,op2);
}
inline svuint16_t svlsl_x(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsl_n_u16_x(pg,op1,op2);
}
inline svuint32_t svlsl_x(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsl_n_u32_x(pg,op1,op2);
}
inline svuint8_t svlsr_z(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsr_u8_z(pg,op1,op2);
}
inline svuint16_t svlsr_z(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsr_u16_z(pg,op1,op2);
}
inline svuint32_t svlsr_z(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsr_u32_z(pg,op1,op2);
}
inline svuint64_t svlsr_z(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsr_u64_z(pg,op1,op2);
}
inline svuint8_t svlsr_m(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsr_u8_m(pg,op1,op2);
}
inline svuint16_t svlsr_m(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsr_u16_m(pg,op1,op2);
}
inline svuint32_t svlsr_m(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsr_u32_m(pg,op1,op2);
}
inline svuint64_t svlsr_m(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsr_u64_m(pg,op1,op2);
}
inline svuint8_t svlsr_x(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svlsr_u8_x(pg,op1,op2);
}
inline svuint16_t svlsr_x(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svlsr_u16_x(pg,op1,op2);
}
inline svuint32_t svlsr_x(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svlsr_u32_x(pg,op1,op2);
}
inline svuint64_t svlsr_x(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svlsr_u64_x(pg,op1,op2);
}
inline svuint64_t svlsr_z(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsr_n_u64_z(pg,op1,op2);
}
inline svuint64_t svlsr_m(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsr_n_u64_m(pg,op1,op2);
}
inline svuint64_t svlsr_x(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svlsr_n_u64_x(pg,op1,op2);
}
inline svuint8_t svlsr_wide_z(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsr_wide_u8_z(pg,op1,op2);
}
inline svuint16_t svlsr_wide_z(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsr_wide_u16_z(pg,op1,op2);
}
inline svuint32_t svlsr_wide_z(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsr_wide_u32_z(pg,op1,op2);
}
inline svuint8_t svlsr_wide_m(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsr_wide_u8_m(pg,op1,op2);
}
inline svuint16_t svlsr_wide_m(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsr_wide_u16_m(pg,op1,op2);
}
inline svuint32_t svlsr_wide_m(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsr_wide_u32_m(pg,op1,op2);
}
inline svuint8_t svlsr_wide_x(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svlsr_wide_u8_x(pg,op1,op2);
}
inline svuint16_t svlsr_wide_x(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svlsr_wide_u16_x(pg,op1,op2);
}
inline svuint32_t svlsr_wide_x(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svlsr_wide_u32_x(pg,op1,op2);
}
inline svuint8_t svlsr_z(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsr_n_u8_z(pg,op1,op2);
}
inline svuint16_t svlsr_z(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsr_n_u16_z(pg,op1,op2);
}
inline svuint32_t svlsr_z(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsr_n_u32_z(pg,op1,op2);
}
inline svuint8_t svlsr_m(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsr_n_u8_m(pg,op1,op2);
}
inline svuint16_t svlsr_m(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsr_n_u16_m(pg,op1,op2);
}
inline svuint32_t svlsr_m(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsr_n_u32_m(pg,op1,op2);
}
inline svuint8_t svlsr_x(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svlsr_n_u8_x(pg,op1,op2);
}
inline svuint16_t svlsr_x(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svlsr_n_u16_x(pg,op1,op2);
}
inline svuint32_t svlsr_x(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svlsr_n_u32_x(pg,op1,op2);
}
inline svint8_t svasr_z(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svasr_s8_z(pg,op1,op2);
}
inline svint16_t svasr_z(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svasr_s16_z(pg,op1,op2);
}
inline svint32_t svasr_z(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svasr_s32_z(pg,op1,op2);
}
inline svint64_t svasr_z(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svasr_s64_z(pg,op1,op2);
}
inline svint8_t svasr_m(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svasr_s8_m(pg,op1,op2);
}
inline svint16_t svasr_m(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svasr_s16_m(pg,op1,op2);
}
inline svint32_t svasr_m(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svasr_s32_m(pg,op1,op2);
}
inline svint64_t svasr_m(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svasr_s64_m(pg,op1,op2);
}
inline svint8_t svasr_x(svbool_t pg, svint8_t op1, svuint8_t op2){
    return svasr_s8_x(pg,op1,op2);
}
inline svint16_t svasr_x(svbool_t pg, svint16_t op1, svuint16_t op2){
    return svasr_s16_x(pg,op1,op2);
}
inline svint32_t svasr_x(svbool_t pg, svint32_t op1, svuint32_t op2){
    return svasr_s32_x(pg,op1,op2);
}
inline svint64_t svasr_x(svbool_t pg, svint64_t op1, svuint64_t op2){
    return svasr_s64_x(pg,op1,op2);
}
inline svint64_t svasr_z(svbool_t pg, svint64_t op1, uint64_t op2){
    return svasr_n_s64_z(pg,op1,op2);
}
inline svint64_t svasr_m(svbool_t pg, svint64_t op1, uint64_t op2){
    return svasr_n_s64_m(pg,op1,op2);
}
inline svint64_t svasr_x(svbool_t pg, svint64_t op1, uint64_t op2){
    return svasr_n_s64_x(pg,op1,op2);
}
inline svint8_t svasr_wide_z(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svasr_wide_s8_z(pg,op1,op2);
}
inline svint16_t svasr_wide_z(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svasr_wide_s16_z(pg,op1,op2);
}
inline svint32_t svasr_wide_z(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svasr_wide_s32_z(pg,op1,op2);
}
inline svint8_t svasr_wide_m(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svasr_wide_s8_m(pg,op1,op2);
}
inline svint16_t svasr_wide_m(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svasr_wide_s16_m(pg,op1,op2);
}
inline svint32_t svasr_wide_m(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svasr_wide_s32_m(pg,op1,op2);
}
inline svint8_t svasr_wide_x(svbool_t pg, svint8_t op1, svuint64_t op2){
    return svasr_wide_s8_x(pg,op1,op2);
}
inline svint16_t svasr_wide_x(svbool_t pg, svint16_t op1, svuint64_t op2){
    return svasr_wide_s16_x(pg,op1,op2);
}
inline svint32_t svasr_wide_x(svbool_t pg, svint32_t op1, svuint64_t op2){
    return svasr_wide_s32_x(pg,op1,op2);
}
inline svint8_t svasr_z(svbool_t pg, svint8_t op1, uint64_t op2){
    return svasr_n_s8_z(pg,op1,op2);
}
inline svint16_t svasr_z(svbool_t pg, svint16_t op1, uint64_t op2){
    return svasr_n_s16_z(pg,op1,op2);
}
inline svint32_t svasr_z(svbool_t pg, svint32_t op1, uint64_t op2){
    return svasr_n_s32_z(pg,op1,op2);
}
inline svint8_t svasr_m(svbool_t pg, svint8_t op1, uint64_t op2){
    return svasr_n_s8_m(pg,op1,op2);
}
inline svint16_t svasr_m(svbool_t pg, svint16_t op1, uint64_t op2){
    return svasr_n_s16_m(pg,op1,op2);
}
inline svint32_t svasr_m(svbool_t pg, svint32_t op1, uint64_t op2){
    return svasr_n_s32_m(pg,op1,op2);
}
inline svint8_t svasr_x(svbool_t pg, svint8_t op1, uint64_t op2){
    return svasr_n_s8_x(pg,op1,op2);
}
inline svint16_t svasr_x(svbool_t pg, svint16_t op1, uint64_t op2){
    return svasr_n_s16_x(pg,op1,op2);
}
inline svint32_t svasr_x(svbool_t pg, svint32_t op1, uint64_t op2){
    return svasr_n_s32_x(pg,op1,op2);
}
inline svint8_t svasrd_z(svbool_t pg, svint8_t op1, uint64_t imm2){
    return svasrd_n_s8_z(pg,op1,imm2);
}
inline svint16_t svasrd_z(svbool_t pg, svint16_t op1, uint64_t imm2){
    return svasrd_n_s16_z(pg,op1,imm2);
}
inline svint32_t svasrd_z(svbool_t pg, svint32_t op1, uint64_t imm2){
    return svasrd_n_s32_z(pg,op1,imm2);
}
inline svint64_t svasrd_z(svbool_t pg, svint64_t op1, uint64_t imm2){
    return svasrd_n_s64_z(pg,op1,imm2);
}
inline svint8_t svasrd_m(svbool_t pg, svint8_t op1, uint64_t imm2){
    return svasrd_n_s8_m(pg,op1,imm2);
}
inline svint16_t svasrd_m(svbool_t pg, svint16_t op1, uint64_t imm2){
    return svasrd_n_s16_m(pg,op1,imm2);
}
inline svint32_t svasrd_m(svbool_t pg, svint32_t op1, uint64_t imm2){
    return svasrd_n_s32_m(pg,op1,imm2);
}
inline svint64_t svasrd_m(svbool_t pg, svint64_t op1, uint64_t imm2){
    return svasrd_n_s64_m(pg,op1,imm2);
}
inline svint8_t svasrd_x(svbool_t pg, svint8_t op1, uint64_t imm2){
    return svasrd_n_s8_x(pg,op1,imm2);
}
inline svint16_t svasrd_x(svbool_t pg, svint16_t op1, uint64_t imm2){
    return svasrd_n_s16_x(pg,op1,imm2);
}
inline svint32_t svasrd_x(svbool_t pg, svint32_t op1, uint64_t imm2){
    return svasrd_n_s32_x(pg,op1,imm2);
}
inline svint64_t svasrd_x(svbool_t pg, svint64_t op1, uint64_t imm2){
    return svasrd_n_s64_x(pg,op1,imm2);
}
inline svint8_t svinsr(svint8_t op1, int8_t op2){
    return svinsr_n_s8(op1,op2);
}
inline svint16_t svinsr(svint16_t op1, int16_t op2){
    return svinsr_n_s16(op1,op2);
}
inline svint32_t svinsr(svint32_t op1, int32_t op2){
    return svinsr_n_s32(op1,op2);
}
inline svint64_t svinsr(svint64_t op1, int64_t op2){
    return svinsr_n_s64(op1,op2);
}
inline svuint8_t svinsr(svuint8_t op1, uint8_t op2){
    return svinsr_n_u8(op1,op2);
}
inline svuint16_t svinsr(svuint16_t op1, uint16_t op2){
    return svinsr_n_u16(op1,op2);
}
inline svuint32_t svinsr(svuint32_t op1, uint32_t op2){
    return svinsr_n_u32(op1,op2);
}
inline svuint64_t svinsr(svuint64_t op1, uint64_t op2){
    return svinsr_n_u64(op1,op2);
}
inline svfloat16_t svinsr(svfloat16_t op1, float16_t op2){
    return svinsr_n_f16(op1,op2);
}
inline svfloat32_t svinsr(svfloat32_t op1, float32_t op2){
    return svinsr_n_f32(op1,op2);
}
inline svfloat64_t svinsr(svfloat64_t op1, float64_t op2){
    return svinsr_n_f64(op1,op2);
}
inline int64_t svaddv(svbool_t pg, svint8_t op){
    return svaddv_s8(pg,op);
}
inline int64_t svaddv(svbool_t pg, svint16_t op){
    return svaddv_s16(pg,op);
}
inline int64_t svaddv(svbool_t pg, svint32_t op){
    return svaddv_s32(pg,op);
}
inline int64_t svaddv(svbool_t pg, svint64_t op){
    return svaddv_s64(pg,op);
}
inline uint64_t svaddv(svbool_t pg, svuint8_t op){
    return svaddv_u8(pg,op);
}
inline uint64_t svaddv(svbool_t pg, svuint16_t op){
    return svaddv_u16(pg,op);
}
inline uint64_t svaddv(svbool_t pg, svuint32_t op){
    return svaddv_u32(pg,op);
}
inline uint64_t svaddv(svbool_t pg, svuint64_t op){
    return svaddv_u64(pg,op);
}
inline int8_t svmaxv(svbool_t pg, svint8_t op){
    return svmaxv_s8(pg,op);
}
inline int16_t svmaxv(svbool_t pg, svint16_t op){
    return svmaxv_s16(pg,op);
}
inline int32_t svmaxv(svbool_t pg, svint32_t op){
    return svmaxv_s32(pg,op);
}
inline int64_t svmaxv(svbool_t pg, svint64_t op){
    return svmaxv_s64(pg,op);
}
inline uint8_t svmaxv(svbool_t pg, svuint8_t op){
    return svmaxv_u8(pg,op);
}
inline uint16_t svmaxv(svbool_t pg, svuint16_t op){
    return svmaxv_u16(pg,op);
}
inline uint32_t svmaxv(svbool_t pg, svuint32_t op){
    return svmaxv_u32(pg,op);
}
inline uint64_t svmaxv(svbool_t pg, svuint64_t op){
    return svmaxv_u64(pg,op);
}
inline int8_t svminv(svbool_t pg, svint8_t op){
    return svminv_s8(pg,op);
}
inline int16_t svminv(svbool_t pg, svint16_t op){
    return svminv_s16(pg,op);
}
inline int32_t svminv(svbool_t pg, svint32_t op){
    return svminv_s32(pg,op);
}
inline int64_t svminv(svbool_t pg, svint64_t op){
    return svminv_s64(pg,op);
}
inline uint8_t svminv(svbool_t pg, svuint8_t op){
    return svminv_u8(pg,op);
}
inline uint16_t svminv(svbool_t pg, svuint16_t op){
    return svminv_u16(pg,op);
}
inline uint32_t svminv(svbool_t pg, svuint32_t op){
    return svminv_u32(pg,op);
}
inline uint64_t svminv(svbool_t pg, svuint64_t op){
    return svminv_u64(pg,op);
}
inline int8_t svandv(svbool_t pg, svint8_t op){
    return svandv_s8(pg,op);
}
inline int16_t svandv(svbool_t pg, svint16_t op){
    return svandv_s16(pg,op);
}
inline int32_t svandv(svbool_t pg, svint32_t op){
    return svandv_s32(pg,op);
}
inline int64_t svandv(svbool_t pg, svint64_t op){
    return svandv_s64(pg,op);
}
inline uint8_t svandv(svbool_t pg, svuint8_t op){
    return svandv_u8(pg,op);
}
inline uint16_t svandv(svbool_t pg, svuint16_t op){
    return svandv_u16(pg,op);
}
inline uint32_t svandv(svbool_t pg, svuint32_t op){
    return svandv_u32(pg,op);
}
inline uint64_t svandv(svbool_t pg, svuint64_t op){
    return svandv_u64(pg,op);
}
inline int8_t svorv(svbool_t pg, svint8_t op){
    return svorv_s8(pg,op);
}
inline int16_t svorv(svbool_t pg, svint16_t op){
    return svorv_s16(pg,op);
}
inline int32_t svorv(svbool_t pg, svint32_t op){
    return svorv_s32(pg,op);
}
inline int64_t svorv(svbool_t pg, svint64_t op){
    return svorv_s64(pg,op);
}
inline uint8_t svorv(svbool_t pg, svuint8_t op){
    return svorv_u8(pg,op);
}
inline uint16_t svorv(svbool_t pg, svuint16_t op){
    return svorv_u16(pg,op);
}
inline uint32_t svorv(svbool_t pg, svuint32_t op){
    return svorv_u32(pg,op);
}
inline uint64_t svorv(svbool_t pg, svuint64_t op){
    return svorv_u64(pg,op);
}
inline int8_t sveorv(svbool_t pg, svint8_t op){
    return sveorv_s8(pg,op);
}
inline int16_t sveorv(svbool_t pg, svint16_t op){
    return sveorv_s16(pg,op);
}
inline int32_t sveorv(svbool_t pg, svint32_t op){
    return sveorv_s32(pg,op);
}
inline int64_t sveorv(svbool_t pg, svint64_t op){
    return sveorv_s64(pg,op);
}
inline uint8_t sveorv(svbool_t pg, svuint8_t op){
    return sveorv_u8(pg,op);
}
inline uint16_t sveorv(svbool_t pg, svuint16_t op){
    return sveorv_u16(pg,op);
}
inline uint32_t sveorv(svbool_t pg, svuint32_t op){
    return sveorv_u32(pg,op);
}
inline uint64_t sveorv(svbool_t pg, svuint64_t op){
    return sveorv_u64(pg,op);
}
inline svbool_t    svcmpeq(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmpeq_s8(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmpeq_s16(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmpeq_s32(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmpeq_s64(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmpeq_u8(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmpeq_u16(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmpeq_u32(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmpeq_u64(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmpeq_n_s64(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmpeq_n_u64(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmpeq_wide_s8(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmpeq_wide_s16(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmpeq_wide_s32(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmpeq_wide_u8(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmpeq_wide_u16(pg,op1,op2);
}
inline svbool_t    svcmpeq_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmpeq_wide_u32(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmpeq_n_s8(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmpeq_n_s16(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmpeq_n_s32(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmpeq_n_u8(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmpeq_n_u16(pg,op1,op2);
}
inline svbool_t    svcmpeq(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmpeq_n_u32(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmpne_s8(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmpne_s16(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmpne_s32(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmpne_s64(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmpne_u8(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmpne_u16(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmpne_u32(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmpne_u64(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmpne_n_s64(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmpne_n_u64(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmpne_wide_s8(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmpne_wide_s16(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmpne_wide_s32(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmpne_wide_u8(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmpne_wide_u16(pg,op1,op2);
}
inline svbool_t     svcmpne_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmpne_wide_u32(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmpne_n_s8(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmpne_n_s16(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmpne_n_s32(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmpne_n_u8(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmpne_n_u16(pg,op1,op2);
}
inline svbool_t     svcmpne(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmpne_n_u32(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmplt_s8(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmplt_s16(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmplt_s32(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmplt_s64(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmplt_u8(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmplt_u16(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmplt_u32(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmplt_u64(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmplt_n_s64(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmplt_n_u64(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmplt_wide_s8(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmplt_wide_s16(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmplt_wide_s32(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmplt_wide_u8(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmplt_wide_u16(pg,op1,op2);
}
inline svbool_t     svcmplt_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmplt_wide_u32(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmplt_n_s8(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmplt_n_s16(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmplt_n_s32(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmplt_n_u8(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmplt_n_u16(pg,op1,op2);
}
inline svbool_t     svcmplt(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmplt_n_u32(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmple_s8(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmple_s16(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmple_s32(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmple_s64(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmple_u8(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmple_u16(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmple_u32(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmple_u64(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmple_n_s64(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmple_n_u64(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmple_wide_s8(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmple_wide_s16(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmple_wide_s32(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmple_wide_u8(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmple_wide_u16(pg,op1,op2);
}
inline svbool_t     svcmple_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmple_wide_u32(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmple_n_s8(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmple_n_s16(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmple_n_s32(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmple_n_u8(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmple_n_u16(pg,op1,op2);
}
inline svbool_t     svcmple(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmple_n_u32(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmpge_s8(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmpge_s16(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmpge_s32(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmpge_s64(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmpge_u8(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmpge_u16(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmpge_u32(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmpge_u64(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmpge_n_s64(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmpge_n_u64(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmpge_wide_s8(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmpge_wide_s16(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmpge_wide_s32(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmpge_wide_u8(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmpge_wide_u16(pg,op1,op2);
}
inline svbool_t     svcmpge_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmpge_wide_u32(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmpge_n_s8(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmpge_n_s16(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmpge_n_s32(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmpge_n_u8(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmpge_n_u16(pg,op1,op2);
}
inline svbool_t     svcmpge(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmpge_n_u32(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint8_t op1, svint8_t op2){
    return svcmpgt_s8(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint16_t op1, svint16_t op2){
    return svcmpgt_s16(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint32_t op1, svint32_t op2){
    return svcmpgt_s32(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint64_t op1, svint64_t op2){
    return svcmpgt_s64(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svcmpgt_u8(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svcmpgt_u16(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svcmpgt_u32(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svcmpgt_u64(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svint64_t op1, int64_t op2){
    return svcmpgt_n_s64(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svuint64_t op1, uint64_t op2){
    return svcmpgt_n_u64(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svint8_t op1, svint64_t op2){
    return svcmpgt_wide_s8(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svint16_t op1, svint64_t op2){
    return svcmpgt_wide_s16(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svint32_t op1, svint64_t op2){
    return svcmpgt_wide_s32(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svuint8_t op1, svuint64_t op2){
    return svcmpgt_wide_u8(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svuint16_t op1, svuint64_t op2){
    return svcmpgt_wide_u16(pg,op1,op2);
}
inline svbool_t     svcmpgt_wide(svbool_t pg, svuint32_t op1, svuint64_t op2){
    return svcmpgt_wide_u32(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint8_t op1, int64_t op2){
    return svcmpgt_n_s8(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint16_t op1, int64_t op2){
    return svcmpgt_n_s16(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svint32_t op1, int64_t op2){
    return svcmpgt_n_s32(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint8_t op1, uint64_t op2){
    return svcmpgt_n_u8(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint16_t op1, uint64_t op2){
    return svcmpgt_n_u16(pg,op1,op2);
}
inline svbool_t     svcmpgt(svbool_t pg, svuint32_t op1, uint64_t op2){
    return svcmpgt_n_u32(pg,op1,op2);
}
inline svbool_t     svwhilelt_b8(int32_t op1, int32_t op2){
    return svwhilelt_b8_s32(op1,op2);
}
inline svbool_t     svwhilelt_b16(int32_t op1, int32_t op2){
    return svwhilelt_b16_s32(op1,op2);
}
inline svbool_t     svwhilelt_b32(int32_t op1, int32_t op2){
    return svwhilelt_b32_s32(op1,op2);
}
inline svbool_t     svwhilelt_b64(int32_t op1, int32_t op2){
    return svwhilelt_b64_s32(op1,op2);
}
inline svbool_t     svwhilelt_b8(uint32_t op1, uint32_t op2){
    return svwhilelt_b8_u32(op1,op2);
}
inline svbool_t     svwhilelt_b16(uint32_t op1, uint32_t op2){
    return svwhilelt_b16_u32(op1,op2);
}
inline svbool_t     svwhilelt_b32(uint32_t op1, uint32_t op2){
    return svwhilelt_b32_u32(op1,op2);
}
inline svbool_t     svwhilelt_b64(uint32_t op1, uint32_t op2){
    return svwhilelt_b64_u32(op1,op2);
}
inline svbool_t     svwhilelt_b8(int64_t op1, int64_t op2){
    return svwhilelt_b8_s64(op1,op2);
}
inline svbool_t     svwhilelt_b16(int64_t op1, int64_t op2){
    return svwhilelt_b16_s64(op1,op2);
}
inline svbool_t     svwhilelt_b32(int64_t op1, int64_t op2){
    return svwhilelt_b32_s64(op1,op2);
}
inline svbool_t     svwhilelt_b64(int64_t op1, int64_t op2){
    return svwhilelt_b64_s64(op1,op2);
}
inline svbool_t     svwhilelt_b8(uint64_t op1, uint64_t op2){
    return svwhilelt_b8_u64(op1,op2);
}
inline svbool_t     svwhilelt_b16(uint64_t op1, uint64_t op2){
    return svwhilelt_b16_u64(op1,op2);
}
inline svbool_t     svwhilelt_b32(uint64_t op1, uint64_t op2){
    return svwhilelt_b32_u64(op1,op2);
}
inline svbool_t     svwhilelt_b64(uint64_t op1, uint64_t op2){
    return svwhilelt_b64_u64(op1,op2);
}
inline svbool_t svwhilele_b8(int32_t op1, int32_t op2){
    return svwhilele_b8_s32(op1,op2);
}
inline svbool_t     svwhilele_b16(int32_t op1, int32_t op2){
    return svwhilele_b16_s32(op1,op2);
}
inline svbool_t     svwhilele_b32(int32_t op1, int32_t op2){
    return svwhilele_b32_s32(op1,op2);
}
inline svbool_t     svwhilele_b64(int32_t op1, int32_t op2){
    return svwhilele_b64_s32(op1,op2);
}
inline svbool_t     svwhilele_b8(uint32_t op1, uint32_t op2){
    return svwhilele_b8_u32(op1,op2);
}
inline svbool_t     svwhilele_b16(uint32_t op1, uint32_t op2){
    return svwhilele_b16_u32(op1,op2);
}
inline svbool_t     svwhilele_b32(uint32_t op1, uint32_t op2){
    return svwhilele_b32_u32(op1,op2);
}
inline svbool_t     svwhilele_b64(uint32_t op1, uint32_t op2){
    return svwhilele_b64_u32(op1,op2);
}
inline svbool_t     svwhilele_b8(int64_t op1, int64_t op2){
    return svwhilele_b8_s64(op1,op2);
}
inline svbool_t     svwhilele_b16(int64_t op1, int64_t op2){
    return svwhilele_b16_s64(op1,op2);
}
inline svbool_t     svwhilele_b32(int64_t op1, int64_t op2){
    return svwhilele_b32_s64(op1,op2);
}
inline svbool_t     svwhilele_b64(int64_t op1, int64_t op2){
    return svwhilele_b64_s64(op1,op2);
}
inline svbool_t     svwhilele_b8(uint64_t op1, uint64_t op2){
    return svwhilele_b8_u64(op1,op2);
}
inline svbool_t     svwhilele_b16(uint64_t op1, uint64_t op2){
    return svwhilele_b16_u64(op1,op2);
}
inline svbool_t     svwhilele_b32(uint64_t op1, uint64_t op2){
    return svwhilele_b32_u64(op1,op2);
}
inline svbool_t     svwhilele_b64(uint64_t op1, uint64_t op2){
    return svwhilele_b64_u64(op1,op2);
}
inline svuint8_t svcls_z(svbool_t pg, svint8_t op){
    return svcls_s8_z(pg,op);
}
inline svuint16_t svcls_z(svbool_t pg, svint16_t op){
    return svcls_s16_z(pg,op);
}
inline svuint32_t svcls_z(svbool_t pg, svint32_t op){
    return svcls_s32_z(pg,op);
}
inline svuint64_t svcls_z(svbool_t pg, svint64_t op){
    return svcls_s64_z(pg,op);
}
inline svuint8_t svcls_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    return svcls_s8_m(inactive,pg,op);
}
inline svuint16_t svcls_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    return svcls_s16_m(inactive,pg,op);
}
inline svuint32_t svcls_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    return svcls_s32_m(inactive,pg,op);
}
inline svuint64_t svcls_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    return svcls_s64_m(inactive,pg,op);
}
inline svuint8_t svcls_x(svbool_t pg, svint8_t op){
    return svcls_s8_x(pg,op);
}
inline svuint16_t svcls_x(svbool_t pg, svint16_t op){
    return svcls_s16_x(pg,op);
}
inline svuint32_t svcls_x(svbool_t pg, svint32_t op){
    return svcls_s32_x(pg,op);
}
inline svuint64_t svcls_x(svbool_t pg, svint64_t op){
    return svcls_s64_x(pg,op);
}
inline svuint8_t svclz_z(svbool_t pg, svint8_t op){
    return svclz_s8_z(pg,op);
}
inline svuint16_t svclz_z(svbool_t pg, svint16_t op){
    return svclz_s16_z(pg,op);
}
inline svuint32_t svclz_z(svbool_t pg, svint32_t op){
    return svclz_s32_z(pg,op);
}
inline svuint64_t svclz_z(svbool_t pg, svint64_t op){
    return svclz_s64_z(pg,op);
}
inline svuint8_t svclz_z(svbool_t pg, svuint8_t op){
    return svclz_u8_z(pg,op);
}
inline svuint16_t svclz_z(svbool_t pg, svuint16_t op){
    return svclz_u16_z(pg,op);
}
inline svuint32_t svclz_z(svbool_t pg, svuint32_t op){
    return svclz_u32_z(pg,op);
}
inline svuint64_t svclz_z(svbool_t pg, svuint64_t op){
    return svclz_u64_z(pg,op);
}
inline svuint8_t svclz_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    return svclz_s8_m(inactive,pg,op);
}
inline svuint16_t svclz_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    return svclz_s16_m(inactive,pg,op);
}
inline svuint32_t svclz_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    return svclz_s32_m(inactive,pg,op);
}
inline svuint64_t svclz_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    return svclz_s64_m(inactive,pg,op);
}
inline svuint8_t svclz_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    return svclz_u8_m(inactive,pg,op);
}
inline svuint16_t svclz_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svclz_u16_m(inactive,pg,op);
}
inline svuint32_t svclz_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svclz_u32_m(inactive,pg,op);
}
inline svuint64_t svclz_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svclz_u64_m(inactive,pg,op);
}
inline svuint8_t svclz_x(svbool_t pg, svint8_t op){
    return svclz_s8_x(pg,op);
}
inline svuint16_t svclz_x(svbool_t pg, svint16_t op){
    return svclz_s16_x(pg,op);
}
inline svuint32_t svclz_x(svbool_t pg, svint32_t op){
    return svclz_s32_x(pg,op);
}
inline svuint64_t svclz_x(svbool_t pg, svint64_t op){
    return svclz_s64_x(pg,op);
}
inline svuint8_t svclz_x(svbool_t pg, svuint8_t op){
    return svclz_u8_x(pg,op);
}
inline svuint16_t svclz_x(svbool_t pg, svuint16_t op){
    return svclz_u16_x(pg,op);
}
inline svuint32_t svclz_x(svbool_t pg, svuint32_t op){
    return svclz_u32_x(pg,op);
}
inline svuint64_t svclz_x(svbool_t pg, svuint64_t op){
    return svclz_u64_x(pg,op);
}
inline svuint8_t svcnt_z(svbool_t pg, svint8_t op){
    return svcnt_s8_z(pg,op);
}
inline svuint16_t svcnt_z(svbool_t pg, svint16_t op){
    return svcnt_s16_z(pg,op);
}
inline svuint32_t svcnt_z(svbool_t pg, svint32_t op){
    return svcnt_s32_z(pg,op);
}
inline svuint64_t svcnt_z(svbool_t pg, svint64_t op){
    return svcnt_s64_z(pg,op);
}
inline svuint8_t svcnt_z(svbool_t pg, svuint8_t op){
    return svcnt_u8_z(pg,op);
}
inline svuint16_t svcnt_z(svbool_t pg, svuint16_t op){
    return svcnt_u16_z(pg,op);
}
inline svuint32_t svcnt_z(svbool_t pg, svuint32_t op){
    return svcnt_u32_z(pg,op);
}
inline svuint64_t svcnt_z(svbool_t pg, svuint64_t op){
    return svcnt_u64_z(pg,op);
}
inline svuint16_t svcnt_z(svbool_t pg, svfloat16_t op){
    return svcnt_f16_z(pg,op);
}
inline svuint32_t svcnt_z(svbool_t pg, svfloat32_t op){
    return svcnt_f32_z(pg,op);
}
inline svuint64_t svcnt_z(svbool_t pg, svfloat64_t op){
    return svcnt_f64_z(pg,op);
}
inline svuint8_t svcnt_m(svuint8_t inactive, svbool_t pg, svint8_t op){
    return svcnt_s8_m(inactive,pg,op);
}
inline svuint16_t svcnt_m(svuint16_t inactive, svbool_t pg, svint16_t op){
    return svcnt_s16_m(inactive,pg,op);
}
inline svuint32_t svcnt_m(svuint32_t inactive, svbool_t pg, svint32_t op){
    return svcnt_s32_m(inactive,pg,op);
}
inline svuint64_t svcnt_m(svuint64_t inactive, svbool_t pg, svint64_t op){
    return svcnt_s64_m(inactive,pg,op);
}
inline svuint8_t svcnt_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    return svcnt_u8_m(inactive,pg,op);
}
inline svuint16_t svcnt_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svcnt_u16_m(inactive,pg,op);
}
inline svuint32_t svcnt_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svcnt_u32_m(inactive,pg,op);
}
inline svuint64_t svcnt_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svcnt_u64_m(inactive,pg,op);
}
inline svuint16_t svcnt_m(svuint16_t inactive, svbool_t pg, svfloat16_t op){
    return svcnt_f16_m(inactive,pg,op);
}
inline svuint32_t svcnt_m(svuint32_t inactive, svbool_t pg, svfloat32_t op){
    return svcnt_f32_m(inactive,pg,op);
}
inline svuint64_t svcnt_m(svuint64_t inactive, svbool_t pg, svfloat64_t op){
    return svcnt_f64_m(inactive,pg,op);
}
inline svuint8_t svcnt_x(svbool_t pg, svint8_t op){
    return svcnt_s8_x(pg,op);
}
inline svuint16_t svcnt_x(svbool_t pg, svint16_t op){
    return svcnt_s16_x(pg,op);
}
inline svuint32_t svcnt_x(svbool_t pg, svint32_t op){
    return svcnt_s32_x(pg,op);
}
inline svuint64_t svcnt_x(svbool_t pg, svint64_t op){
    return svcnt_s64_x(pg,op);
}
inline svuint8_t svcnt_x(svbool_t pg, svuint8_t op){
    return svcnt_u8_x(pg,op);
}
inline svuint16_t svcnt_x(svbool_t pg, svuint16_t op){
    return svcnt_u16_x(pg,op);
}
inline svuint32_t svcnt_x(svbool_t pg, svuint32_t op){
    return svcnt_u32_x(pg,op);
}
inline svuint64_t svcnt_x(svbool_t pg, svuint64_t op){
    return svcnt_u64_x(pg,op);
}
inline svuint16_t svcnt_x(svbool_t pg, svfloat16_t op){
    return svcnt_f16_x(pg,op);
}
inline svuint32_t svcnt_x(svbool_t pg, svfloat32_t op){
    return svcnt_f32_x(pg,op);
}
inline svuint64_t svcnt_x(svbool_t pg, svfloat64_t op){
    return svcnt_f64_x(pg,op);
}
inline svint16_t svextb_z(svbool_t pg, svint16_t op){
    return svextb_s16_z(pg,op);
}
inline svint32_t svextb_z(svbool_t pg, svint32_t op){
    return svextb_s32_z(pg,op);
}
inline svint64_t svextb_z(svbool_t pg, svint64_t op){
    return svextb_s64_z(pg,op);
}
inline svuint16_t svextb_z(svbool_t pg, svuint16_t op){
    return svextb_u16_z(pg,op);
}
inline svuint32_t svextb_z(svbool_t pg, svuint32_t op){
    return svextb_u32_z(pg,op);
}
inline svuint64_t svextb_z(svbool_t pg, svuint64_t op){
    return svextb_u64_z(pg,op);
}
inline svint16_t svextb_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svextb_s16_m(inactive,pg,op);
}
inline svint32_t svextb_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svextb_s32_m(inactive,pg,op);
}
inline svint64_t svextb_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svextb_s64_m(inactive,pg,op);
}
inline svuint16_t svextb_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svextb_u16_m(inactive,pg,op);
}
inline svuint32_t svextb_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svextb_u32_m(inactive,pg,op);
}
inline svuint64_t svextb_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svextb_u64_m(inactive,pg,op);
}
inline svint16_t svextb_x(svbool_t pg, svint16_t op){
    return svextb_s16_x(pg,op);
}
inline svint32_t svextb_x(svbool_t pg, svint32_t op){
    return svextb_s32_x(pg,op);
}
inline svint64_t svextb_x(svbool_t pg, svint64_t op){
    return svextb_s64_x(pg,op);
}
inline svuint16_t svextb_x(svbool_t pg, svuint16_t op){
    return svextb_u16_x(pg,op);
}
inline svuint32_t svextb_x(svbool_t pg, svuint32_t op){
    return svextb_u32_x(pg,op);
}
inline svuint64_t svextb_x(svbool_t pg, svuint64_t op){
    return svextb_u64_x(pg,op);
}
inline svint32_t svexth_z(svbool_t pg, svint32_t op){
    return svexth_s32_z(pg,op);
}
inline svint64_t svexth_z(svbool_t pg, svint64_t op){
    return svexth_s64_z(pg,op);
}
inline svuint32_t svexth_z(svbool_t pg, svuint32_t op){
    return svexth_u32_z(pg,op);
}
inline svuint64_t svexth_z(svbool_t pg, svuint64_t op){
    return svexth_u64_z(pg,op);
}
inline svint32_t svexth_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svexth_s32_m(inactive,pg,op);
}
inline svint64_t svexth_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svexth_s64_m(inactive,pg,op);
}
inline svuint32_t svexth_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svexth_u32_m(inactive,pg,op);
}
inline svuint64_t svexth_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svexth_u64_m(inactive,pg,op);
}
inline svint32_t svexth_x(svbool_t pg, svint32_t op){
    return svexth_s32_x(pg,op);
}
inline svint64_t svexth_x(svbool_t pg, svint64_t op){
    return svexth_s64_x(pg,op);
}
inline svuint32_t svexth_x(svbool_t pg, svuint32_t op){
    return svexth_u32_x(pg,op);
}
inline svuint64_t svexth_x(svbool_t pg, svuint64_t op){
    return svexth_u64_x(pg,op);
}
inline svint64_t svextw_z(svbool_t pg, svint64_t op){
    return svextw_s64_z(pg,op);
}
inline svuint64_t svextw_z(svbool_t pg, svuint64_t op){
    return svextw_u64_z(pg,op);
}
inline svint64_t svextw_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svextw_s64_m(inactive,pg,op);
}
inline svuint64_t svextw_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svextw_u64_m(inactive,pg,op);
}
inline svint64_t svextw_x(svbool_t pg, svint64_t op){
    return svextw_s64_x(pg,op);
}
inline svuint64_t svextw_x(svbool_t pg, svuint64_t op){
    return svextw_u64_x(pg,op);
}
inline svint8_t svrbit_z(svbool_t pg, svint8_t op){
    return svrbit_s8_z(pg,op);
}
inline svint16_t svrbit_z(svbool_t pg, svint16_t op){
    return svrbit_s16_z(pg,op);
}
inline svint32_t svrbit_z(svbool_t pg, svint32_t op){
    return svrbit_s32_z(pg,op);
}
inline svint64_t svrbit_z(svbool_t pg, svint64_t op){
    return svrbit_s64_z(pg,op);
}
inline svuint8_t svrbit_z(svbool_t pg, svuint8_t op){
    return svrbit_u8_z(pg,op);
}
inline svuint16_t svrbit_z(svbool_t pg, svuint16_t op){
    return svrbit_u16_z(pg,op);
}
inline svuint32_t svrbit_z(svbool_t pg, svuint32_t op){
    return svrbit_u32_z(pg,op);
}
inline svuint64_t svrbit_z(svbool_t pg, svuint64_t op){
    return svrbit_u64_z(pg,op);
}
inline svint8_t svrbit_m(svint8_t inactive, svbool_t pg, svint8_t op){
    return svrbit_s8_m(inactive,pg,op);
}
inline svint16_t svrbit_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svrbit_s16_m(inactive,pg,op);
}
inline svint32_t svrbit_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svrbit_s32_m(inactive,pg,op);
}
inline svint64_t svrbit_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svrbit_s64_m(inactive,pg,op);
}
inline svuint8_t svrbit_m(svuint8_t inactive, svbool_t pg, svuint8_t op){
    return svrbit_u8_m(inactive,pg,op);
}
inline svuint16_t svrbit_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svrbit_u16_m(inactive,pg,op);
}
inline svuint32_t svrbit_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svrbit_u32_m(inactive,pg,op);
}
inline svuint64_t svrbit_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svrbit_u64_m(inactive,pg,op);
}
inline svint8_t svrbit_x(svbool_t pg, svint8_t op){
    return svrbit_s8_x(pg,op);
}
inline svint16_t svrbit_x(svbool_t pg, svint16_t op){
    return svrbit_s16_x(pg,op);
}
inline svint32_t svrbit_x(svbool_t pg, svint32_t op){
    return svrbit_s32_x(pg,op);
}
inline svint64_t svrbit_x(svbool_t pg, svint64_t op){
    return svrbit_s64_x(pg,op);
}
inline svuint8_t svrbit_x(svbool_t pg, svuint8_t op){
    return svrbit_u8_x(pg,op);
}
inline svuint16_t svrbit_x(svbool_t pg, svuint16_t op){
    return svrbit_u16_x(pg,op);
}
inline svuint32_t svrbit_x(svbool_t pg, svuint32_t op){
    return svrbit_u32_x(pg,op);
}
inline svuint64_t svrbit_x(svbool_t pg, svuint64_t op){
    return svrbit_u64_x(pg,op);
}
inline svint16_t svrevb_z(svbool_t pg, svint16_t op){
    return svrevb_s16_z(pg,op);
}
inline svint32_t svrevb_z(svbool_t pg, svint32_t op){
    return svrevb_s32_z(pg,op);
}
inline svint64_t svrevb_z(svbool_t pg, svint64_t op){
    return svrevb_s64_z(pg,op);
}
inline svuint16_t svrevb_z(svbool_t pg, svuint16_t op){
    return svrevb_u16_z(pg,op);
}
inline svuint32_t svrevb_z(svbool_t pg, svuint32_t op){
    return svrevb_u32_z(pg,op);
}
inline svuint64_t svrevb_z(svbool_t pg, svuint64_t op){
    return svrevb_u64_z(pg,op);
}
inline svint16_t svrevb_m(svint16_t inactive, svbool_t pg, svint16_t op){
    return svrevb_s16_m(inactive,pg,op);
}
inline svint32_t svrevb_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svrevb_s32_m(inactive,pg,op);
}
inline svint64_t svrevb_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svrevb_s64_m(inactive,pg,op);
}
inline svuint16_t svrevb_m(svuint16_t inactive, svbool_t pg, svuint16_t op){
    return svrevb_u16_m(inactive,pg,op);
}
inline svuint32_t svrevb_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svrevb_u32_m(inactive,pg,op);
}
inline svuint64_t svrevb_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svrevb_u64_m(inactive,pg,op);
}
inline svint16_t svrevb_x(svbool_t pg, svint16_t op){
    return svrevb_s16_x(pg,op);
}
inline svint32_t svrevb_x(svbool_t pg, svint32_t op){
    return svrevb_s32_x(pg,op);
}
inline svint64_t svrevb_x(svbool_t pg, svint64_t op){
    return svrevb_s64_x(pg,op);
}
inline svuint16_t svrevb_x(svbool_t pg, svuint16_t op){
    return svrevb_u16_x(pg,op);
}
inline svuint32_t svrevb_x(svbool_t pg, svuint32_t op){
    return svrevb_u32_x(pg,op);
}
inline svuint64_t svrevb_x(svbool_t pg, svuint64_t op){
    return svrevb_u64_x(pg,op);
}
inline svint32_t svrevh_z(svbool_t pg, svint32_t op){
    return svrevh_s32_z(pg,op);
}
inline svint64_t svrevh_z(svbool_t pg, svint64_t op){
    return svrevh_s64_z(pg,op);
}
inline svuint32_t svrevh_z(svbool_t pg, svuint32_t op){
    return svrevh_u32_z(pg,op);
}
inline svuint64_t svrevh_z(svbool_t pg, svuint64_t op){
    return svrevh_u64_z(pg,op);
}
inline svint32_t svrevh_m(svint32_t inactive, svbool_t pg, svint32_t op){
    return svrevh_s32_m(inactive,pg,op);
}
inline svint64_t svrevh_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svrevh_s64_m(inactive,pg,op);
}
inline svuint32_t svrevh_m(svuint32_t inactive, svbool_t pg, svuint32_t op){
    return svrevh_u32_m(inactive,pg,op);
}
inline svuint64_t svrevh_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svrevh_u64_m(inactive,pg,op);
}
inline svint32_t svrevh_x(svbool_t pg, svint32_t op){
    return svrevh_s32_x(pg,op);
}
inline svint64_t svrevh_x(svbool_t pg, svint64_t op){
    return svrevh_s64_x(pg,op);
}
inline svuint32_t svrevh_x(svbool_t pg, svuint32_t op){
    return svrevh_u32_x(pg,op);
}
inline svuint64_t svrevh_x(svbool_t pg, svuint64_t op){
    return svrevh_u64_x(pg,op);
}
inline svint64_t svrevw_z(svbool_t pg, svint64_t op){
    return svrevw_s64_z(pg,op);
}
inline svuint64_t svrevw_z(svbool_t pg, svuint64_t op){
    return svrevw_u64_z(pg,op);
}
inline svint64_t svrevw_m(svint64_t inactive, svbool_t pg, svint64_t op){
    return svrevw_s64_m(inactive,pg,op);
}
inline svuint64_t svrevw_m(svuint64_t inactive, svbool_t pg, svuint64_t op){
    return svrevw_u64_m(inactive,pg,op);
}
inline svint64_t svrevw_x(svbool_t pg, svint64_t op){
    return svrevw_s64_x(pg,op);
}
inline svuint64_t svrevw_x(svbool_t pg, svuint64_t op){
    return svrevw_u64_x(pg,op);
}
inline svfloat16_t svadd_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svadd_f16_z(pg,op1,op2);
}
inline svfloat32_t svadd_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svadd_f32_z(pg,op1,op2);
}
inline svfloat64_t svadd_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svadd_f64_z(pg,op1,op2);
}
inline svfloat16_t svadd_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svadd_f16_m(pg,op1,op2);
}
inline svfloat32_t svadd_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svadd_f32_m(pg,op1,op2);
}
inline svfloat64_t svadd_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svadd_f64_m(pg,op1,op2);
}
inline svfloat16_t svadd_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svadd_f16_x(pg,op1,op2);
}
inline svfloat32_t svadd_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svadd_f32_x(pg,op1,op2);
}
inline svfloat64_t svadd_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svadd_f64_x(pg,op1,op2);
}
inline svfloat16_t svadd_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svadd_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svadd_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svadd_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svadd_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svadd_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svadd_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svadd_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svadd_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svadd_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svadd_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svadd_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svadd_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svadd_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svadd_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svadd_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svadd_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svadd_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svcadd_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,uint64_t imm_rotation){
    return svcadd_f16_z(pg,op1,op2,imm_rotation);
}
inline svfloat32_t svcadd_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,uint64_t imm_rotation){
    return svcadd_f32_z(pg,op1,op2,imm_rotation);
}
inline svfloat64_t svcadd_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,uint64_t imm_rotation){
    return svcadd_f64_z(pg,op1,op2,imm_rotation);
}
inline svfloat16_t svcadd_m(svbool_t               pg, svfloat16_t op1, svfloat16_t op2,uint64_t               imm_rotation){
    return svcadd_f16_m(pg,op1,op2,imm_rotation);
}
inline svfloat32_t svcadd_m(svbool_t               pg, svfloat32_t op1, svfloat32_t op2,uint64_t               imm_rotation){
    return svcadd_f32_m(pg,op1,op2,imm_rotation);
}
inline svfloat64_t svcadd_m(svbool_t               pg, svfloat64_t op1, svfloat64_t op2,uint64_t               imm_rotation){
    return svcadd_f64_m(pg,op1,op2,imm_rotation);
}
inline svfloat16_t svcadd_x(svbool_t               pg, svfloat16_t op1, svfloat16_t op2,uint64_t               imm_rotation){
    return svcadd_f16_x(pg,op1,op2,imm_rotation);
}
inline svfloat32_t svcadd_x(svbool_t               pg, svfloat32_t op1, svfloat32_t op2,uint64_t               imm_rotation){
    return svcadd_f32_x(pg,op1,op2,imm_rotation);
}
inline svfloat64_t svcadd_x(svbool_t               pg, svfloat64_t op1, svfloat64_t op2,uint64_t               imm_rotation){
    return svcadd_f64_x(pg,op1,op2,imm_rotation);
}
inline svfloat16_t svsub_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsub_f16_z(pg,op1,op2);
}
inline svfloat32_t svsub_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsub_f32_z(pg,op1,op2);
}
inline svfloat64_t svsub_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsub_f64_z(pg,op1,op2);
}
inline svfloat16_t svsub_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsub_f16_m(pg,op1,op2);
}
inline svfloat32_t svsub_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsub_f32_m(pg,op1,op2);
}
inline svfloat64_t svsub_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsub_f64_m(pg,op1,op2);
}
inline svfloat16_t svsub_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsub_f16_x(pg,op1,op2);
}
inline svfloat32_t svsub_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsub_f32_x(pg,op1,op2);
}
inline svfloat64_t svsub_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsub_f64_x(pg,op1,op2);
}
inline svfloat16_t svsub_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsub_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svsub_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsub_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svsub_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsub_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svsub_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsub_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svsub_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsub_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svsub_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsub_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svsub_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsub_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svsub_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsub_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svsub_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsub_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svsubr_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsubr_f16_z(pg,op1,op2);
}
inline svfloat32_t svsubr_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsubr_f32_z(pg,op1,op2);
}
inline svfloat64_t svsubr_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsubr_f64_z(pg,op1,op2);
}
inline svfloat16_t svsubr_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsubr_f16_m(pg,op1,op2);
}
inline svfloat32_t svsubr_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsubr_f32_m(pg,op1,op2);
}
inline svfloat64_t svsubr_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsubr_f64_m(pg,op1,op2);
}
inline svfloat16_t svsubr_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsubr_f16_x(pg,op1,op2);
}
inline svfloat32_t svsubr_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsubr_f32_x(pg,op1,op2);
}
inline svfloat64_t svsubr_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsubr_f64_x(pg,op1,op2);
}
inline svfloat16_t svsubr_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsubr_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svsubr_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsubr_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svsubr_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsubr_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svsubr_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsubr_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svsubr_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsubr_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svsubr_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsubr_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svsubr_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svsubr_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svsubr_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svsubr_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svsubr_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svsubr_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svabd_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svabd_f16_z(pg,op1,op2);
}
inline svfloat32_t svabd_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svabd_f32_z(pg,op1,op2);
}
inline svfloat64_t svabd_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svabd_f64_z(pg,op1,op2);
}
inline svfloat16_t svabd_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svabd_f16_m(pg,op1,op2);
}
inline svfloat32_t svabd_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svabd_f32_m(pg,op1,op2);
}
inline svfloat64_t svabd_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svabd_f64_m(pg,op1,op2);
}
inline svfloat16_t svabd_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svabd_f16_x(pg,op1,op2);
}
inline svfloat32_t svabd_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svabd_f32_x(pg,op1,op2);
}
inline svfloat64_t svabd_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svabd_f64_x(pg,op1,op2);
}
inline svfloat16_t svabd_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svabd_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svabd_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svabd_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svabd_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svabd_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svabd_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svabd_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svabd_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svabd_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svabd_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svabd_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svabd_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svabd_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svabd_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svabd_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svabd_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svabd_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmul_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmul_f16_z(pg,op1,op2);
}
inline svfloat32_t svmul_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmul_f32_z(pg,op1,op2);
}
inline svfloat64_t svmul_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmul_f64_z(pg,op1,op2);
}
inline svfloat16_t svmul_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmul_f16_m(pg,op1,op2);
}
inline svfloat32_t svmul_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmul_f32_m(pg,op1,op2);
}
inline svfloat64_t svmul_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmul_f64_m(pg,op1,op2);
}
inline svfloat16_t svmul_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmul_f16_x(pg,op1,op2);
}
inline svfloat32_t svmul_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmul_f32_x(pg,op1,op2);
}
inline svfloat64_t svmul_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmul_f64_x(pg,op1,op2);
}
inline svfloat16_t svmul_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmul_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svmul_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmul_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svmul_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmul_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svmul_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmul_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svmul_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmul_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svmul_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmul_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svmul_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmul_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svmul_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmul_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svmul_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmul_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmul_lane(svfloat16_t op1, svfloat16_t op2,uint64_t imm_index){
    return svmul_lane_f16(op1,op2,imm_index);
}
inline svfloat32_t svmul_lane(svfloat32_t op1, svfloat32_t op2,uint64_t imm_index){
    return svmul_lane_f32(op1,op2,imm_index);
}
inline svfloat64_t svmul_lane(svfloat64_t op1, svfloat64_t op2,uint64_t imm_index){
    return svmul_lane_f64(op1,op2,imm_index);
}
inline svfloat16_t svmulx_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmulx_f16_z(pg,op1,op2);
}
inline svfloat32_t svmulx_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmulx_f32_z(pg,op1,op2);
}
inline svfloat64_t svmulx_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmulx_f64_z(pg,op1,op2);
}
inline svfloat16_t svmulx_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmulx_f16_m(pg,op1,op2);
}
inline svfloat32_t svmulx_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmulx_f32_m(pg,op1,op2);
}
inline svfloat64_t svmulx_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmulx_f64_m(pg,op1,op2);
}
inline svfloat16_t svmulx_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmulx_f16_x(pg,op1,op2);
}
inline svfloat32_t svmulx_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmulx_f32_x(pg,op1,op2);
}
inline svfloat64_t svmulx_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmulx_f64_x(pg,op1,op2);
}
inline svfloat16_t svmulx_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmulx_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svmulx_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmulx_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svmulx_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmulx_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svmulx_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmulx_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svmulx_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmulx_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svmulx_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmulx_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svmulx_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmulx_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svmulx_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmulx_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svmulx_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmulx_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmad_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmad_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmad_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmad_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmad_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmad_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmad_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmad_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmad_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmad_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmad_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmad_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmad_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmad_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmad_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmad_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmad_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmad_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmad_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmad_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmad_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmad_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmad_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmad_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmad_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmad_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmad_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmad_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmad_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmad_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmad_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmad_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmad_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmad_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmad_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmad_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmla_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmla_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmla_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmla_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmla_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmla_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmla_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmla_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmla_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmla_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmla_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmla_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmla_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmla_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmla_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmla_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmla_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmla_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmla_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmla_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmla_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmla_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmla_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmla_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmla_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmla_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmla_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmla_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmla_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmla_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmla_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmla_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmla_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmla_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmla_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmla_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmla_lane(svfloat16_t                 op1,   svfloat16_t op2,svfloat16_t                 op3,   uint64_t imm_index){
    return svmla_lane_f16(op1,op2,op3,imm_index);
}
inline svfloat32_t svmla_lane(svfloat32_t                 op1,   svfloat32_t op2,svfloat32_t                 op3,   uint64_t imm_index){
    return svmla_lane_f32(op1,op2,op3,imm_index);
}
inline svfloat64_t svmla_lane(svfloat64_t                 op1,   svfloat64_t op2,svfloat64_t                 op3,   uint64_t imm_index){
    return svmla_lane_f64(op1,op2,op3,imm_index);
}
inline svfloat16_t svcmla_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    return svcmla_f16_z(pg,op1,op2,op3,imm_rotation);
}
inline svfloat32_t svcmla_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    return svcmla_f32_z(pg,op1,op2,op3,imm_rotation);
}
inline svfloat64_t svcmla_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    return svcmla_f64_z(pg,op1,op2,op3,imm_rotation);
}
inline svfloat16_t svcmla_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    return svcmla_f16_m(pg,op1,op2,op3,imm_rotation);
}
inline svfloat32_t svcmla_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    return svcmla_f32_m(pg,op1,op2,op3,imm_rotation);
}
inline svfloat64_t svcmla_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    return svcmla_f64_m(pg,op1,op2,op3,imm_rotation);
}
inline svfloat16_t svcmla_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_rotation){
    return svcmla_f16_x(pg,op1,op2,op3,imm_rotation);
}
inline svfloat32_t svcmla_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_rotation){
    return svcmla_f32_x(pg,op1,op2,op3,imm_rotation);
}
inline svfloat64_t svcmla_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3, uint64_t imm_rotation){
    return svcmla_f64_x(pg,op1,op2,op3,imm_rotation);
}
inline svfloat16_t svcmla_lane(svfloat16_t op1, svfloat16_t op2,svfloat16_t op3, uint64_t imm_index,uint64_t imm_rotation){
    return svcmla_lane_f16(op1,op2,op3,imm_index,imm_rotation);
}
inline svfloat32_t svcmla_lane(svfloat32_t op1, svfloat32_t op2,svfloat32_t op3, uint64_t imm_index,uint64_t imm_rotation){
    return svcmla_lane_f32(op1,op2,op3,imm_index,imm_rotation);
}
inline svfloat16_t svmsb_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmsb_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmsb_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmsb_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmsb_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmsb_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmsb_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmsb_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmsb_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmsb_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmsb_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmsb_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmsb_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmsb_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmsb_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmsb_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmsb_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmsb_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmsb_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmsb_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmsb_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmsb_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmsb_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmsb_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmsb_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmsb_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmls_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmls_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmls_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmls_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmls_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmls_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmls_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmls_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmls_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmls_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmls_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmls_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmls_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svmls_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmls_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svmls_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmls_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svmls_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmls_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmls_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svmls_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmls_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svmls_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmls_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svmls_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmls_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svmls_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmls_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svmls_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmls_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svmls_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svmls_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svmls_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svmls_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svmls_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svmls_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svmls_lane(svfloat16_t                op1,   svfloat16_t op2,svfloat16_t                op3,   uint64_t imm_index){
    return svmls_lane_f16(op1,op2,op3,imm_index);
}
inline svfloat32_t svmls_lane(svfloat32_t                op1,   svfloat32_t op2,svfloat32_t                op3,   uint64_t imm_index){
    return svmls_lane_f32(op1,op2,op3,imm_index);
}
inline svfloat64_t svmls_lane(svfloat64_t                op1,   svfloat64_t op2,svfloat64_t                op3,   uint64_t imm_index){
    return svmls_lane_f64(op1,op2,op3,imm_index);
}
inline svfloat16_t svnmad_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmad_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmad_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmad_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmad_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmad_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmad_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmad_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmad_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmad_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmad_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmad_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmad_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmad_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmad_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmad_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmad_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmad_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmad_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmad_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmad_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmad_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmad_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmad_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmad_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmad_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmla_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmla_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmla_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmla_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmla_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmla_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmla_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmla_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmla_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmla_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmla_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmla_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmla_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmla_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmla_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmla_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmla_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmla_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmla_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmla_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmla_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmsb_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmsb_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmsb_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmsb_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmsb_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmsb_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmsb_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmsb_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmsb_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmsb_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmsb_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmsb_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmsb_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmsb_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmsb_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmsb_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmsb_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmsb_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmsb_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmsb_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmsb_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmls_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmls_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmls_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmls_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmls_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmls_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,svfloat16_t op3){
    return svnmls_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,svfloat32_t op3){
    return svnmls_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,svfloat64_t op3){
    return svnmls_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmls_n_f16_z(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmls_n_f32_z(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmls_n_f64_z(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmls_n_f16_m(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmls_n_f32_m(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmls_n_f64_m(pg,op1,op2,op3);
}
inline svfloat16_t svnmls_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2,float16_t op3){
    return svnmls_n_f16_x(pg,op1,op2,op3);
}
inline svfloat32_t svnmls_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2,float32_t op3){
    return svnmls_n_f32_x(pg,op1,op2,op3);
}
inline svfloat64_t svnmls_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2,float64_t op3){
    return svnmls_n_f64_x(pg,op1,op2,op3);
}
inline svfloat16_t svdiv_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdiv_f16_z(pg,op1,op2);
}
inline svfloat32_t svdiv_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdiv_f32_z(pg,op1,op2);
}
inline svfloat64_t svdiv_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdiv_f64_z(pg,op1,op2);
}
inline svfloat16_t svdiv_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdiv_f16_m(pg,op1,op2);
}
inline svfloat32_t svdiv_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdiv_f32_m(pg,op1,op2);
}
inline svfloat64_t svdiv_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdiv_f64_m(pg,op1,op2);
}
inline svfloat16_t svdiv_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdiv_f16_x(pg,op1,op2);
}
inline svfloat32_t svdiv_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdiv_f32_x(pg,op1,op2);
}
inline svfloat64_t svdiv_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdiv_f64_x(pg,op1,op2);
}
inline svfloat16_t svdiv_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdiv_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svdiv_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdiv_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svdiv_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdiv_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svdiv_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdiv_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svdiv_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdiv_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svdiv_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdiv_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svdiv_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdiv_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svdiv_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdiv_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svdiv_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdiv_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svdivr_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdivr_f16_z(pg,op1,op2);
}
inline svfloat32_t svdivr_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdivr_f32_z(pg,op1,op2);
}
inline svfloat64_t svdivr_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdivr_f64_z(pg,op1,op2);
}
inline svfloat16_t svdivr_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdivr_f16_m(pg,op1,op2);
}
inline svfloat32_t svdivr_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdivr_f32_m(pg,op1,op2);
}
inline svfloat64_t svdivr_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdivr_f64_m(pg,op1,op2);
}
inline svfloat16_t svdivr_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svdivr_f16_x(pg,op1,op2);
}
inline svfloat32_t svdivr_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svdivr_f32_x(pg,op1,op2);
}
inline svfloat64_t svdivr_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svdivr_f64_x(pg,op1,op2);
}
inline svfloat16_t svdivr_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdivr_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svdivr_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdivr_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svdivr_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdivr_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svdivr_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdivr_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svdivr_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdivr_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svdivr_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdivr_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svdivr_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svdivr_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svdivr_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svdivr_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svdivr_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svdivr_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmax_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmax_f16_z(pg,op1,op2);
}
inline svfloat32_t svmax_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmax_f32_z(pg,op1,op2);
}
inline svfloat64_t svmax_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmax_f64_z(pg,op1,op2);
}
inline svfloat16_t svmax_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmax_f16_m(pg,op1,op2);
}
inline svfloat32_t svmax_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmax_f32_m(pg,op1,op2);
}
inline svfloat64_t svmax_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmax_f64_m(pg,op1,op2);
}
inline svfloat16_t svmax_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmax_f16_x(pg,op1,op2);
}
inline svfloat32_t svmax_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmax_f32_x(pg,op1,op2);
}
inline svfloat64_t svmax_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmax_f64_x(pg,op1,op2);
}
inline svfloat16_t svmax_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmax_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svmax_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmax_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svmax_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmax_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svmax_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmax_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svmax_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmax_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svmax_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmax_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svmax_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmax_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svmax_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmax_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svmax_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmax_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmaxnm_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmaxnm_f16_z(pg,op1,op2);
}
inline svfloat32_t svmaxnm_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmaxnm_f32_z(pg,op1,op2);
}
inline svfloat64_t svmaxnm_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmaxnm_f64_z(pg,op1,op2);
}
inline svfloat16_t svmaxnm_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmaxnm_f16_m(pg,op1,op2);
}
inline svfloat32_t svmaxnm_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmaxnm_f32_m(pg,op1,op2);
}
inline svfloat64_t svmaxnm_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmaxnm_f64_m(pg,op1,op2);
}
inline svfloat16_t svmaxnm_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmaxnm_f16_x(pg,op1,op2);
}
inline svfloat32_t svmaxnm_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmaxnm_f32_x(pg,op1,op2);
}
inline svfloat64_t svmaxnm_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmaxnm_f64_x(pg,op1,op2);
}
inline svfloat16_t svmaxnm_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmaxnm_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svmaxnm_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmaxnm_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svmaxnm_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmaxnm_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svmaxnm_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmaxnm_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svmaxnm_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmaxnm_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svmaxnm_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmaxnm_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svmaxnm_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmaxnm_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svmaxnm_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmaxnm_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svmaxnm_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmaxnm_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svmin_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmin_f16_z(pg,op1,op2);
}
inline svfloat32_t svmin_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmin_f32_z(pg,op1,op2);
}
inline svfloat64_t svmin_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmin_f64_z(pg,op1,op2);
}
inline svfloat16_t svmin_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmin_f16_m(pg,op1,op2);
}
inline svfloat32_t svmin_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmin_f32_m(pg,op1,op2);
}
inline svfloat64_t svmin_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmin_f64_m(pg,op1,op2);
}
inline svfloat16_t svmin_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svmin_f16_x(pg,op1,op2);
}
inline svfloat32_t svmin_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svmin_f32_x(pg,op1,op2);
}
inline svfloat64_t svmin_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svmin_f64_x(pg,op1,op2);
}
inline svfloat16_t svmin_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmin_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svmin_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmin_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svmin_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmin_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svmin_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmin_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svmin_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmin_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svmin_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmin_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svmin_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svmin_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svmin_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svmin_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svmin_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svmin_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svminnm_z(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svminnm_f16_z(pg,op1,op2);
}
inline svfloat32_t svminnm_z(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svminnm_f32_z(pg,op1,op2);
}
inline svfloat64_t svminnm_z(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svminnm_f64_z(pg,op1,op2);
}
inline svfloat16_t svminnm_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svminnm_f16_m(pg,op1,op2);
}
inline svfloat32_t svminnm_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svminnm_f32_m(pg,op1,op2);
}
inline svfloat64_t svminnm_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svminnm_f64_m(pg,op1,op2);
}
inline svfloat16_t svminnm_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svminnm_f16_x(pg,op1,op2);
}
inline svfloat32_t svminnm_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svminnm_f32_x(pg,op1,op2);
}
inline svfloat64_t svminnm_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svminnm_f64_x(pg,op1,op2);
}
inline svfloat16_t svminnm_z(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svminnm_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svminnm_z(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svminnm_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svminnm_z(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svminnm_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svminnm_m(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svminnm_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svminnm_m(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svminnm_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svminnm_m(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svminnm_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svminnm_x(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svminnm_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svminnm_x(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svminnm_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svminnm_x(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svminnm_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svscale_z(svbool_t pg, svfloat16_t op1, svint16_t op2){
    return svscale_f16_z(pg,op1,op2);
}
inline svfloat32_t svscale_z(svbool_t pg, svfloat32_t op1, svint32_t op2){
    return svscale_f32_z(pg,op1,op2);
}
inline svfloat64_t svscale_z(svbool_t pg, svfloat64_t op1, svint64_t op2){
    return svscale_f64_z(pg,op1,op2);
}
inline svfloat16_t svscale_m(svbool_t pg, svfloat16_t op1, svint16_t op2){
    return svscale_f16_m(pg,op1,op2);
}
inline svfloat32_t svscale_m(svbool_t pg, svfloat32_t op1, svint32_t op2){
    return svscale_f32_m(pg,op1,op2);
}
inline svfloat64_t svscale_m(svbool_t pg, svfloat64_t op1, svint64_t op2){
    return svscale_f64_m(pg,op1,op2);
}
inline svfloat16_t svscale_x(svbool_t pg, svfloat16_t op1, svint16_t op2){
    return svscale_f16_x(pg,op1,op2);
}
inline svfloat32_t svscale_x(svbool_t pg, svfloat32_t op1, svint32_t op2){
    return svscale_f32_x(pg,op1,op2);
}
inline svfloat64_t svscale_x(svbool_t pg, svfloat64_t op1, svint64_t op2){
    return svscale_f64_x(pg,op1,op2);
}
inline svfloat16_t svscale_z(svbool_t pg, svfloat16_t op1, int16_t op2){
    return svscale_n_f16_z(pg,op1,op2);
}
inline svfloat32_t svscale_z(svbool_t pg, svfloat32_t op1, int32_t op2){
    return svscale_n_f32_z(pg,op1,op2);
}
inline svfloat64_t svscale_z(svbool_t pg, svfloat64_t op1, int64_t op2){
    return svscale_n_f64_z(pg,op1,op2);
}
inline svfloat16_t svscale_m(svbool_t pg, svfloat16_t op1, int16_t op2){
    return svscale_n_f16_m(pg,op1,op2);
}
inline svfloat32_t svscale_m(svbool_t pg, svfloat32_t op1, int32_t op2){
    return svscale_n_f32_m(pg,op1,op2);
}
inline svfloat64_t svscale_m(svbool_t pg, svfloat64_t op1, int64_t op2){
    return svscale_n_f64_m(pg,op1,op2);
}
inline svfloat16_t svscale_x(svbool_t pg, svfloat16_t op1, int16_t op2){
    return svscale_n_f16_x(pg,op1,op2);
}
inline svfloat32_t svscale_x(svbool_t pg, svfloat32_t op1, int32_t op2){
    return svscale_n_f32_x(pg,op1,op2);
}
inline svfloat64_t svscale_x(svbool_t pg, svfloat64_t op1, int64_t op2){
    return svscale_n_f64_x(pg,op1,op2);
}
inline svfloat16_t svtsmul(svfloat16_t op1, svuint16_t op2){
    return svtsmul_f16(op1,op2);
}
inline svfloat32_t svtsmul(svfloat32_t op1, svuint32_t op2){
    return svtsmul_f32(op1,op2);
}
inline svfloat64_t svtsmul(svfloat64_t op1, svuint64_t op2){
    return svtsmul_f64(op1,op2);
}
inline svfloat16_t svtmad(svfloat16_t op1, svfloat16_t op2, uint64_t imm3){
    return svtmad_f16(op1,op2,imm3);
}
inline svfloat32_t svtmad(svfloat32_t op1, svfloat32_t op2, uint64_t imm3){
    return svtmad_f32(op1,op2,imm3);
}
inline svfloat64_t svtmad(svfloat64_t op1, svfloat64_t op2, uint64_t imm3){
    return svtmad_f64(op1,op2,imm3);
}
inline svfloat16_t svtssel(svfloat16_t op1, svuint16_t op2){
    return svtssel_f16(op1,op2);
}
inline svfloat32_t svtssel(svfloat32_t op1, svuint32_t op2){
    return svtssel_f32(op1,op2);
}
inline svfloat64_t svtssel(svfloat64_t op1, svuint64_t op2){
    return svtssel_f64(op1,op2);
}
inline svfloat16_t svabs_z(svbool_t pg, svfloat16_t op){
    return svabs_f16_z(pg,op);
}
inline svfloat32_t svabs_z(svbool_t pg, svfloat32_t op){
    return svabs_f32_z(pg,op);
}
inline svfloat64_t svabs_z(svbool_t pg, svfloat64_t op){
    return svabs_f64_z(pg,op);
}
inline svfloat16_t svabs_m(svfloat16_t                inactive, svbool_t pg,svfloat16_t                op){
    return svabs_f16_m(inactive,pg,op);
}
inline svfloat32_t svabs_m(svfloat32_t                inactive, svbool_t pg,svfloat32_t                op){
    return svabs_f32_m(inactive,pg,op);
}
inline svfloat64_t svabs_m(svfloat64_t                inactive, svbool_t pg,svfloat64_t                op){
    return svabs_f64_m(inactive,pg,op);
}
inline svfloat16_t svabs_x(svbool_t pg, svfloat16_t op){
    return svabs_f16_x(pg,op);
}
inline svfloat32_t svabs_x(svbool_t pg, svfloat32_t op){
    return svabs_f32_x(pg,op);
}
inline svfloat64_t svabs_x(svbool_t pg, svfloat64_t op){
    return svabs_f64_x(pg,op);
}
inline svfloat16_t svneg_z(svbool_t pg, svfloat16_t op){
    return svneg_f16_z(pg,op);
}
inline svfloat32_t svneg_z(svbool_t pg, svfloat32_t op){
    return svneg_f32_z(pg,op);
}
inline svfloat64_t svneg_z(svbool_t pg, svfloat64_t op){
    return svneg_f64_z(pg,op);
}
inline svfloat16_t svneg_m(svfloat16_t                inactive, svbool_t pg,svfloat16_t                op){
    return svneg_f16_m(inactive,pg,op);
}
inline svfloat32_t svneg_m(svfloat32_t                inactive, svbool_t pg,svfloat32_t                op){
    return svneg_f32_m(inactive,pg,op);
}
inline svfloat64_t svneg_m(svfloat64_t                inactive, svbool_t pg,svfloat64_t op){
    return svneg_f64_m(inactive,pg,op);
}
inline svfloat16_t svneg_x(svbool_t pg, svfloat16_t op){
    return svneg_f16_x(pg,op);
}
inline svfloat32_t svneg_x(svbool_t pg, svfloat32_t op){
    return svneg_f32_x(pg,op);
}
inline svfloat64_t svneg_x(svbool_t pg, svfloat64_t op){
    return svneg_f64_x(pg,op);
}
inline svfloat16_t svsqrt_z(svbool_t pg, svfloat16_t op){
    return svsqrt_f16_z(pg,op);
}
inline svfloat32_t svsqrt_z(svbool_t pg, svfloat32_t op){
    return svsqrt_f32_z(pg,op);
}
inline svfloat64_t svsqrt_z(svbool_t pg, svfloat64_t op){
    return svsqrt_f64_z(pg,op);
}
inline svfloat16_t svsqrt_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svsqrt_f16_m(inactive,pg,op);
}
inline svfloat32_t svsqrt_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svsqrt_f32_m(inactive,pg,op);
}
inline svfloat64_t svsqrt_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svsqrt_f64_m(inactive,pg,op);
}
inline svfloat16_t svsqrt_x(svbool_t pg, svfloat16_t op){
    return svsqrt_f16_x(pg,op);
}
inline svfloat32_t svsqrt_x(svbool_t pg, svfloat32_t op){
    return svsqrt_f32_x(pg,op);
}
inline svfloat64_t svsqrt_x(svbool_t pg, svfloat64_t op){
    return svsqrt_f64_x(pg,op);
}
inline svfloat16_t svexpa(svuint16_t op){
    return svexpa_f16(op);
}
inline svfloat32_t svexpa(svuint32_t op){
    return svexpa_f32(op);
}
inline svfloat64_t svexpa(svuint64_t op){
    return svexpa_f64(op);
}
inline svfloat16_t svrecpe(svfloat16_t op){
    return svrecpe_f16(op);
}
inline svfloat32_t svrecpe(svfloat32_t op){
    return svrecpe_f32(op);
}
inline svfloat64_t svrecpe(svfloat64_t op){
    return svrecpe_f64(op);
}
inline svfloat16_t svrecps(svfloat16_t op1, svfloat16_t op2){
    return svrecps_f16(op1,op2);
}
inline svfloat32_t svrecps(svfloat32_t op1, svfloat32_t op2){
    return svrecps_f32(op1,op2);
}
inline svfloat64_t svrecps(svfloat64_t op1, svfloat64_t op2){
    return svrecps_f64(op1,op2);
}
inline svfloat16_t svrecpx_z(svbool_t pg, svfloat16_t op){
    return svrecpx_f16_z(pg,op);
}
inline svfloat32_t svrecpx_z(svbool_t pg, svfloat32_t op){
    return svrecpx_f32_z(pg,op);
}
inline svfloat64_t svrecpx_z(svbool_t pg, svfloat64_t op){
    return svrecpx_f64_z(pg,op);
}
inline svfloat16_t svrecpx_m(svfloat16_t        inactive, svbool_t pg,svfloat16_t        op){
    return svrecpx_f16_m(inactive,pg,op);
}
inline svfloat32_t svrecpx_m(svfloat32_t        inactive, svbool_t pg,svfloat32_t        op){
    return svrecpx_f32_m(inactive,pg,op);
}
inline svfloat64_t svrecpx_m(svfloat64_t        inactive, svbool_t pg,svfloat64_t        op){
    return svrecpx_f64_m(inactive,pg,op);
}
inline svfloat16_t svrecpx_x(svbool_t pg, svfloat16_t op){
    return svrecpx_f16_x(pg,op);
}
inline svfloat32_t svrecpx_x(svbool_t pg, svfloat32_t op){
    return svrecpx_f32_x(pg,op);
}
inline svfloat64_t svrecpx_x(svbool_t pg, svfloat64_t op){
    return svrecpx_f64_x(pg,op);
}
inline svfloat16_t svrsqrte(svfloat16_t op){
    return svrsqrte_f16(op);
}
inline svfloat32_t svrsqrte(svfloat32_t op){
    return svrsqrte_f32(op);
}
inline svfloat64_t svrsqrte(svfloat64_t op){
    return svrsqrte_f64(op);
}
inline svfloat16_t svrsqrts(svfloat16_t op1, svfloat16_t op2){
    return svrsqrts_f16(op1,op2);
}
inline svfloat32_t svrsqrts(svfloat32_t op1, svfloat32_t op2){
    return svrsqrts_f32(op1,op2);
}
inline svfloat64_t svrsqrts(svfloat64_t op1, svfloat64_t op2){
    return svrsqrts_f64(op1,op2);
}
inline svfloat16_t svrinta_z(svbool_t pg, svfloat16_t op){
    return svrinta_f16_z(pg,op);
}
inline svfloat32_t svrinta_z(svbool_t pg, svfloat32_t op){
    return svrinta_f32_z(pg,op);
}
inline svfloat64_t svrinta_z(svbool_t pg, svfloat64_t op){
    return svrinta_f64_z(pg,op);
}
inline svfloat16_t svrinta_m(svfloat16_t                inactive, svbool_t pg,svfloat16_t                op){
    return svrinta_f16_m(inactive,pg,op);
}
inline svfloat32_t svrinta_m(svfloat32_t                inactive, svbool_t pg,svfloat32_t                op){
    return svrinta_f32_m(inactive,pg,op);
}
inline svfloat64_t svrinta_m(svfloat64_t                inactive, svbool_t pg,svfloat64_t                op){
    return svrinta_f64_m(inactive,pg,op);
}
inline svfloat16_t svrinta_x(svbool_t pg, svfloat16_t op){
    return svrinta_f16_x(pg,op);
}
inline svfloat32_t svrinta_x(svbool_t pg, svfloat32_t op){
    return svrinta_f32_x(pg,op);
}
inline svfloat64_t svrinta_x(svbool_t pg, svfloat64_t op){
    return svrinta_f64_x(pg,op);
}
inline svfloat16_t svrinti_z(svbool_t pg, svfloat16_t op){
    return svrinti_f16_z(pg,op);
}
inline svfloat32_t svrinti_z(svbool_t pg, svfloat32_t op){
    return svrinti_f32_z(pg,op);
}
inline svfloat64_t svrinti_z(svbool_t pg, svfloat64_t op){
    return svrinti_f64_z(pg,op);
}
inline svfloat16_t svrinti_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrinti_f16_m(inactive,pg,op);
}
inline svfloat32_t svrinti_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrinti_f32_m(inactive,pg,op);
}
inline svfloat64_t svrinti_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svrinti_f64_m(inactive,pg,op);
}
inline svfloat16_t svrinti_x(svbool_t pg, svfloat16_t op){
    return svrinti_f16_x(pg,op);
}
inline svfloat32_t svrinti_x(svbool_t pg, svfloat32_t op){
    return svrinti_f32_x(pg,op);
}
inline svfloat64_t svrinti_x(svbool_t pg, svfloat64_t op){
    return svrinti_f64_x(pg,op);
}
inline svfloat16_t svrintm_z(svbool_t pg, svfloat16_t op){
    return svrintm_f16_z(pg,op);
}
inline svfloat32_t svrintm_z(svbool_t pg, svfloat32_t op){
    return svrintm_f32_z(pg,op);
}
inline svfloat64_t svrintm_z(svbool_t pg, svfloat64_t op){
    return svrintm_f64_z(pg,op);
}
inline svfloat16_t svrintm_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrintm_f16_m(inactive,pg,op);
}
inline svfloat32_t svrintm_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrintm_f32_m(inactive,pg,op);
}
inline svfloat64_t svrintm_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svrintm_f64_m(inactive,pg,op);
}
inline svfloat16_t svrintm_x(svbool_t pg, svfloat16_t op){
    return svrintm_f16_x(pg,op);
}
inline svfloat32_t svrintm_x(svbool_t pg, svfloat32_t op){
    return svrintm_f32_x(pg,op);
}
inline svfloat64_t svrintm_x(svbool_t pg, svfloat64_t op){
    return svrintm_f64_x(pg,op);
}
inline svfloat16_t svrintn_z(svbool_t pg, svfloat16_t op){
    return svrintn_f16_z(pg,op);
}
inline svfloat32_t svrintn_z(svbool_t pg, svfloat32_t op){
    return svrintn_f32_z(pg,op);
}
inline svfloat64_t svrintn_z(svbool_t pg, svfloat64_t op){
    return svrintn_f64_z(pg,op);
}
inline svfloat16_t svrintn_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrintn_f16_m(inactive,pg,op);
}
inline svfloat32_t svrintn_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrintn_f32_m(inactive,pg,op);
}
inline svfloat64_t svrintn_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svrintn_f64_m(inactive,pg,op);
}
inline svfloat16_t svrintn_x(svbool_t pg, svfloat16_t op){
    return svrintn_f16_x(pg,op);
}
inline svfloat32_t svrintn_x(svbool_t pg, svfloat32_t op){
    return svrintn_f32_x(pg,op);
}
inline svfloat64_t svrintn_x(svbool_t pg, svfloat64_t op){
    return svrintn_f64_x(pg,op);
}
inline svfloat16_t svrintp_z(svbool_t pg, svfloat16_t op){
    return svrintp_f16_z(pg,op);
}
inline svfloat32_t svrintp_z(svbool_t pg, svfloat32_t op){
    return svrintp_f32_z(pg,op);
}
inline svfloat64_t svrintp_z(svbool_t pg, svfloat64_t op){
    return svrintp_f64_z(pg,op);
}
inline svfloat16_t svrintp_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrintp_f16_m(inactive,pg,op);
}
inline svfloat32_t svrintp_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrintp_f32_m(inactive,pg,op);
}
inline svfloat64_t svrintp_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t op){
    return svrintp_f64_m(inactive,pg,op);
}
inline svfloat16_t svrintp_x(svbool_t pg, svfloat16_t op){
    return svrintp_f16_x(pg,op);
}
inline svfloat32_t svrintp_x(svbool_t pg, svfloat32_t op){
    return svrintp_f32_x(pg,op);
}
inline svfloat64_t svrintp_x(svbool_t pg, svfloat64_t op){
    return svrintp_f64_x(pg,op);
}
inline svfloat16_t svrintx_z(svbool_t pg, svfloat16_t op){
    return svrintx_f16_z(pg,op);
}
inline svfloat32_t svrintx_z(svbool_t pg, svfloat32_t op){
    return svrintx_f32_z(pg,op);
}
inline svfloat64_t svrintx_z(svbool_t pg, svfloat64_t op){
    return svrintx_f64_z(pg,op);
}
inline svfloat16_t svrintx_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrintx_f16_m(inactive,pg,op);
}
inline svfloat32_t svrintx_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrintx_f32_m(inactive,pg,op);
}
inline svfloat64_t svrintx_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svrintx_f64_m(inactive,pg,op);
}
inline svfloat16_t svrintx_x(svbool_t pg, svfloat16_t op){
    return svrintx_f16_x(pg,op);
}
inline svfloat32_t svrintx_x(svbool_t pg, svfloat32_t op){
    return svrintx_f32_x(pg,op);
}
inline svfloat64_t svrintx_x(svbool_t pg, svfloat64_t op){
    return svrintx_f64_x(pg,op);
}
inline svfloat16_t svrintz_z(svbool_t pg, svfloat16_t op){
    return svrintz_f16_z(pg,op);
}
inline svfloat32_t svrintz_z(svbool_t pg, svfloat32_t op){
    return svrintz_f32_z(pg,op);
}
inline svfloat64_t svrintz_z(svbool_t pg, svfloat64_t op){
    return svrintz_f64_z(pg,op);
}
inline svfloat16_t svrintz_m(svfloat16_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svrintz_f16_m(inactive,pg,op);
}
inline svfloat32_t svrintz_m(svfloat32_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svrintz_f32_m(inactive,pg,op);
}
inline svfloat64_t svrintz_m(svfloat64_t                 inactive, svbool_t pg,svfloat64_t                 op){
    return svrintz_f64_m(inactive,pg,op);
}
inline svfloat16_t svrintz_x(svbool_t pg, svfloat16_t op){
    return svrintz_f16_x(pg,op);
}
inline svfloat32_t svrintz_x(svbool_t pg, svfloat32_t op){
    return svrintz_f32_x(pg,op);
}
inline svfloat64_t svrintz_x(svbool_t pg, svfloat64_t op){
    return svrintz_f64_x(pg,op);
}
inline float16_t svadda(svbool_t pg, float16_t initial, svfloat16_t op){
    return svadda_f16(pg,initial,op);
}
inline float32_t svadda(svbool_t pg, float32_t initial, svfloat32_t op){
    return svadda_f32(pg,initial,op);
}
inline float64_t svadda(svbool_t pg, float64_t initial, svfloat64_t op){
    return svadda_f64(pg,initial,op);
}
inline float16_t svaddv(svbool_t pg, svfloat16_t op){
    return svaddv_f16(pg,op);
}
inline float32_t svaddv(svbool_t pg, svfloat32_t op){
    return svaddv_f32(pg,op);
}
inline float64_t svaddv(svbool_t pg, svfloat64_t op){
    return svaddv_f64(pg,op);
}
inline float16_t svmaxv(svbool_t pg, svfloat16_t op){
    return svmaxv_f16(pg,op);
}
inline float32_t svmaxv(svbool_t pg, svfloat32_t op){
    return svmaxv_f32(pg,op);
}
inline float64_t svmaxv(svbool_t pg, svfloat64_t op){
    return svmaxv_f64(pg,op);
}
inline float16_t svmaxnmv(svbool_t pg, svfloat16_t op){
    return svmaxnmv_f16(pg,op);
}
inline float32_t svmaxnmv(svbool_t pg, svfloat32_t op){
    return svmaxnmv_f32(pg,op);
}
inline float64_t svmaxnmv(svbool_t pg, svfloat64_t op){
    return svmaxnmv_f64(pg,op);
}
inline float16_t svminv(svbool_t pg, svfloat16_t op){
    return svminv_f16(pg,op);
}
inline float32_t svminv(svbool_t pg, svfloat32_t op){
    return svminv_f32(pg,op);
}
inline float64_t svminv(svbool_t pg, svfloat64_t op){
    return svminv_f64(pg,op);
}
inline float16_t svminnmv(svbool_t pg, svfloat16_t op){
    return svminnmv_f16(pg,op);
}
inline float32_t svminnmv(svbool_t pg, svfloat32_t op){
    return svminnmv_f32(pg,op);
}
inline float64_t svminnmv(svbool_t pg, svfloat64_t op){
    return svminnmv_f64(pg,op);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmpeq_f16(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmpeq_f32(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmpeq_f64(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmpeq_n_f16(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmpeq_n_f32(pg,op1,op2);
}
inline svbool_t svcmpeq(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmpeq_n_f64(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmpne_f16(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmpne_f32(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmpne_f64(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmpne_n_f16(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmpne_n_f32(pg,op1,op2);
}
inline svbool_t svcmpne(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmpne_n_f64(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmplt_f16(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmplt_f32(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmplt_f64(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmplt_n_f16(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmplt_n_f32(pg,op1,op2);
}
inline svbool_t svcmplt(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmplt_n_f64(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmple_f16(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmple_f32(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmple_f64(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmple_n_f16(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmple_n_f32(pg,op1,op2);
}
inline svbool_t svcmple(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmple_n_f64(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmpge_f16(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmpge_f32(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmpge_f64(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmpge_n_f16(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmpge_n_f32(pg,op1,op2);
}
inline svbool_t svcmpge(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmpge_n_f64(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmpgt_f16(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmpgt_f32(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmpgt_f64(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmpgt_n_f16(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmpgt_n_f32(pg,op1,op2);
}
inline svbool_t svcmpgt(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmpgt_n_f64(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svcmpuo_f16(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svcmpuo_f32(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svcmpuo_f64(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svcmpuo_n_f16(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svcmpuo_n_f32(pg,op1,op2);
}
inline svbool_t svcmpuo(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svcmpuo_n_f64(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svaclt_f16(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svaclt_f32(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svaclt_f64(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svaclt_n_f16(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svaclt_n_f32(pg,op1,op2);
}
inline svbool_t svaclt(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svaclt_n_f64(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svacle_f16(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svacle_f32(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svacle_f64(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svacle_n_f16(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svacle_n_f32(pg,op1,op2);
}
inline svbool_t svacle(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svacle_n_f64(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svacge_f16(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svacge_f32(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svacge_f64(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svacge_n_f16(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svacge_n_f32(pg,op1,op2);
}
inline svbool_t svacge(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svacge_n_f64(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svacgt_f16(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svacgt_f32(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svacgt_f64(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat16_t op1, float16_t op2){
    return svacgt_n_f16(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat32_t op1, float32_t op2){
    return svacgt_n_f32(pg,op1,op2);
}
inline svbool_t svacgt(svbool_t pg, svfloat64_t op1, float64_t op2){
    return svacgt_n_f64(pg,op1,op2);
}
inline svint16_t svcvt_s16_z(svbool_t pg, svfloat16_t op){
    return svcvt_s16_f16_z(pg,op);
}
inline svuint16_t svcvt_u16_z(svbool_t pg, svfloat16_t op){
    return svcvt_u16_f16_z(pg,op);
}
inline svint32_t svcvt_s32_z(svbool_t pg, svfloat16_t op){
    return svcvt_s32_f16_z(pg,op);
}
inline svint32_t svcvt_s32_z(svbool_t pg, svfloat32_t op){
    return svcvt_s32_f32_z(pg,op);
}
inline svint32_t svcvt_s32_z(svbool_t pg, svfloat64_t op){
    return svcvt_s32_f64_z(pg,op);
}
inline svint64_t svcvt_s64_z(svbool_t pg, svfloat16_t op){
    return svcvt_s64_f16_z(pg,op);
}
inline svint64_t svcvt_s64_z(svbool_t pg, svfloat32_t op){
    return svcvt_s64_f32_z(pg,op);
}
inline svint64_t svcvt_s64_z(svbool_t pg, svfloat64_t op){
    return svcvt_s64_f64_z(pg,op);
}
inline svuint32_t svcvt_u32_z(svbool_t pg, svfloat16_t op){
    return svcvt_u32_f16_z(pg,op);
}
inline svuint32_t svcvt_u32_z(svbool_t pg, svfloat32_t op){
    return svcvt_u32_f32_z(pg,op);
}
inline svuint32_t svcvt_u32_z(svbool_t pg, svfloat64_t op){
    return svcvt_u32_f64_z(pg,op);
}
inline svuint64_t svcvt_u64_z(svbool_t pg, svfloat16_t op){
    return svcvt_u64_f16_z(pg,op);
}
inline svuint64_t svcvt_u64_z(svbool_t pg, svfloat32_t op){
    return svcvt_u64_f32_z(pg,op);
}
inline svuint64_t svcvt_u64_z(svbool_t pg, svfloat64_t op){
    return svcvt_u64_f64_z(pg,op);
}
inline svint16_t svcvt_s16_m(svint16_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_s16_f16_m(inactive,pg,op);
}
inline svuint16_t svcvt_u16_m(svuint16_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_u16_f16_m(inactive,pg,op);
}
inline svint32_t svcvt_s32_m(svint32_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_s32_f16_m(inactive,pg,op);
}
inline svint32_t svcvt_s32_m(svint32_t inactive, svbool_t pg,svfloat32_t op){
    return svcvt_s32_f32_m(inactive,pg,op);
}
inline svint32_t svcvt_s32_m(svint32_t inactive, svbool_t pg,svfloat64_t op){
    return svcvt_s32_f64_m(inactive,pg,op);
}
inline svint64_t svcvt_s64_m(svint64_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_s64_f16_m(inactive,pg,op);
}
inline svint64_t svcvt_s64_m(svint64_t inactive, svbool_t pg,svfloat32_t op){
    return svcvt_s64_f32_m(inactive,pg,op);
}
inline svint64_t svcvt_s64_m(svint64_t inactive, svbool_t pg,svfloat64_t op){
    return svcvt_s64_f64_m(inactive,pg,op);
}
inline svuint32_t svcvt_u32_m(svuint32_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_u32_f16_m(inactive,pg,op);
}
inline svuint32_t svcvt_u32_m(svuint32_t inactive, svbool_t pg,svfloat32_t op){
    return svcvt_u32_f32_m(inactive,pg,op);
}
inline svuint32_t svcvt_u32_m(svuint32_t inactive, svbool_t pg,svfloat64_t op){
    return svcvt_u32_f64_m(inactive,pg,op);
}
inline svuint64_t svcvt_u64_m(svuint64_t inactive, svbool_t pg,svfloat16_t op){
    return svcvt_u64_f16_m(inactive,pg,op);
}
inline svuint64_t svcvt_u64_m(svuint64_t inactive, svbool_t pg,svfloat32_t op){
    return svcvt_u64_f32_m(inactive,pg,op);
}
inline svuint64_t svcvt_u64_m(svuint64_t inactive, svbool_t pg,svfloat64_t op){
    return svcvt_u64_f64_m(inactive,pg,op);
}
inline svint16_t svcvt_s16_x(svbool_t pg, svfloat16_t op){
    return svcvt_s16_f16_x(pg,op);
}
inline svuint16_t svcvt_u16_x(svbool_t pg, svfloat16_t op){
    return svcvt_u16_f16_x(pg,op);
}
inline svint32_t svcvt_s32_x(svbool_t pg, svfloat16_t op){
    return svcvt_s32_f16_x(pg,op);
}
inline svint32_t svcvt_s32_x(svbool_t pg, svfloat32_t op){
    return svcvt_s32_f32_x(pg,op);
}
inline svint32_t svcvt_s32_x(svbool_t pg, svfloat64_t op){
    return svcvt_s32_f64_x(pg,op);
}
inline svint64_t svcvt_s64_x(svbool_t pg, svfloat16_t op){
    return svcvt_s64_f16_x(pg,op);
}
inline svint64_t svcvt_s64_x(svbool_t pg, svfloat32_t op){
    return svcvt_s64_f32_x(pg,op);
}
inline svint64_t svcvt_s64_x(svbool_t pg, svfloat64_t op){
    return svcvt_s64_f64_x(pg,op);
}
inline svuint32_t svcvt_u32_x(svbool_t pg, svfloat16_t op){
    return svcvt_u32_f16_x(pg,op);
}
inline svuint32_t svcvt_u32_x(svbool_t pg, svfloat32_t op){
    return svcvt_u32_f32_x(pg,op);
}
inline svuint32_t svcvt_u32_x(svbool_t pg, svfloat64_t op){
    return svcvt_u32_f64_x(pg,op);
}
inline svuint64_t svcvt_u64_x(svbool_t pg, svfloat16_t op){
    return svcvt_u64_f16_x(pg,op);
}
inline svuint64_t svcvt_u64_x(svbool_t pg, svfloat32_t op){
    return svcvt_u64_f32_x(pg,op);
}
inline svuint64_t svcvt_u64_x(svbool_t pg, svfloat64_t op){
    return svcvt_u64_f64_x(pg,op);
}
inline svfloat16_t      svcvt_f16_z(svbool_t           pg,   svint16_t op){
    return svcvt_f16_s16_z(pg,op);
}
inline svfloat16_t      svcvt_f16_z(svbool_t           pg,   svuint16_t op){
    return svcvt_f16_u16_z(pg,op);
}
inline svfloat16_t      svcvt_f16_z(svbool_t           pg,   svint32_t op){
    return svcvt_f16_s32_z(pg,op);
}
inline svfloat32_t      svcvt_f32_z(svbool_t           pg,   svint32_t op){
    return svcvt_f32_s32_z(pg,op);
}
inline svfloat64_t      svcvt_f64_z(svbool_t           pg,   svint32_t op){
    return svcvt_f64_s32_z(pg,op);
}
inline svfloat16_t      svcvt_f16_z(svbool_t           pg,   svint64_t op){
    return svcvt_f16_s64_z(pg,op);
}
inline svfloat32_t      svcvt_f32_z(svbool_t           pg,   svint64_t op){
    return svcvt_f32_s64_z(pg,op);
}
inline svfloat64_t   svcvt_f64_z(svbool_t       pg,   svint64_t op){
    return svcvt_f64_s64_z(pg,op);
}
inline svfloat16_t   svcvt_f16_z(svbool_t       pg,   svuint32_t op){
    return svcvt_f16_u32_z(pg,op);
}
inline svfloat32_t   svcvt_f32_z(svbool_t       pg,   svuint32_t op){
    return svcvt_f32_u32_z(pg,op);
}
inline svfloat64_t   svcvt_f64_z(svbool_t       pg,   svuint32_t op){
    return svcvt_f64_u32_z(pg,op);
}
inline svfloat16_t   svcvt_f16_z(svbool_t       pg,   svuint64_t op){
    return svcvt_f16_u64_z(pg,op);
}
inline svfloat32_t   svcvt_f32_z(svbool_t       pg,   svuint64_t op){
    return svcvt_f32_u64_z(pg,op);
}
inline svfloat64_t   svcvt_f64_z(svbool_t       pg,   svuint64_t op){
    return svcvt_f64_u64_z(pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svint16_t op){
    return svcvt_f16_s16_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svuint16_t op){
    return svcvt_f16_u16_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svint32_t op){
    return svcvt_f16_s32_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t inactive,            svbool_t pg,svint32_t op){
    return svcvt_f32_s32_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t inactive,            svbool_t pg,svint32_t op){
    return svcvt_f64_s32_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svint64_t op){
    return svcvt_f16_s64_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t inactive,            svbool_t pg,svint64_t op){
    return svcvt_f32_s64_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t inactive,            svbool_t pg,svint64_t op){
    return svcvt_f64_s64_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svuint32_t op){
    return svcvt_f16_u32_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t inactive,            svbool_t pg,svuint32_t op){
    return svcvt_f32_u32_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t inactive,            svbool_t pg,svuint32_t op){
    return svcvt_f64_u32_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive,            svbool_t pg,svuint64_t op){
    return svcvt_f16_u64_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t inactive,            svbool_t pg,svuint64_t op){
    return svcvt_f32_u64_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t inactive,            svbool_t pg,svuint64_t op){
    return svcvt_f64_u64_m(inactive,pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svint16_t op){
    return svcvt_f16_s16_x(pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svuint16_t op){
    return svcvt_f16_u16_x(pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svint32_t op){
    return svcvt_f16_s32_x(pg,op);
}
inline svfloat32_t   svcvt_f32_x(svbool_t       pg,   svint32_t op){
    return svcvt_f32_s32_x(pg,op);
}
inline svfloat64_t   svcvt_f64_x(svbool_t       pg,   svint32_t op){
    return svcvt_f64_s32_x(pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svint64_t op){
    return svcvt_f16_s64_x(pg,op);
}
inline svfloat32_t   svcvt_f32_x(svbool_t       pg,   svint64_t op){
    return svcvt_f32_s64_x(pg,op);
}
inline svfloat64_t   svcvt_f64_x(svbool_t       pg,   svint64_t op){
    return svcvt_f64_s64_x(pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svuint32_t op){
    return svcvt_f16_u32_x(pg,op);
}
inline svfloat32_t   svcvt_f32_x(svbool_t       pg,   svuint32_t op){
    return svcvt_f32_u32_x(pg,op);
}
inline svfloat64_t   svcvt_f64_x(svbool_t       pg,   svuint32_t op){
    return svcvt_f64_u32_x(pg,op);
}
inline svfloat16_t   svcvt_f16_x(svbool_t       pg,   svuint64_t op){
    return svcvt_f16_u64_x(pg,op);
}
inline svfloat32_t   svcvt_f32_x(svbool_t       pg,   svuint64_t op){
    return svcvt_f32_u64_x(pg,op);
}
inline svfloat64_t svcvt_f64_x(svbool_t pg, svuint64_t op){
    return svcvt_f64_u64_x(pg,op);
}
inline svfloat32_t svcvt_f32_z(svbool_t pg, svfloat16_t op){
    return svcvt_f32_f16_z(pg,op);
}
inline svfloat64_t svcvt_f64_z(svbool_t pg, svfloat16_t op){
    return svcvt_f64_f16_z(pg,op);
}
inline svfloat64_t svcvt_f64_z(svbool_t pg, svfloat32_t op){
    return svcvt_f64_f32_z(pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svcvt_f32_f16_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t                 inactive, svbool_t pg,svfloat16_t                 op){
    return svcvt_f64_f16_m(inactive,pg,op);
}
inline svfloat64_t svcvt_f64_m(svfloat64_t                 inactive, svbool_t pg,svfloat32_t                 op){
    return svcvt_f64_f32_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_x(svbool_t pg, svfloat16_t op){
    return svcvt_f32_f16_x(pg,op);
}
inline svfloat64_t svcvt_f64_x(svbool_t pg, svfloat16_t op){
    return svcvt_f64_f16_x(pg,op);
}
inline svfloat64_t svcvt_f64_x(svbool_t pg, svfloat32_t op){
    return svcvt_f64_f32_x(pg,op);
}
inline svfloat16_t svcvt_f16_z(svbool_t pg, svfloat32_t op){
    return svcvt_f16_f32_z(pg,op);
}
inline svfloat16_t svcvt_f16_z(svbool_t pg, svfloat64_t op){
    return svcvt_f16_f64_z(pg,op);
}
inline svfloat32_t svcvt_f32_z(svbool_t pg, svfloat64_t op){
    return svcvt_f32_f64_z(pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t inactive, svbool_t pg,svfloat32_t                  op){
    return svcvt_f16_f32_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_m(svfloat16_t                  inactive, svbool_t pg,svfloat64_t                  op){
    return svcvt_f16_f64_m(inactive,pg,op);
}
inline svfloat32_t svcvt_f32_m(svfloat32_t                  inactive, svbool_t pg,svfloat64_t                  op){
    return svcvt_f32_f64_m(inactive,pg,op);
}
inline svfloat16_t svcvt_f16_x(svbool_t pg, svfloat32_t op){
    return svcvt_f16_f32_x(pg,op);
}
inline svfloat16_t svcvt_f16_x(svbool_t pg, svfloat64_t op){
    return svcvt_f16_f64_x(pg,op);
}
inline svfloat32_t svcvt_f32_x(svbool_t pg, svfloat64_t op){
    return svcvt_f32_f64_x(pg,op);
}
inline int8_t svlasta(svbool_t pg, svint8_t op){
    return svlasta_s8(pg,op);
}
inline int16_t svlasta(svbool_t pg, svint16_t op){
    return svlasta_s16(pg,op);
}
inline int32_t svlasta(svbool_t pg, svint32_t op){
    return svlasta_s32(pg,op);
}
inline int64_t svlasta(svbool_t pg, svint64_t op){
    return svlasta_s64(pg,op);
}
inline uint8_t svlasta(svbool_t pg, svuint8_t op){
    return svlasta_u8(pg,op);
}
inline uint16_t svlasta(svbool_t pg, svuint16_t op){
    return svlasta_u16(pg,op);
}
inline uint32_t svlasta(svbool_t pg, svuint32_t op){
    return svlasta_u32(pg,op);
}
inline uint64_t svlasta(svbool_t pg, svuint64_t op){
    return svlasta_u64(pg,op);
}
inline float16_t svlasta(svbool_t pg, svfloat16_t op){
    return svlasta_f16(pg,op);
}
inline float32_t svlasta(svbool_t pg, svfloat32_t op){
    return svlasta_f32(pg,op);
}
inline float64_t svlasta(svbool_t pg, svfloat64_t op){
    return svlasta_f64(pg,op);
}
inline int8_t svlastb(svbool_t pg, svint8_t op){
    return svlastb_s8(pg,op);
}
inline int16_t svlastb(svbool_t pg, svint16_t op){
    return svlastb_s16(pg,op);
}
inline int32_t svlastb(svbool_t pg, svint32_t op){
    return svlastb_s32(pg,op);
}
inline int64_t svlastb(svbool_t pg, svint64_t op){
    return svlastb_s64(pg,op);
}
inline uint8_t svlastb(svbool_t pg, svuint8_t op){
    return svlastb_u8(pg,op);
}
inline uint16_t svlastb(svbool_t pg, svuint16_t op){
    return svlastb_u16(pg,op);
}
inline uint32_t svlastb(svbool_t pg, svuint32_t op){
    return svlastb_u32(pg,op);
}
inline uint64_t svlastb(svbool_t pg, svuint64_t op){
    return svlastb_u64(pg,op);
}
inline float16_t svlastb(svbool_t pg, svfloat16_t op){
    return svlastb_f16(pg,op);
}
inline float32_t svlastb(svbool_t pg, svfloat32_t op){
    return svlastb_f32(pg,op);
}
inline float64_t svlastb(svbool_t pg, svfloat64_t op){
    return svlastb_f64(pg,op);
}
inline svint8_t svclasta(svbool_t pg, svint8_t fallback, svint8_t data){
    return svclasta_s8(pg,fallback,data);
}
inline svint16_t svclasta(svbool_t pg, svint16_t fallback, svint16_t data){
    return svclasta_s16(pg,fallback,data);
}
inline svint32_t svclasta(svbool_t pg, svint32_t fallback, svint32_t data){
    return svclasta_s32(pg,fallback,data);
}
inline svint64_t svclasta(svbool_t pg, svint64_t fallback, svint64_t data){
    return svclasta_s64(pg,fallback,data);
}
inline svuint8_t svclasta(svbool_t pg, svuint8_t fallback, svuint8_t data){
    return svclasta_u8(pg,fallback,data);
}
inline svuint16_t svclasta(svbool_t pg, svuint16_t fallback,svuint16_t data){
    return svclasta_u16(pg,fallback,data);
}
inline svuint32_t svclasta(svbool_t pg, svuint32_t fallback,svuint32_t data){
    return svclasta_u32(pg,fallback,data);
}
inline svuint64_t svclasta(svbool_t pg, svuint64_t fallback,svuint64_t data){
    return svclasta_u64(pg,fallback,data);
}
inline svfloat16_t svclasta(svbool_t pg, svfloat16_t fallback,svfloat16_t data){
    return svclasta_f16(pg,fallback,data);
}
inline svfloat32_t svclasta(svbool_t pg, svfloat32_t fallback,svfloat32_t data){
    return svclasta_f32(pg,fallback,data);
}
inline svfloat64_t svclasta(svbool_t pg, svfloat64_t fallback,svfloat64_t data){
    return svclasta_f64(pg,fallback,data);
}
inline int8_t svclasta(svbool_t pg, int8_t fallback, svint8_t data){
    return svclasta_n_s8(pg,fallback,data);
}
inline int16_t svclasta(svbool_t pg, int16_t fallback, svint16_t data){
    return svclasta_n_s16(pg,fallback,data);
}
inline int32_t svclasta(svbool_t pg, int32_t fallback, svint32_t data){
    return svclasta_n_s32(pg,fallback,data);
}
inline int64_t svclasta(svbool_t pg, int64_t fallback, svint64_t data){
    return svclasta_n_s64(pg,fallback,data);
}
inline uint8_t svclasta(svbool_t pg, uint8_t fallback, svuint8_t data){
    return svclasta_n_u8(pg,fallback,data);
}
inline uint16_t svclasta(svbool_t pg, uint16_t fallback, svuint16_t data){
    return svclasta_n_u16(pg,fallback,data);
}
inline uint32_t svclasta(svbool_t pg, uint32_t fallback, svuint32_t data){
    return svclasta_n_u32(pg,fallback,data);
}
inline uint64_t svclasta(svbool_t pg, uint64_t fallback, svuint64_t data){
    return svclasta_n_u64(pg,fallback,data);
}
inline float16_t svclasta(svbool_t pg, float16_t fallback,svfloat16_t data){
    return svclasta_n_f16(pg,fallback,data);
}
inline float32_t svclasta(svbool_t pg, float32_t fallback,svfloat32_t data){
    return svclasta_n_f32(pg,fallback,data);
}
inline float64_t svclasta(svbool_t pg, float64_t fallback,svfloat64_t data){
    return svclasta_n_f64(pg,fallback,data);
}
inline svint8_t svclastb(svbool_t pg, svint8_t fallback, svint8_t data){
    return svclastb_s8(pg,fallback,data);
}
inline svint16_t svclastb(svbool_t pg, svint16_t fallback, svint16_t data){
    return svclastb_s16(pg,fallback,data);
}
inline svint32_t svclastb(svbool_t pg, svint32_t fallback, svint32_t data){
    return svclastb_s32(pg,fallback,data);
}
inline svint64_t svclastb(svbool_t pg, svint64_t fallback, svint64_t data){
    return svclastb_s64(pg,fallback,data);
}
inline svuint8_t svclastb(svbool_t pg, svuint8_t fallback, svuint8_t data){
    return svclastb_u8(pg,fallback,data);
}
inline svuint16_t svclastb(svbool_t pg, svuint16_t fallback,svuint16_t data){
    return svclastb_u16(pg,fallback,data);
}
inline svuint32_t svclastb(svbool_t pg, svuint32_t fallback,svuint32_t data){
    return svclastb_u32(pg,fallback,data);
}
inline svuint64_t svclastb(svbool_t pg, svuint64_t fallback,svuint64_t data){
    return svclastb_u64(pg,fallback,data);
}
inline svfloat16_t svclastb(svbool_t pg, svfloat16_t fallback,svfloat16_t data){
    return svclastb_f16(pg,fallback,data);
}
inline svfloat32_t svclastb(svbool_t pg, svfloat32_t fallback,svfloat32_t data){
    return svclastb_f32(pg,fallback,data);
}
inline svfloat64_t svclastb(svbool_t pg, svfloat64_t fallback,svfloat64_t data){
    return svclastb_f64(pg,fallback,data);
}
inline int8_t svclastb(svbool_t pg, int8_t fallback, svint8_t data){
    return svclastb_n_s8(pg,fallback,data);
}
inline int16_t svclastb(svbool_t pg, int16_t fallback, svint16_t data){
    return svclastb_n_s16(pg,fallback,data);
}
inline int32_t svclastb(svbool_t pg, int32_t fallback, svint32_t data){
    return svclastb_n_s32(pg,fallback,data);
}
inline int64_t svclastb(svbool_t pg, int64_t fallback, svint64_t data){
    return svclastb_n_s64(pg,fallback,data);
}
inline uint8_t svclastb(svbool_t pg, uint8_t fallback, svuint8_t data){
    return svclastb_n_u8(pg,fallback,data);
}
inline uint16_t svclastb(svbool_t pg, uint16_t fallback, svuint16_t data){
    return svclastb_n_u16(pg,fallback,data);
}
inline uint32_t svclastb(svbool_t pg, uint32_t fallback, svuint32_t data){
    return svclastb_n_u32(pg,fallback,data);
}
inline uint64_t svclastb(svbool_t pg, uint64_t fallback, svuint64_t data){
    return svclastb_n_u64(pg,fallback,data);
}
inline float16_t svclastb(svbool_t pg, float16_t fallback,svfloat16_t data){
    return svclastb_n_f16(pg,fallback,data);
}
inline float32_t svclastb(svbool_t pg, float32_t fallback,svfloat32_t data){
    return svclastb_n_f32(pg,fallback,data);
}
inline float64_t svclastb(svbool_t pg, float64_t fallback,svfloat64_t data){
    return svclastb_n_f64(pg,fallback,data);
}
inline svint32_t svcompact(svbool_t pg, svint32_t op){
    return svcompact_s32(pg,op);
}
inline svint64_t svcompact(svbool_t pg, svint64_t op){
    return svcompact_s64(pg,op);
}
inline svuint32_t svcompact(svbool_t pg, svuint32_t op){
    return svcompact_u32(pg,op);
}
inline svuint64_t svcompact(svbool_t pg, svuint64_t op){
    return svcompact_u64(pg,op);
}
inline svfloat32_t svcompact(svbool_t pg, svfloat32_t op){
    return svcompact_f32(pg,op);
}
inline svfloat64_t svcompact(svbool_t pg, svfloat64_t op){
    return svcompact_f64(pg,op);
}
inline svint8_t svsplice(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsplice_s8(pg,op1,op2);
}
inline svint16_t svsplice(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsplice_s16(pg,op1,op2);
}
inline svint32_t svsplice(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsplice_s32(pg,op1,op2);
}
inline svint64_t svsplice(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsplice_s64(pg,op1,op2);
}
inline svuint8_t svsplice(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsplice_u8(pg,op1,op2);
}
inline svuint16_t svsplice(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsplice_u16(pg,op1,op2);
}
inline svuint32_t svsplice(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsplice_u32(pg,op1,op2);
}
inline svuint64_t svsplice(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsplice_u64(pg,op1,op2);
}
inline svfloat16_t svsplice(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsplice_f16(pg,op1,op2);
}
inline svfloat32_t svsplice(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsplice_f32(pg,op1,op2);
}
inline svfloat64_t svsplice(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsplice_f64(pg,op1,op2);
}
inline svint8_t svext(svint8_t op1, svint8_t op2, uint64_t imm3){
    return svext_s8(op1,op2,imm3);
}
inline svint16_t svext(svint16_t op1, svint16_t op2, uint64_t imm3){
    return svext_s16(op1,op2,imm3);
}
inline svint32_t svext(svint32_t op1, svint32_t op2, uint64_t imm3){
    return svext_s32(op1,op2,imm3);
}
inline svint64_t svext(svint64_t op1, svint64_t op2, uint64_t imm3){
    return svext_s64(op1,op2,imm3);
}
inline svuint8_t svext(svuint8_t op1, svuint8_t op2, uint64_t imm3){
    return svext_u8(op1,op2,imm3);
}
inline svuint16_t svext(svuint16_t op1, svuint16_t op2, uint64_t imm3){
    return svext_u16(op1,op2,imm3);
}
inline svuint32_t svext(svuint32_t op1, svuint32_t op2, uint64_t imm3){
    return svext_u32(op1,op2,imm3);
}
inline svuint64_t svext(svuint64_t op1, svuint64_t op2, uint64_t imm3){
    return svext_u64(op1,op2,imm3);
}
inline svfloat16_t svext(svfloat16_t op1, svfloat16_t op2, uint64_t imm3){
    return svext_f16(op1,op2,imm3);
}
inline svfloat32_t svext(svfloat32_t op1, svfloat32_t op2, uint64_t imm3){
    return svext_f32(op1,op2,imm3);
}
inline svfloat64_t svext(svfloat64_t op1, svfloat64_t op2, uint64_t imm3){
    return svext_f64(op1,op2,imm3);
}
inline svint8_t svsel(svbool_t pg, svint8_t op1, svint8_t op2){
    return svsel_s8(pg,op1,op2);
}
inline svint16_t svsel(svbool_t pg, svint16_t op1, svint16_t op2){
    return svsel_s16(pg,op1,op2);
}
inline svint32_t svsel(svbool_t pg, svint32_t op1, svint32_t op2){
    return svsel_s32(pg,op1,op2);
}
inline svint64_t svsel(svbool_t pg, svint64_t op1, svint64_t op2){
    return svsel_s64(pg,op1,op2);
}
inline svuint8_t svsel(svbool_t pg, svuint8_t op1, svuint8_t op2){
    return svsel_u8(pg,op1,op2);
}
inline svuint16_t svsel(svbool_t pg, svuint16_t op1, svuint16_t op2){
    return svsel_u16(pg,op1,op2);
}
inline svuint32_t svsel(svbool_t pg, svuint32_t op1, svuint32_t op2){
    return svsel_u32(pg,op1,op2);
}
inline svuint64_t svsel(svbool_t pg, svuint64_t op1, svuint64_t op2){
    return svsel_u64(pg,op1,op2);
}
inline svfloat16_t svsel(svbool_t pg, svfloat16_t op1, svfloat16_t op2){
    return svsel_f16(pg,op1,op2);
}
inline svfloat32_t svsel(svbool_t pg, svfloat32_t op1, svfloat32_t op2){
    return svsel_f32(pg,op1,op2);
}
inline svfloat64_t svsel(svbool_t pg, svfloat64_t op1, svfloat64_t op2){
    return svsel_f64(pg,op1,op2);
}
inline svbool_t svsel(svbool_t pg, svbool_t op1, svbool_t op2){
    return svsel_b(pg,op1,op2);
}
inline svint8_t svdup_lane(svint8_t data, uint8_t index){
    return svdup_lane_s8(data,index);
}
inline svint16_t svdup_lane(svint16_t data, uint16_t index){
    return svdup_lane_s16(data,index);
}
inline svint32_t svdup_lane(svint32_t data, uint32_t index){
    return svdup_lane_s32(data,index);
}
inline svint64_t svdup_lane(svint64_t data, uint64_t index){
    return svdup_lane_s64(data,index);
}
inline svuint8_t svdup_lane(svuint8_t data, uint8_t index){
    return svdup_lane_u8(data,index);
}
inline svuint16_t svdup_lane(svuint16_t data, uint16_t index){
    return svdup_lane_u16(data,index);
}
inline svuint32_t svdup_lane(svuint32_t data, uint32_t index){
    return svdup_lane_u32(data,index);
}
inline svuint64_t svdup_lane(svuint64_t data, uint64_t index){
    return svdup_lane_u64(data,index);
}
inline svfloat16_t svdup_lane(svfloat16_t data, uint16_t index){
    return svdup_lane_f16(data,index);
}
inline svfloat32_t svdup_lane(svfloat32_t data, uint32_t index){
    return svdup_lane_f32(data,index);
}
inline svfloat64_t svdup_lane(svfloat64_t data, uint64_t index){
    return svdup_lane_f64(data,index);
}
inline svint8_t svdupq_lane(svint8_t data, uint64_t index){
    return svdupq_lane_s8(data,index);
}
inline svint16_t svdupq_lane(svint16_t data, uint64_t index){
    return svdupq_lane_s16(data,index);
}
inline svint32_t svdupq_lane(svint32_t data, uint64_t index){
    return svdupq_lane_s32(data,index);
}
inline svint64_t svdupq_lane(svint64_t data, uint64_t index){
    return svdupq_lane_s64(data,index);
}
inline svuint8_t svdupq_lane(svuint8_t data, uint64_t index){
    return svdupq_lane_u8(data,index);
}
inline svuint16_t svdupq_lane(svuint16_t data, uint64_t index){
    return svdupq_lane_u16(data,index);
}
inline svuint32_t svdupq_lane(svuint32_t data, uint64_t index){
    return svdupq_lane_u32(data,index);
}
inline svuint64_t svdupq_lane(svuint64_t data, uint64_t index){
    return svdupq_lane_u64(data,index);
}
inline svfloat16_t svdupq_lane(svfloat16_t data, uint64_t index){
    return svdupq_lane_f16(data,index);
}
inline svfloat32_t svdupq_lane(svfloat32_t data, uint64_t index){
    return svdupq_lane_f32(data,index);
}
inline svfloat64_t svdupq_lane(svfloat64_t data, uint64_t index){
    return svdupq_lane_f64(data,index);
}
inline svint8_t svtbl(svint8_t data, svuint8_t indices){
    return svtbl_s8(data,indices);
}
inline svint16_t svtbl(svint16_t data, svuint16_t indices){
    return svtbl_s16(data,indices);
}
inline svint32_t svtbl(svint32_t data, svuint32_t indices){
    return svtbl_s32(data,indices);
}
inline svint64_t svtbl(svint64_t data, svuint64_t indices){
    return svtbl_s64(data,indices);
}
inline svuint8_t svtbl(svuint8_t data, svuint8_t indices){
    return svtbl_u8(data,indices);
}
inline svuint16_t svtbl(svuint16_t data, svuint16_t indices){
    return svtbl_u16(data,indices);
}
inline svuint32_t svtbl(svuint32_t data, svuint32_t indices){
    return svtbl_u32(data,indices);
}
inline svuint64_t svtbl(svuint64_t data, svuint64_t indices){
    return svtbl_u64(data,indices);
}
inline svfloat16_t svtbl(svfloat16_t data, svuint16_t indices){
    return svtbl_f16(data,indices);
}
inline svfloat32_t svtbl(svfloat32_t data, svuint32_t indices){
    return svtbl_f32(data,indices);
}
inline svfloat64_t svtbl(svfloat64_t data, svuint64_t indices){
    return svtbl_f64(data,indices);
}
inline svint8_t svrev(svint8_t op){
    return svrev_s8(op);
}
inline svint16_t svrev(svint16_t op){
    return svrev_s16(op);
}
inline svint32_t svrev(svint32_t op){
    return svrev_s32(op);
}
inline svint64_t svrev(svint64_t op){
    return svrev_s64(op);
}
inline svuint8_t svrev(svuint8_t op){
    return svrev_u8(op);
}
inline svuint16_t svrev(svuint16_t op){
    return svrev_u16(op);
}
inline svuint32_t svrev(svuint32_t op){
    return svrev_u32(op);
}
inline svuint64_t svrev(svuint64_t op){
    return svrev_u64(op);
}
inline svfloat16_t svrev(svfloat16_t op){
    return svrev_f16(op);
}
inline svfloat32_t svrev(svfloat32_t op){
    return svrev_f32(op);
}
inline svfloat64_t svrev(svfloat64_t op){
    return svrev_f64(op);
}
inline svint8_t svtrn1(svint8_t op1, svint8_t op2){
    return svtrn1_s8(op1,op2);
}
inline svint16_t svtrn1(svint16_t op1, svint16_t op2){
    return svtrn1_s16(op1,op2);
}
inline svint32_t svtrn1(svint32_t op1, svint32_t op2){
    return svtrn1_s32(op1,op2);
}
inline svint64_t svtrn1(svint64_t op1, svint64_t op2){
    return svtrn1_s64(op1,op2);
}
inline svuint8_t svtrn1(svuint8_t op1, svuint8_t op2){
    return svtrn1_u8(op1,op2);
}
inline svuint16_t svtrn1(svuint16_t op1, svuint16_t op2){
    return svtrn1_u16(op1,op2);
}
inline svuint32_t svtrn1(svuint32_t op1, svuint32_t op2){
    return svtrn1_u32(op1,op2);
}
inline svuint64_t svtrn1(svuint64_t op1, svuint64_t op2){
    return svtrn1_u64(op1,op2);
}
inline svfloat16_t svtrn1(svfloat16_t op1, svfloat16_t op2){
    return svtrn1_f16(op1,op2);
}
inline svfloat32_t svtrn1(svfloat32_t op1, svfloat32_t op2){
    return svtrn1_f32(op1,op2);
}
inline svfloat64_t svtrn1(svfloat64_t op1, svfloat64_t op2){
    return svtrn1_f64(op1,op2);
}
inline svint8_t svtrn2(svint8_t op1, svint8_t op2){
    return svtrn2_s8(op1,op2);
}
inline svint16_t svtrn2(svint16_t op1, svint16_t op2){
    return svtrn2_s16(op1,op2);
}
inline svint32_t svtrn2(svint32_t op1, svint32_t op2){
    return svtrn2_s32(op1,op2);
}
inline svint64_t svtrn2(svint64_t op1, svint64_t op2){
    return svtrn2_s64(op1,op2);
}
inline svuint8_t svtrn2(svuint8_t op1, svuint8_t op2){
    return svtrn2_u8(op1,op2);
}
inline svuint16_t svtrn2(svuint16_t op1, svuint16_t op2){
    return svtrn2_u16(op1,op2);
}
inline svuint32_t svtrn2(svuint32_t op1, svuint32_t op2){
    return svtrn2_u32(op1,op2);
}
inline svuint64_t svtrn2(svuint64_t op1, svuint64_t op2){
    return svtrn2_u64(op1,op2);
}
inline svfloat16_t svtrn2(svfloat16_t op1, svfloat16_t op2){
    return svtrn2_f16(op1,op2);
}
inline svfloat32_t svtrn2(svfloat32_t op1, svfloat32_t op2){
    return svtrn2_f32(op1,op2);
}
inline svfloat64_t svtrn2(svfloat64_t op1, svfloat64_t op2){
    return svtrn2_f64(op1,op2);
}
inline svint16_t svunpkhi(svint8_t op){
    return svunpkhi_s16(op);
}
inline svint32_t svunpkhi(svint16_t op){
    return svunpkhi_s32(op);
}
inline svint64_t svunpkhi(svint32_t op){
    return svunpkhi_s64(op);
}
inline svuint16_t svunpkhi(svuint8_t op){
    return svunpkhi_u16(op);
}
inline svuint32_t svunpkhi(svuint16_t op){
    return svunpkhi_u32(op);
}
inline svuint64_t svunpkhi(svuint32_t op){
    return svunpkhi_u64(op);
}
inline svbool_t svunpkhi(svbool_t op){
    return svunpkhi_b(op);
}
inline svint16_t svunpklo(svint8_t op){
    return svunpklo_s16(op);
}
inline svint32_t svunpklo(svint16_t op){
    return svunpklo_s32(op);
}
inline svint64_t svunpklo(svint32_t op){
    return svunpklo_s64(op);
}
inline svuint16_t svunpklo(svuint8_t op){
    return svunpklo_u16(op);
}
inline svuint32_t svunpklo(svuint16_t op){
    return svunpklo_u32(op);
}
inline svuint64_t svunpklo(svuint32_t op){
    return svunpklo_u64(op);
}
inline svbool_t svunpklo(svbool_t op){
    return svunpklo_b(op);
}
inline svint8_t svuzp1(svint8_t op1, svint8_t op2){
    return svuzp1_s8(op1,op2);
}
inline svint16_t svuzp1(svint16_t op1, svint16_t op2){
    return svuzp1_s16(op1,op2);
}
inline svint32_t svuzp1(svint32_t op1, svint32_t op2){
    return svuzp1_s32(op1,op2);
}
inline svint64_t svuzp1(svint64_t op1, svint64_t op2){
    return svuzp1_s64(op1,op2);
}
inline svuint8_t svuzp1(svuint8_t op1, svuint8_t op2){
    return svuzp1_u8(op1,op2);
}
inline svuint16_t svuzp1(svuint16_t op1, svuint16_t op2){
    return svuzp1_u16(op1,op2);
}
inline svuint32_t svuzp1(svuint32_t op1, svuint32_t op2){
    return svuzp1_u32(op1,op2);
}
inline svuint64_t svuzp1(svuint64_t op1, svuint64_t op2){
    return svuzp1_u64(op1,op2);
}
inline svfloat16_t svuzp1(svfloat16_t op1, svfloat16_t op2){
    return svuzp1_f16(op1,op2);
}
inline svfloat32_t svuzp1(svfloat32_t op1, svfloat32_t op2){
    return svuzp1_f32(op1,op2);
}
inline svfloat64_t svuzp1(svfloat64_t op1, svfloat64_t op2){
    return svuzp1_f64(op1,op2);
}
inline svint8_t svuzp2(svint8_t op1, svint8_t op2){
    return svuzp2_s8(op1,op2);
}
inline svint16_t svuzp2(svint16_t op1, svint16_t op2){
    return svuzp2_s16(op1,op2);
}
inline svint32_t svuzp2(svint32_t op1, svint32_t op2){
    return svuzp2_s32(op1,op2);
}
inline svint64_t svuzp2(svint64_t op1, svint64_t op2){
    return svuzp2_s64(op1,op2);
}
inline svuint8_t svuzp2(svuint8_t op1, svuint8_t op2){
    return svuzp2_u8(op1,op2);
}
inline svuint16_t svuzp2(svuint16_t op1, svuint16_t op2){
    return svuzp2_u16(op1,op2);
}
inline svuint32_t svuzp2(svuint32_t op1, svuint32_t op2){
    return svuzp2_u32(op1,op2);
}
inline svuint64_t svuzp2(svuint64_t op1, svuint64_t op2){
    return svuzp2_u64(op1,op2);
}
inline svfloat16_t svuzp2(svfloat16_t op1, svfloat16_t op2){
    return svuzp2_f16(op1,op2);
}
inline svfloat32_t svuzp2(svfloat32_t op1, svfloat32_t op2){
    return svuzp2_f32(op1,op2);
}
inline svfloat64_t svuzp2(svfloat64_t op1, svfloat64_t op2){
    return svuzp2_f64(op1,op2);
}
inline svint8_t svzip1(svint8_t op1, svint8_t op2){
    return svzip1_s8(op1,op2);
}
inline svint16_t svzip1(svint16_t op1, svint16_t op2){
    return svzip1_s16(op1,op2);
}
inline svint32_t svzip1(svint32_t op1, svint32_t op2){
    return svzip1_s32(op1,op2);
}
inline svint64_t svzip1(svint64_t op1, svint64_t op2){
    return svzip1_s64(op1,op2);
}
inline svuint8_t svzip1(svuint8_t op1, svuint8_t op2){
    return svzip1_u8(op1,op2);
}
inline svuint16_t svzip1(svuint16_t op1, svuint16_t op2){
    return svzip1_u16(op1,op2);
}
inline svuint32_t svzip1(svuint32_t op1, svuint32_t op2){
    return svzip1_u32(op1,op2);
}
inline svuint64_t svzip1(svuint64_t op1, svuint64_t op2){
    return svzip1_u64(op1,op2);
}
inline svfloat16_t svzip1(svfloat16_t op1, svfloat16_t op2){
    return svzip1_f16(op1,op2);
}
inline svfloat32_t svzip1(svfloat32_t op1, svfloat32_t op2){
    return svzip1_f32(op1,op2);
}
inline svfloat64_t svzip1(svfloat64_t op1, svfloat64_t op2){
    return svzip1_f64(op1,op2);
}
inline svint8_t svzip2(svint8_t op1, svint8_t op2){
    return svzip2_s8(op1,op2);
}
inline svint16_t svzip2(svint16_t op1, svint16_t op2){
    return svzip2_s16(op1,op2);
}
inline svint32_t svzip2(svint32_t op1, svint32_t op2){
    return svzip2_s32(op1,op2);
}
inline svint64_t svzip2(svint64_t op1, svint64_t op2){
    return svzip2_s64(op1,op2);
}
inline svuint8_t svzip2(svuint8_t op1, svuint8_t op2){
    return svzip2_u8(op1,op2);
}
inline svuint16_t svzip2(svuint16_t op1, svuint16_t op2){
    return svzip2_u16(op1,op2);
}
inline svuint32_t svzip2(svuint32_t op1, svuint32_t op2){
    return svzip2_u32(op1,op2);
}
inline svuint64_t svzip2(svuint64_t op1, svuint64_t op2){
    return svzip2_u64(op1,op2);
}
inline svfloat16_t svzip2(svfloat16_t op1, svfloat16_t op2){
    return svzip2_f16(op1,op2);
}
inline svfloat32_t svzip2(svfloat32_t op1, svfloat32_t op2){
    return svzip2_f32(op1,op2);
}
inline svfloat64_t svzip2(svfloat64_t op1, svfloat64_t op2){
    return svzip2_f64(op1,op2);
}
inline svbool_t svpfalse(){
    return svpfalse_b();
}
inline svbool_t      svdup_b8(bool op){
    return svdup_n_b8(op);
}
inline svbool_t      svdup_b16(bool op){
    return svdup_n_b16(op);
}
inline svbool_t      svdup_b32(bool op){
    return svdup_n_b32(op);
}
inline svbool_t      svdup_b64(bool op){
    return svdup_n_b64(op);
}
inline svbool_t svdupq_b8(bool x0, bool x1, bool x2, bool x3, bool x4, bool x5,bool x6, bool x7, bool x8, bool x9, bool x10,bool x11, bool x12, bool x13, bool x14, bool x15){
    return svdupq_n_b8(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
}
inline svbool_t svdupq_b16(bool x0, bool x1, bool x2, bool x3, bool x4,bool x5, bool x6, bool x7){
    return svdupq_n_b16(x0,x1,x2,x3,x4,x5,x6,x7);
}
inline svbool_t svdupq_b32(bool x0, bool x1, bool x2, bool x3){
    return svdupq_n_b32(x0,x1,x2,x3);
}
inline svbool_t svdupq_b64(bool x0, bool x1){
    return svdupq_n_b64(x0,x1);
}
inline svbool_t svmov_z(svbool_t pg, svbool_t op){
    return svmov_b_z(pg,op);
}
inline svbool_t svand_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svand_b_z(pg,op1,op2);
}
inline svbool_t svbic_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svbic_b_z(pg,op1,op2);
}
inline svbool_t svnand_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svnand_b_z(pg,op1,op2);
}
inline svbool_t svorr_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svorr_b_z(pg,op1,op2);
}
inline svbool_t svorn_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svorn_b_z(pg,op1,op2);
}
inline svbool_t svnor_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svnor_b_z(pg,op1,op2);
}
inline svbool_t sveor_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return sveor_b_z(pg,op1,op2);
}
inline svbool_t svnot_z(svbool_t pg, svbool_t op){
    return svnot_b_z(pg,op);
}
inline svbool_t svbrka_z(svbool_t pg, svbool_t op){
    return svbrka_b_z(pg,op);
}
inline svbool_t svbrka_m(svbool_t inactive, svbool_t pg, svbool_t op){
    return svbrka_b_m(inactive,pg,op);
}
inline svbool_t svbrkb_z(svbool_t pg, svbool_t op){
    return svbrkb_b_z(pg,op);
}
inline svbool_t svbrkb_m(svbool_t inactive, svbool_t pg, svbool_t op){
    return svbrkb_b_m(inactive,pg,op);
}
inline svbool_t svbrkn_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svbrkn_b_z(pg,op1,op2);
}
inline svbool_t svbrkpa_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svbrkpa_b_z(pg,op1,op2);
}
inline svbool_t svbrkpb_z(svbool_t pg, svbool_t op1, svbool_t op2){
    return svbrkpb_b_z(pg,op1,op2);
}
inline svbool_t svpfirst(svbool_t pg, svbool_t op){
    return svpfirst_b(pg,op);
}
inline uint64_t svlen(svint8_t op){
    return svlen_s8(op);
}
inline uint64_t svlen(svint16_t op){
    return svlen_s16(op);
}
inline uint64_t svlen(svint32_t op){
    return svlen_s32(op);
}
inline uint64_t    svlen(svint64_t op){
    return svlen_s64(op);
}
inline uint64_t    svlen(svuint8_t op){
    return svlen_u8(op);
}
inline uint64_t    svlen(svuint16_t op){
    return svlen_u16(op);
}
inline uint64_t    svlen(svuint32_t op){
    return svlen_u32(op);
}
inline uint64_t    svlen(svuint64_t op){
    return svlen_u64(op);
}
inline uint64_t    svlen(svfloat16_t op){
    return svlen_f16(op);
}
inline uint64_t    svlen(svfloat32_t op){
    return svlen_f32(op);
}
inline uint64_t    svlen(svfloat64_t op){
    return svlen_f64(op);
}
inline int32_t svqincb(int32_t op, uint64_t imm_factor){
    return svqincb_n_s32(op,imm_factor);
}
inline int64_t svqincb(int64_t op, uint64_t imm_factor){
    return svqincb_n_s64(op,imm_factor);
}
inline uint32_t svqincb(uint32_t op, uint64_t imm_factor){
    return svqincb_n_u32(op,imm_factor);
}
inline uint64_t svqincb(uint64_t op, uint64_t imm_factor){
    return svqincb_n_u64(op,imm_factor);
}
inline int32_t svqincb_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincb_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqincb_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincb_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqincb_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincb_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqincb_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincb_pat_n_u64(op,pattern,imm_factor);
}
inline int32_t svqinch(int32_t op, uint64_t imm_factor){
    return svqinch_n_s32(op,imm_factor);
}
inline int64_t svqinch(int64_t op, uint64_t imm_factor){
    return svqinch_n_s64(op,imm_factor);
}
inline uint32_t svqinch(uint32_t op, uint64_t imm_factor){
    return svqinch_n_u32(op,imm_factor);
}
inline uint64_t svqinch(uint64_t op, uint64_t imm_factor){
    return svqinch_n_u64(op,imm_factor);
}
inline int32_t svqinch_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqinch_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqinch_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqinch_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_n_u64(op,pattern,imm_factor);
}
inline svint16_t svqinch(svint16_t op, uint64_t imm_factor){
    return svqinch_s16(op,imm_factor);
}
inline svuint16_t svqinch(svuint16_t op, uint64_t imm_factor){
    return svqinch_u16(op,imm_factor);
}
inline svint16_t svqinch_pat(svint16_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_s16(op,pattern,imm_factor);
}
inline svuint16_t svqinch_pat(svuint16_t op, svpattern pattern,uint64_t imm_factor){
    return svqinch_pat_u16(op,pattern,imm_factor);
}
inline int32_t svqincw(int32_t op, uint64_t imm_factor){
    return svqincw_n_s32(op,imm_factor);
}
inline int64_t svqincw(int64_t op, uint64_t imm_factor){
    return svqincw_n_s64(op,imm_factor);
}
inline uint32_t svqincw(uint32_t op, uint64_t imm_factor){
    return svqincw_n_u32(op,imm_factor);
}
inline uint64_t svqincw(uint64_t op, uint64_t imm_factor){
    return svqincw_n_u64(op,imm_factor);
}
inline int32_t svqincw_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqincw_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqincw_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqincw_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_n_u64(op,pattern,imm_factor);
}
inline svint32_t svqincw(svint32_t op, uint64_t imm_factor){
    return svqincw_s32(op,imm_factor);
}
inline svuint32_t svqincw(svuint32_t op, uint64_t imm_factor){
    return svqincw_u32(op,imm_factor);
}
inline svint32_t svqincw_pat(svint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_s32(op,pattern,imm_factor);
}
inline svuint32_t svqincw_pat(svuint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincw_pat_u32(op,pattern,imm_factor);
}
inline int32_t svqincd(int32_t op, uint64_t imm_factor){
    return svqincd_n_s32(op,imm_factor);
}
inline int64_t svqincd(int64_t op, uint64_t imm_factor){
    return svqincd_n_s64(op,imm_factor);
}
inline uint32_t svqincd(uint32_t op, uint64_t imm_factor){
    return svqincd_n_u32(op,imm_factor);
}
inline uint64_t svqincd(uint64_t op, uint64_t imm_factor){
    return svqincd_n_u64(op,imm_factor);
}
inline int32_t svqincd_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqincd_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqincd_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqincd_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_n_u64(op,pattern,imm_factor);
}
inline svint64_t svqincd(svint64_t op, uint64_t imm_factor){
    return svqincd_s64(op,imm_factor);
}
inline svuint64_t svqincd(svuint64_t op, uint64_t imm_factor){
    return svqincd_u64(op,imm_factor);
}
inline svint64_t svqincd_pat(svint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_s64(op,pattern,imm_factor);
}
inline svuint64_t svqincd_pat(svuint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqincd_pat_u64(op,pattern,imm_factor);
}
inline int32_t svqincp_b8(int32_t op, svbool_t pg){
    return svqincp_n_s32_b8(op,pg);
}
inline int32_t svqincp_b16(int32_t op, svbool_t pg){
    return svqincp_n_s32_b16(op,pg);
}
inline int32_t svqincp_b32(int32_t op, svbool_t pg){
    return svqincp_n_s32_b32(op,pg);
}
inline int32_t svqincp_b64(int32_t op, svbool_t pg){
    return svqincp_n_s32_b64(op,pg);
}
inline int64_t svqincp_b8(int64_t op, svbool_t pg){
    return svqincp_n_s64_b8(op,pg);
}
inline int64_t svqincp_b16(int64_t op, svbool_t pg){
    return svqincp_n_s64_b16(op,pg);
}
inline int64_t svqincp_b32(int64_t op, svbool_t pg){
    return svqincp_n_s64_b32(op,pg);
}
inline int64_t svqincp_b64(int64_t op, svbool_t pg){
    return svqincp_n_s64_b64(op,pg);
}
inline uint32_t svqincp_b8(uint32_t op, svbool_t pg){
    return svqincp_n_u32_b8(op,pg);
}
inline uint32_t svqincp_b16(uint32_t op, svbool_t pg){
    return svqincp_n_u32_b16(op,pg);
}
inline uint32_t svqincp_b32(uint32_t op, svbool_t pg){
    return svqincp_n_u32_b32(op,pg);
}
inline uint32_t svqincp_b64(uint32_t op, svbool_t pg){
    return svqincp_n_u32_b64(op,pg);
}
inline uint64_t svqincp_b8(uint64_t op, svbool_t pg){
    return svqincp_n_u64_b8(op,pg);
}
inline uint64_t svqincp_b16(uint64_t op, svbool_t pg){
    return svqincp_n_u64_b16(op,pg);
}
inline uint64_t svqincp_b32(uint64_t op, svbool_t pg){
    return svqincp_n_u64_b32(op,pg);
}
inline uint64_t svqincp_b64(uint64_t op, svbool_t pg){
    return svqincp_n_u64_b64(op,pg);
}
inline svint16_t svqincp(svint16_t op, svbool_t pg){
    return svqincp_s16(op,pg);
}
inline svint32_t svqincp(svint32_t op, svbool_t pg){
    return svqincp_s32(op,pg);
}
inline svint64_t svqincp(svint64_t op, svbool_t pg){
    return svqincp_s64(op,pg);
}
inline svuint16_t svqincp(svuint16_t op, svbool_t pg){
    return svqincp_u16(op,pg);
}
inline svuint32_t svqincp(svuint32_t op, svbool_t pg){
    return svqincp_u32(op,pg);
}
inline svuint64_t svqincp(svuint64_t op, svbool_t pg){
    return svqincp_u64(op,pg);
}
inline int32_t svqdecb(int32_t op, uint64_t imm_factor){
    return svqdecb_n_s32(op,imm_factor);
}
inline int64_t svqdecb(int64_t op, uint64_t imm_factor){
    return svqdecb_n_s64(op,imm_factor);
}
inline uint32_t svqdecb(uint32_t op, uint64_t imm_factor){
    return svqdecb_n_u32(op,imm_factor);
}
inline uint64_t svqdecb(uint64_t op, uint64_t imm_factor){
    return svqdecb_n_u64(op,imm_factor);
}
inline int32_t svqdecb_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecb_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqdecb_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecb_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqdecb_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecb_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqdecb_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecb_pat_n_u64(op,pattern,imm_factor);
}
inline int32_t svqdech(int32_t op, uint64_t imm_factor){
    return svqdech_n_s32(op,imm_factor);
}
inline int64_t svqdech(int64_t op, uint64_t imm_factor){
    return svqdech_n_s64(op,imm_factor);
}
inline uint32_t svqdech(uint32_t op, uint64_t imm_factor){
    return svqdech_n_u32(op,imm_factor);
}
inline uint64_t svqdech(uint64_t op, uint64_t imm_factor){
    return svqdech_n_u64(op,imm_factor);
}
inline int32_t svqdech_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqdech_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqdech_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqdech_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_n_u64(op,pattern,imm_factor);
}
inline svint16_t svqdech(svint16_t op, uint64_t imm_factor){
    return svqdech_s16(op,imm_factor);
}
inline svuint16_t svqdech(svuint16_t op, uint64_t imm_factor){
    return svqdech_u16(op,imm_factor);
}
inline svint16_t svqdech_pat(svint16_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_s16(op,pattern,imm_factor);
}
inline svuint16_t svqdech_pat(svuint16_t op, svpattern pattern,uint64_t imm_factor){
    return svqdech_pat_u16(op,pattern,imm_factor);
}
inline int32_t svqdecw(int32_t op, uint64_t imm_factor){
    return svqdecw_n_s32(op,imm_factor);
}
inline int64_t svqdecw(int64_t op, uint64_t imm_factor){
    return svqdecw_n_s64(op,imm_factor);
}
inline uint32_t svqdecw(uint32_t op, uint64_t imm_factor){
    return svqdecw_n_u32(op,imm_factor);
}
inline uint64_t svqdecw(uint64_t op, uint64_t imm_factor){
    return svqdecw_n_u64(op,imm_factor);
}
inline int32_t svqdecw_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqdecw_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqdecw_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqdecw_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_n_u64(op,pattern,imm_factor);
}
inline svint32_t svqdecw(svint32_t op, uint64_t imm_factor){
    return svqdecw_s32(op,imm_factor);
}
inline svuint32_t svqdecw(svuint32_t op, uint64_t imm_factor){
    return svqdecw_u32(op,imm_factor);
}
inline svint32_t svqdecw_pat(svint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_s32(op,pattern,imm_factor);
}
inline svuint32_t svqdecw_pat(svuint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecw_pat_u32(op,pattern,imm_factor);
}
inline int32_t svqdecd(int32_t op, uint64_t imm_factor){
    return svqdecd_n_s32(op,imm_factor);
}
inline int64_t svqdecd(int64_t op, uint64_t imm_factor){
    return svqdecd_n_s64(op,imm_factor);
}
inline uint32_t svqdecd(uint32_t op, uint64_t imm_factor){
    return svqdecd_n_u32(op,imm_factor);
}
inline uint64_t svqdecd(uint64_t op, uint64_t imm_factor){
    return svqdecd_n_u64(op,imm_factor);
}
inline int32_t svqdecd_pat(int32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_n_s32(op,pattern,imm_factor);
}
inline int64_t svqdecd_pat(int64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_n_s64(op,pattern,imm_factor);
}
inline uint32_t svqdecd_pat(uint32_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_n_u32(op,pattern,imm_factor);
}
inline uint64_t svqdecd_pat(uint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_n_u64(op,pattern,imm_factor);
}
inline svint64_t svqdecd(svint64_t op, uint64_t imm_factor){
    return svqdecd_s64(op,imm_factor);
}
inline svuint64_t svqdecd(svuint64_t op, uint64_t imm_factor){
    return svqdecd_u64(op,imm_factor);
}
inline svint64_t svqdecd_pat(svint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_s64(op,pattern,imm_factor);
}
inline svuint64_t svqdecd_pat(svuint64_t op, svpattern pattern,uint64_t imm_factor){
    return svqdecd_pat_u64(op,pattern,imm_factor);
}
inline int32_t svqdecp_b8(int32_t op, svbool_t pg){
    return svqdecp_n_s32_b8(op,pg);
}
inline int32_t svqdecp_b16(int32_t op, svbool_t pg){
    return svqdecp_n_s32_b16(op,pg);
}
inline int32_t svqdecp_b32(int32_t op, svbool_t pg){
    return svqdecp_n_s32_b32(op,pg);
}
inline int32_t svqdecp_b64(int32_t op, svbool_t pg){
    return svqdecp_n_s32_b64(op,pg);
}
inline int64_t svqdecp_b8(int64_t op, svbool_t pg){
    return svqdecp_n_s64_b8(op,pg);
}
inline int64_t svqdecp_b16(int64_t op, svbool_t pg){
    return svqdecp_n_s64_b16(op,pg);
}
inline int64_t svqdecp_b32(int64_t op, svbool_t pg){
    return svqdecp_n_s64_b32(op,pg);
}
inline int64_t svqdecp_b64(int64_t op, svbool_t pg){
    return svqdecp_n_s64_b64(op,pg);
}
inline uint32_t svqdecp_b8(uint32_t op, svbool_t pg){
    return svqdecp_n_u32_b8(op,pg);
}
inline uint32_t svqdecp_b16(uint32_t op, svbool_t pg){
    return svqdecp_n_u32_b16(op,pg);
}
inline uint32_t svqdecp_b32(uint32_t op, svbool_t pg){
    return svqdecp_n_u32_b32(op,pg);
}
inline uint32_t svqdecp_b64(uint32_t op, svbool_t pg){
    return svqdecp_n_u32_b64(op,pg);
}
inline uint64_t svqdecp_b8(uint64_t op, svbool_t pg){
    return svqdecp_n_u64_b8(op,pg);
}
inline uint64_t svqdecp_b16(uint64_t op, svbool_t pg){
    return svqdecp_n_u64_b16(op,pg);
}
inline uint64_t svqdecp_b32(uint64_t op, svbool_t pg){
    return svqdecp_n_u64_b32(op,pg);
}
inline uint64_t svqdecp_b64(uint64_t op, svbool_t pg){
    return svqdecp_n_u64_b64(op,pg);
}
inline svint16_t svqdecp(svint16_t op, svbool_t pg){
    return svqdecp_s16(op,pg);
}
inline svint32_t svqdecp(svint32_t op, svbool_t pg){
    return svqdecp_s32(op,pg);
}
inline svint64_t svqdecp(svint64_t op, svbool_t pg){
    return svqdecp_s64(op,pg);
}
inline svuint16_t svqdecp(svuint16_t op, svbool_t pg){
    return svqdecp_u16(op,pg);
}
inline svuint32_t svqdecp(svuint32_t op, svbool_t pg){
    return svqdecp_u32(op,pg);
}
inline svuint64_t svqdecp(svuint64_t op, svbool_t pg){
    return svqdecp_u64(op,pg);
}
inline svint8_t svreinterpret_s8(svint8_t op){
    return svreinterpret_s8_s8(op);
}
inline svint8_t svreinterpret_s8(svint16_t op){
    return svreinterpret_s8_s16(op);
}
inline svint8_t svreinterpret_s8(svint32_t op){
    return svreinterpret_s8_s32(op);
}
inline svint8_t svreinterpret_s8(svint64_t op){
    return svreinterpret_s8_s64(op);
}
inline svint8_t svreinterpret_s8(svuint8_t op){
    return svreinterpret_s8_u8(op);
}
inline svint8_t svreinterpret_s8(svuint16_t op){
    return svreinterpret_s8_u16(op);
}
inline svint8_t svreinterpret_s8(svuint32_t op){
    return svreinterpret_s8_u32(op);
}
inline svint8_t svreinterpret_s8(svuint64_t op){
    return svreinterpret_s8_u64(op);
}
inline svint8_t svreinterpret_s8(svfloat16_t op){
    return svreinterpret_s8_f16(op);
}
inline svint8_t svreinterpret_s8(svfloat32_t op){
    return svreinterpret_s8_f32(op);
}
inline svint8_t svreinterpret_s8(svfloat64_t op){
    return svreinterpret_s8_f64(op);
}
inline svint16_t svreinterpret_s16(svint8_t op){
    return svreinterpret_s16_s8(op);
}
inline svint16_t svreinterpret_s16(svint16_t op){
    return svreinterpret_s16_s16(op);
}
inline svint16_t svreinterpret_s16(svint32_t op){
    return svreinterpret_s16_s32(op);
}
inline svint16_t svreinterpret_s16(svint64_t op){
    return svreinterpret_s16_s64(op);
}
inline svint16_t svreinterpret_s16(svuint8_t op){
    return svreinterpret_s16_u8(op);
}
inline svint16_t svreinterpret_s16(svuint16_t op){
    return svreinterpret_s16_u16(op);
}
inline svint16_t svreinterpret_s16(svuint32_t op){
    return svreinterpret_s16_u32(op);
}
inline svint16_t svreinterpret_s16(svuint64_t op){
    return svreinterpret_s16_u64(op);
}
inline svint16_t svreinterpret_s16(svfloat16_t op){
    return svreinterpret_s16_f16(op);
}
inline svint16_t svreinterpret_s16(svfloat32_t op){
    return svreinterpret_s16_f32(op);
}
inline svint16_t svreinterpret_s16(svfloat64_t op){
    return svreinterpret_s16_f64(op);
}
inline svint32_t svreinterpret_s32(svint8_t op){
    return svreinterpret_s32_s8(op);
}
inline svint32_t svreinterpret_s32(svint16_t op){
    return svreinterpret_s32_s16(op);
}
inline svint32_t svreinterpret_s32(svint32_t op){
    return svreinterpret_s32_s32(op);
}
inline svint32_t svreinterpret_s32(svint64_t op){
    return svreinterpret_s32_s64(op);
}
inline svint32_t svreinterpret_s32(svuint8_t op){
    return svreinterpret_s32_u8(op);
}
inline svint32_t svreinterpret_s32(svuint16_t op){
    return svreinterpret_s32_u16(op);
}
inline svint32_t svreinterpret_s32(svuint32_t op){
    return svreinterpret_s32_u32(op);
}
inline svint32_t svreinterpret_s32(svuint64_t op){
    return svreinterpret_s32_u64(op);
}
inline svint32_t svreinterpret_s32(svfloat16_t op){
    return svreinterpret_s32_f16(op);
}
inline svint32_t svreinterpret_s32(svfloat32_t op){
    return svreinterpret_s32_f32(op);
}
inline svint32_t svreinterpret_s32(svfloat64_t op){
    return svreinterpret_s32_f64(op);
}
inline svint64_t svreinterpret_s64(svint8_t op){
    return svreinterpret_s64_s8(op);
}
inline svint64_t svreinterpret_s64(svint16_t op){
    return svreinterpret_s64_s16(op);
}
inline svint64_t svreinterpret_s64(svint32_t op){
    return svreinterpret_s64_s32(op);
}
inline svint64_t svreinterpret_s64(svint64_t op){
    return svreinterpret_s64_s64(op);
}
inline svint64_t svreinterpret_s64(svuint8_t op){
    return svreinterpret_s64_u8(op);
}
inline svint64_t svreinterpret_s64(svuint16_t op){
    return svreinterpret_s64_u16(op);
}
inline svint64_t svreinterpret_s64(svuint32_t op){
    return svreinterpret_s64_u32(op);
}
inline svint64_t svreinterpret_s64(svuint64_t op){
    return svreinterpret_s64_u64(op);
}
inline svint64_t svreinterpret_s64(svfloat16_t op){
    return svreinterpret_s64_f16(op);
}
inline svint64_t svreinterpret_s64(svfloat32_t op){
    return svreinterpret_s64_f32(op);
}
inline svint64_t svreinterpret_s64(svfloat64_t op){
    return svreinterpret_s64_f64(op);
}
inline svuint8_t svreinterpret_u8(svint8_t op){
    return svreinterpret_u8_s8(op);
}
inline svuint8_t svreinterpret_u8(svint16_t op){
    return svreinterpret_u8_s16(op);
}
inline svuint8_t svreinterpret_u8(svint32_t op){
    return svreinterpret_u8_s32(op);
}
inline svuint8_t svreinterpret_u8(svint64_t op){
    return svreinterpret_u8_s64(op);
}
inline svuint8_t svreinterpret_u8(svuint8_t op){
    return svreinterpret_u8_u8(op);
}
inline svuint8_t svreinterpret_u8(svuint16_t op){
    return svreinterpret_u8_u16(op);
}
inline svuint8_t svreinterpret_u8(svuint32_t op){
    return svreinterpret_u8_u32(op);
}
inline svuint8_t svreinterpret_u8(svuint64_t op){
    return svreinterpret_u8_u64(op);
}
inline svuint8_t svreinterpret_u8(svfloat16_t op){
    return svreinterpret_u8_f16(op);
}
inline svuint8_t svreinterpret_u8(svfloat32_t op){
    return svreinterpret_u8_f32(op);
}
inline svuint8_t svreinterpret_u8(svfloat64_t op){
    return svreinterpret_u8_f64(op);
}
inline svuint16_t svreinterpret_u16(svint8_t op){
    return svreinterpret_u16_s8(op);
}
inline svuint16_t svreinterpret_u16(svint16_t op){
    return svreinterpret_u16_s16(op);
}
inline svuint16_t svreinterpret_u16(svint32_t op){
    return svreinterpret_u16_s32(op);
}
inline svuint16_t svreinterpret_u16(svint64_t op){
    return svreinterpret_u16_s64(op);
}
inline svuint16_t svreinterpret_u16(svuint8_t op){
    return svreinterpret_u16_u8(op);
}
inline svuint16_t svreinterpret_u16(svuint16_t op){
    return svreinterpret_u16_u16(op);
}
inline svuint16_t svreinterpret_u16(svuint32_t op){
    return svreinterpret_u16_u32(op);
}
inline svuint16_t svreinterpret_u16(svuint64_t op){
    return svreinterpret_u16_u64(op);
}
inline svuint16_t svreinterpret_u16(svfloat16_t op){
    return svreinterpret_u16_f16(op);
}
inline svuint16_t svreinterpret_u16(svfloat32_t op){
    return svreinterpret_u16_f32(op);
}
inline svuint16_t svreinterpret_u16(svfloat64_t op){
    return svreinterpret_u16_f64(op);
}
inline svuint32_t svreinterpret_u32(svint8_t op){
    return svreinterpret_u32_s8(op);
}
inline svuint32_t svreinterpret_u32(svint16_t op){
    return svreinterpret_u32_s16(op);
}
inline svuint32_t svreinterpret_u32(svint32_t op){
    return svreinterpret_u32_s32(op);
}
inline svuint32_t svreinterpret_u32(svint64_t op){
    return svreinterpret_u32_s64(op);
}
inline svuint32_t svreinterpret_u32(svuint8_t op){
    return svreinterpret_u32_u8(op);
}
inline svuint32_t svreinterpret_u32(svuint16_t op){
    return svreinterpret_u32_u16(op);
}
inline svuint32_t svreinterpret_u32(svuint32_t op){
    return svreinterpret_u32_u32(op);
}
inline svuint32_t svreinterpret_u32(svuint64_t op){
    return svreinterpret_u32_u64(op);
}
inline svuint32_t svreinterpret_u32(svfloat16_t op){
    return svreinterpret_u32_f16(op);
}
inline svuint32_t svreinterpret_u32(svfloat32_t op){
    return svreinterpret_u32_f32(op);
}
inline svuint32_t svreinterpret_u32(svfloat64_t op){
    return svreinterpret_u32_f64(op);
}
inline svuint64_t svreinterpret_u64(svint8_t op){
    return svreinterpret_u64_s8(op);
}
inline svuint64_t svreinterpret_u64(svint16_t op){
    return svreinterpret_u64_s16(op);
}
inline svuint64_t svreinterpret_u64(svint32_t op){
    return svreinterpret_u64_s32(op);
}
inline svuint64_t svreinterpret_u64(svint64_t op){
    return svreinterpret_u64_s64(op);
}
inline svuint64_t svreinterpret_u64(svuint8_t op){
    return svreinterpret_u64_u8(op);
}
inline svuint64_t svreinterpret_u64(svuint16_t op){
    return svreinterpret_u64_u16(op);
}
inline svuint64_t svreinterpret_u64(svuint32_t op){
    return svreinterpret_u64_u32(op);
}
inline svuint64_t svreinterpret_u64(svuint64_t op){
    return svreinterpret_u64_u64(op);
}
inline svuint64_t svreinterpret_u64(svfloat16_t op){
    return svreinterpret_u64_f16(op);
}
inline svuint64_t svreinterpret_u64(svfloat32_t op){
    return svreinterpret_u64_f32(op);
}
inline svuint64_t svreinterpret_u64(svfloat64_t op){
    return svreinterpret_u64_f64(op);
}
inline svfloat16_t svreinterpret_f16(svint8_t op){
    return svreinterpret_f16_s8(op);
}
inline svfloat16_t svreinterpret_f16(svint16_t op){
    return svreinterpret_f16_s16(op);
}
inline svfloat16_t svreinterpret_f16(svint32_t op){
    return svreinterpret_f16_s32(op);
}
inline svfloat16_t svreinterpret_f16(svint64_t op){
    return svreinterpret_f16_s64(op);
}
inline svfloat16_t svreinterpret_f16(svuint8_t op){
    return svreinterpret_f16_u8(op);
}
inline svfloat16_t svreinterpret_f16(svuint16_t op){
    return svreinterpret_f16_u16(op);
}
inline svfloat16_t svreinterpret_f16(svuint32_t op){
    return svreinterpret_f16_u32(op);
}
inline svfloat16_t svreinterpret_f16(svuint64_t op){
    return svreinterpret_f16_u64(op);
}
inline svfloat16_t svreinterpret_f16(svfloat16_t op){
    return svreinterpret_f16_f16(op);
}
inline svfloat16_t svreinterpret_f16(svfloat32_t op){
    return svreinterpret_f16_f32(op);
}
inline svfloat16_t svreinterpret_f16(svfloat64_t op){
    return svreinterpret_f16_f64(op);
}
inline svfloat32_t svreinterpret_f32(svint8_t op){
    return svreinterpret_f32_s8(op);
}
inline svfloat32_t svreinterpret_f32(svint16_t op){
    return svreinterpret_f32_s16(op);
}
inline svfloat32_t svreinterpret_f32(svint32_t op){
    return svreinterpret_f32_s32(op);
}
inline svfloat32_t svreinterpret_f32(svint64_t op){
    return svreinterpret_f32_s64(op);
}
inline svfloat32_t svreinterpret_f32(svuint8_t op){
    return svreinterpret_f32_u8(op);
}
inline svfloat32_t svreinterpret_f32(svuint16_t op){
    return svreinterpret_f32_u16(op);
}
inline svfloat32_t svreinterpret_f32(svuint32_t op){
    return svreinterpret_f32_u32(op);
}
inline svfloat32_t svreinterpret_f32(svuint64_t op){
    return svreinterpret_f32_u64(op);
}
inline svfloat32_t svreinterpret_f32(svfloat16_t op){
    return svreinterpret_f32_f16(op);
}
inline svfloat32_t svreinterpret_f32(svfloat32_t op){
    return svreinterpret_f32_f32(op);
}
inline svfloat32_t svreinterpret_f32(svfloat64_t op){
    return svreinterpret_f32_f64(op);
}
inline svfloat64_t svreinterpret_f64(svint8_t op){
    return svreinterpret_f64_s8(op);
}
inline svfloat64_t svreinterpret_f64(svint16_t op){
    return svreinterpret_f64_s16(op);
}
inline svfloat64_t svreinterpret_f64(svint32_t op){
    return svreinterpret_f64_s32(op);
}
inline svfloat64_t svreinterpret_f64(svint64_t op){
    return svreinterpret_f64_s64(op);
}
inline svfloat64_t   svreinterpret_f64(svuint8_t op){
    return svreinterpret_f64_u8(op);
}
inline svfloat64_t   svreinterpret_f64(svuint16_t op){
    return svreinterpret_f64_u16(op);
}
inline svfloat64_t   svreinterpret_f64(svuint32_t op){
    return svreinterpret_f64_u32(op);
}
inline svfloat64_t   svreinterpret_f64(svuint64_t op){
    return svreinterpret_f64_u64(op);
}
inline svfloat64_t   svreinterpret_f64(svfloat16_t op){
    return svreinterpret_f64_f16(op);
}
inline svfloat64_t   svreinterpret_f64(svfloat32_t op){
    return svreinterpret_f64_f32(op);
}
inline svfloat64_t   svreinterpret_f64(svfloat64_t op){
    return svreinterpret_f64_f64(op);
}

#endif
back to top