2022-12-29 12:32:55 +00:00
|
|
|
#include "compiler/Intrinsics.h"
|
|
|
|
#include "compiler/CError.h"
|
|
|
|
#include "compiler/CExpr.h"
|
|
|
|
#include "compiler/CInt64.h"
|
|
|
|
#include "compiler/CMachine.h"
|
|
|
|
#include "compiler/CParser.h"
|
|
|
|
#include "compiler/CScope.h"
|
|
|
|
#include "compiler/CompilerTools.h"
|
|
|
|
#include "compiler/FunctionCalls.h"
|
|
|
|
#include "compiler/InstrSelection.h"
|
|
|
|
#include "compiler/PCode.h"
|
|
|
|
#include "compiler/PCodeUtilities.h"
|
|
|
|
#include "compiler/PPCError.h"
|
|
|
|
#include "compiler/RegisterInfo.h"
|
|
|
|
#include "compiler/StackFrame.h"
|
|
|
|
#include "compiler/StructMoves.h"
|
|
|
|
#include "compiler/objects.h"
|
|
|
|
#include "compiler/scopes.h"
|
|
|
|
#include "compiler/types.h"
|
|
|
|
|
|
|
|
Object *__memcpy_object;
|
|
|
|
static Object *intrinsics[311];
|
|
|
|
int VectorConditions; // unused?
|
|
|
|
static Object *cur_intrinsic_object;
|
|
|
|
|
|
|
|
static TypePointer stvectorunsignedchar_ptr = {TYPEPOINTER, 4, TYPE(&stvectorunsignedchar), 0};
|
|
|
|
static TypePointer stvectorsignedchar_ptr = {TYPEPOINTER, 4, TYPE(&stvectorsignedchar), 0};
|
|
|
|
static TypePointer stvectorboolchar_ptr = {TYPEPOINTER, 4, TYPE(&stvectorboolchar), 0};
|
|
|
|
static TypePointer stvectorunsignedshort_ptr = {TYPEPOINTER, 4, TYPE(&stvectorunsignedshort), 0};
|
|
|
|
static TypePointer stvectorsignedshort_ptr = {TYPEPOINTER, 4, TYPE(&stvectorsignedshort), 0};
|
|
|
|
static TypePointer stvectorboolshort_ptr = {TYPEPOINTER, 4, TYPE(&stvectorboolshort), 0};
|
|
|
|
static TypePointer stvectorunsignedlong_ptr = {TYPEPOINTER, 4, TYPE(&stvectorunsignedlong), 0};
|
|
|
|
static TypePointer stvectorsignedlong_ptr = {TYPEPOINTER, 4, TYPE(&stvectorsignedlong), 0};
|
|
|
|
static TypePointer stvectorboollong_ptr = {TYPEPOINTER, 4, TYPE(&stvectorboollong), 0};
|
|
|
|
static TypePointer stvectorfloat_ptr = {TYPEPOINTER, 4, TYPE(&stvectorfloat), 0};
|
|
|
|
static TypePointer stvectorpixel_ptr = {TYPEPOINTER, 4, TYPE(&stvectorpixel), 0};
|
|
|
|
static TypePointer stunsignedchar_ptr = {TYPEPOINTER, 4, TYPE(&stunsignedchar), 0};
|
|
|
|
static TypePointer stsignedchar_ptr = {TYPEPOINTER, 4, TYPE(&stsignedchar), 0};
|
|
|
|
static TypePointer stunsignedshort_ptr = {TYPEPOINTER, 4, TYPE(&stunsignedshort), 0};
|
|
|
|
static TypePointer stsignedshort_ptr = {TYPEPOINTER, 4, TYPE(&stsignedshort), 0};
|
|
|
|
static TypePointer stunsignedlong_ptr = {TYPEPOINTER, 4, TYPE(&stunsignedlong), 0};
|
|
|
|
static TypePointer stsignedlong_ptr = {TYPEPOINTER, 4, TYPE(&stsignedlong), 0};
|
|
|
|
static TypePointer stunsignedint_ptr = {TYPEPOINTER, 4, TYPE(&stunsignedint), 0};
|
|
|
|
static TypePointer stsignedint_ptr = {TYPEPOINTER, 4, TYPE(&stsignedint), 0};
|
|
|
|
static TypePointer stfloat_ptr = {TYPEPOINTER, 4, TYPE(&stfloat), 0};
|
|
|
|
|
|
|
|
// Verify1VectorArg2Ops
|
|
|
|
typedef struct TypeTable22 {
|
|
|
|
Type *rtype;
|
|
|
|
Type *arg1;
|
|
|
|
int opcode1;
|
|
|
|
int opcode2;
|
|
|
|
} TypeTable22;
|
|
|
|
|
|
|
|
// VerifyNoVectorArgs
|
|
|
|
typedef struct TypeTable11 {
|
|
|
|
Type *rtype;
|
|
|
|
int opcode;
|
|
|
|
} TypeTable11;
|
|
|
|
|
|
|
|
// Verify1VectorArg
|
|
|
|
typedef struct TypeTable21 {
|
|
|
|
Type *rtype;
|
|
|
|
Type *arg1;
|
|
|
|
int opcode;
|
|
|
|
} TypeTable21;
|
|
|
|
|
|
|
|
// Verify2VectorArgs
|
|
|
|
typedef struct TypeTable31 {
|
|
|
|
Type *rtype;
|
|
|
|
Type *arg1;
|
|
|
|
Type *arg2;
|
|
|
|
int opcode;
|
|
|
|
} TypeTable31;
|
|
|
|
|
|
|
|
// Verify3VectorArgs
|
|
|
|
typedef struct TypeTable41 {
|
|
|
|
Type *rtype;
|
|
|
|
Type *arg1;
|
|
|
|
Type *arg2;
|
|
|
|
Type *arg3;
|
|
|
|
int opcode;
|
|
|
|
} TypeTable41;
|
|
|
|
|
|
|
|
static TypeTable31 vector_add_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VADDFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_addc_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VADDCUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_adds_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VADDUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VADDUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VADDUBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VADDSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VADDSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VADDSBS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VADDUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VADDUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VADDUHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VADDSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VADDSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VADDSHS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VADDUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VADDUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VADDUWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VADDSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VADDSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VADDSWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_and_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VAND,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VAND,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VAND,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VAND,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VAND,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VAND,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorboollong), TYPE(&stvectorfloat), PC_VAND,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorboollong), PC_VAND,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VAND,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_andc_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VANDC,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VANDC,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VANDC,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VANDC,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorboollong), TYPE(&stvectorfloat), PC_VANDC,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorboollong), PC_VANDC,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VANDC,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_avg_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VAVGUB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VAVGSB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VAVGUH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VAVGSH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VAVGUW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VAVGSW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_ceil_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VRFIP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_cmpb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_cmpeq_type_table[] = {
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_cmpge_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_cmpgt_type_table[] = {
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_ctf_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VCFUX,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VCFSX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_cts_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorfloat), TYPE(&stsignedint), PC_VCTSXS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_ctu_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorfloat), TYPE(&stsignedint), PC_VCTUXS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_dss_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stsignedint), PC_DSS, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable11 vector_dssall_type_table[] = {
|
|
|
|
TYPE(&stvoid), PC_DSSALL,
|
|
|
|
NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_datastream_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stunsignedchar_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stsignedchar_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stunsignedshort_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stsignedshort_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stunsignedint_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stsignedint_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stunsignedlong_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stsignedlong_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
TYPE(&stvoid), TYPE(&stfloat_ptr), TYPE(&stsignedint), TYPE(&stsignedint), PC_DST,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_expte_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VEXPTEFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_floor_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VRFIM, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_load_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stvectorunsignedchar_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stvectorsignedchar_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stvectorboolchar_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stvectorunsignedshort_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stvectorsignedshort_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stvectorboolshort_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stvectorpixel_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stvectorunsignedlong_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stvectorsignedlong_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stvectorboollong_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stvectorfloat_ptr), PC_LVX,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_loade_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVEBX,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVEBX,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVEHX,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVEHX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVEWX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_loadl_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stvectorunsignedchar_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stvectorsignedchar_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stvectorboolchar_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stvectorunsignedshort_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stvectorsignedshort_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stvectorboolshort_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stvectorpixel_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stvectorunsignedlong_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stvectorsignedlong_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stvectorboollong_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stvectorfloat_ptr), PC_LVXL,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVXL,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_loge_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VLOGEFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_lvsl_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVSL,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_lvsr_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVSR,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_madd_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMADDFP,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_madds_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMHADDSHS,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_max_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMAXUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VMAXUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VMAXUB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VMAXSB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMAXUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VMAXUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VMAXUH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VMAXSH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMAXUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VMAXUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VMAXUW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMAXSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VMAXSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VMAXSW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMAXFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_mergeh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMRGHW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_mergel_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMRGLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable11 vector_mfvscr_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), PC_MFVSCR,
|
|
|
|
NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_min_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMINUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VMINUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VMINUB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMINSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VMINSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VMINSB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMINUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VMINUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VMINUH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMINSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VMINSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VMINSH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMINUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VMINUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VMINUW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMINSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VMINSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VMINSW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMINFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_mladd_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMLADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMLADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMLADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMLADDUHM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_mradds_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMHRADDSHS,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_msum_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VMSUMUBM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VMSUMUHM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedlong), PC_VMSUMMBM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VMSUMSHM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_msums_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VMSUMUHS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VMSUMSHS,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_mtvscr_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), PC_MTVSCR,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), PC_MTVSCR,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_mule_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMULEUB,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMULESB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMULEUH,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMULESH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_mulo_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMULOUB,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMULOSB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMULOUH,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMULOSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_nmsub_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VNMSUBFP,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_nor_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VNOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VNOR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VNOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VNOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VNOR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VNOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VNOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VNOR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VNOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VNOR,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_or_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VOR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VOR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VOR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorboollong), TYPE(&stvectorfloat), PC_VOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorboollong), PC_VOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VOR,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_pack_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VPKUHUM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKUHUM,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VPKUHUM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKUWUM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKUWUM,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VPKUWUM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_packpx_type_table[] = {
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKPX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_packs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VPKUHUS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKSHSS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKUWUS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKSWSS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_packsu_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VPKUHUS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKSHUS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKUWUS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKSWUS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_perm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorunsignedchar), PC_VPERM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_re_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VREFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_rl_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VRLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VRLB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VRLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VRLH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VRLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VRLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_round_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VRFIN, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_rsqrte_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VRSQRTEFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_sel_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VSEL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VSEL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSEL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSEL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VSEL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSEL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VSEL,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorunsignedlong), PC_VSEL,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorboollong), PC_VSEL,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sl_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSLB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSLH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_sld_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stsignedint), PC_VSLDOI,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sll_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedchar), PC_VSL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedshort), PC_VSL,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSL,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_slo_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorunsignedchar), PC_VSLO,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorsignedchar), PC_VSLO,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_splat_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_s8_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), PC_VSPLTISB, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_s16_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), PC_VSPLTISH, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_s32_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VSPLTISW, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_u8_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), PC_VSPLTISB, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_u16_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), PC_VSPLTISH, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_splat_u32_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VSPLTISW, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sr_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSRB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSRB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSRH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSRH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSRW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSRW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sra_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSRAB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSRAB,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSRAH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSRAH,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSRAW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSRAW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_srl_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedchar), PC_VSR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedshort), PC_VSR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSR,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sro_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorunsignedchar), PC_VSRO,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorsignedchar), PC_VSRO,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_st_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stvectorunsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stvectorsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stvectorunsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stvectorsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stvectorunsignedlong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stvectorsignedlong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stvectorfloat_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stvectorpixel_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stvectorboolchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stvectorboolshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stvectorboollong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVX,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_ste_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVEWX,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_stl_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stvectorunsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stvectorsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stvectorunsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stvectorsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stvectorunsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stvectorsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stvectorfloat_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stvectorpixel_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stvectorboolchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stvectorboolshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stvectorboollong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVXL,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVXL,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VSUBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_subc_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSUBCUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_subs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSUBUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSUBUBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VSUBSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VSUBSBS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSUBUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSUBUHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VSUBSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VSUBSHS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSUBUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VSUBUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSUBUWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VSUBSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VSUBSWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sum4s_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VSUM4UBS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedlong), PC_VSUM4SBS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VSUM4SHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sum2s_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUM2SWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_sums_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUMSWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_trunc_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VRFIZ, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_unpack2sh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGHH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_unpack2sl_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGLH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_unpack2uh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGHH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_unpack2ul_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGLH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_unpackh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VUPKHSB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolchar), PC_VUPKHSB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorpixel), PC_VUPKHPX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), PC_VUPKHSH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboolshort), PC_VUPKHSH,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_unpackl_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VUPKLSB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolchar), PC_VUPKLSB,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorpixel), PC_VUPKLPX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), PC_VUPKLSH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboolshort), PC_VUPKLSH,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_xor_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VXOR,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VXOR,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VXOR,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VXOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorboollong), TYPE(&stvectorfloat), PC_VXOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorboollong), PC_VXOR,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VXOR,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_eq_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_ge_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_gt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_in_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_le_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_lt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_all_nan_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), PC_VCMPEQFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_ne_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_nge_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_ngt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_nle_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_all_nlt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_all_numeric_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), PC_VCMPEQFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_eq_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_ge_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_gt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_le_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_lt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_any_nan_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), PC_VCMPEQFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_ne_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VCMPEQUH,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_nge_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_ngt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_nle_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGEFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_nlt_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_any_numeric_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), PC_VCMPEQFP, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_any_out_type_table[] = {
|
|
|
|
TYPE(&stsignedint), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddubm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VADDUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VADDUBM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vadduhm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VADDUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VADDUHM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vadduwm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VADDUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VADDUWM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddfp_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VADDFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddubs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VADDUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VADDUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VADDUBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddsbs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VADDSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VADDSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VADDSBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vadduhs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VADDUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VADDUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VADDUHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddshs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VADDSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VADDSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VADDSHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vadduws_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VADDUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VADDUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VADDUWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vaddsws_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VADDSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VADDSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VADDSWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavgub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VAVGUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavgsb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VAVGSB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavguh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VAVGUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavgsh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VAVGSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavguw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VAVGUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vavgsw_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VAVGSW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpequb_type_table[] = {
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPEQUB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPEQUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpequh_type_table[] = {
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPEQUH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPEQUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpequw_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPEQUW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPEQUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpeqfp_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPEQFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtub_type_table[] = {
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VCMPGTUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtsb_type_table[] = {
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VCMPGTSB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtuh_type_table[] = {
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VCMPGTUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtsh_type_table[] = {
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VCMPGTSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtuw_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VCMPGTUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtsw_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VCMPGTSW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcmpgtfp_type_table[] = {
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VCMPGTFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcfux_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VCFUX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vcfsx_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VCFSX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_lvebx_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_LVEBX,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_LVEBX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_lvehx_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_LVEHX,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_LVEHX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_lvewx_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_LVEWX,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_LVEWX,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMAXUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VMAXUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VMAXUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxsb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VMAXSB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxuh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMAXUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VMAXUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VMAXUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxsh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VMAXSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxuw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMAXUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VMAXUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VMAXUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxsw_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMAXSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VMAXSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VMAXSW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmaxfp_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMAXFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrghb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMRGHB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VMRGHB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrghh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VMRGHH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VMRGHH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrghw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VMRGHW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMRGHW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrglb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMRGLB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), PC_VMRGLB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrglh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VMRGLH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stvectorpixel), PC_VMRGLH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmrglw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VMRGLW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMRGLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMINUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VMINUB,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VMINUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminsb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMINSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VMINSB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VMINSB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminuh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMINUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VMINUH,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VMINUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminsh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMINSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VMINSH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VMINSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminuw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VMINUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VMINUW,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VMINUW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminsw_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VMINSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VMINSW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VMINSW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vminfp_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VMINFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsumubm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VMSUMUBM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsumuhm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VMSUMUHM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsummbm_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedlong), PC_VMSUMMBM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsumshm_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VMSUMSHM,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsumuhs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), PC_VMSUMUHS,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_vmsumshs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VMSUMSHS,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmuleub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMULEUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmulesb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMULESB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmuleuh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMULEUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmulesh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMULESH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmuloub_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VMULOUB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmulosb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VMULOSB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmulouh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VMULOUH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vmulosh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VMULOSH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkuhum_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VPKUHUM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKUHUM,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), PC_VPKUHUM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkuwum_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKUWUM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKUWUM,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboollong), TYPE(&stvectorboollong), PC_VPKUWUM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkuhus_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VPKUHUS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkshss_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKSHSS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkuwus_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VPKUWUS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkswss_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKSWSS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkshus_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VPKSHUS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vpkswus_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VPKSWUS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vrlb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VRLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VRLB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vrlh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VRLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VRLH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vrlw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VRLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VRLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vslb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSLB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSLB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vslh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSLH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSLH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vslw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSLW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSLW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vspltb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
TYPE(&stvectorboolchar), TYPE(&stvectorboolchar), TYPE(&stsignedint), PC_VSPLTB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsplth_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolshort), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
TYPE(&stvectorpixel), TYPE(&stvectorpixel), TYPE(&stsignedint), PC_VSPLTH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vspltw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboollong), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stsignedint), PC_VSPLTW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_vspltisb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stsignedint), PC_VSPLTISB, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_vspltish_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stsignedint), PC_VSPLTISH, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_vspltisw_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stsignedint), PC_VSPLTISW, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsrb_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSRB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSRB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsrh_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSRH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSRH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsrw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSRW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSRW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsrab_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSRAB,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorunsignedchar), PC_VSRAB,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsrah_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSRAH,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorunsignedshort), PC_VSRAH,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsraw_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSRAW,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorunsignedlong), PC_VSRAW,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_stvebx_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedchar), TYPE(&stsignedint), TYPE(&stunsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVEBX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolchar), TYPE(&stsignedint), TYPE(&stsignedchar_ptr), PC_STVEBX,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_stvehx_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedshort), TYPE(&stsignedint), TYPE(&stunsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboolshort), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorpixel), TYPE(&stsignedint), TYPE(&stsignedshort_ptr), PC_STVEHX,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable41 vector_stvewx_type_table[] = {
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorunsignedlong), TYPE(&stsignedint), TYPE(&stunsignedlong_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorsignedlong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorfloat), TYPE(&stsignedint), TYPE(&stfloat_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedint_ptr), PC_STVEWX,
|
|
|
|
TYPE(&stvoid), TYPE(&stvectorboollong), TYPE(&stsignedint), TYPE(&stsignedlong_ptr), PC_STVEWX,
|
|
|
|
NULL, NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsububm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBM,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VSUBUBM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubuhm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHM,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VSUBUHM,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubuwm_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VSUBUWM,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VSUBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubfp_type_table[] = {
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VSUBFP,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsububs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), PC_VSUBUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), PC_VSUBUBS,
|
|
|
|
TYPE(&stvectorunsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorunsignedchar), PC_VSUBUBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubsbs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), PC_VSUBSBS,
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorboolchar), TYPE(&stvectorsignedchar), PC_VSUBSBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubuhs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), PC_VSUBUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), PC_VSUBUHS,
|
|
|
|
TYPE(&stvectorunsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorunsignedshort), PC_VSUBUHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubshs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), PC_VSUBSHS,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorboolshort), TYPE(&stvectorsignedshort), PC_VSUBSHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubuws_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), PC_VSUBUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), PC_VSUBUWS,
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorunsignedlong), PC_VSUBUWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsubsws_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), PC_VSUBSWS,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorboollong), TYPE(&stvectorsignedlong), PC_VSUBSWS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsum4ubs_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorunsignedchar), TYPE(&stvectorunsignedlong), PC_VSUM4UBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsum4sbs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedchar), TYPE(&stvectorsignedlong), PC_VSUM4SBS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable31 vector_vsum4shs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), TYPE(&stvectorsignedlong), PC_VSUM4SHS,
|
|
|
|
NULL, NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_vupkhsb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VUPKHSB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolchar), PC_VUPKHSB,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_vupklsb_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedchar), PC_VUPKLSB,
|
|
|
|
TYPE(&stvectorboolshort), TYPE(&stvectorboolchar), PC_VUPKLSB,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_vupkhpx_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorpixel), PC_VUPKHPX, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_vupklpx_type_table[] = {
|
|
|
|
TYPE(&stvectorunsignedlong), TYPE(&stvectorpixel), PC_VUPKLPX, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_vupkhsh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), PC_VUPKHSH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboolshort), PC_VUPKHSH,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable21 vector_vupklsh_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedshort), PC_VUPKLSH,
|
|
|
|
TYPE(&stvectorboollong), TYPE(&stvectorboolshort), PC_VUPKLSH,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_abs_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBUBM, PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBUHM, PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBUWM, PC_VMAXSW,
|
|
|
|
TYPE(&stvectorfloat), TYPE(&stvectorfloat), PC_VANDC, PC_B,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static TypeTable22 vector_abss_type_table[] = {
|
|
|
|
TYPE(&stvectorsignedchar), TYPE(&stvectorsignedchar), PC_VSUBSBS, PC_VMAXSB,
|
|
|
|
TYPE(&stvectorsignedshort), TYPE(&stvectorsignedshort), PC_VSUBSHS, PC_VMAXSH,
|
|
|
|
TYPE(&stvectorsignedlong), TYPE(&stvectorsignedlong), PC_VSUBSWS, PC_VMAXSW,
|
|
|
|
NULL, NULL, 0
|
|
|
|
};
|
|
|
|
static void *typeTable[] = {
|
|
|
|
vector_add_type_table,
|
|
|
|
vector_addc_type_table,
|
|
|
|
vector_adds_type_table,
|
|
|
|
vector_and_type_table,
|
|
|
|
vector_andc_type_table,
|
|
|
|
vector_avg_type_table,
|
|
|
|
vector_ceil_type_table,
|
|
|
|
vector_cmpb_type_table,
|
|
|
|
vector_cmpeq_type_table,
|
|
|
|
vector_cmpge_type_table,
|
|
|
|
vector_cmpge_type_table,
|
|
|
|
vector_cmpgt_type_table,
|
|
|
|
vector_cmpgt_type_table,
|
|
|
|
vector_ctf_type_table,
|
|
|
|
vector_cts_type_table,
|
|
|
|
vector_ctu_type_table,
|
|
|
|
vector_dss_type_table,
|
|
|
|
vector_dssall_type_table,
|
|
|
|
vector_datastream_type_table,
|
|
|
|
vector_datastream_type_table,
|
|
|
|
vector_datastream_type_table,
|
|
|
|
vector_datastream_type_table,
|
|
|
|
vector_expte_type_table,
|
|
|
|
vector_floor_type_table,
|
|
|
|
vector_load_type_table,
|
|
|
|
vector_loade_type_table,
|
|
|
|
vector_loadl_type_table,
|
|
|
|
vector_loge_type_table,
|
|
|
|
vector_lvsl_type_table,
|
|
|
|
vector_lvsr_type_table,
|
|
|
|
vector_madd_type_table,
|
|
|
|
vector_madds_type_table,
|
|
|
|
vector_max_type_table,
|
|
|
|
vector_mergeh_type_table,
|
|
|
|
vector_mergel_type_table,
|
|
|
|
vector_mfvscr_type_table,
|
|
|
|
vector_min_type_table,
|
|
|
|
vector_mladd_type_table,
|
|
|
|
vector_mradds_type_table,
|
|
|
|
vector_msum_type_table,
|
|
|
|
vector_msums_type_table,
|
|
|
|
vector_mtvscr_type_table,
|
|
|
|
vector_mule_type_table,
|
|
|
|
vector_mulo_type_table,
|
|
|
|
vector_nmsub_type_table,
|
|
|
|
vector_nor_type_table,
|
|
|
|
vector_or_type_table,
|
|
|
|
vector_pack_type_table,
|
|
|
|
vector_packpx_type_table,
|
|
|
|
vector_packs_type_table,
|
|
|
|
vector_packsu_type_table,
|
|
|
|
vector_perm_type_table,
|
|
|
|
vector_re_type_table,
|
|
|
|
vector_rl_type_table,
|
|
|
|
vector_round_type_table,
|
|
|
|
vector_rsqrte_type_table,
|
|
|
|
vector_sel_type_table,
|
|
|
|
vector_sl_type_table,
|
|
|
|
vector_sld_type_table,
|
|
|
|
vector_sll_type_table,
|
|
|
|
vector_slo_type_table,
|
|
|
|
vector_splat_type_table,
|
|
|
|
vector_splat_s8_type_table,
|
|
|
|
vector_splat_s16_type_table,
|
|
|
|
vector_splat_s32_type_table,
|
|
|
|
vector_splat_u8_type_table,
|
|
|
|
vector_splat_u16_type_table,
|
|
|
|
vector_splat_u32_type_table,
|
|
|
|
vector_sr_type_table,
|
|
|
|
vector_sra_type_table,
|
|
|
|
vector_srl_type_table,
|
|
|
|
vector_sro_type_table,
|
|
|
|
vector_st_type_table,
|
|
|
|
vector_ste_type_table,
|
|
|
|
vector_stl_type_table,
|
|
|
|
vector_sub_type_table,
|
|
|
|
vector_subc_type_table,
|
|
|
|
vector_subs_type_table,
|
|
|
|
vector_sum4s_type_table,
|
|
|
|
vector_sum2s_type_table,
|
|
|
|
vector_sums_type_table,
|
|
|
|
vector_trunc_type_table,
|
|
|
|
vector_unpack2sh_type_table,
|
|
|
|
vector_unpack2sl_type_table,
|
|
|
|
vector_unpack2uh_type_table,
|
|
|
|
vector_unpack2ul_type_table,
|
|
|
|
vector_unpackh_type_table,
|
|
|
|
vector_unpackl_type_table,
|
|
|
|
vector_xor_type_table,
|
|
|
|
vector_all_eq_type_table,
|
|
|
|
vector_all_ge_type_table,
|
|
|
|
vector_all_gt_type_table,
|
|
|
|
vector_all_in_type_table,
|
|
|
|
vector_all_le_type_table,
|
|
|
|
vector_all_lt_type_table,
|
|
|
|
vector_all_nan_type_table,
|
|
|
|
vector_all_ne_type_table,
|
|
|
|
vector_all_nge_type_table,
|
|
|
|
vector_all_ngt_type_table,
|
|
|
|
vector_all_nle_type_table,
|
|
|
|
vector_all_nlt_type_table,
|
|
|
|
vector_all_numeric_type_table,
|
|
|
|
vector_any_eq_type_table,
|
|
|
|
vector_any_ge_type_table,
|
|
|
|
vector_any_gt_type_table,
|
|
|
|
vector_any_le_type_table,
|
|
|
|
vector_any_lt_type_table,
|
|
|
|
vector_any_nan_type_table,
|
|
|
|
vector_any_ne_type_table,
|
|
|
|
vector_any_nge_type_table,
|
|
|
|
vector_any_ngt_type_table,
|
|
|
|
vector_any_nle_type_table,
|
|
|
|
vector_any_nlt_type_table,
|
|
|
|
vector_any_numeric_type_table,
|
|
|
|
vector_any_out_type_table,
|
|
|
|
vector_vaddubm_type_table,
|
|
|
|
vector_vadduhm_type_table,
|
|
|
|
vector_vadduwm_type_table,
|
|
|
|
vector_vaddfp_type_table,
|
|
|
|
vector_addc_type_table,
|
|
|
|
vector_vaddubs_type_table,
|
|
|
|
vector_vaddsbs_type_table,
|
|
|
|
vector_vadduhs_type_table,
|
|
|
|
vector_vaddshs_type_table,
|
|
|
|
vector_vadduws_type_table,
|
|
|
|
vector_vaddsws_type_table,
|
|
|
|
vector_and_type_table,
|
|
|
|
vector_andc_type_table,
|
|
|
|
vector_vavgub_type_table,
|
|
|
|
vector_vavgsb_type_table,
|
|
|
|
vector_vavguh_type_table,
|
|
|
|
vector_vavgsh_type_table,
|
|
|
|
vector_vavguw_type_table,
|
|
|
|
vector_vavgsw_type_table,
|
|
|
|
vector_ceil_type_table,
|
|
|
|
vector_cmpb_type_table,
|
|
|
|
vector_vcmpequb_type_table,
|
|
|
|
vector_vcmpequh_type_table,
|
|
|
|
vector_vcmpequw_type_table,
|
|
|
|
vector_vcmpeqfp_type_table,
|
|
|
|
vector_cmpge_type_table,
|
|
|
|
vector_vcmpgtub_type_table,
|
|
|
|
vector_vcmpgtsb_type_table,
|
|
|
|
vector_vcmpgtuh_type_table,
|
|
|
|
vector_vcmpgtsh_type_table,
|
|
|
|
vector_vcmpgtuw_type_table,
|
|
|
|
vector_vcmpgtsw_type_table,
|
|
|
|
vector_vcmpgtfp_type_table,
|
|
|
|
vector_vcfux_type_table,
|
|
|
|
vector_vcfsx_type_table,
|
|
|
|
vector_cts_type_table,
|
|
|
|
vector_ctu_type_table,
|
|
|
|
vector_expte_type_table,
|
|
|
|
vector_floor_type_table,
|
|
|
|
vector_load_type_table,
|
|
|
|
vector_lvebx_type_table,
|
|
|
|
vector_lvehx_type_table,
|
|
|
|
vector_lvewx_type_table,
|
|
|
|
vector_loadl_type_table,
|
|
|
|
vector_loge_type_table,
|
|
|
|
vector_madd_type_table,
|
|
|
|
vector_madds_type_table,
|
|
|
|
vector_vmaxub_type_table,
|
|
|
|
vector_vmaxsb_type_table,
|
|
|
|
vector_vmaxuh_type_table,
|
|
|
|
vector_vmaxsh_type_table,
|
|
|
|
vector_vmaxuw_type_table,
|
|
|
|
vector_vmaxsw_type_table,
|
|
|
|
vector_vmaxfp_type_table,
|
|
|
|
vector_vmrghb_type_table,
|
|
|
|
vector_vmrghh_type_table,
|
|
|
|
vector_vmrghw_type_table,
|
|
|
|
vector_vmrglb_type_table,
|
|
|
|
vector_vmrglh_type_table,
|
|
|
|
vector_vmrglw_type_table,
|
|
|
|
vector_vminub_type_table,
|
|
|
|
vector_vminsb_type_table,
|
|
|
|
vector_vminuh_type_table,
|
|
|
|
vector_vminsh_type_table,
|
|
|
|
vector_vminuw_type_table,
|
|
|
|
vector_vminsw_type_table,
|
|
|
|
vector_vminfp_type_table,
|
|
|
|
vector_mladd_type_table,
|
|
|
|
vector_mradds_type_table,
|
|
|
|
vector_vmsumubm_type_table,
|
|
|
|
vector_vmsumuhm_type_table,
|
|
|
|
vector_vmsummbm_type_table,
|
|
|
|
vector_vmsumshm_type_table,
|
|
|
|
vector_vmsumuhs_type_table,
|
|
|
|
vector_vmsumshs_type_table,
|
|
|
|
vector_vmuleub_type_table,
|
|
|
|
vector_vmulesb_type_table,
|
|
|
|
vector_vmuleuh_type_table,
|
|
|
|
vector_vmulesh_type_table,
|
|
|
|
vector_vmuloub_type_table,
|
|
|
|
vector_vmulosb_type_table,
|
|
|
|
vector_vmulouh_type_table,
|
|
|
|
vector_vmulosh_type_table,
|
|
|
|
vector_nmsub_type_table,
|
|
|
|
vector_nor_type_table,
|
|
|
|
vector_or_type_table,
|
|
|
|
vector_vpkuhum_type_table,
|
|
|
|
vector_vpkuwum_type_table,
|
|
|
|
vector_packpx_type_table,
|
|
|
|
vector_vpkuhus_type_table,
|
|
|
|
vector_vpkshss_type_table,
|
|
|
|
vector_vpkuwus_type_table,
|
|
|
|
vector_vpkswss_type_table,
|
|
|
|
vector_vpkshus_type_table,
|
|
|
|
vector_vpkswus_type_table,
|
|
|
|
vector_perm_type_table,
|
|
|
|
vector_re_type_table,
|
|
|
|
vector_vrlb_type_table,
|
|
|
|
vector_vrlh_type_table,
|
|
|
|
vector_vrlw_type_table,
|
|
|
|
vector_round_type_table,
|
|
|
|
vector_rsqrte_type_table,
|
|
|
|
vector_sel_type_table,
|
|
|
|
vector_vslb_type_table,
|
|
|
|
vector_vslh_type_table,
|
|
|
|
vector_vslw_type_table,
|
|
|
|
vector_sld_type_table,
|
|
|
|
vector_sll_type_table,
|
|
|
|
vector_slo_type_table,
|
|
|
|
vector_vspltb_type_table,
|
|
|
|
vector_vsplth_type_table,
|
|
|
|
vector_vspltw_type_table,
|
|
|
|
vector_vspltisb_type_table,
|
|
|
|
vector_vspltish_type_table,
|
|
|
|
vector_vspltisw_type_table,
|
|
|
|
vector_vsrb_type_table,
|
|
|
|
vector_vsrh_type_table,
|
|
|
|
vector_vsrw_type_table,
|
|
|
|
vector_vsrab_type_table,
|
|
|
|
vector_vsrah_type_table,
|
|
|
|
vector_vsraw_type_table,
|
|
|
|
vector_srl_type_table,
|
|
|
|
vector_sro_type_table,
|
|
|
|
vector_st_type_table,
|
|
|
|
vector_stvebx_type_table,
|
|
|
|
vector_stvehx_type_table,
|
|
|
|
vector_stvewx_type_table,
|
|
|
|
vector_stl_type_table,
|
|
|
|
vector_vsububm_type_table,
|
|
|
|
vector_vsubuhm_type_table,
|
|
|
|
vector_vsubuwm_type_table,
|
|
|
|
vector_vsubfp_type_table,
|
|
|
|
vector_subc_type_table,
|
|
|
|
vector_vsububs_type_table,
|
|
|
|
vector_vsubsbs_type_table,
|
|
|
|
vector_vsubuhs_type_table,
|
|
|
|
vector_vsubshs_type_table,
|
|
|
|
vector_vsubuws_type_table,
|
|
|
|
vector_vsubsws_type_table,
|
|
|
|
vector_vsum4ubs_type_table,
|
|
|
|
vector_vsum4sbs_type_table,
|
|
|
|
vector_vsum4shs_type_table,
|
|
|
|
vector_sum2s_type_table,
|
|
|
|
vector_sums_type_table,
|
|
|
|
vector_trunc_type_table,
|
|
|
|
vector_vupkhsb_type_table,
|
|
|
|
vector_vupklsb_type_table,
|
|
|
|
vector_vupkhpx_type_table,
|
|
|
|
vector_vupklpx_type_table,
|
|
|
|
vector_vupkhsh_type_table,
|
|
|
|
vector_vupklsh_type_table,
|
|
|
|
vector_xor_type_table,
|
|
|
|
vector_abs_type_table,
|
|
|
|
vector_abss_type_table,
|
|
|
|
NULL
|
|
|
|
};
|
|
|
|
|
|
|
|
int is_intrinsic_function_call(ENode *funccall) {
|
|
|
|
ENode *funcref = funccall->data.funccall.funcref;
|
|
|
|
return
|
|
|
|
ENODE_IS(funcref, EOBJREF) &&
|
|
|
|
funcref->data.objref->datatype == DFUNC &&
|
2023-01-20 11:56:38 +00:00
|
|
|
(TYPE_FUNC(funcref->data.objref->type)->flags & FUNC_INTRINSIC);
|
2022-12-29 12:32:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static void abs_intrinsic(ENode *expr, short outputReg, Operand *output) {
|
|
|
|
int reg1;
|
|
|
|
int reg2;
|
|
|
|
Operand op;
|
|
|
|
|
|
|
|
memclrw(&op, sizeof(op));
|
|
|
|
GEN_NODE_TO_GPR(expr, &op, expr->rtype, 0);
|
|
|
|
|
|
|
|
reg1 = ALLOC_GPR();
|
|
|
|
emitpcode(PC_SRAWI, reg1, op.reg, 31);
|
|
|
|
|
|
|
|
reg2 = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
emitpcode(PC_XOR, reg2, reg1, op.reg);
|
|
|
|
emitpcode(PC_SUBF, reg2, reg1, reg2);
|
|
|
|
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = reg2;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void setflm_intrinsic(ENode *expr, short outputReg, Operand *output, int flag) {
|
|
|
|
int reg;
|
|
|
|
Operand op;
|
|
|
|
|
|
|
|
memclrw(&op, sizeof(op));
|
|
|
|
GEN_NODE_TO_FPR(expr, &op, expr->rtype, 0);
|
|
|
|
|
|
|
|
if (!flag) {
|
|
|
|
output->optype = OpndType_FPR;
|
|
|
|
reg = (outputReg && outputReg != op.reg) ? outputReg : ALLOC_FPR();
|
|
|
|
emitpcode(PC_MFFS, output->reg = reg);
|
|
|
|
}
|
|
|
|
|
|
|
|
emitpcode(PC_MTFSF, 255, op.reg);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void alloca_intrinsic(ENode *expr, short outputReg, Operand *output) {
|
|
|
|
int reg;
|
|
|
|
Operand op;
|
|
|
|
|
|
|
|
memclrw(&op, sizeof(op));
|
|
|
|
|
|
|
|
if (ENODE_IS(expr, EINTCONST)) {
|
|
|
|
reg = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
allocate_dynamic_stack_space(
|
|
|
|
1, reg, ALLOC_GPR(), CInt64_GetULong(&expr->data.intval));
|
|
|
|
} else {
|
|
|
|
GEN_NODE_TO_GPR(expr, &op, expr->rtype, 0);
|
|
|
|
reg = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
|
|
|
|
emitpcode(PC_NEG, reg, op.reg);
|
|
|
|
emitpcode(PC_RLWINM, reg, reg, 0, 0, get_alloca_alignment());
|
|
|
|
allocate_dynamic_stack_space(0, reg, ALLOC_GPR(), 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void load_bytereversed_intrinsic(Opcode opcode, ENode *expr1, ENode *expr2, short outputReg, Operand *output) {
|
|
|
|
int reg;
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
|
|
|
|
if (ENODE_IS(expr2, EINTCONST) && expr2->data.intval.lo == 0) {
|
|
|
|
GEN_NODE(expr1, &op1);
|
|
|
|
if (op1.optype == OpndType_GPR_Indexed) {
|
|
|
|
emitpcode(opcode, reg, op1.reg, op1.regOffset);
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op1, expr1->rtype, 0);
|
|
|
|
emitpcode(opcode, reg, 0, op1.reg);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(expr2, &op2, expr2->rtype, 0);
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.reg);
|
|
|
|
}
|
|
|
|
|
|
|
|
setpcodeflags(fSideEffects | ((expr1->flags | expr2->flags | output->flags) & (fIsConst | fIsVolatile)));
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void store_bytereversed_intrinsic(Opcode opcode, ENode *expr1, ENode *expr2, ENode *expr3) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
Operand op3;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
memclrw(&op3, sizeof(op3));
|
|
|
|
|
|
|
|
if (ENODE_IS(expr3, EINTCONST) && expr3->data.intval.lo == 0) {
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
GEN_NODE(expr2, &op2);
|
|
|
|
if (op2.optype == OpndType_GPR_Indexed) {
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg, op2.regOffset);
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op2, expr2->rtype, 0);
|
|
|
|
emitpcode(opcode, op1.reg, 0, op2.reg);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(expr2, &op2, expr2->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(expr3, &op3, expr3->rtype, 0);
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg, op3.reg);
|
|
|
|
}
|
|
|
|
|
|
|
|
setpcodeflags(fSideEffects | ((op1.flags | op2.flags | op3.flags) & (fIsConst | fIsVolatile)));
|
|
|
|
}
|
|
|
|
|
|
|
|
static void data_cache_block_intrinsic(Opcode opcode, ENode *expr1, ENode *expr2) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
|
|
|
|
if (ENODE_IS(expr2, EINTCONST) && expr2->data.intval.lo == 0) {
|
|
|
|
GEN_NODE(expr1, &op1);
|
|
|
|
if (op1.optype == OpndType_GPR_Indexed) {
|
|
|
|
emitpcode(opcode, op1.reg, op1.regOffset);
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op1, expr1->rtype, 0);
|
|
|
|
emitpcode(opcode, 0, op1.reg);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(expr2, &op2, expr2->rtype, 0);
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void memcpy_intrinsic(ENode *destexpr, ENode *srcexpr, SInt32 size, Boolean ignored, Operand *output) {
|
|
|
|
UInt32 qual;
|
|
|
|
Operand destOp;
|
|
|
|
Operand srcOp;
|
|
|
|
|
|
|
|
qual = 0;
|
|
|
|
|
|
|
|
memclrw(&destOp, sizeof(destOp));
|
|
|
|
memclrw(&srcOp, sizeof(srcOp));
|
|
|
|
|
|
|
|
GEN_NODE(srcexpr, &srcOp);
|
|
|
|
indirect(&srcOp, srcexpr);
|
|
|
|
|
|
|
|
GEN_NODE(destexpr, output);
|
|
|
|
destOp = *output;
|
|
|
|
indirect(&destOp, destexpr);
|
|
|
|
|
|
|
|
if (destOp.object)
|
|
|
|
qual = destOp.object->qual;
|
|
|
|
|
|
|
|
move_block(&destOp, &srcOp, size, destexpr->rtype ? CMach_AllocationAlignment(destexpr->rtype, qual) : 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
static SInt32 checkconstintarg(ENode *expr, char *name, SInt32 min, SInt32 max, int argnum) {
|
|
|
|
SInt32 value;
|
|
|
|
|
|
|
|
if (!ENODE_IS(expr, EINTCONST))
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_ErrorTerm(PPCErrorStr210, name, 3, max, argnum);
|
2022-12-29 12:32:55 +00:00
|
|
|
|
|
|
|
value = CInt64_GetULong(&expr->data.intval);
|
|
|
|
|
|
|
|
if (value < min) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Warning(PPCErrorStr211, name, argnum, value, min, max, min);
|
2022-12-29 12:32:55 +00:00
|
|
|
return min;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (value > max) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Warning(PPCErrorStr211, name, argnum, value, min, max, value & max);
|
2022-12-29 12:32:55 +00:00
|
|
|
value = value & max;
|
|
|
|
}
|
|
|
|
|
|
|
|
return value;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rlwimi_intrinsic(ENode *expr1, ENode *expr2, ENode *expr3, ENode *expr4, ENode *expr5, short outputReg, Operand *output) {
|
|
|
|
SInt32 arg3;
|
|
|
|
SInt32 arg4;
|
|
|
|
SInt32 arg5;
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
int reg;
|
|
|
|
char *name = "__rlwimi";
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
|
|
|
|
arg3 = checkconstintarg(expr3, name, 0, 31, 3);
|
|
|
|
arg4 = checkconstintarg(expr4, name, 0, 31, 4);
|
|
|
|
arg5 = checkconstintarg(expr5, name, 0, 31, 5);
|
|
|
|
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
|
|
|
|
GEN_NODE(expr2, &op2);
|
|
|
|
if (copts.optimizationlevel > 1) {
|
|
|
|
reg = ALLOC_GPR();
|
|
|
|
emitpcode(PC_MR, reg, op1.reg);
|
|
|
|
op1.reg = reg;
|
|
|
|
}
|
|
|
|
ENSURE_GPR(&op2, expr2->rtype, 0);
|
|
|
|
|
|
|
|
emitpcode(PC_RLWIMI, op1.reg, op2.reg, arg3, arg4, arg5);
|
|
|
|
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = op1.reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rlwinm_intrinsic(ENode *expr1, ENode *expr2, ENode *expr3, ENode *expr4, short outputReg, Operand *output) {
|
|
|
|
char *name = "__rlwinm";
|
|
|
|
short reg;
|
|
|
|
short arg2;
|
|
|
|
short arg3;
|
|
|
|
short arg4;
|
|
|
|
Operand op1;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
arg2 = checkconstintarg(expr2, name, 0, 31, 2);
|
|
|
|
arg3 = checkconstintarg(expr3, name, 0, 31, 3);
|
|
|
|
arg4 = checkconstintarg(expr4, name, 0, 31, 4);
|
|
|
|
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
emitpcode(PC_RLWINM, reg, op1.reg, arg2, arg3, arg4);
|
|
|
|
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void rlwnm_intrinsic(ENode *expr1, ENode *expr2, ENode *expr3, ENode *expr4, short outputReg, Operand *output) {
|
|
|
|
short reg;
|
|
|
|
short arg3;
|
|
|
|
short arg4;
|
|
|
|
char *name = "__rlwnm";
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
arg3 = checkconstintarg(expr3, name, 0, 31, 3);
|
|
|
|
arg4 = checkconstintarg(expr4, name, 0, 31, 4);
|
|
|
|
|
|
|
|
GEN_NODE_TO_GPR(expr1, &op1, expr1->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(expr2, &op2, expr2->rtype, 0);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_GPR();
|
|
|
|
emitpcode(PC_RLWNM, reg, op1.reg, op2.reg, arg3, arg4);
|
|
|
|
|
|
|
|
output->optype = OpndType_GPR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Boolean promotable_types_are_equal(Type *a, Type *b) {
|
|
|
|
if (a == b)
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
if (a == TYPE(&stsignedint)) {
|
|
|
|
if (
|
|
|
|
b == TYPE(&stunsignedint) ||
|
|
|
|
b == TYPE(&stsignedchar) ||
|
|
|
|
b == TYPE(&stunsignedchar) ||
|
|
|
|
b == TYPE(&stsignedshort) ||
|
|
|
|
b == TYPE(&stunsignedshort) ||
|
|
|
|
b == TYPE(&stsignedlong) ||
|
|
|
|
b == TYPE(&stunsignedlong) ||
|
|
|
|
b == TYPE(&stbool)
|
|
|
|
)
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int Intrinsics_VerifyParameterCount(int wantedCount, ENodeList *args, HashNameNode *name) {
|
|
|
|
ENodeList *scan;
|
|
|
|
int count;
|
|
|
|
|
|
|
|
for (scan = args, count = 0; scan; scan = scan->next)
|
|
|
|
count++;
|
|
|
|
|
|
|
|
if (count != wantedCount) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr103, name->name, count, wantedCount);
|
2022-12-29 12:32:55 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
static ENode *Intrinsics_CreateIntrinsicFunc(Object *func, ENodeList *args, Type *rtype) {
|
|
|
|
TypeFunc *tfunc;
|
|
|
|
ENodeList *scan;
|
|
|
|
ENode *expr;
|
|
|
|
|
|
|
|
tfunc = TYPE_FUNC(func->type);
|
|
|
|
CError_ASSERT(3741, IS_TYPE_FUNC(tfunc));
|
|
|
|
|
|
|
|
for (scan = args; scan; scan = scan->next) {
|
|
|
|
if (IS_TYPE_ARRAY(scan->node->rtype))
|
|
|
|
scan->node = CExpr_PointerGeneration(scan->node);
|
|
|
|
}
|
|
|
|
|
|
|
|
expr = lalloc(sizeof(ENode));
|
|
|
|
expr->type = EFUNCCALL;
|
|
|
|
expr->cost = 4;
|
|
|
|
expr->rtype = rtype;
|
|
|
|
expr->ignored = 0;
|
|
|
|
expr->flags = tfunc->qual & ENODE_FLAG_QUALS;
|
|
|
|
expr->data.funccall.funcref = create_objectrefnode(func);
|
|
|
|
expr->data.funccall.args = args;
|
|
|
|
expr->data.funccall.functype = tfunc;
|
|
|
|
return CExpr_AdjustFunctionCall(expr);
|
|
|
|
}
|
|
|
|
|
|
|
|
static Type *Intrinsics_Verify1VectorArg2Ops(Intrinsics id, ENodeList *args, HashNameNode *name) {
|
|
|
|
ENode *arg1;
|
|
|
|
TypeTable22 *table;
|
|
|
|
Type *typeA;
|
|
|
|
Type *typeB;
|
|
|
|
Type *rtype;
|
|
|
|
|
|
|
|
arg1 = args->node;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB = arg1->rtype;
|
|
|
|
typeA = table->arg1;
|
|
|
|
if (IS_TYPE_POINTER(typeA) && IS_TYPE_POINTER(typeB)) {
|
|
|
|
typeA = TPTR_TARGET(typeA);
|
|
|
|
typeB = TPTR_TARGET(typeB);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA, typeB))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
rtype = table->rtype;
|
|
|
|
if (!rtype) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr104, name->name, name->name, arg1->rtype, 0);
|
2022-12-29 12:32:55 +00:00
|
|
|
rtype = NULL;
|
|
|
|
}
|
|
|
|
return rtype;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Type *Intrinsics_VerifyNoVectorArgs(Intrinsics id, HashNameNode *name) {
|
|
|
|
TypeTable11 *table = typeTable[id - Intrinsic_042];
|
|
|
|
return table->rtype;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Type *Intrinsics_Verify1VectorArg(Intrinsics id, ENodeList *args, HashNameNode *name) {
|
|
|
|
ENode *arg1;
|
|
|
|
TypeTable21 *table;
|
|
|
|
Type *typeA;
|
|
|
|
Type *typeB;
|
|
|
|
Type *rtype;
|
|
|
|
|
|
|
|
arg1 = args->node;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB = arg1->rtype;
|
|
|
|
typeA = table->arg1;
|
|
|
|
if (IS_TYPE_POINTER(typeA) && IS_TYPE_POINTER(typeB)) {
|
|
|
|
typeA = TPTR_TARGET(typeA);
|
|
|
|
typeB = TPTR_TARGET(typeB);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA, typeB))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_104:
|
|
|
|
case Intrinsic_105:
|
|
|
|
case Intrinsic_106:
|
|
|
|
case Intrinsic_107:
|
|
|
|
case Intrinsic_108:
|
|
|
|
case Intrinsic_109:
|
|
|
|
case Intrinsic_269:
|
|
|
|
case Intrinsic_270:
|
|
|
|
case Intrinsic_271:
|
|
|
|
if (ENODE_IS(arg1, EINTCONST)) {
|
|
|
|
SInt32 val = arg1->data.intval.lo;
|
|
|
|
if (val > 15 || val < -16) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 5);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 5);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_058:
|
|
|
|
if (ENODE_IS(arg1, EINTCONST)) {
|
|
|
|
SInt32 val = arg1->data.intval.lo;
|
|
|
|
if (val > 3 || val < 0) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 2);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 2);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
rtype = table->rtype;
|
|
|
|
if (!rtype) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr104, name->name, name->name, arg1->rtype, 0);
|
2022-12-29 12:32:55 +00:00
|
|
|
rtype = NULL;
|
|
|
|
}
|
|
|
|
return rtype;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Type *Intrinsics_Verify2VectorArgs(Intrinsics id, ENodeList *args, HashNameNode *name) {
|
|
|
|
ENode *arg1;
|
|
|
|
ENode *arg2;
|
|
|
|
TypeTable31 *table;
|
|
|
|
Type *typeB1;
|
|
|
|
Type *typeB2;
|
|
|
|
Type *typeA1;
|
|
|
|
Type *typeA2;
|
|
|
|
|
|
|
|
arg1 = args->node;
|
|
|
|
arg2 = args->next->node;
|
|
|
|
table = typeTable[id - Intrinsic_042];
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_055:
|
|
|
|
case Intrinsic_056:
|
|
|
|
case Intrinsic_057:
|
|
|
|
case Intrinsic_103:
|
|
|
|
case Intrinsic_190:
|
|
|
|
case Intrinsic_191:
|
|
|
|
case Intrinsic_192:
|
|
|
|
case Intrinsic_193:
|
|
|
|
case Intrinsic_266:
|
|
|
|
case Intrinsic_267:
|
|
|
|
case Intrinsic_268:
|
|
|
|
if (ENODE_IS(arg2, EINTCONST)) {
|
|
|
|
if (arg2->data.intval.lo > 31 || arg2->data.intval.hi < 0) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 5);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 5);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (; table->rtype; table++) {
|
|
|
|
typeB1 = arg1->rtype;
|
|
|
|
typeB2 = arg2->rtype;
|
|
|
|
typeA1 = table->arg1;
|
|
|
|
typeA2 = table->arg2;
|
|
|
|
if (IS_TYPE_POINTER(typeA1) && IS_TYPE_POINTER(typeB1)) {
|
|
|
|
typeA1 = TPTR_TARGET(typeA1);
|
|
|
|
typeB1 = TPTR_TARGET(typeB1);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA2) && IS_TYPE_POINTER(typeB2)) {
|
|
|
|
typeA2 = TPTR_TARGET(typeA2);
|
|
|
|
typeB2 = TPTR_TARGET(typeB2);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA1, typeB1) &&
|
|
|
|
promotable_types_are_equal(typeA2, typeB2))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!table->rtype) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr105, name->name, name->name, arg1->rtype, 0, arg2->rtype, 0);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_066:
|
|
|
|
case Intrinsic_067:
|
|
|
|
case Intrinsic_068:
|
|
|
|
if (arg2->flags & ENODE_FLAG_VOLATILE)
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Warning(PPCErrorStr178, name->name);
|
2022-12-29 12:32:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return table->rtype;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Type *Intrinsics_Verify3VectorArgs(Intrinsics id, ENodeList *args, HashNameNode *name) {
|
|
|
|
ENode *arg1;
|
|
|
|
ENode *arg2;
|
|
|
|
ENode *arg3;
|
|
|
|
TypeTable41 *table;
|
|
|
|
Type *typeB1;
|
|
|
|
Type *typeB2;
|
|
|
|
Type *typeB3;
|
|
|
|
Type *typeA1;
|
|
|
|
Type *typeA2;
|
|
|
|
Type *typeA3;
|
|
|
|
|
|
|
|
arg1 = args->node;
|
|
|
|
arg2 = args->next->node;
|
|
|
|
arg3 = args->next->next->node;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB1 = arg1->rtype;
|
|
|
|
typeB2 = arg2->rtype;
|
|
|
|
typeB3 = arg3->rtype;
|
|
|
|
typeA1 = table->arg1;
|
|
|
|
typeA2 = table->arg2;
|
|
|
|
typeA3 = table->arg3;
|
|
|
|
if (IS_TYPE_POINTER(typeA1) && IS_TYPE_POINTER(typeB1)) {
|
|
|
|
typeA1 = TPTR_TARGET(typeA1);
|
|
|
|
typeB1 = TPTR_TARGET(typeB1);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA2) && IS_TYPE_POINTER(typeB2)) {
|
|
|
|
typeA2 = TPTR_TARGET(typeA2);
|
|
|
|
typeB2 = TPTR_TARGET(typeB2);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA3) && IS_TYPE_POINTER(typeB3)) {
|
|
|
|
typeA3 = TPTR_TARGET(typeA3);
|
|
|
|
typeB3 = TPTR_TARGET(typeB3);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA1, typeB1) &&
|
|
|
|
promotable_types_are_equal(typeA2, typeB2) &&
|
|
|
|
promotable_types_are_equal(typeA3, typeB3))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_060:
|
|
|
|
case Intrinsic_061:
|
|
|
|
case Intrinsic_062:
|
|
|
|
case Intrinsic_063:
|
|
|
|
if (ENODE_IS(arg3, EINTCONST)) {
|
|
|
|
SInt32 val = arg3->data.intval.lo;
|
|
|
|
if (val > 3 || val < 0) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 2);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 2);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_100:
|
|
|
|
case Intrinsic_263:
|
|
|
|
if (ENODE_IS(arg3, EINTCONST)) {
|
|
|
|
if (arg3->data.intval.lo > 15 || arg3->data.intval.hi < 0) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 4);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
} else {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr108, name->name, name->name, 4);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!table->rtype) {
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Error(PPCErrorStr106, name->name, name->name, arg1->rtype, 0, arg2->rtype, 0, arg3->rtype, 0);
|
2022-12-29 12:32:55 +00:00
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_114:
|
|
|
|
case Intrinsic_115:
|
|
|
|
case Intrinsic_116:
|
|
|
|
if (arg3->flags & ENODE_FLAG_VOLATILE)
|
2023-01-20 12:25:38 +00:00
|
|
|
PPCError_Warning(PPCErrorStr178, name->name);
|
2022-12-29 12:32:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return table->rtype;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Opcode Intrinsics_FindOpcodeNoArgs(Intrinsics id, ENode *funccall) {
|
|
|
|
TypeTable11 *table = typeTable[id - Intrinsic_042];
|
|
|
|
return table->opcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Opcode Intrinsics_FindOpcode1Arg(Intrinsics id, ENode *funccall, ENode *arg1) {
|
|
|
|
TypeTable21 *table;
|
|
|
|
Type *typeA;
|
|
|
|
Type *typeB;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB = arg1->rtype;
|
|
|
|
typeA = table->arg1;
|
|
|
|
if (IS_TYPE_POINTER(typeA) && IS_TYPE_POINTER(typeB)) {
|
|
|
|
typeA = TPTR_TARGET(typeA);
|
|
|
|
typeB = TPTR_TARGET(typeB);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA, typeB))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CError_ASSERT(4105, table->rtype);
|
|
|
|
return table->opcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Opcode Intrinsics_FindOpcode2Args(Intrinsics id, ENode *funccall, ENode *arg1, ENode *arg2) {
|
|
|
|
TypeTable31 *table;
|
|
|
|
Type *typeB1;
|
|
|
|
Type *typeB2;
|
|
|
|
Type *typeA1;
|
|
|
|
Type *typeA2;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB1 = arg1->rtype;
|
|
|
|
typeB2 = arg2->rtype;
|
|
|
|
typeA1 = table->arg1;
|
|
|
|
typeA2 = table->arg2;
|
|
|
|
if (IS_TYPE_POINTER(typeA1) && IS_TYPE_POINTER(typeB1)) {
|
|
|
|
typeA1 = TPTR_TARGET(typeA1);
|
|
|
|
typeB1 = TPTR_TARGET(typeB1);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA2) && IS_TYPE_POINTER(typeB2)) {
|
|
|
|
typeA2 = TPTR_TARGET(typeA2);
|
|
|
|
typeB2 = TPTR_TARGET(typeB2);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA1, typeB1) &&
|
|
|
|
promotable_types_are_equal(typeA2, typeB2))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CError_ASSERT(4144, table->rtype);
|
|
|
|
return table->opcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Opcode Intrinsics_FindOpcode3Args(Intrinsics id, ENode *funccall, ENode *arg1, ENode *arg2, ENode *arg3) {
|
|
|
|
TypeTable41 *table;
|
|
|
|
Type *typeB1;
|
|
|
|
Type *typeB2;
|
|
|
|
Type *typeB3;
|
|
|
|
Type *typeA1;
|
|
|
|
Type *typeA2;
|
|
|
|
Type *typeA3;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB1 = arg1->rtype;
|
|
|
|
typeB2 = arg2->rtype;
|
|
|
|
typeB3 = arg3->rtype;
|
|
|
|
typeA1 = table->arg1;
|
|
|
|
typeA2 = table->arg2;
|
|
|
|
typeA3 = table->arg3;
|
|
|
|
if (IS_TYPE_POINTER(typeA1) && IS_TYPE_POINTER(typeB1)) {
|
|
|
|
typeA1 = TPTR_TARGET(typeA1);
|
|
|
|
typeB1 = TPTR_TARGET(typeB1);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA2) && IS_TYPE_POINTER(typeB2)) {
|
|
|
|
typeA2 = TPTR_TARGET(typeA2);
|
|
|
|
typeB2 = TPTR_TARGET(typeB2);
|
|
|
|
}
|
|
|
|
if (IS_TYPE_POINTER(typeA3) && IS_TYPE_POINTER(typeB3)) {
|
|
|
|
typeA3 = TPTR_TARGET(typeA3);
|
|
|
|
typeB3 = TPTR_TARGET(typeB3);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA1, typeB1) &&
|
|
|
|
promotable_types_are_equal(typeA2, typeB2) &&
|
|
|
|
promotable_types_are_equal(typeA3, typeB3))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CError_ASSERT(4191, table->rtype);
|
|
|
|
return table->opcode;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_no_args(Opcode opcode) {
|
|
|
|
emitpcode(opcode);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_mfvscr(short outputReg, Opcode opcode, Operand *output) {
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_1arg(ENode *arg1, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_splats(ENode *arg1, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
CError_ASSERT(4253, ENODE_IS(arg1, EINTCONST));
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.immediate);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_splatu8(ENode *arg1, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
CError_ASSERT(4277, ENODE_IS(arg1, EINTCONST));
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.immediate);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_splatu16(ENode *arg1, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
CError_ASSERT(4301, ENODE_IS(arg1, EINTCONST));
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.immediate);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_splatu32(ENode *arg1, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
CError_ASSERT(4325, ENODE_IS(arg1, EINTCONST));
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.immediate);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_dss(ENode *arg1) {
|
|
|
|
Operand op1;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
CError_ASSERT(4348, ENODE_IS(arg1, EINTCONST));
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
|
|
|
|
emitpcode(PC_DSS, op1.immediate, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_2args(ENode *arg1, ENode *arg2, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE_TO_VR(arg2, &op2, arg2->rtype, 0);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.reg);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_2args1const(ENode *arg1, ENode *arg2, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
CError_ASSERT(4393, ENODE_IS(arg2, EINTCONST));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE(arg2, &op2);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.immediate);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_3args(ENode *arg1, ENode *arg2, ENode *arg3, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
Operand op3;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
memclrw(&op3, sizeof(op3));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE_TO_VR(arg2, &op2, arg2->rtype, 0);
|
|
|
|
GEN_NODE_TO_VR(arg3, &op3, arg3->rtype, 0);
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.reg, op3.reg);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_datastream(ENode *arg1, ENode *arg2, ENode *arg3, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
CError_ASSERT(4445, ENODE_IS(arg3, EINTCONST));
|
|
|
|
GEN_NODE_TO_GPR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE_TO_GPR(arg2, &op2, arg2->rtype, 0);
|
|
|
|
|
|
|
|
switch (opcode) {
|
|
|
|
case PC_DST:
|
|
|
|
case PC_DSTST:
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg, arg3->data.intval.lo, 0);
|
|
|
|
break;
|
|
|
|
case PC_DSTT:
|
|
|
|
case PC_DSTSTT:
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg, arg3->data.intval.lo);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
CError_FATAL(4463);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_sld(ENode *arg1, ENode *arg2, ENode *arg3, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
CError_ASSERT(4479, ENODE_IS(arg3, EINTCONST));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE_TO_VR(arg2, &op2, arg2->rtype, 0);
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.reg, arg3->data.intval.lo);
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_load(ENode *arg1, ENode *arg2, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
|
|
|
|
GEN_NODE(arg1, &op1);
|
|
|
|
if (op1.optype == OpndType_Absolute && op1.immediate == 0) {
|
|
|
|
op1.optype = OpndType_GPR;
|
|
|
|
op1.reg = 0;
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op1, arg1->rtype, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
GEN_NODE(arg2, &op2);
|
|
|
|
if (op2.optype == OpndType_Absolute && op2.immediate == 0 && op1.reg != 0) {
|
|
|
|
op2 = op1;
|
|
|
|
op1.optype = OpndType_GPR;
|
|
|
|
op1.reg = 0;
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op2, arg2->rtype, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
reg = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
emitpcode(opcode, reg, op1.reg, op2.reg);
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_store(ENode *arg1, ENode *arg2, ENode *arg3, short outputReg, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
Operand op3;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
memclrw(&op3, sizeof(op3));
|
|
|
|
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
|
|
|
|
GEN_NODE(arg2, &op2);
|
|
|
|
if (op2.optype == OpndType_Absolute && op2.immediate == 0) {
|
|
|
|
op2.optype = OpndType_GPR;
|
|
|
|
op2.reg = 0;
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op2, arg2->rtype, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
GEN_NODE(arg3, &op3);
|
|
|
|
if (op3.optype == OpndType_Absolute && op3.immediate == 0 && op2.reg != 0) {
|
|
|
|
op3 = op2;
|
|
|
|
op2.optype = OpndType_GPR;
|
|
|
|
op2.reg = 0;
|
|
|
|
} else {
|
|
|
|
ENSURE_GPR(&op3, arg3->rtype, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
emitpcode(opcode, op1.reg, op2.reg, op3.reg);
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = op1.reg;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_abs(Intrinsics id, ENode *funccall, ENode *arg1, short outputReg, Operand *output) {
|
|
|
|
TypeTable22 *table;
|
|
|
|
Type *typeA;
|
|
|
|
Type *typeB;
|
|
|
|
short reg1;
|
|
|
|
short reg2;
|
|
|
|
short reg3;
|
|
|
|
Operand op1;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB = arg1->rtype;
|
|
|
|
typeA = table->arg1;
|
|
|
|
if (IS_TYPE_POINTER(typeA) && IS_TYPE_POINTER(typeB)) {
|
|
|
|
typeA = TPTR_TARGET(typeA);
|
|
|
|
typeB = TPTR_TARGET(typeB);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA, typeB))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CError_ASSERT(4617, table->rtype);
|
|
|
|
|
|
|
|
reg1 = ALLOC_VR();
|
|
|
|
reg2 = ALLOC_VR();
|
|
|
|
reg3 = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
|
|
|
|
if (arg1->rtype == TYPE(&stvectorfloat)) {
|
|
|
|
emitpcode(PC_VSPLTISW, reg1, -1);
|
|
|
|
emitpcode(PC_VSLW, reg2, reg1, reg1);
|
|
|
|
emitpcode(table->opcode1, reg3, op1.reg, reg2);
|
|
|
|
} else {
|
|
|
|
emitpcode(PC_VSPLTISB, reg1, 0);
|
|
|
|
emitpcode(table->opcode1, reg2, reg1, op1.reg);
|
|
|
|
emitpcode(table->opcode2, reg3, op1.reg, reg2);
|
|
|
|
}
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg3;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_abss(Intrinsics id, ENode *funccall, ENode *arg1, short outputReg, Operand *output) {
|
|
|
|
TypeTable22 *table;
|
|
|
|
Type *typeA;
|
|
|
|
Type *typeB;
|
|
|
|
short reg1;
|
|
|
|
short reg2;
|
|
|
|
short reg3;
|
|
|
|
Operand op1;
|
|
|
|
|
|
|
|
for (table = typeTable[id - Intrinsic_042]; table->rtype; table++) {
|
|
|
|
typeB = arg1->rtype;
|
|
|
|
typeA = table->arg1;
|
|
|
|
if (IS_TYPE_POINTER(typeA) && IS_TYPE_POINTER(typeB)) {
|
|
|
|
typeA = TPTR_TARGET(typeA);
|
|
|
|
typeB = TPTR_TARGET(typeB);
|
|
|
|
}
|
|
|
|
if (promotable_types_are_equal(typeA, typeB))
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CError_ASSERT(4683, table->rtype);
|
|
|
|
|
|
|
|
reg1 = ALLOC_VR();
|
|
|
|
reg2 = ALLOC_VR();
|
|
|
|
reg3 = outputReg ? outputReg : ALLOC_VR();
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
|
|
|
|
emitpcode(PC_VSPLTISB, reg1, 0);
|
|
|
|
emitpcode(table->opcode1, reg2, reg1, op1.reg);
|
|
|
|
emitpcode(table->opcode2, reg3, op1.reg, reg2);
|
|
|
|
|
|
|
|
output->optype = OpndType_VR;
|
|
|
|
output->reg = reg3;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_intrinsic_mtvscr(ENode *arg1, Operand *output, Opcode opcode) {
|
|
|
|
Operand op1;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
emitpcode(opcode, op1.reg);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_predicate_2args(ENode *arg1, ENode *arg2, short outputReg, Operand *output, Opcode opcode, Intrinsics id) {
|
|
|
|
Operand op1;
|
|
|
|
Operand op2;
|
|
|
|
short reg1;
|
|
|
|
short reg2;
|
|
|
|
short reg3;
|
|
|
|
Opcode cond;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
memclrw(&op2, sizeof(op2));
|
|
|
|
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
GEN_NODE_TO_VR(arg2, &op2, arg2->rtype, 0);
|
|
|
|
|
|
|
|
reg1 = ALLOC_VR();
|
|
|
|
reg2 = op1.reg;
|
|
|
|
reg3 = op2.reg;
|
|
|
|
if (
|
|
|
|
((id == Intrinsic_132 || id == Intrinsic_145) && arg1->rtype != TYPE(&stvectorfloat)) ||
|
|
|
|
((id == Intrinsic_135 || id == Intrinsic_147) && arg1->rtype == TYPE(&stvectorfloat)) ||
|
|
|
|
id == Intrinsic_136 ||
|
|
|
|
id == Intrinsic_148 ||
|
|
|
|
id == Intrinsic_153 ||
|
|
|
|
id == Intrinsic_141 ||
|
|
|
|
id == Intrinsic_142 ||
|
|
|
|
id == Intrinsic_154
|
|
|
|
)
|
|
|
|
{
|
|
|
|
reg3 = op1.reg;
|
|
|
|
reg2 = op2.reg;
|
|
|
|
}
|
|
|
|
emitpcode(opcode, reg1, reg2, reg3);
|
|
|
|
pcsetrecordbit(pclastblock->lastPCode);
|
|
|
|
|
|
|
|
if (arg1->rtype == TYPE(&stvectorfloat)) {
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_131:
|
|
|
|
case Intrinsic_132:
|
|
|
|
case Intrinsic_133:
|
|
|
|
case Intrinsic_135:
|
|
|
|
case Intrinsic_136:
|
|
|
|
cond = ELESS;
|
|
|
|
break;
|
|
|
|
case Intrinsic_150:
|
|
|
|
case Intrinsic_151:
|
|
|
|
case Intrinsic_152:
|
|
|
|
case Intrinsic_153:
|
|
|
|
case Intrinsic_154:
|
|
|
|
cond = EGREATEREQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_134:
|
|
|
|
case Intrinsic_138:
|
|
|
|
case Intrinsic_139:
|
|
|
|
case Intrinsic_140:
|
|
|
|
case Intrinsic_141:
|
|
|
|
case Intrinsic_142:
|
|
|
|
cond = EEQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_144:
|
|
|
|
case Intrinsic_145:
|
|
|
|
case Intrinsic_146:
|
|
|
|
case Intrinsic_147:
|
|
|
|
case Intrinsic_148:
|
|
|
|
case Intrinsic_156:
|
|
|
|
cond = ENOTEQU;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
CError_FATAL(4805);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_131:
|
|
|
|
case Intrinsic_133:
|
|
|
|
case Intrinsic_136:
|
|
|
|
cond = ELESS;
|
|
|
|
break;
|
|
|
|
case Intrinsic_144:
|
|
|
|
case Intrinsic_146:
|
|
|
|
case Intrinsic_148:
|
|
|
|
cond = ENOTEQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_132:
|
|
|
|
case Intrinsic_135:
|
|
|
|
case Intrinsic_138:
|
|
|
|
cond = EEQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_145:
|
|
|
|
case Intrinsic_147:
|
|
|
|
case Intrinsic_150:
|
|
|
|
cond = EGREATEREQU;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
CError_FATAL(4834);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
output->optype = OpndType_CRField;
|
|
|
|
output->reg = 6;
|
|
|
|
output->regOffset = cond;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void vector_predicate_1arg(ENode *arg1, short outputReg, Operand *output, Opcode opcode, Intrinsics id) {
|
|
|
|
Operand op1;
|
|
|
|
short reg;
|
|
|
|
Opcode cond;
|
|
|
|
|
|
|
|
memclrw(&op1, sizeof(op1));
|
|
|
|
|
|
|
|
GEN_NODE_TO_VR(arg1, &op1, arg1->rtype, 0);
|
|
|
|
|
|
|
|
reg = ALLOC_VR();
|
|
|
|
emitpcode(opcode, reg, op1.reg, op1.reg);
|
|
|
|
pcsetrecordbit(pclastblock->lastPCode);
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_143:
|
|
|
|
cond = ELESS;
|
|
|
|
break;
|
|
|
|
case Intrinsic_149:
|
|
|
|
cond = EGREATEREQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_137:
|
|
|
|
cond = EEQU;
|
|
|
|
break;
|
|
|
|
case Intrinsic_155:
|
|
|
|
cond = ENOTEQU;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
CError_FATAL(4878);
|
|
|
|
}
|
|
|
|
|
|
|
|
output->optype = OpndType_CRField;
|
|
|
|
output->reg = 6;
|
|
|
|
output->regOffset = cond;
|
|
|
|
}
|
|
|
|
|
|
|
|
ENode *Intrinsics_HandleIntrinsicCall(Object *func, ENodeList *args) {
|
|
|
|
ENode *callexpr;
|
|
|
|
Type *rtype;
|
|
|
|
Intrinsics id;
|
|
|
|
|
|
|
|
callexpr = NULL;
|
|
|
|
|
|
|
|
if (copts.altivec_model) {
|
|
|
|
id = func->u.func.u.intrinsicid;
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_060:
|
|
|
|
case Intrinsic_061:
|
|
|
|
case Intrinsic_062:
|
|
|
|
case Intrinsic_063:
|
|
|
|
case Intrinsic_072:
|
|
|
|
case Intrinsic_073:
|
|
|
|
case Intrinsic_079:
|
|
|
|
case Intrinsic_080:
|
|
|
|
case Intrinsic_081:
|
|
|
|
case Intrinsic_082:
|
|
|
|
case Intrinsic_086:
|
|
|
|
case Intrinsic_093:
|
|
|
|
case Intrinsic_098:
|
|
|
|
case Intrinsic_100:
|
|
|
|
case Intrinsic_114:
|
|
|
|
case Intrinsic_115:
|
|
|
|
case Intrinsic_116:
|
|
|
|
case Intrinsic_202:
|
|
|
|
case Intrinsic_203:
|
|
|
|
case Intrinsic_224:
|
|
|
|
case Intrinsic_225:
|
|
|
|
case Intrinsic_226:
|
|
|
|
case Intrinsic_227:
|
|
|
|
case Intrinsic_228:
|
|
|
|
case Intrinsic_229:
|
|
|
|
case Intrinsic_230:
|
|
|
|
case Intrinsic_231:
|
|
|
|
case Intrinsic_240:
|
|
|
|
case Intrinsic_252:
|
|
|
|
case Intrinsic_259:
|
|
|
|
case Intrinsic_263:
|
|
|
|
case Intrinsic_280:
|
|
|
|
case Intrinsic_281:
|
|
|
|
case Intrinsic_282:
|
|
|
|
case Intrinsic_283:
|
|
|
|
case Intrinsic_284:
|
|
|
|
if (Intrinsics_VerifyParameterCount(3, args, func->name)) {
|
|
|
|
if ((rtype = Intrinsics_Verify3VectorArgs(id, args, func->name)))
|
|
|
|
callexpr = Intrinsics_CreateIntrinsicFunc(func, args, rtype);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_042:
|
|
|
|
case Intrinsic_043:
|
|
|
|
case Intrinsic_044:
|
|
|
|
case Intrinsic_045:
|
|
|
|
case Intrinsic_046:
|
|
|
|
case Intrinsic_047:
|
|
|
|
case Intrinsic_049:
|
|
|
|
case Intrinsic_050:
|
|
|
|
case Intrinsic_051:
|
|
|
|
case Intrinsic_052:
|
|
|
|
case Intrinsic_053:
|
|
|
|
case Intrinsic_054:
|
|
|
|
case Intrinsic_055:
|
|
|
|
case Intrinsic_056:
|
|
|
|
case Intrinsic_057:
|
|
|
|
case Intrinsic_066:
|
|
|
|
case Intrinsic_067:
|
|
|
|
case Intrinsic_068:
|
|
|
|
case Intrinsic_070:
|
|
|
|
case Intrinsic_071:
|
|
|
|
case Intrinsic_074:
|
|
|
|
case Intrinsic_075:
|
|
|
|
case Intrinsic_076:
|
|
|
|
case Intrinsic_078:
|
|
|
|
case Intrinsic_084:
|
|
|
|
case Intrinsic_085:
|
|
|
|
case Intrinsic_087:
|
|
|
|
case Intrinsic_088:
|
|
|
|
case Intrinsic_089:
|
|
|
|
case Intrinsic_090:
|
|
|
|
case Intrinsic_091:
|
|
|
|
case Intrinsic_092:
|
|
|
|
case Intrinsic_095:
|
|
|
|
case Intrinsic_099:
|
|
|
|
case Intrinsic_101:
|
|
|
|
case Intrinsic_102:
|
|
|
|
case Intrinsic_103:
|
|
|
|
case Intrinsic_110:
|
|
|
|
case Intrinsic_111:
|
|
|
|
case Intrinsic_112:
|
|
|
|
case Intrinsic_113:
|
|
|
|
case Intrinsic_117:
|
|
|
|
case Intrinsic_118:
|
|
|
|
case Intrinsic_119:
|
|
|
|
case Intrinsic_120:
|
|
|
|
case Intrinsic_121:
|
|
|
|
case Intrinsic_122:
|
|
|
|
case Intrinsic_124:
|
|
|
|
case Intrinsic_125:
|
|
|
|
case Intrinsic_126:
|
|
|
|
case Intrinsic_127:
|
|
|
|
case Intrinsic_130:
|
|
|
|
case Intrinsic_131:
|
|
|
|
case Intrinsic_132:
|
|
|
|
case Intrinsic_133:
|
|
|
|
case Intrinsic_134:
|
|
|
|
case Intrinsic_135:
|
|
|
|
case Intrinsic_136:
|
|
|
|
case Intrinsic_138:
|
|
|
|
case Intrinsic_139:
|
|
|
|
case Intrinsic_140:
|
|
|
|
case Intrinsic_141:
|
|
|
|
case Intrinsic_142:
|
|
|
|
case Intrinsic_144:
|
|
|
|
case Intrinsic_145:
|
|
|
|
case Intrinsic_146:
|
|
|
|
case Intrinsic_147:
|
|
|
|
case Intrinsic_148:
|
|
|
|
case Intrinsic_150:
|
|
|
|
case Intrinsic_151:
|
|
|
|
case Intrinsic_152:
|
|
|
|
case Intrinsic_153:
|
|
|
|
case Intrinsic_154:
|
|
|
|
case Intrinsic_156:
|
|
|
|
case Intrinsic_157:
|
|
|
|
case Intrinsic_158:
|
|
|
|
case Intrinsic_159:
|
|
|
|
case Intrinsic_160:
|
|
|
|
case Intrinsic_161:
|
|
|
|
case Intrinsic_162:
|
|
|
|
case Intrinsic_163:
|
|
|
|
case Intrinsic_164:
|
|
|
|
case Intrinsic_165:
|
|
|
|
case Intrinsic_166:
|
|
|
|
case Intrinsic_167:
|
|
|
|
case Intrinsic_168:
|
|
|
|
case Intrinsic_169:
|
|
|
|
case Intrinsic_170:
|
|
|
|
case Intrinsic_171:
|
|
|
|
case Intrinsic_172:
|
|
|
|
case Intrinsic_173:
|
|
|
|
case Intrinsic_174:
|
|
|
|
case Intrinsic_175:
|
|
|
|
case Intrinsic_177:
|
|
|
|
case Intrinsic_178:
|
|
|
|
case Intrinsic_179:
|
|
|
|
case Intrinsic_180:
|
|
|
|
case Intrinsic_181:
|
|
|
|
case Intrinsic_182:
|
|
|
|
case Intrinsic_183:
|
|
|
|
case Intrinsic_184:
|
|
|
|
case Intrinsic_185:
|
|
|
|
case Intrinsic_186:
|
|
|
|
case Intrinsic_187:
|
|
|
|
case Intrinsic_188:
|
|
|
|
case Intrinsic_189:
|
|
|
|
case Intrinsic_190:
|
|
|
|
case Intrinsic_191:
|
|
|
|
case Intrinsic_192:
|
|
|
|
case Intrinsic_193:
|
|
|
|
case Intrinsic_196:
|
|
|
|
case Intrinsic_197:
|
|
|
|
case Intrinsic_198:
|
|
|
|
case Intrinsic_199:
|
|
|
|
case Intrinsic_200:
|
|
|
|
case Intrinsic_204:
|
|
|
|
case Intrinsic_205:
|
|
|
|
case Intrinsic_206:
|
|
|
|
case Intrinsic_207:
|
|
|
|
case Intrinsic_208:
|
|
|
|
case Intrinsic_209:
|
|
|
|
case Intrinsic_210:
|
|
|
|
case Intrinsic_211:
|
|
|
|
case Intrinsic_212:
|
|
|
|
case Intrinsic_213:
|
|
|
|
case Intrinsic_214:
|
|
|
|
case Intrinsic_215:
|
|
|
|
case Intrinsic_216:
|
|
|
|
case Intrinsic_217:
|
|
|
|
case Intrinsic_218:
|
|
|
|
case Intrinsic_219:
|
|
|
|
case Intrinsic_220:
|
|
|
|
case Intrinsic_221:
|
|
|
|
case Intrinsic_222:
|
|
|
|
case Intrinsic_223:
|
|
|
|
case Intrinsic_232:
|
|
|
|
case Intrinsic_233:
|
|
|
|
case Intrinsic_234:
|
|
|
|
case Intrinsic_235:
|
|
|
|
case Intrinsic_236:
|
|
|
|
case Intrinsic_237:
|
|
|
|
case Intrinsic_238:
|
|
|
|
case Intrinsic_239:
|
|
|
|
case Intrinsic_241:
|
|
|
|
case Intrinsic_242:
|
|
|
|
case Intrinsic_243:
|
|
|
|
case Intrinsic_244:
|
|
|
|
case Intrinsic_245:
|
|
|
|
case Intrinsic_246:
|
|
|
|
case Intrinsic_247:
|
|
|
|
case Intrinsic_248:
|
|
|
|
case Intrinsic_249:
|
|
|
|
case Intrinsic_250:
|
|
|
|
case Intrinsic_251:
|
|
|
|
case Intrinsic_254:
|
|
|
|
case Intrinsic_255:
|
|
|
|
case Intrinsic_256:
|
|
|
|
case Intrinsic_260:
|
|
|
|
case Intrinsic_261:
|
|
|
|
case Intrinsic_262:
|
|
|
|
case Intrinsic_264:
|
|
|
|
case Intrinsic_265:
|
|
|
|
case Intrinsic_266:
|
|
|
|
case Intrinsic_267:
|
|
|
|
case Intrinsic_268:
|
|
|
|
case Intrinsic_272:
|
|
|
|
case Intrinsic_273:
|
|
|
|
case Intrinsic_274:
|
|
|
|
case Intrinsic_275:
|
|
|
|
case Intrinsic_276:
|
|
|
|
case Intrinsic_277:
|
|
|
|
case Intrinsic_278:
|
|
|
|
case Intrinsic_279:
|
|
|
|
case Intrinsic_285:
|
|
|
|
case Intrinsic_286:
|
|
|
|
case Intrinsic_287:
|
|
|
|
case Intrinsic_288:
|
|
|
|
case Intrinsic_289:
|
|
|
|
case Intrinsic_290:
|
|
|
|
case Intrinsic_291:
|
|
|
|
case Intrinsic_292:
|
|
|
|
case Intrinsic_293:
|
|
|
|
case Intrinsic_294:
|
|
|
|
case Intrinsic_295:
|
|
|
|
case Intrinsic_296:
|
|
|
|
case Intrinsic_297:
|
|
|
|
case Intrinsic_298:
|
|
|
|
case Intrinsic_299:
|
|
|
|
case Intrinsic_300:
|
|
|
|
case Intrinsic_308:
|
|
|
|
if (Intrinsics_VerifyParameterCount(2, args, func->name)) {
|
|
|
|
if ((rtype = Intrinsics_Verify2VectorArgs(id, args, func->name)))
|
|
|
|
callexpr = Intrinsics_CreateIntrinsicFunc(func, args, rtype);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_048:
|
|
|
|
case Intrinsic_058:
|
|
|
|
case Intrinsic_064:
|
|
|
|
case Intrinsic_065:
|
|
|
|
case Intrinsic_069:
|
|
|
|
case Intrinsic_083:
|
|
|
|
case Intrinsic_094:
|
|
|
|
case Intrinsic_096:
|
|
|
|
case Intrinsic_097:
|
|
|
|
case Intrinsic_104:
|
|
|
|
case Intrinsic_105:
|
|
|
|
case Intrinsic_106:
|
|
|
|
case Intrinsic_107:
|
|
|
|
case Intrinsic_108:
|
|
|
|
case Intrinsic_109:
|
|
|
|
case Intrinsic_123:
|
|
|
|
case Intrinsic_128:
|
|
|
|
case Intrinsic_129:
|
|
|
|
case Intrinsic_137:
|
|
|
|
case Intrinsic_143:
|
|
|
|
case Intrinsic_149:
|
|
|
|
case Intrinsic_155:
|
|
|
|
case Intrinsic_176:
|
|
|
|
case Intrinsic_194:
|
|
|
|
case Intrinsic_195:
|
|
|
|
case Intrinsic_201:
|
|
|
|
case Intrinsic_253:
|
|
|
|
case Intrinsic_257:
|
|
|
|
case Intrinsic_258:
|
|
|
|
case Intrinsic_269:
|
|
|
|
case Intrinsic_270:
|
|
|
|
case Intrinsic_271:
|
|
|
|
case Intrinsic_301:
|
|
|
|
case Intrinsic_302:
|
|
|
|
case Intrinsic_303:
|
|
|
|
case Intrinsic_304:
|
|
|
|
case Intrinsic_305:
|
|
|
|
case Intrinsic_306:
|
|
|
|
case Intrinsic_307:
|
|
|
|
if (Intrinsics_VerifyParameterCount(1, args, func->name)) {
|
|
|
|
if ((rtype = Intrinsics_Verify1VectorArg(id, args, func->name)))
|
|
|
|
callexpr = Intrinsics_CreateIntrinsicFunc(func, args, rtype);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_059:
|
|
|
|
case Intrinsic_077:
|
|
|
|
if (Intrinsics_VerifyParameterCount(0, args, func->name)) {
|
|
|
|
if ((rtype = Intrinsics_VerifyNoVectorArgs(id, func->name)))
|
|
|
|
callexpr = Intrinsics_CreateIntrinsicFunc(func, args, rtype);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case Intrinsic_309:
|
|
|
|
case Intrinsic_310:
|
|
|
|
if (Intrinsics_VerifyParameterCount(1, args, func->name)) {
|
|
|
|
if ((rtype = Intrinsics_Verify1VectorArg2Ops(id, args, func->name)))
|
|
|
|
callexpr = Intrinsics_CreateIntrinsicFunc(func, args, rtype);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return callexpr;
|
|
|
|
}
|
|
|
|
|
|
|
|
void call_intrinsic_function(ENode *funccall, short outputReg, Operand *output) {
|
|
|
|
ENodeList *args;
|
|
|
|
Object *object;
|
|
|
|
Intrinsics id;
|
|
|
|
Opcode op;
|
|
|
|
short reg;
|
|
|
|
|
|
|
|
static Opcode opcode[MaxIntrinsics] = {
|
|
|
|
/* Intrinsic_000 */ PC_EIEIO,
|
|
|
|
/* Intrinsic_001 */ PC_SYNC,
|
|
|
|
/* Intrinsic_002 */ PC_ISYNC,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
/* Intrinsic_005 */ PC_FABS,
|
|
|
|
/* Intrinsic_006 */ PC_FNABS,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
/* Intrinsic_009 */ PC_CNTLZW,
|
|
|
|
/* Intrinsic_010 */ PC_LHBRX,
|
|
|
|
/* Intrinsic_011 */ PC_LWBRX,
|
|
|
|
/* Intrinsic_012 */ PC_STHBRX,
|
|
|
|
/* Intrinsic_013 */ PC_STWBRX,
|
|
|
|
/* Intrinsic_014 */ PC_DCBF,
|
|
|
|
/* Intrinsic_015 */ PC_DCBT,
|
|
|
|
/* Intrinsic_016 */ PC_DCBST,
|
|
|
|
/* Intrinsic_017 */ PC_DCBTST,
|
|
|
|
/* Intrinsic_018 */ PC_DCBZ,
|
|
|
|
/* Intrinsic_019 */ PC_MULHW,
|
|
|
|
/* Intrinsic_020 */ PC_MULHWU,
|
|
|
|
/* Intrinsic_021 */ PC_DIVW,
|
|
|
|
/* Intrinsic_022 */ PC_DIVWU,
|
|
|
|
/* Intrinsic_023 */ PC_FMADD,
|
|
|
|
/* Intrinsic_024 */ PC_FMSUB,
|
|
|
|
/* Intrinsic_025 */ PC_FNMADD,
|
|
|
|
/* Intrinsic_026 */ PC_FNMSUB,
|
|
|
|
/* Intrinsic_027 */ PC_FMADDS,
|
|
|
|
/* Intrinsic_028 */ PC_FMSUBS,
|
|
|
|
/* Intrinsic_029 */ PC_FNMADDS,
|
|
|
|
/* Intrinsic_030 */ PC_FNMSUBS,
|
|
|
|
/* Intrinsic_031 */ PC_MFFS,
|
|
|
|
/* Intrinsic_032 */ PC_FRES,
|
|
|
|
/* Intrinsic_033 */ PC_FRSQRTE,
|
|
|
|
/* Intrinsic_004 */ PC_FSEL,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
/* Intrinsic_037 */ PC_RLWIMI,
|
|
|
|
/* Intrinsic_038 */ PC_RLWINM,
|
|
|
|
/* Intrinsic_039 */ PC_RLWNM,
|
|
|
|
/* Intrinsic_040 */ PC_FABS,
|
|
|
|
/* Intrinsic_041 */ PC_FNABS
|
|
|
|
};
|
|
|
|
|
|
|
|
args = funccall->data.funccall.args;
|
|
|
|
object = funccall->data.funccall.funcref->data.objref;
|
|
|
|
id = object->u.func.u.intrinsicid;
|
|
|
|
cur_intrinsic_object = object;
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_000:
|
|
|
|
case Intrinsic_001:
|
|
|
|
case Intrinsic_002:
|
|
|
|
appendpcode(pclastblock, makepcode(opcode[id]));
|
|
|
|
output->optype = OpndType_Absolute;
|
|
|
|
break;
|
|
|
|
case Intrinsic_003:
|
|
|
|
case Intrinsic_004:
|
|
|
|
abs_intrinsic(args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_005:
|
|
|
|
case Intrinsic_006:
|
|
|
|
case Intrinsic_032:
|
|
|
|
case Intrinsic_033:
|
|
|
|
case Intrinsic_040:
|
|
|
|
case Intrinsic_041:
|
|
|
|
fp_unary_operator(opcode[id], args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_007:
|
|
|
|
setflm_intrinsic(args->node, outputReg, output, funccall->ignored);
|
|
|
|
break;
|
|
|
|
case Intrinsic_008:
|
|
|
|
alloca_intrinsic(args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_009:
|
|
|
|
unary_operator(PC_CNTLZW, args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_010:
|
|
|
|
case Intrinsic_011:
|
|
|
|
load_bytereversed_intrinsic(opcode[id], args->node, args->next->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_012:
|
|
|
|
case Intrinsic_013:
|
|
|
|
store_bytereversed_intrinsic(opcode[id], args->node, args->next->node, args->next->next->node);
|
|
|
|
output->optype = OpndType_Absolute;
|
|
|
|
break;
|
|
|
|
case Intrinsic_014:
|
|
|
|
case Intrinsic_015:
|
|
|
|
case Intrinsic_016:
|
|
|
|
case Intrinsic_017:
|
|
|
|
case Intrinsic_018:
|
|
|
|
data_cache_block_intrinsic(opcode[id], args->node, args->next->node);
|
|
|
|
output->optype = OpndType_Absolute;
|
|
|
|
break;
|
|
|
|
case Intrinsic_019:
|
|
|
|
case Intrinsic_020:
|
|
|
|
case Intrinsic_021:
|
|
|
|
case Intrinsic_022:
|
|
|
|
binary_operator(opcode[id], args->node, args->next->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_023:
|
|
|
|
case Intrinsic_024:
|
|
|
|
case Intrinsic_025:
|
|
|
|
case Intrinsic_026:
|
|
|
|
case Intrinsic_027:
|
|
|
|
case Intrinsic_028:
|
|
|
|
case Intrinsic_029:
|
|
|
|
case Intrinsic_030:
|
|
|
|
case Intrinsic_034:
|
|
|
|
fp_multiply_add(opcode[id],
|
|
|
|
args->node, args->next->node, args->next->next->node,
|
|
|
|
outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_031:
|
|
|
|
reg = outputReg ? outputReg : ALLOC_FPR();
|
|
|
|
emitpcode(PC_MFFS, output->reg = reg);
|
|
|
|
output->optype = OpndType_FPR;
|
|
|
|
break;
|
|
|
|
case Intrinsic_035:
|
|
|
|
call_function(funccall, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_036:
|
|
|
|
if (ENODE_IS(args->next->next->node, EINTCONST))
|
|
|
|
memcpy_intrinsic(
|
|
|
|
args->node, args->next->node, args->next->next->node->data.intval.lo,
|
|
|
|
funccall->ignored, output);
|
|
|
|
else
|
|
|
|
call_function(funccall, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_037:
|
|
|
|
rlwimi_intrinsic(
|
|
|
|
args->node,
|
|
|
|
args->next->node,
|
|
|
|
args->next->next->node,
|
|
|
|
args->next->next->next->node,
|
|
|
|
args->next->next->next->next->node,
|
|
|
|
outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_038:
|
|
|
|
rlwinm_intrinsic(
|
|
|
|
args->node,
|
|
|
|
args->next->node,
|
|
|
|
args->next->next->node,
|
|
|
|
args->next->next->next->node,
|
|
|
|
outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_039:
|
|
|
|
rlwnm_intrinsic(
|
|
|
|
args->node,
|
|
|
|
args->next->node,
|
|
|
|
args->next->next->node,
|
|
|
|
args->next->next->next->node,
|
|
|
|
outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_072:
|
|
|
|
case Intrinsic_073:
|
|
|
|
case Intrinsic_079:
|
|
|
|
case Intrinsic_080:
|
|
|
|
case Intrinsic_081:
|
|
|
|
case Intrinsic_082:
|
|
|
|
case Intrinsic_086:
|
|
|
|
case Intrinsic_093:
|
|
|
|
case Intrinsic_098:
|
|
|
|
case Intrinsic_202:
|
|
|
|
case Intrinsic_203:
|
|
|
|
case Intrinsic_224:
|
|
|
|
case Intrinsic_225:
|
|
|
|
case Intrinsic_226:
|
|
|
|
case Intrinsic_227:
|
|
|
|
case Intrinsic_228:
|
|
|
|
case Intrinsic_229:
|
|
|
|
case Intrinsic_230:
|
|
|
|
case Intrinsic_231:
|
|
|
|
case Intrinsic_240:
|
|
|
|
case Intrinsic_252:
|
|
|
|
case Intrinsic_259:
|
|
|
|
op = Intrinsics_FindOpcode3Args(id, funccall, args->node, args->next->node, args->next->next->node);
|
|
|
|
vector_intrinsic_3args(args->node, args->next->node, args->next->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_100:
|
|
|
|
case Intrinsic_263:
|
|
|
|
op = Intrinsics_FindOpcode3Args(id, funccall, args->node, args->next->node, args->next->next->node);
|
|
|
|
vector_intrinsic_sld(args->node, args->next->node, args->next->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_042:
|
|
|
|
case Intrinsic_043:
|
|
|
|
case Intrinsic_044:
|
|
|
|
case Intrinsic_045:
|
|
|
|
case Intrinsic_046:
|
|
|
|
case Intrinsic_047:
|
|
|
|
case Intrinsic_049:
|
|
|
|
case Intrinsic_050:
|
|
|
|
case Intrinsic_051:
|
|
|
|
case Intrinsic_053:
|
|
|
|
case Intrinsic_074:
|
|
|
|
case Intrinsic_075:
|
|
|
|
case Intrinsic_076:
|
|
|
|
case Intrinsic_078:
|
|
|
|
case Intrinsic_084:
|
|
|
|
case Intrinsic_085:
|
|
|
|
case Intrinsic_087:
|
|
|
|
case Intrinsic_088:
|
|
|
|
case Intrinsic_089:
|
|
|
|
case Intrinsic_090:
|
|
|
|
case Intrinsic_091:
|
|
|
|
case Intrinsic_092:
|
|
|
|
case Intrinsic_095:
|
|
|
|
case Intrinsic_099:
|
|
|
|
case Intrinsic_101:
|
|
|
|
case Intrinsic_102:
|
|
|
|
case Intrinsic_110:
|
|
|
|
case Intrinsic_111:
|
|
|
|
case Intrinsic_112:
|
|
|
|
case Intrinsic_113:
|
|
|
|
case Intrinsic_117:
|
|
|
|
case Intrinsic_118:
|
|
|
|
case Intrinsic_119:
|
|
|
|
case Intrinsic_120:
|
|
|
|
case Intrinsic_121:
|
|
|
|
case Intrinsic_122:
|
|
|
|
case Intrinsic_124:
|
|
|
|
case Intrinsic_125:
|
|
|
|
case Intrinsic_126:
|
|
|
|
case Intrinsic_127:
|
|
|
|
case Intrinsic_130:
|
|
|
|
case Intrinsic_157:
|
|
|
|
case Intrinsic_158:
|
|
|
|
case Intrinsic_159:
|
|
|
|
case Intrinsic_160:
|
|
|
|
case Intrinsic_161:
|
|
|
|
case Intrinsic_162:
|
|
|
|
case Intrinsic_163:
|
|
|
|
case Intrinsic_164:
|
|
|
|
case Intrinsic_165:
|
|
|
|
case Intrinsic_166:
|
|
|
|
case Intrinsic_167:
|
|
|
|
case Intrinsic_168:
|
|
|
|
case Intrinsic_169:
|
|
|
|
case Intrinsic_170:
|
|
|
|
case Intrinsic_171:
|
|
|
|
case Intrinsic_172:
|
|
|
|
case Intrinsic_173:
|
|
|
|
case Intrinsic_174:
|
|
|
|
case Intrinsic_175:
|
|
|
|
case Intrinsic_177:
|
|
|
|
case Intrinsic_178:
|
|
|
|
case Intrinsic_179:
|
|
|
|
case Intrinsic_180:
|
|
|
|
case Intrinsic_181:
|
|
|
|
case Intrinsic_182:
|
|
|
|
case Intrinsic_183:
|
|
|
|
case Intrinsic_184:
|
|
|
|
case Intrinsic_185:
|
|
|
|
case Intrinsic_186:
|
|
|
|
case Intrinsic_187:
|
|
|
|
case Intrinsic_188:
|
|
|
|
case Intrinsic_189:
|
|
|
|
case Intrinsic_204:
|
|
|
|
case Intrinsic_205:
|
|
|
|
case Intrinsic_206:
|
|
|
|
case Intrinsic_207:
|
|
|
|
case Intrinsic_208:
|
|
|
|
case Intrinsic_209:
|
|
|
|
case Intrinsic_210:
|
|
|
|
case Intrinsic_211:
|
|
|
|
case Intrinsic_212:
|
|
|
|
case Intrinsic_213:
|
|
|
|
case Intrinsic_214:
|
|
|
|
case Intrinsic_215:
|
|
|
|
case Intrinsic_216:
|
|
|
|
case Intrinsic_217:
|
|
|
|
case Intrinsic_218:
|
|
|
|
case Intrinsic_219:
|
|
|
|
case Intrinsic_220:
|
|
|
|
case Intrinsic_221:
|
|
|
|
case Intrinsic_222:
|
|
|
|
case Intrinsic_223:
|
|
|
|
case Intrinsic_232:
|
|
|
|
case Intrinsic_233:
|
|
|
|
case Intrinsic_234:
|
|
|
|
case Intrinsic_235:
|
|
|
|
case Intrinsic_236:
|
|
|
|
case Intrinsic_237:
|
|
|
|
case Intrinsic_238:
|
|
|
|
case Intrinsic_239:
|
|
|
|
case Intrinsic_241:
|
|
|
|
case Intrinsic_242:
|
|
|
|
case Intrinsic_243:
|
|
|
|
case Intrinsic_244:
|
|
|
|
case Intrinsic_245:
|
|
|
|
case Intrinsic_246:
|
|
|
|
case Intrinsic_247:
|
|
|
|
case Intrinsic_248:
|
|
|
|
case Intrinsic_249:
|
|
|
|
case Intrinsic_250:
|
|
|
|
case Intrinsic_251:
|
|
|
|
case Intrinsic_254:
|
|
|
|
case Intrinsic_255:
|
|
|
|
case Intrinsic_256:
|
|
|
|
case Intrinsic_260:
|
|
|
|
case Intrinsic_261:
|
|
|
|
case Intrinsic_262:
|
|
|
|
case Intrinsic_264:
|
|
|
|
case Intrinsic_265:
|
|
|
|
case Intrinsic_272:
|
|
|
|
case Intrinsic_273:
|
|
|
|
case Intrinsic_274:
|
|
|
|
case Intrinsic_275:
|
|
|
|
case Intrinsic_276:
|
|
|
|
case Intrinsic_277:
|
|
|
|
case Intrinsic_278:
|
|
|
|
case Intrinsic_279:
|
|
|
|
case Intrinsic_285:
|
|
|
|
case Intrinsic_286:
|
|
|
|
case Intrinsic_287:
|
|
|
|
case Intrinsic_288:
|
|
|
|
case Intrinsic_289:
|
|
|
|
case Intrinsic_290:
|
|
|
|
case Intrinsic_291:
|
|
|
|
case Intrinsic_292:
|
|
|
|
case Intrinsic_293:
|
|
|
|
case Intrinsic_294:
|
|
|
|
case Intrinsic_295:
|
|
|
|
case Intrinsic_296:
|
|
|
|
case Intrinsic_297:
|
|
|
|
case Intrinsic_298:
|
|
|
|
case Intrinsic_299:
|
|
|
|
case Intrinsic_300:
|
|
|
|
case Intrinsic_308:
|
|
|
|
op = Intrinsics_FindOpcode2Args(id, funccall, args->node, args->next->node);
|
|
|
|
vector_intrinsic_2args(args->node, args->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_048:
|
|
|
|
case Intrinsic_064:
|
|
|
|
case Intrinsic_065:
|
|
|
|
case Intrinsic_069:
|
|
|
|
case Intrinsic_094:
|
|
|
|
case Intrinsic_096:
|
|
|
|
case Intrinsic_097:
|
|
|
|
case Intrinsic_123:
|
|
|
|
case Intrinsic_128:
|
|
|
|
case Intrinsic_129:
|
|
|
|
case Intrinsic_176:
|
|
|
|
case Intrinsic_194:
|
|
|
|
case Intrinsic_195:
|
|
|
|
case Intrinsic_201:
|
|
|
|
case Intrinsic_253:
|
|
|
|
case Intrinsic_257:
|
|
|
|
case Intrinsic_258:
|
|
|
|
case Intrinsic_301:
|
|
|
|
case Intrinsic_302:
|
|
|
|
case Intrinsic_303:
|
|
|
|
case Intrinsic_304:
|
|
|
|
case Intrinsic_305:
|
|
|
|
case Intrinsic_306:
|
|
|
|
case Intrinsic_307:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_intrinsic_1arg(args->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_055:
|
|
|
|
case Intrinsic_056:
|
|
|
|
case Intrinsic_057:
|
|
|
|
case Intrinsic_103:
|
|
|
|
case Intrinsic_190:
|
|
|
|
case Intrinsic_191:
|
|
|
|
case Intrinsic_192:
|
|
|
|
case Intrinsic_193:
|
|
|
|
case Intrinsic_266:
|
|
|
|
case Intrinsic_267:
|
|
|
|
case Intrinsic_268:
|
|
|
|
op = Intrinsics_FindOpcode2Args(id, funccall, args->node, args->next->node);
|
|
|
|
vector_intrinsic_2args1const(args->node, args->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_104:
|
|
|
|
case Intrinsic_105:
|
|
|
|
case Intrinsic_106:
|
|
|
|
case Intrinsic_269:
|
|
|
|
case Intrinsic_270:
|
|
|
|
case Intrinsic_271:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_intrinsic_splats(args->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_107:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_intrinsic_splatu8(args->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_108:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_intrinsic_splatu16(args->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_109:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_intrinsic_splatu32(args->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_083:
|
|
|
|
vector_intrinsic_mtvscr(args->node, output, PC_MTVSCR);
|
|
|
|
break;
|
|
|
|
case Intrinsic_077:
|
|
|
|
op = Intrinsics_FindOpcodeNoArgs(id, funccall);
|
|
|
|
vector_intrinsic_mfvscr(outputReg, op, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_058:
|
|
|
|
vector_intrinsic_dss(args->node);
|
|
|
|
break;
|
|
|
|
case Intrinsic_059:
|
|
|
|
op = Intrinsics_FindOpcodeNoArgs(id, funccall);
|
|
|
|
vector_intrinsic_no_args(op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_060:
|
|
|
|
case Intrinsic_061:
|
|
|
|
case Intrinsic_062:
|
|
|
|
case Intrinsic_063:
|
|
|
|
switch (id) {
|
|
|
|
case Intrinsic_060:
|
|
|
|
op = PC_DST;
|
|
|
|
break;
|
|
|
|
case Intrinsic_061:
|
|
|
|
op = PC_DSTST;
|
|
|
|
break;
|
|
|
|
case Intrinsic_062:
|
|
|
|
op = PC_DSTSTT;
|
|
|
|
break;
|
|
|
|
case Intrinsic_063:
|
|
|
|
op = PC_DSTT;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
vector_intrinsic_datastream(args->node, args->next->node, args->next->next->node, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_066:
|
|
|
|
case Intrinsic_067:
|
|
|
|
case Intrinsic_068:
|
|
|
|
case Intrinsic_070:
|
|
|
|
case Intrinsic_071:
|
|
|
|
case Intrinsic_196:
|
|
|
|
case Intrinsic_197:
|
|
|
|
case Intrinsic_198:
|
|
|
|
case Intrinsic_199:
|
|
|
|
case Intrinsic_200:
|
|
|
|
op = Intrinsics_FindOpcode2Args(id, funccall, args->node, args->next->node);
|
|
|
|
vector_intrinsic_load(args->node, args->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_114:
|
|
|
|
case Intrinsic_115:
|
|
|
|
case Intrinsic_116:
|
|
|
|
case Intrinsic_280:
|
|
|
|
case Intrinsic_281:
|
|
|
|
case Intrinsic_282:
|
|
|
|
case Intrinsic_283:
|
|
|
|
case Intrinsic_284:
|
|
|
|
op = Intrinsics_FindOpcode3Args(id, funccall, args->node, args->next->node, args->next->next->node);
|
|
|
|
vector_intrinsic_store(args->node, args->next->node, args->next->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
case Intrinsic_131:
|
|
|
|
case Intrinsic_132:
|
|
|
|
case Intrinsic_133:
|
|
|
|
case Intrinsic_134:
|
|
|
|
case Intrinsic_135:
|
|
|
|
case Intrinsic_136:
|
|
|
|
case Intrinsic_138:
|
|
|
|
case Intrinsic_139:
|
|
|
|
case Intrinsic_140:
|
|
|
|
case Intrinsic_141:
|
|
|
|
case Intrinsic_142:
|
|
|
|
case Intrinsic_144:
|
|
|
|
case Intrinsic_145:
|
|
|
|
case Intrinsic_146:
|
|
|
|
case Intrinsic_147:
|
|
|
|
case Intrinsic_148:
|
|
|
|
case Intrinsic_150:
|
|
|
|
case Intrinsic_151:
|
|
|
|
case Intrinsic_152:
|
|
|
|
case Intrinsic_153:
|
|
|
|
case Intrinsic_154:
|
|
|
|
case Intrinsic_156:
|
|
|
|
op = Intrinsics_FindOpcode2Args(id, funccall, args->node, args->next->node);
|
|
|
|
vector_predicate_2args(args->node, args->next->node, outputReg, output, op, id);
|
|
|
|
break;
|
|
|
|
case Intrinsic_137:
|
|
|
|
case Intrinsic_143:
|
|
|
|
case Intrinsic_149:
|
|
|
|
case Intrinsic_155:
|
|
|
|
op = Intrinsics_FindOpcode1Arg(id, funccall, args->node);
|
|
|
|
vector_predicate_1arg(args->node, outputReg, output, op, id);
|
|
|
|
break;
|
|
|
|
case Intrinsic_309:
|
|
|
|
vector_intrinsic_abs(id, funccall, args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_310:
|
|
|
|
vector_intrinsic_abss(id, funccall, args->node, outputReg, output);
|
|
|
|
break;
|
|
|
|
case Intrinsic_052:
|
|
|
|
case Intrinsic_054:
|
|
|
|
op = Intrinsics_FindOpcode2Args(id, funccall, args->node, args->next->node);
|
|
|
|
vector_intrinsic_2args(args->node, args->next->node, outputReg, output, op);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
CError_FATAL(6152);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void Intrinsics_SetupRuntimeObjects(void) {
|
|
|
|
static TypePointer char_ptr = {TYPEPOINTER, 4, TYPE(&stchar), 0};
|
|
|
|
Boolean savecpp;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
savecpp = copts.cplusplus;
|
|
|
|
copts.cplusplus = 0;
|
|
|
|
|
|
|
|
for (i = 0; i < MaxIntrinsics; i++)
|
|
|
|
intrinsics[i] = NULL;
|
|
|
|
|
|
|
|
intrinsics[Intrinsic_000] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__eieio"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_001] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__sync"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_002] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__isync"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_003] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__abs"), 0, 1, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_004] = CParser_NewRTFunc(TYPE(&stsignedlong), GetHashNameNodeExport("__labs"), 0, 1, &stsignedlong);
|
|
|
|
intrinsics[Intrinsic_005] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fabs"), 0, 1, &stdouble);
|
|
|
|
intrinsics[Intrinsic_006] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fnabs"), 0, 1, &stdouble);
|
|
|
|
intrinsics[Intrinsic_007] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__setflm"), 0, 1, &stdouble);
|
|
|
|
intrinsics[Intrinsic_033] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__frsqrte"), 0, 1, &stdouble);
|
|
|
|
intrinsics[Intrinsic_008] = CParser_NewRTFunc(TYPE(&void_ptr), GetHashNameNodeExport("__alloca"), 0, 1, &stunsignedint);
|
|
|
|
intrinsics[Intrinsic_009] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__cntlzw"), 0, 1, &stunsignedint);
|
|
|
|
intrinsics[Intrinsic_010] = CParser_NewRTFunc(TYPE(&stunsignedint), GetHashNameNodeExport("__lhbrx"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_011] = CParser_NewRTFunc(TYPE(&stunsignedint), GetHashNameNodeExport("__lwbrx"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_012] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__sthbrx"), 0, 3, &stunsignedshort, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_013] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__stwbrx"), 0, 3, &stunsignedint, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_014] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__dcbf"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_015] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__dcbt"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_016] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__dcbst"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_017] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__dcbtst"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_018] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("__dcbz"), 0, 2, &void_ptr, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_019] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__mulhw"), 0, 2, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_020] = CParser_NewRTFunc(TYPE(&stunsignedint), GetHashNameNodeExport("__mulhwu"), 0, 2, &stunsignedint, &stunsignedint);
|
|
|
|
intrinsics[Intrinsic_021] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__divw"), 0, 2, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_022] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__divwu"), 0, 2, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_023] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fmadd"), 0, 3, &stdouble, &stdouble, &stdouble);
|
|
|
|
intrinsics[Intrinsic_024] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fmsub"), 0, 3, &stdouble, &stdouble, &stdouble);
|
|
|
|
intrinsics[Intrinsic_025] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fnmadd"), 0, 3, &stdouble, &stdouble, &stdouble);
|
|
|
|
intrinsics[Intrinsic_026] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fnmsub"), 0, 3, &stdouble, &stdouble, &stdouble);
|
|
|
|
intrinsics[Intrinsic_034] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__fsel"), 0, 3, &stdouble, &stdouble, &stdouble);
|
|
|
|
intrinsics[Intrinsic_027] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fmadds"), 0, 3, &stfloat, &stfloat, &stfloat);
|
|
|
|
intrinsics[Intrinsic_028] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fmsubs"), 0, 3, &stfloat, &stfloat, &stfloat);
|
|
|
|
intrinsics[Intrinsic_029] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fnmadds"), 0, 3, &stfloat, &stfloat, &stfloat);
|
|
|
|
intrinsics[Intrinsic_030] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fnmsubs"), 0, 3, &stfloat, &stfloat, &stfloat);
|
|
|
|
intrinsics[Intrinsic_031] = CParser_NewRTFunc(TYPE(&stdouble), GetHashNameNodeExport("__mffs"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_032] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fres"), 0, 1, &stfloat);
|
|
|
|
intrinsics[Intrinsic_040] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fabsf"), 0, 1, &stfloat);
|
|
|
|
intrinsics[Intrinsic_041] = CParser_NewRTFunc(TYPE(&stfloat), GetHashNameNodeExport("__fnabsf"), 0, 1, &stfloat);
|
|
|
|
intrinsics[Intrinsic_035] = CParser_NewRTFunc(TYPE(&char_ptr), GetHashNameNodeExport("__strcpy"), 0, 2, &char_ptr, &char_ptr);
|
|
|
|
TYPE_FUNC(intrinsics[Intrinsic_035]->type)->args->next->qual |= Q_CONST;
|
|
|
|
intrinsics[Intrinsic_036] = CParser_NewRTFunc(TYPE(&void_ptr), GetHashNameNodeExport("__memcpy"), 0, 3, &void_ptr, &void_ptr, &stunsignedlong);
|
|
|
|
__memcpy_object = intrinsics[Intrinsic_036];
|
|
|
|
TYPE_FUNC(intrinsics[Intrinsic_036]->type)->args->next->qual |= Q_CONST;
|
|
|
|
intrinsics[Intrinsic_037] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__rlwimi"), 0, 5, &stsignedint, &stsignedint, &stsignedint, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_038] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__rlwinm"), 0, 4, &stsignedint, &stsignedint, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_039] = CParser_NewRTFunc(TYPE(&stsignedint), GetHashNameNodeExport("__rlwnm"), 0, 4, &stsignedint, &stsignedint, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_042] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_add"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_043] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_addc"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_044] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_adds"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_045] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_and"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_046] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_andc"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_047] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_avg"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_048] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ceil"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_049] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmpb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_050] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmpeq"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_051] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmpge"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_052] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmple"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_053] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmpgt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_054] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cmplt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_055] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ctf"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_056] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_cts"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_057] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ctu"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_058] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dss"), 0, 1, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_059] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dssall"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_060] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dst"), 0, 3, &stvector, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_061] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dstst"), 0, 3, &stvector, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_062] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dststt"), 0, 3, &stvector, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_063] = CParser_NewRTFunc(&stvoid, GetHashNameNodeExport("vec_dstt"), 0, 3, &stvector, &stsignedint, &stsignedint);
|
|
|
|
intrinsics[Intrinsic_064] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_expte"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_065] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_floor"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_066] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ld"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_067] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lde"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_068] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ldl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_069] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_loge"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_070] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvsl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_071] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvsr"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_072] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_madd"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_073] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_madds"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_074] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_max"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_075] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mergeh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_076] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mergel"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_077] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mfvscr"), 0, 0);
|
|
|
|
intrinsics[Intrinsic_078] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_min"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_079] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mladd"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_080] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mradds"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_081] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_msum"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_082] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_msums"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_083] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mtvscr"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_084] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mule"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_085] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_mulo"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_086] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_nmsub"), 0, 2, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_087] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_nor"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_088] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_or"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_089] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_pack"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_090] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_packpx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_091] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_packs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_092] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_packsu"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_093] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_perm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_094] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_re"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_095] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_rl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_096] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_round"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_097] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_rsqrte"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_098] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sel"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_099] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_100] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sld"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_101] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sll"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_102] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_slo"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_103] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_104] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_s8"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_105] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_s16"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_106] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_s32"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_107] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_u8"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_108] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_u16"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_109] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_splat_u32"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_110] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sr"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_111] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sra"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_112] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_srl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_113] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sro"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_114] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_st"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_115] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_ste"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_116] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stl"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_117] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_118] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_subc"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_119] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_subs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_120] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sum4s"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_121] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sum2s"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_122] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_sums"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_123] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_trunc"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_124] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpack2sh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_125] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpack2sl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_126] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpack2uh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_127] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpack2ul"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_128] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpackh"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_129] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_unpackl"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_130] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_xor"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_131] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_eq"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_132] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_ge"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_133] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_gt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_134] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_in"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_135] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_le"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_136] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_lt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_137] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_nan"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_138] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_ne"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_139] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_nge"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_140] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_ngt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_141] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_nle"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_142] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_nlt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_143] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_all_numeric"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_144] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_eq"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_145] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_ge"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_146] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_gt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_147] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_le"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_148] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_lt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_149] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_nan"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_150] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_ne"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_151] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_nge"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_152] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_ngt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_153] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_nle"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_154] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_nlt"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_155] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_numeric"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_156] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_any_out"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_157] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddubm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_158] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vadduhm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_159] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vadduwm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_160] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_161] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddcuw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_162] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddubs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_163] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddsbs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_164] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vadduhs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_165] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddshs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_166] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vadduws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_167] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vaddsws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_168] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vand"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_169] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vandc"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_170] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavgub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_171] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavgsb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_172] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavguh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_173] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavgsh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_174] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavguw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_175] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vavgsw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_176] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrfip"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_177] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpbfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_178] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpequb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_179] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpequh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_180] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpequw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_181] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpeqfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_182] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgefp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_183] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_184] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtsb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_185] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtuh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_186] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtsh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_187] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtuw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_188] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtsw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_189] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcmpgtfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_190] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcfux"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_191] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vcfsx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_192] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vctsxs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_193] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vctuxs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_194] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vexptefp"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_195] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrfim"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_196] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_197] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvebx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_198] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvehx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_199] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvewx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_200] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_lvxl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_201] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vlogefp"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_202] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaddfp"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_203] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmhaddshs"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_204] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_205] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxsb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_206] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxuh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_207] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxsh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_208] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxuw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_209] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxsw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_210] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmaxfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_211] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrghb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_212] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrghh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_213] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrghw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_214] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrglb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_215] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrglh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_216] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmrglw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_217] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_218] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminsb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_219] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminuh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_220] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminsh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_221] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminuw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_222] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminsw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_223] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vminfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_224] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmladduhm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_225] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmhraddshs"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_226] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsumubm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_227] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsumuhm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_228] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsummbm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_229] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsumshm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_230] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsumuhs"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_231] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmsumshs"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_232] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmuleub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_233] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmulesb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_234] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmuleuh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_235] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmulesh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_236] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmuloub"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_237] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmulosb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_238] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmulouh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_239] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vmulosh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_240] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vnmsubfp"), 0, 2, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_241] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vnor"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_242] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vor"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_243] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkuhum"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_244] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkuwum"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_245] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkpx"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_246] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkuhus"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_247] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkshss"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_248] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkuwus"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_249] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkswss"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_250] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkshus"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_251] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vpkswus"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_252] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vperm"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_253] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrefp"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_254] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrlb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_255] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrlh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_256] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrlw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_257] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrfin"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_258] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrsqrtefp"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_259] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsel"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_260] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vslb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_261] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vslh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_262] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vslw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_263] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsldoi"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_264] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsl"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_265] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vslo"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_266] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vspltb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_267] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsplth"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_268] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vspltw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_269] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vspltisb"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_270] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vspltish"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_271] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vspltisw"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_272] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsrb"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_273] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsrh"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_274] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsrw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_275] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsrab"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_276] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsrah"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_277] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsraw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_278] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsr"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_279] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsro"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_280] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stvx"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_281] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stvebx"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_282] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stvehx"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_283] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stvewx"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_284] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_stvxl"), 0, 3, &stvector, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_285] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsububm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_286] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubuhm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_287] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubuwm"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_288] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubfp"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_289] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubcuw"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_290] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsububs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_291] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubsbs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_292] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubuhs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_293] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubshs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_294] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubuws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_295] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsubsws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_296] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsum4ubs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_297] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsum4sbs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_298] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsum4shs"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_299] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsum2sws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_300] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vsumsws"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_301] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vrfiz"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_302] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupkhsb"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_303] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupklsb"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_304] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupkhpx"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_305] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupklpx"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_306] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupkhsh"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_307] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vupklsh"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_308] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_vxor"), 0, 2, &stvector, &stvector);
|
|
|
|
intrinsics[Intrinsic_309] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_abs"), 0, 1, &stvector);
|
|
|
|
intrinsics[Intrinsic_310] = CParser_NewRTFunc(TYPE(&stvector), GetHashNameNodeExport("vec_abss"), 0, 1, &stvector);
|
|
|
|
|
|
|
|
for (i = 0; i < MaxIntrinsics; i++) {
|
|
|
|
CError_ASSERT(6600, intrinsics[i]);
|
|
|
|
intrinsics[i]->u.func.u.intrinsicid = i;
|
2023-01-20 11:56:38 +00:00
|
|
|
TYPE_FUNC(intrinsics[i]->type)->flags |= FUNC_INTRINSIC;
|
2022-12-29 12:32:55 +00:00
|
|
|
CScope_AddGlobalObject(intrinsics[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
copts.cplusplus = savecpp;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Object *CheckRuntimeObject(char *name) {
|
|
|
|
NameSpaceName *nsname = CScope_FindNameSpaceName(cscope_root, GetHashNameNodeExport(name));
|
|
|
|
|
|
|
|
if (!nsname)
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if (nsname->first.object && nsname->first.next == NULL)
|
|
|
|
return OBJECT(nsname->first.object);
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
Boolean Intrinsics_ReInitRuntimeObjects(Boolean flag) {
|
|
|
|
if (flag) {
|
|
|
|
if (!(intrinsics[Intrinsic_000] = CheckRuntimeObject("__eieio"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_001] = CheckRuntimeObject("__sync"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_002] = CheckRuntimeObject("__isync"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_003] = CheckRuntimeObject("__abs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_004] = CheckRuntimeObject("__labs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_005] = CheckRuntimeObject("__fabs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_006] = CheckRuntimeObject("__fnabs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_007] = CheckRuntimeObject("__setflm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_033] = CheckRuntimeObject("__frsqrte"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_008] = CheckRuntimeObject("__alloca"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_009] = CheckRuntimeObject("__cntlzw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_010] = CheckRuntimeObject("__lhbrx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_011] = CheckRuntimeObject("__lwbrx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_012] = CheckRuntimeObject("__sthbrx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_013] = CheckRuntimeObject("__stwbrx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_014] = CheckRuntimeObject("__dcbf"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_015] = CheckRuntimeObject("__dcbt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_016] = CheckRuntimeObject("__dcbst"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_017] = CheckRuntimeObject("__dcbtst"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_018] = CheckRuntimeObject("__dcbz"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_019] = CheckRuntimeObject("__mulhw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_020] = CheckRuntimeObject("__mulhwu"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_021] = CheckRuntimeObject("__divw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_022] = CheckRuntimeObject("__divwu"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_023] = CheckRuntimeObject("__fmadd"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_024] = CheckRuntimeObject("__fmsub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_025] = CheckRuntimeObject("__fnmadd"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_026] = CheckRuntimeObject("__fnmsub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_034] = CheckRuntimeObject("__fsel"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_027] = CheckRuntimeObject("__fmadds"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_028] = CheckRuntimeObject("__fmsubs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_029] = CheckRuntimeObject("__fnmadds"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_030] = CheckRuntimeObject("__fnmsubs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_031] = CheckRuntimeObject("__mffs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_032] = CheckRuntimeObject("__fres"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_040] = CheckRuntimeObject("__fabsf"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_041] = CheckRuntimeObject("__fnabsf"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_035] = CheckRuntimeObject("__strcpy"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_037] = CheckRuntimeObject("__rlwimi"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_038] = CheckRuntimeObject("__rlwinm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_039] = CheckRuntimeObject("__rlwnm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_042] = CheckRuntimeObject("vec_add"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_043] = CheckRuntimeObject("vec_addc"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_044] = CheckRuntimeObject("vec_adds"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_045] = CheckRuntimeObject("vec_and"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_046] = CheckRuntimeObject("vec_andc"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_047] = CheckRuntimeObject("vec_avg"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_048] = CheckRuntimeObject("vec_ceil"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_049] = CheckRuntimeObject("vec_cmpb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_050] = CheckRuntimeObject("vec_cmpeq"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_051] = CheckRuntimeObject("vec_cmpge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_052] = CheckRuntimeObject("vec_cmple"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_053] = CheckRuntimeObject("vec_cmpgt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_054] = CheckRuntimeObject("vec_cmplt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_055] = CheckRuntimeObject("vec_ctf"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_056] = CheckRuntimeObject("vec_cts"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_057] = CheckRuntimeObject("vec_ctu"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_064] = CheckRuntimeObject("vec_expte"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_065] = CheckRuntimeObject("vec_floor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_066] = CheckRuntimeObject("vec_ld"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_067] = CheckRuntimeObject("vec_lde"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_068] = CheckRuntimeObject("vec_ldl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_069] = CheckRuntimeObject("vec_loge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_070] = CheckRuntimeObject("vec_lvsl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_071] = CheckRuntimeObject("vec_lvsr"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_072] = CheckRuntimeObject("vec_madd"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_073] = CheckRuntimeObject("vec_madds"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_074] = CheckRuntimeObject("vec_max"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_075] = CheckRuntimeObject("vec_mergeh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_076] = CheckRuntimeObject("vec_mergel"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_077] = CheckRuntimeObject("vec_mfvscr"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_078] = CheckRuntimeObject("vec_min"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_079] = CheckRuntimeObject("vec_mladd"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_080] = CheckRuntimeObject("vec_mradds"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_081] = CheckRuntimeObject("vec_msum"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_082] = CheckRuntimeObject("vec_msums"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_083] = CheckRuntimeObject("vec_mtvscr"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_084] = CheckRuntimeObject("vec_mule"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_085] = CheckRuntimeObject("vec_mulo"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_086] = CheckRuntimeObject("vec_nmsub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_087] = CheckRuntimeObject("vec_nor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_088] = CheckRuntimeObject("vec_or"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_089] = CheckRuntimeObject("vec_pack"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_090] = CheckRuntimeObject("vec_packpx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_091] = CheckRuntimeObject("vec_packs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_092] = CheckRuntimeObject("vec_packsu"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_093] = CheckRuntimeObject("vec_perm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_094] = CheckRuntimeObject("vec_re"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_095] = CheckRuntimeObject("vec_rl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_096] = CheckRuntimeObject("vec_round"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_097] = CheckRuntimeObject("vec_rsqrte"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_098] = CheckRuntimeObject("vec_sel"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_099] = CheckRuntimeObject("vec_sl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_100] = CheckRuntimeObject("vec_sld"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_101] = CheckRuntimeObject("vec_sll"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_102] = CheckRuntimeObject("vec_slo"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_103] = CheckRuntimeObject("vec_splat"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_104] = CheckRuntimeObject("vec_splat_s8"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_105] = CheckRuntimeObject("vec_splat_s16"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_106] = CheckRuntimeObject("vec_splat_s32"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_107] = CheckRuntimeObject("vec_splat_u8"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_108] = CheckRuntimeObject("vec_splat_u16"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_109] = CheckRuntimeObject("vec_splat_u32"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_110] = CheckRuntimeObject("vec_sr"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_111] = CheckRuntimeObject("vec_sra"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_112] = CheckRuntimeObject("vec_srl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_113] = CheckRuntimeObject("vec_sro"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_114] = CheckRuntimeObject("vec_st"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_115] = CheckRuntimeObject("vec_ste"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_116] = CheckRuntimeObject("vec_stl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_117] = CheckRuntimeObject("vec_sub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_118] = CheckRuntimeObject("vec_subc"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_119] = CheckRuntimeObject("vec_subs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_120] = CheckRuntimeObject("vec_sum4s"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_121] = CheckRuntimeObject("vec_sum2s"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_122] = CheckRuntimeObject("vec_sums"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_123] = CheckRuntimeObject("vec_trunc"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_124] = CheckRuntimeObject("vec_unpack2sh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_125] = CheckRuntimeObject("vec_unpack2sl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_126] = CheckRuntimeObject("vec_unpack2uh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_127] = CheckRuntimeObject("vec_unpack2ul"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_128] = CheckRuntimeObject("vec_unpackh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_129] = CheckRuntimeObject("vec_unpackl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_130] = CheckRuntimeObject("vec_xor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_131] = CheckRuntimeObject("vec_all_eq"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_132] = CheckRuntimeObject("vec_all_ge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_133] = CheckRuntimeObject("vec_all_gt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_134] = CheckRuntimeObject("vec_all_in"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_135] = CheckRuntimeObject("vec_all_le"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_136] = CheckRuntimeObject("vec_all_lt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_137] = CheckRuntimeObject("vec_all_nan"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_138] = CheckRuntimeObject("vec_all_ne"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_139] = CheckRuntimeObject("vec_all_nge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_140] = CheckRuntimeObject("vec_all_ngt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_141] = CheckRuntimeObject("vec_all_nle"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_142] = CheckRuntimeObject("vec_all_nlt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_143] = CheckRuntimeObject("vec_all_numeric"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_144] = CheckRuntimeObject("vec_any_eq"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_145] = CheckRuntimeObject("vec_any_ge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_146] = CheckRuntimeObject("vec_any_gt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_147] = CheckRuntimeObject("vec_any_le"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_148] = CheckRuntimeObject("vec_any_lt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_149] = CheckRuntimeObject("vec_any_nan"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_150] = CheckRuntimeObject("vec_any_ne"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_151] = CheckRuntimeObject("vec_any_nge"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_152] = CheckRuntimeObject("vec_any_ngt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_153] = CheckRuntimeObject("vec_any_nle"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_154] = CheckRuntimeObject("vec_any_nlt"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_155] = CheckRuntimeObject("vec_any_numeric"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_156] = CheckRuntimeObject("vec_any_out"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_157] = CheckRuntimeObject("vec_vaddubm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_158] = CheckRuntimeObject("vec_vadduhm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_159] = CheckRuntimeObject("vec_vadduwm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_160] = CheckRuntimeObject("vec_vaddfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_161] = CheckRuntimeObject("vec_vaddcuw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_162] = CheckRuntimeObject("vec_vaddubs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_163] = CheckRuntimeObject("vec_vaddubs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_164] = CheckRuntimeObject("vec_vadduhs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_165] = CheckRuntimeObject("vec_vadduhs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_166] = CheckRuntimeObject("vec_vadduws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_167] = CheckRuntimeObject("vec_vadduws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_168] = CheckRuntimeObject("vec_vand"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_169] = CheckRuntimeObject("vec_vandc"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_170] = CheckRuntimeObject("vec_vavgub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_171] = CheckRuntimeObject("vec_vavgsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_172] = CheckRuntimeObject("vec_vavguh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_173] = CheckRuntimeObject("vec_vavgsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_174] = CheckRuntimeObject("vec_vavguw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_175] = CheckRuntimeObject("vec_vavgsw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_176] = CheckRuntimeObject("vec_vrfip"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_177] = CheckRuntimeObject("vec_vcmpbfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_178] = CheckRuntimeObject("vec_vcmpequb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_179] = CheckRuntimeObject("vec_vcmpequh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_180] = CheckRuntimeObject("vec_vcmpequw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_181] = CheckRuntimeObject("vec_vcmpeqfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_182] = CheckRuntimeObject("vec_vcmpgefp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_183] = CheckRuntimeObject("vec_vcmpgtub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_184] = CheckRuntimeObject("vec_vcmpgtsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_185] = CheckRuntimeObject("vec_vcmpgtuh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_186] = CheckRuntimeObject("vec_vcmpgtsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_187] = CheckRuntimeObject("vec_vcmpgtuw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_188] = CheckRuntimeObject("vec_vcmpgtsw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_189] = CheckRuntimeObject("vec_vcmpgtfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_190] = CheckRuntimeObject("vec_vcfux"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_191] = CheckRuntimeObject("vec_vcfsx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_192] = CheckRuntimeObject("vec_vctsxs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_193] = CheckRuntimeObject("vec_vctuxs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_194] = CheckRuntimeObject("vec_vexptefp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_195] = CheckRuntimeObject("vec_vrfim"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_196] = CheckRuntimeObject("vec_lvx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_197] = CheckRuntimeObject("vec_lvebx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_198] = CheckRuntimeObject("vec_lvehx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_199] = CheckRuntimeObject("vec_lvewx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_200] = CheckRuntimeObject("vec_lvxl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_201] = CheckRuntimeObject("vec_vlogefp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_202] = CheckRuntimeObject("vec_vmaddfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_203] = CheckRuntimeObject("vec_vmhaddshs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_204] = CheckRuntimeObject("vec_vmaxub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_205] = CheckRuntimeObject("vec_vmaxsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_206] = CheckRuntimeObject("vec_vmaxuh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_207] = CheckRuntimeObject("vec_vmaxsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_208] = CheckRuntimeObject("vec_vmaxuw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_209] = CheckRuntimeObject("vec_vmaxsw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_210] = CheckRuntimeObject("vec_vmaxfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_211] = CheckRuntimeObject("vec_vmrghb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_212] = CheckRuntimeObject("vec_vmrghh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_213] = CheckRuntimeObject("vec_vmrghw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_214] = CheckRuntimeObject("vec_vmrglb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_215] = CheckRuntimeObject("vec_vmrglh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_216] = CheckRuntimeObject("vec_vmrglw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_204] = CheckRuntimeObject("vec_vminub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_205] = CheckRuntimeObject("vec_vminsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_206] = CheckRuntimeObject("vec_vminuh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_207] = CheckRuntimeObject("vec_vminsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_208] = CheckRuntimeObject("vec_vminuw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_209] = CheckRuntimeObject("vec_vminsw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_210] = CheckRuntimeObject("vec_vminfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_224] = CheckRuntimeObject("vec_vmladduhm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_225] = CheckRuntimeObject("vec_vmhraddshs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_226] = CheckRuntimeObject("vec_vmsumubm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_227] = CheckRuntimeObject("vec_vmsumuhm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_228] = CheckRuntimeObject("vec_vmsummbm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_229] = CheckRuntimeObject("vec_vmsumshm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_230] = CheckRuntimeObject("vec_vmsumuhs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_231] = CheckRuntimeObject("vec_vmsumshs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_232] = CheckRuntimeObject("vec_vmuleub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_233] = CheckRuntimeObject("vec_vmulesb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_234] = CheckRuntimeObject("vec_vmuleuh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_235] = CheckRuntimeObject("vec_vmulesh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_236] = CheckRuntimeObject("vec_vmuloub"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_237] = CheckRuntimeObject("vec_vmulosb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_238] = CheckRuntimeObject("vec_vmulouh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_239] = CheckRuntimeObject("vec_vmulosh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_240] = CheckRuntimeObject("vec_vnmsubfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_241] = CheckRuntimeObject("vec_vnor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_242] = CheckRuntimeObject("vec_vor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_243] = CheckRuntimeObject("vec_vpkuhum"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_244] = CheckRuntimeObject("vec_vpkuwum"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_245] = CheckRuntimeObject("vec_vpkpx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_246] = CheckRuntimeObject("vec_vpkuhus"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_247] = CheckRuntimeObject("vec_vpkshss"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_248] = CheckRuntimeObject("vec_vpkuwus"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_249] = CheckRuntimeObject("vec_vpkswss"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_250] = CheckRuntimeObject("vec_vpkshus"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_251] = CheckRuntimeObject("vec_vpkswus"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_252] = CheckRuntimeObject("vec_vperm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_253] = CheckRuntimeObject("vec_vrefp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_254] = CheckRuntimeObject("vec_vrlb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_255] = CheckRuntimeObject("vec_vrlh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_256] = CheckRuntimeObject("vec_vrlw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_257] = CheckRuntimeObject("vec_vrfin"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_258] = CheckRuntimeObject("vec_vrsqrtefp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_259] = CheckRuntimeObject("vec_vsel"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_260] = CheckRuntimeObject("vec_vslb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_261] = CheckRuntimeObject("vec_vslh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_262] = CheckRuntimeObject("vec_vslw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_263] = CheckRuntimeObject("vec_vsldoi"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_264] = CheckRuntimeObject("vec_vsl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_265] = CheckRuntimeObject("vec_vslo"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_266] = CheckRuntimeObject("vec_vspltb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_267] = CheckRuntimeObject("vec_vsplth"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_268] = CheckRuntimeObject("vec_vspltw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_269] = CheckRuntimeObject("vec_vspltisb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_270] = CheckRuntimeObject("vec_vspltish"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_271] = CheckRuntimeObject("vec_vspltisw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_272] = CheckRuntimeObject("vec_vsrb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_273] = CheckRuntimeObject("vec_vsrh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_274] = CheckRuntimeObject("vec_vsrw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_275] = CheckRuntimeObject("vec_vsrab"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_276] = CheckRuntimeObject("vec_vsrah"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_277] = CheckRuntimeObject("vec_vsraw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_278] = CheckRuntimeObject("vec_vsr"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_279] = CheckRuntimeObject("vec_vsro"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_280] = CheckRuntimeObject("vec_stvx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_281] = CheckRuntimeObject("vec_stvebx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_282] = CheckRuntimeObject("vec_stvehx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_283] = CheckRuntimeObject("vec_stvewx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_284] = CheckRuntimeObject("vec_stvxl"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_285] = CheckRuntimeObject("vec_vsububm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_286] = CheckRuntimeObject("vec_vsubuhm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_287] = CheckRuntimeObject("vec_vsubuwm"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_288] = CheckRuntimeObject("vec_vsubfp"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_289] = CheckRuntimeObject("vec_vsubcuw"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_290] = CheckRuntimeObject("vec_vsububs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_291] = CheckRuntimeObject("vec_vsubsbs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_292] = CheckRuntimeObject("vec_vsubuhs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_293] = CheckRuntimeObject("vec_vsubshs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_294] = CheckRuntimeObject("vec_vsubuws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_295] = CheckRuntimeObject("vec_vsubsws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_296] = CheckRuntimeObject("vec_vsum4ubs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_297] = CheckRuntimeObject("vec_vsum4sbs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_298] = CheckRuntimeObject("vec_vsum4shs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_299] = CheckRuntimeObject("vec_vsum2sws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_300] = CheckRuntimeObject("vec_vsumsws"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_301] = CheckRuntimeObject("vec_vrfiz"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_302] = CheckRuntimeObject("vec_vupkhsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_303] = CheckRuntimeObject("vec_vupklsb"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_304] = CheckRuntimeObject("vec_vupkhpx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_305] = CheckRuntimeObject("vec_vupklpx"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_306] = CheckRuntimeObject("vec_vupkhsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_307] = CheckRuntimeObject("vec_vupklsh"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_308] = CheckRuntimeObject("vec_vxor"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_309] = CheckRuntimeObject("vec_abs"))) return 0;
|
|
|
|
if (!(intrinsics[Intrinsic_310] = CheckRuntimeObject("vec_abss"))) return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
Boolean Intrinsics_IsPublicRuntimeObject(Object *object) {
|
|
|
|
int i;
|
|
|
|
|
|
|
|
for (i = 0; i < MaxIntrinsics; i++) {
|
|
|
|
if (object == intrinsics[i])
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|