Changeset 1958 for trunk


Ignore:
Timestamp:
Mar 13, 2012, 3:25:56 PM (7 years ago)
Author:
bhull
Message:

Support for multiple signatures

Location:
trunk/libgen/Library_Generator
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/libgen/Library_Generator/AVXInstructions.py

    r1952 r1958  
    1111        "simd_and":\
    1212        {
    13                 "signature":"SIMD_type _mm256_and_ps(SIMD_type arg1, SIMD_type arg2)",
    14                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    15                 "return_type":"SIMD_type",
    16                 "fws":[1],
     13                "signature":["SIMD_type _mm256_and_ps(SIMD_type arg1, SIMD_type arg2)"],
     14                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     15                "return_type":"SIMD_type",
     16                "fws":[[1]],
    1717        },
    1818        "simd_andc":\
    1919        {
    20                 "signature":"SIMD_type _mm256_andnot_ps(SIMD_type arg2, SIMD_type arg1)",
    21                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    22                 "return_type":"SIMD_type",
    23                 "fws":[1],
     20                "signature":["SIMD_type _mm256_andnot_ps(SIMD_type arg2, SIMD_type arg1)"],
     21                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     22                "return_type":"SIMD_type",
     23                "fws":[[1]],
    2424        },
    2525        "simd_or":\
    2626        {
    27                 "signature":"SIMD_type _mm256_or_ps(SIMD_type arg1, SIMD_type arg2)",
    28                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    29                 "return_type":"SIMD_type",
    30                 "fws":[1],
     27                "signature":["SIMD_type _mm256_or_ps(SIMD_type arg1, SIMD_type arg2)"],
     28                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     29                "return_type":"SIMD_type",
     30                "fws":[[1]],
    3131        },
    3232        "simd_xor":\
    3333        {
    34                 "signature":"SIMD_type _mm256_xor_ps(SIMD_type arg1, SIMD_type arg2)",
    35                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    36                 "return_type":"SIMD_type",
    37                 "fws":[1],
     34                "signature":["SIMD_type _mm256_xor_ps(SIMD_type arg1, SIMD_type arg2)"],
     35                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     36                "return_type":"SIMD_type",
     37                "fws":[[1]],
    3838        },
    3939        "simd_ifh":\
    4040        {
    41                 "signature":"SIMD_type (SIMD_type)_mm256_blendv_pd(SIMD_type arg3, SIMD_type arg2, SIMD_type arg1)",
     41                "signature":["SIMD_type (SIMD_type)_mm256_blendv_pd(SIMD_type arg3, SIMD_type arg2, SIMD_type arg1)"],
    4242                "args_type":{"arg1":"__m256d", "arg2":"__m256d", "arg3":"__m256d"},
    4343                "return_type":"SIMD_type",
    44                 "fws":[64],
     44                "fws":[[64]],
    4545        },
    4646        "simd_add":\
    4747        {
    48                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_add_epi$fw$, arg1, arg2)",
    49                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    50                 "return_type":"SIMD_type",
    51                 "fws":[8, 16, 32, 64],
     48                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_add_epi$fw$, arg1, arg2)"],
     49                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     50                "return_type":"SIMD_type",
     51                "fws":[[8, 16, 32, 64]],
    5252        },
    5353        "simd_sub":\
    5454        {
    55                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_sub_epi$fw$, arg1, arg2)",
    56                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    57                 "return_type":"SIMD_type",
    58                 "fws":[8, 16, 32, 64],
     55                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_sub_epi$fw$, arg1, arg2)"],
     56                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     57                "return_type":"SIMD_type",
     58                "fws":[[8, 16, 32, 64]],
    5959        },
    6060        "simd_umult":\
    6161        {
    62                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_mul_epu$fw$, arg1, arg2)",
    63                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    64                 "return_type":"SIMD_type",
    65                 "fws":[32],
     62                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_mul_epu$fw$, arg1, arg2)"],
     63                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     64                "return_type":"SIMD_type",
     65                "fws":[[32]],
    6666        },
    6767        "simd_mult":\
    6868        {
    69                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_mullo_epi$fw$, arg1, arg2)",
    70                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    71                 "return_type":"SIMD_type",
    72                 "fws":[16, 32],
     69                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_mullo_epi$fw$, arg1, arg2)"],
     70                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     71                "return_type":"SIMD_type",
     72                "fws":[[16, 32]],
    7373        },
    7474        "simd_eq":\
    7575        {
    76                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_cmpeq_epi$fw$, arg1, arg2)",
    77                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    78                 "return_type":"SIMD_type",
    79                 "fws":[8, 16, 32, 64],
     76                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_cmpeq_epi$fw$, arg1, arg2)"],
     77                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     78                "return_type":"SIMD_type",
     79                "fws":[[8, 16, 32, 64]],
    8080        },
    8181        "simd_gt":\
    8282        {
    83                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_cmpgt_epi$fw$, arg1, arg2)",
    84                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    85                 "return_type":"SIMD_type",
    86                 "fws":[8, 16, 32, 64],
     83                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_cmpgt_epi$fw$, arg1, arg2)"],
     84                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     85                "return_type":"SIMD_type",
     86                "fws":[[8, 16, 32, 64]],
    8787        },
    8888        "simd_max":\
    8989        {
    90                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_max_epi$fw$, arg1, arg2)",
    91                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    92                 "return_type":"SIMD_type",
    93                 "fws":[8, 16, 32],
     90                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_max_epi$fw$, arg1, arg2)"],
     91                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     92                "return_type":"SIMD_type",
     93                "fws":[[8, 16, 32]],
    9494        },
    9595        "simd_umax":\
    9696        {
    97                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_max_epu$fw$, arg1, arg2)",
    98                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    99                 "return_type":"SIMD_type",
    100                 "fws":[8, 16, 32],
     97                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_max_epu$fw$, arg1, arg2)"],
     98                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     99                "return_type":"SIMD_type",
     100                "fws":[[8, 16, 32]],
    101101        },
    102102        "simd_min":\
    103103        {
    104                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_min_epi$fw$, arg1, arg2)",
    105                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    106                 "return_type":"SIMD_type",
    107                 "fws":[8, 16, 32],
     104                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_min_epi$fw$, arg1, arg2)"],
     105                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     106                "return_type":"SIMD_type",
     107                "fws":[[8, 16, 32]],
    108108        },
    109109        "simd_umin":\
    110110        {
    111                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_min_epu$fw$, arg1, arg2)",
    112                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    113                 "return_type":"SIMD_type",
    114                 "fws":[8, 16, 32],
     111                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_min_epu$fw$, arg1, arg2)"],
     112                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     113                "return_type":"SIMD_type",
     114                "fws":[[8, 16, 32]],
    115115        },
    116116        "simd_srli":\
    117117        {
    118                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_srli_epi$fw$, arg1, sh)",
     118                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_srli_epi$fw$, arg1, sh)"],
    119119                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    120120                "return_type":"SIMD_type",
    121                 "fws":[16, 32, 64],
     121                "fws":[[16, 32, 64]],
    122122        },
    123123        "simd_slli":\
    124124        {
    125                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_slli_epi$fw$, arg1, sh)",
     125                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_slli_epi$fw$, arg1, sh)"],
    126126                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    127127                "return_type":"SIMD_type",
    128                 "fws":[16, 32, 64],
     128                "fws":[[16, 32, 64]],
    129129        },
    130130        "simd_srai":\
    131131        {
    132                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_srai_epi$fw$, arg1, sh)",
     132                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_srai_epi$fw$, arg1, sh)"],
    133133                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    134134                "return_type":"SIMD_type",
    135                 "fws":[16, 32],
     135                "fws":[[16, 32]],
    136136        },
    137137        "simd_constant":\
    138138        {
    139                 "signature":"SIMD_type (SIMD_type)_mm256_set1_epi$fw$(int val)",
     139                "signature":["SIMD_type (SIMD_type)_mm256_set1_epi$fw$(int val)"],
    140140                "args_type":{"val":"signed_int(32)"},
    141141                "return_type":"SIMD_type",
    142                 "fws":[8, 16, 32],
     142                "fws":[[8, 16, 32]],
    143143        },
    144144        "simd_abs":\
    145145        {
    146                 "signature":configure.AVXBuiltInVecWrapper + "(_mm_abs_epi$fw$, arg1)",
     146                "signature":[configure.AVXBuiltInVecWrapper + "(_mm_abs_epi$fw$, arg1)"],
    147147                "args_type":{"arg1":"SIMD_type"},
    148148                "return_type":"SIMD_type",
    149                 "fws":[8, 16, 32],
     149                "fws":[[8, 16, 32]],
    150150        },
    151151        "hsimd_add_hl":\
    152152        {
    153                 "signature":configure.AVXBuiltInHorWrapper + "(_mm_hadd_epi$fw/2$, arg1, arg2)",
    154                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    155                 "return_type":"SIMD_type",
    156                 "fws":[32, 64],
     153                "signature":[configure.AVXBuiltInHorWrapper + "(_mm_hadd_epi$fw/2$, arg1, arg2)"],
     154                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     155                "return_type":"SIMD_type",
     156                "fws":[[32, 64]],
    157157        },
    158158        "hsimd_packus":\
    159159        {
    160                 "signature":configure.AVXBuiltInHorWrapper + "(_mm_packus_epi$fw$, arg1, arg2)",
    161                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    162                 "return_type":"SIMD_type",
    163                 "fws":[16, 32],
     160                "signature":[configure.AVXBuiltInHorWrapper + "(_mm_packus_epi$fw$, arg1, arg2)"],
     161                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     162                "return_type":"SIMD_type",
     163                "fws":[[16, 32]],
    164164        },
    165165        "hsimd_packss":\
    166166        {
    167                 "signature":configure.AVXBuiltInHorWrapper + "(_mm_packs_epi$fw$, arg1, arg2)",
    168                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    169                 "return_type":"SIMD_type",
    170                 "fws":[16, 32],
     167                "signature":[configure.AVXBuiltInHorWrapper + "(_mm_packs_epi$fw$, arg1, arg2)"],
     168                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     169                "return_type":"SIMD_type",
     170                "fws":[[16, 32]],
    171171        },
    172172        "mvmd_fill":\
    173173        {
    174                 "signature":"SIMD_type (SIMD_type)_mm256_set1_epi$fw$(int val1)",
     174                "signature":["SIMD_type (SIMD_type)_mm256_set1_epi$fw$(int val1)"],
    175175                "args_type":{"val1":"signed_int(32)"},
    176176                "return_type":"SIMD_type",
    177                 "fws":[8, 16, 32],
     177                "fws":[[8, 16, 32]],
    178178        },
    179179        "mvmd_fill4":\
    180180        {
    181                 "signature":"SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val1, int val2, int val3, int val4)",
     181                "signature":["SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val1, int val2, int val3, int val4)"],
    182182                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)"},
    183183                "return_type":"SIMD_type",
    184                 "fws":[32],
     184                "fws":[[32]],
    185185        },
    186186        "mvmd_fill8":\
    187187        {
    188                 "signature":"SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)",
     188                "signature":["SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)"],
    189189                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)", \
    190190                                        "val5":"signed_int(32)", "val6":"signed_int(32)", "val7":"signed_int(32)", "val8":"signed_int(32)"},
    191191                "return_type":"SIMD_type",
    192                 "fws":[16],
     192                "fws":[[16]],
    193193        },
    194194        "mvmd_fill16":\
    195195        {
    196                 "signature":"SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16, int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16)",
     196                "signature":["SIMD_type (SIMD_type)_mm256_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16, int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16)"],
    197197                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)", \
    198198                                        "val5":"signed_int(32)", "val6":"signed_int(32)", "val7":"signed_int(32)", "val8":"signed_int(32)", \
     
    200200                                        "val13":"signed_int(32)", "val14":"signed_int(32)", "val15":"signed_int(32)", "val16":"signed_int(32)"},
    201201                "return_type":"SIMD_type",
    202                 "fws":[8],
     202                "fws":[[8]],
    203203        },
    204204        "bitblock_load_aligned":\
    205205        {
    206                 "signature":"SIMD_type _mm256_load_ps(float* arg1)",
     206                "signature":["SIMD_type _mm256_load_ps(float* arg1)"],
    207207                "args_type":{"arg1":"float*"},
    208208                "return_type":"SIMD_type",
    209                 "fws":[256],
     209                "fws":[[256]],
    210210        },
    211211        "bitblock_store_aligned":\
    212212        {
    213                 "signature":"void _mm256_store_ps(float* arg2, SIMD_type arg1)",
     213                "signature":["void _mm256_store_ps(float* arg2, SIMD_type arg1)"],
    214214                "args_type":{"arg2":"float*", "arg1":"SIMD_type"},
    215215                "return_type":"void",
    216                 "fws":[256],
     216                "fws":[[256]],
    217217        },
    218218        "bitblock_load_unaligned":\
    219219        {
    220                 "signature":"SIMD_type _mm256_loadu_ps(float* arg1)",
     220                "signature":["SIMD_type _mm256_loadu_ps(float* arg1)"],
    221221                "args_type":{"arg1":"float*"},
    222222                "return_type":"SIMD_type",
    223                 "fws":[256],
     223                "fws":[[256]],
    224224        },
    225225        "bitblock_store_unaligned":\
    226226        {
    227                 "signature":"void _mm256_storeu_ps(float* arg2, SIMD_type arg1)",
     227                "signature":["void _mm256_storeu_ps(float* arg2, SIMD_type arg1)"],
    228228                "args_type":{"arg2":"float*", "arg1":"SIMD_type"},
    229229                "return_type":"void",
    230                 "fws":[256],
     230                "fws":[[256]],
    231231        },
    232232        "_mm256_set_epi32":\
    233233        {
    234                 "signature":"SIMD_type _mm256_set_epi32(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)",
     234                "signature":["SIMD_type _mm256_set_epi32(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)"],
    235235                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)", \
    236236                                        "val5":"signed_int(32)", "val6":"signed_int(32)", "val7":"signed_int(32)", "val8":"signed_int(32)"},
    237237                "return_type":"SIMD_type",
    238                 "fws":[32],
     238                "fws":[[32]],
    239239        },
    240240        "_mm256_castsi128_si256":\
    241241        {
    242                 "signature":"SIMD_type _mm256_castsi128_si256(__m128i arg1)",
     242                "signature":["SIMD_type _mm256_castsi128_si256(__m128i arg1)"],
    243243                "args_type":{"arg1":"__m128i"},
    244244                "return_type":"SIMD_type",
    245                 "fws":[256],
     245                "fws":[[256]],
    246246        },
    247247        "_mm_sad_epu8":\
    248248        {
    249                 "signature":"__m128i _mm_sad_epu8(__m128i arg1, __m128i arg2)",
    250                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    251                 "return_type":"__m128i",
    252                 "fws":[8],
     249                "signature":["__m128i _mm_sad_epu8(__m128i arg1, __m128i arg2)"],
     250                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     251                "return_type":"__m128i",
     252                "fws":[[8]],
    253253        },
    254254        "_mm_set1_epi32":\
    255255        {
    256                 "signature":"__m128i _mm_set1_epi32(int val1)",
     256                "signature":["__m128i _mm_set1_epi32(int val1)"],
    257257                "args_type":{"val1":"signed_int(32)"},
    258258                "return_type":"__m128i",
    259                 "fws":[32],
     259                "fws":[[32]],
    260260        },
    261261        "_mm_extract_epi8":\
    262262        {
    263                 "signature":"int _mm_extract_epi8(__m128i arg1, int pos)",
     263                "signature":["int _mm_extract_epi8(__m128i arg1, int pos)"],
    264264                "args_type":{"arg1":"__m128i", "pos":"signed_int(32)"},
    265265                "return_type":"signed_int(32)",
    266                 "fws":[8],
     266                "fws":[[8]],
    267267        },
    268268        "_mm_extract_epi16":\
    269269        {
    270                 "signature":"int _mm_extract_epi16(__m128i arg1, int pos)",
     270                "signature":["int _mm_extract_epi16(__m128i arg1, int pos)"],
    271271                "args_type":{"arg1":"__m128i", "pos":"signed_int(32)"},
    272272                "return_type":"signed_int(32)",
    273                 "fws":[16],
     273                "fws":[[16]],
    274274        },
    275275        "_mm_extract_epi32":\
    276276        {
    277                 "signature":"int _mm_extract_epi32(__m128i arg1, int pos)",
     277                "signature":["int _mm_extract_epi32(__m128i arg1, int pos)"],
    278278                "args_type":{"arg1":"__m128i", "pos":"signed_int(32)"},
    279279                "return_type":"signed_int(32)",
    280                 "fws":[32],
     280                "fws":[[32]],
    281281        },
    282282        "_mm256_testz_si256":\
    283283        {
    284                 "signature":"int _mm256_testz_si256(SIMD_type arg1, SIMD_type arg1)",
     284                "signature":["int _mm256_testz_si256(SIMD_type arg1, SIMD_type arg1)"],
    285285                "args_type":{"arg1":"SIMD_type"},
    286286                "return_type":"signed_int(32)",
    287                 "fws":[256],
     287                "fws":[[256]],
    288288        },
    289289        "_mm_movemask_epi8":\
    290290        {
    291                 "signature":"int _mm_movemask_epi8(__m128i arg1)",
     291                "signature":["int _mm_movemask_epi8(__m128i arg1)"],
    292292                "args_type":{"arg1":"__m128i"},
    293293                "return_type":"signed_int(32)",
    294                 "fws":[8],
     294                "fws":[[8]],
    295295        },
    296296        "_mm_unpackhi_epi8":\
    297297        {
    298                 "signature":"__m128i _mm_unpackhi_epi8(__m128i arg2, __m128i arg1)",
    299                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    300                 "return_type":"__m128i",
    301                 "fws":[8],
     298                "signature":["__m128i _mm_unpackhi_epi8(__m128i arg2, __m128i arg1)"],
     299                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     300                "return_type":"__m128i",
     301                "fws":[[8]],
    302302        },
    303303        "_mm_unpackhi_epi16":\
    304304        {
    305                 "signature":"__m128i _mm_unpackhi_epi16(__m128i arg2, __m128i arg1)",
    306                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    307                 "return_type":"__m128i",
    308                 "fws":[16],
     305                "signature":["__m128i _mm_unpackhi_epi16(__m128i arg2, __m128i arg1)"],
     306                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     307                "return_type":"__m128i",
     308                "fws":[[16]],
    309309        },
    310310        "_mm_unpackhi_epi32":\
    311311        {
    312                 "signature":"__m128i _mm_unpackhi_epi32(__m128i arg2, __m128i arg1)",
    313                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    314                 "return_type":"__m128i",
    315                 "fws":[32],
     312                "signature":["__m128i _mm_unpackhi_epi32(__m128i arg2, __m128i arg1)"],
     313                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     314                "return_type":"__m128i",
     315                "fws":[[32]],
    316316        },
    317317        "_mm_unpackhi_epi64":\
    318318        {
    319                 "signature":"__m128i _mm_unpackhi_epi64(__m128i arg2, __m128i arg1)",
    320                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    321                 "return_type":"__m128i",
    322                 "fws":[64],
     319                "signature":["__m128i _mm_unpackhi_epi64(__m128i arg2, __m128i arg1)"],
     320                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     321                "return_type":"__m128i",
     322                "fws":[[64]],
    323323        },
    324324        "_mm_unpacklo_epi8":\
    325325        {
    326                 "signature":"__m128i _mm_unpacklo_epi8(__m128i arg2, __m128i arg1)",
    327                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    328                 "return_type":"__m128i",
    329                 "fws":[8],
     326                "signature":["__m128i _mm_unpacklo_epi8(__m128i arg2, __m128i arg1)"],
     327                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     328                "return_type":"__m128i",
     329                "fws":[[8]],
    330330        },
    331331        "_mm_unpacklo_epi16":\
    332332        {
    333                 "signature":"__m128i _mm_unpacklo_epi16(__m128i arg2, __m128i arg1)",
    334                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    335                 "return_type":"__m128i",
    336                 "fws":[16],
     333                "signature":["__m128i _mm_unpacklo_epi16(__m128i arg2, __m128i arg1)"],
     334                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     335                "return_type":"__m128i",
     336                "fws":[[16]],
    337337        },
    338338        "_mm_unpacklo_epi32":\
    339339        {
    340                 "signature":"__m128i _mm_unpacklo_epi32(__m128i arg2, __m128i arg1)",
    341                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    342                 "return_type":"__m128i",
    343                 "fws":[32],
     340                "signature":["__m128i _mm_unpacklo_epi32(__m128i arg2, __m128i arg1)"],
     341                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     342                "return_type":"__m128i",
     343                "fws":[[32]],
    344344        },
    345345        "_mm_unpacklo_epi64":\
    346346        {
    347                 "signature":"__m128i _mm_unpacklo_epi64(__m128i arg2, __m128i arg1)",
    348                 "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
    349                 "return_type":"__m128i",
    350                 "fws":[64],
     347                "signature":["__m128i _mm_unpacklo_epi64(__m128i arg2, __m128i arg1)"],
     348                "args_type":{"arg1":"__m128i", "arg2":"__m128i"},
     349                "return_type":"__m128i",
     350                "fws":[[64]],
    351351        },
    352352       
  • trunk/libgen/Library_Generator/BuiltIns.py

    r1767 r1958  
    9595                builtInOperations = {}
    9696                for opName in self.builtInsTable:
    97                         opSignature = self.builtInsTable[opName]["signature"]
    9897                        args_type = self.builtInsTable[opName]["args_type"]
    99                         if arch != configure.AVX:
    100                                 builtInOperations[opName] = BuiltInOperation(arch, opSignature, args_type)
    101                         elif configure.AVXBuiltInVecWrapper not in opSignature and configure.AVXBuiltInHorWrapper not in opSignature:
    102                                 builtInOperations[opName] = BuiltInOperation(arch, opSignature, args_type)
     98                        for i in range(len(self.builtInsTable[opName]["signature"])):
     99                                opSignature = self.builtInsTable[opName]["signature"][i]
     100                                fws = self.builtInsTable[opName]["fws"][i]
     101                                theOp = BuiltInOperation(arch, opSignature, args_type)
     102                                for fw in fws:
     103                                        if arch != configure.AVX:
     104                                                builtInOperations[opName, fw] = theOp
     105                                        elif configure.AVXBuiltInVecWrapper not in opSignature and configure.AVXBuiltInHorWrapper not in opSignature:
     106                                                builtInOperations[opName, fw] = theOp
    103107                return builtInOperations
    104108       
     
    114118       
    115119        def PackAnAVXOperation(self, operation):
    116                 builtInPattern = self.builtInsTable[operation.fullName]["signature"]
     120                for i in range(len(self.builtInsTable[operation.fullName]["signature"])):
     121                        if operation.fieldWidth in self.builtInsTable[operation.fullName]["fws"][i]:
     122                                builtInPattern = self.builtInsTable[operation.fullName]["signature"][i]
    117123                argsList = [x.strip(" )") for x in builtInPattern[builtInPattern.find("(")+1:].split(",")]
    118124                sseBuiltInPattern = self.InterpretFw(operation, argsList[0])
     
    210216                        return content
    211217                else:
    212                         content = self.builtInOperations[operation.fullName].GetCallingConvention()
     218                        content = self.builtInOperations[operation.fullName, operation.fieldWidth].GetCallingConvention()
    213219                        content = content.replace("(SIMD_type)", "("+configure.Bitblock_type[operation.arch]+")")
    214220                        return self.InterpretFw(operation, content)
     
    227233                        #when there is no wrappers involved
    228234                                #builtInPattern = self.builtInsTable[operation.fullName]["Pattern"]
    229                                 callingConv = self.builtInOperations[operation.fullName].GetCallingConvention()
     235                                callingConv = self.builtInOperations[operation.fullName, operation.fieldWidth].GetCallingConvention()
    230236                                if "(SIMD_type)" in callingConv:
    231237                                        callingConv = callingConv.replace("(SIMD_type)", "("+configure.Bitblock_type[operation.arch]+")")
     
    234240                elif isinstance(operation, str):
    235241                        #return only the intrinsic of operation
    236                         return self.builtInOperations[str].GetCallingConvention()
     242                        return self.builtInOperations[str, self.builtInsTable[str]["fws"][0][0]].GetCallingConvention()
    237243       
    238244        def PackAnOperationInC(self, operation):
     
    270276                        if self.builtInsTable.has_key(operation.fullName) == False:
    271277                                return False
    272                         return operation.fieldWidth in self.builtInsTable[operation.fullName]["fws"]
     278                        found = False
     279                        for fws in self.builtInsTable[operation.fullName]["fws"]:
     280                                if operation.fieldWidth in fws:
     281                                        found = True
     282                        return found
    273283                elif isinstance(operation, str):
    274284                #If operation is just a string instance, only check whether the operation name is in the builtInsTable
     
    295305                        return self.builtInsTable[operation]["return_type"]
    296306                return None
     307               
     308        def GetBuiltInOperation(self, operation):
     309                '''Get a built in opteration from the operation object or its name
     310                '''
     311                if isinstance(operation, Operation.Operation):
     312                        return self.builtInOperations[operation.fullName, operation.fieldWidth]
     313                elif isinstance(operation, str):
     314                        return self.builtInOperations[operation, self.builtInsTable[operation]["fws"][0][0]]
     315                return None
  • trunk/libgen/Library_Generator/NEONInstructions.py

    r1767 r1958  
    99    "simd_not":\
    1010    {
    11         "signature":"SIMD_type (SIMD_type)vmvnq_u32(uint32x4_t arg1)",
     11        "signature":["SIMD_type (SIMD_type)vmvnq_u32(uint32x4_t arg1)"],
    1212        "args_type":{"arg1":"uint32x4_t"},
    1313        "return_type":"SIMD_type",
    14         "fws":[1],
     14        "fws":[[1]],
    1515    },
    1616    "simd_and":\
    1717    {
    18         "signature":"SIMD_type vandq_u64(SIMD_type arg1, SIMD_type arg2)",
     18        "signature":["SIMD_type vandq_u64(SIMD_type arg1, SIMD_type arg2)"],
    1919        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2020        "return_type":"SIMD_type",
    21         "fws":[1],
     21        "fws":[[1]],
    2222    },
    2323    "simd_andc":\
    2424    {
    25         "signature":"SIMD_type vbicq_u64(SIMD_type arg1, SIMD_type arg2)",
     25        "signature":["SIMD_type vbicq_u64(SIMD_type arg1, SIMD_type arg2)"],
    2626        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2727        "return_type":"SIMD_type",
    28         "fws":[1],
     28        "fws":[[1]],
    2929    },
    3030    "simd_or":\
    3131    {
    32         "signature":"SIMD_type vorrq_u64(SIMD_type arg1, SIMD_type arg2)",
     32        "signature":["SIMD_type vorrq_u64(SIMD_type arg1, SIMD_type arg2)"],
    3333        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    3434        "return_type":"SIMD_type",
    35         "fws":[1],
     35        "fws":[[1]],
    3636    },
    3737    "simd_xor":\
    3838    {
    39         "signature":"SIMD_type veorq_u64(SIMD_type arg1, SIMD_type arg2)",
     39        "signature":["SIMD_type veorq_u64(SIMD_type arg1, SIMD_type arg2)"],
    4040        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    4141        "return_type":"SIMD_type",
    42         "fws":[1],
     42        "fws":[[1]],
    4343    },
    4444    "simd_ifh":\
    4545    {
    46         "signature":"SIMD_type vbslq_u64(SIMD_type arg1, SIMD_type arg2, SIMD_type arg3)",
     46        "signature":["SIMD_type vbslq_u64(SIMD_type arg1, SIMD_type arg2, SIMD_type arg3)"],
    4747        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type", "arg3":"SIMD_type"},
    4848        "return_type":"SIMD_type",
    49         "fws":[1],
     49        "fws":[[1]],
    5050    },
    5151    "simd_add":\
    5252    {
    53         "signature":"SIMD_type (SIMD_type)vaddq_u$fw$(SIMD_type arg1, SIMD_type arg2)",
    54         "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
    55         "return_type":"SIMD_type",
    56         "fws":[8, 16, 32, 64],
     53        "signature":["SIMD_type (SIMD_type)vaddq_u$fw$(SIMD_type arg1, SIMD_type arg2)"],
     54        "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
     55        "return_type":"SIMD_type",
     56        "fws":[[8, 16, 32, 64]],
    5757    },
    5858    "simd_sub":\
    5959    {
    60         "signature":"SIMD_type (SIMD_type)vsubq_u$fw$(SIMD_type arg1, SIMD_type arg2)",
    61         "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
    62         "return_type":"SIMD_type",
    63         "fws":[8, 16, 32, 64],
     60        "signature":["SIMD_type (SIMD_type)vsubq_u$fw$(SIMD_type arg1, SIMD_type arg2)"],
     61        "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
     62        "return_type":"SIMD_type",
     63        "fws":[[8, 16, 32, 64]],
    6464    },
    6565    "simd_mult":\
    6666    {
    67         "signature":"SIMD_type (SIMD_type)vmulq_s$fw$(SIMD_type arg1, SIMD_type arg2)",
    68         "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
    69         "return_type":"SIMD_type",
    70         "fws":[8, 16, 32],
     67        "signature":["SIMD_type (SIMD_type)vmulq_s$fw$(SIMD_type arg1, SIMD_type arg2)"],
     68        "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
     69        "return_type":"SIMD_type",
     70        "fws":[[8, 16, 32]],
    7171    },
    7272    "simd_eq":\
    7373    {
    74         "signature":"SIMD_type (SIMD_type)vceqq_u$fw$(SIMD_type arg1, SIMD_type arg2)",
    75         "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
    76         "return_type":"SIMD_type",
    77         "fws":[8, 16, 32],
     74        "signature":["SIMD_type (SIMD_type)vceqq_u$fw$(SIMD_type arg1, SIMD_type arg2)"],
     75        "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
     76        "return_type":"SIMD_type",
     77        "fws":[[8, 16, 32]],
    7878    },
    7979    "simd_gt":\
    8080    {
    81         "signature":"SIMD_type (SIMD_type)vcgtq_s$fw$(SIMD_type arg1, SIMD_type arg2)",
    82         "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
    83         "return_type":"SIMD_type",
    84         "fws":[8, 16, 32],
     81        "signature":["SIMD_type (SIMD_type)vcgtq_s$fw$(SIMD_type arg1, SIMD_type arg2)"],
     82        "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
     83        "return_type":"SIMD_type",
     84        "fws":[[8, 16, 32]],
    8585    },
    8686    "simd_lt":\
    8787    {
    88         "signature":"SIMD_type (SIMD_type)vcltq_s$fw$(SIMD_type arg1, SIMD_type arg2)",
    89         "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
    90         "return_type":"SIMD_type",
    91         "fws":[8, 16, 32],
     88        "signature":["SIMD_type (SIMD_type)vcltq_s$fw$(SIMD_type arg1, SIMD_type arg2)"],
     89        "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
     90        "return_type":"SIMD_type",
     91        "fws":[[8, 16, 32]],
    9292    },
    9393    "simd_max":\
    9494    {
    95         "signature":"SIMD_type (SIMD_type)vmaxq_s$fw$(SIMD_type arg1, SIMD_type arg2)",
    96         "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
    97         "return_type":"SIMD_type",
    98         "fws":[8, 16, 32],
     95        "signature":["SIMD_type (SIMD_type)vmaxq_s$fw$(SIMD_type arg1, SIMD_type arg2)"],
     96        "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
     97        "return_type":"SIMD_type",
     98        "fws":[[8, 16, 32]],
    9999    },
    100100    "simd_min":\
    101101    {
    102         "signature":"SIMD_type (SIMD_type)vminq_s$fw$(SIMD_type arg1, SIMD_type arg2)",
    103         "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
    104         "return_type":"SIMD_type",
    105         "fws":[8, 16, 32],
     102        "signature":["SIMD_type (SIMD_type)vminq_s$fw$(SIMD_type arg1, SIMD_type arg2)"],
     103        "args_type":{"arg1":"NEON_stype(fw)", "arg2":"NEON_stype(fw)"},
     104        "return_type":"SIMD_type",
     105        "fws":[[8, 16, 32]],
    106106    },
    107107#    "simd_srli":\
    108108#    {
    109 #        "signature":"SIMD_type (SIMD_type)vshrq_n_u$fw$(SIMD_type arg1, int sh)",
     109#        "signature":["SIMD_type (SIMD_type)vshrq_n_u$fw$(SIMD_type arg1, int sh)"],
    110110#        "args_type":{"arg1":"NEON_utype(fw)", "sh":"signed_int(32)"},
    111111#        "return_type":"SIMD_type",
    112 #        "fws":[8, 16, 32, 64],
     112#        "fws":[[8, 16, 32, 64]],
    113113#    },
    114114#    "simd_slli":\
    115115#    {
    116 #        "signature":"SIMD_type (SIMD_type)vshlq_n_u$fw$(SIMD_type arg1, int sh)",
     116#        "signature":["SIMD_type (SIMD_type)vshlq_n_u$fw$(SIMD_type arg1, int sh)"],
    117117#        "args_type":{"arg1":"NEON_utype(fw)", "sh":"signed_int(32)"},
    118118#        "return_type":"SIMD_type",
    119 #        "fws":[8, 16, 32, 64],
     119#        "fws":[[8, 16, 32, 64]],
    120120#    },
    121121#    "simd_sll":\
    122122#    {
    123 #        "signature":"SIMD_type (SIMD_type)vshlq_u$fw$(SIMD_type arg1, SIMD_type shift_mask)",
     123#        "signature":["SIMD_type (SIMD_type)vshlq_u$fw$(SIMD_type arg1, SIMD_type shift_mask)"],
    124124#        "args_type":{"arg1":"NEON_utype(fw)", "shift_mask":"NEON_stype(fw)"},
    125125#        "return_type":"SIMD_type",
    126 #        "fws":[8, 16, 32, 64],
     126#        "fws":[[8, 16, 32, 64]],
    127127#    },
    128128#    "simd_srai":\
    129129#    {
    130 #        "signature":"SIMD_type (SIMD_type)vshrq_n_s$fw$(SIMD_type arg1, int sh)",
     130#        "signature":["SIMD_type (SIMD_type)vshrq_n_s$fw$(SIMD_type arg1, int sh)"],
    131131#        "args_type":{"arg1":"NEON_stype(fw)", "sh":"signed_int(32)"},
    132132#        "return_type":"SIMD_type",
    133 #        "fws":[8, 16, 32, 64],
     133#        "fws":[[8, 16, 32, 64]],
    134134#    },
    135135    "simd_constant":\
    136136    {
    137         "signature":"SIMD_type (SIMD_type)vdupq_n_u$fw$(int val)",
     137        "signature":["SIMD_type (SIMD_type)vdupq_n_u$fw$(int val)"],
    138138        "args_type":{"val":"unsigned_int(fw)"},
    139139        "return_type":"SIMD_type",
    140         "fws":[8, 16, 32, 64],
     140        "fws":[[8, 16, 32, 64]],
    141141    },
    142142    "simd_abs":\
    143143    {
    144         "signature":"SIMD_type (SIMD_type)vabsq_s$fw$(SIMD_type arg1)",
     144        "signature":["SIMD_type (SIMD_type)vabsq_s$fw$(SIMD_type arg1)"],
    145145        "args_type":{"arg1":"NEON_stype(fw)"},
    146146        "return_type":"SIMD_type",
    147         "fws":[8, 16, 32],
     147        "fws":[[8, 16, 32]],
    148148    },
    149149    "simd_neg":\
    150150    {
    151         "signature":"SIMD_type (SIMD_type)vnegq_s$fw$(SIMD_type arg1)",
     151        "signature":["SIMD_type (SIMD_type)vnegq_s$fw$(SIMD_type arg1)"],
    152152        "args_type":{"arg1":"NEON_stype(fw)"},
    153153        "return_type":"SIMD_type",
    154         "fws":[8, 16, 32],
     154        "fws":[[8, 16, 32]],
    155155    },
    156156    "simd_popcount":\
    157157    {
    158         "signature":"SIMD_type (SIMD_type)vcntq_u$fw$(SIMD_type arg1)",
     158        "signature":["SIMD_type (SIMD_type)vcntq_u$fw$(SIMD_type arg1)"],
    159159        "args_type":{"arg1":"NEON_utype(fw)"},
    160160        "return_type":"SIMD_type",
    161         "fws":[8],
     161        "fws":[[8]],
    162162    },
    163163    "hsimd_packh":\
    164164    {
    165         "signature":"SIMD_type (SIMD_type)(vuzpq_u$fw/2$(SIMD_type arg2, SIMD_type arg1).val[1])",
     165        "signature":["SIMD_type (SIMD_type)(vuzpq_u$fw/2$(SIMD_type arg2, SIMD_type arg1).val[1])"],
    166166        "args_type":{"arg1":"NEON_utype(fw/2)", "arg2":"NEON_utype(fw/2)"},
    167167        "return_type":"SIMD_type",
    168         "fws":[16, 32, 64],
     168        "fws":[[16, 32, 64]],
    169169    },
    170170    "hsimd_packl":\
    171171    {
    172         "signature":"SIMD_type (SIMD_type)(vuzpq_u$fw/2$(SIMD_type arg2, SIMD_type arg1).val[0])",
     172        "signature":["SIMD_type (SIMD_type)(vuzpq_u$fw/2$(SIMD_type arg2, SIMD_type arg1).val[0])"],
    173173        "args_type":{"arg1":"NEON_utype(fw/2)", "arg2":"NEON_utype(fw/2)"},
    174174        "return_type":"SIMD_type",
    175         "fws":[16, 32, 64],
     175        "fws":[[16, 32, 64]],
    176176    },
    177177    "esimd_mergeh":\
    178178    {
    179         "signature":"SIMD_type (SIMD_type)(vzipq_u$fw$(SIMD_type arg2, SIMD_type arg1).val[1])",
    180         "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
    181         "return_type":"SIMD_type",
    182         "fws":[8, 16, 32],
     179        "signature":["SIMD_type (SIMD_type)(vzipq_u$fw$(SIMD_type arg2, SIMD_type arg1).val[1])"],
     180        "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
     181        "return_type":"SIMD_type",
     182        "fws":[[8, 16, 32]],
    183183    },
    184184    "esimd_mergel":\
    185185    {
    186         "signature":"SIMD_type (SIMD_type)(vzipq_u$fw$(SIMD_type arg2, SIMD_type arg1).val[0])",
    187         "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
    188         "return_type":"SIMD_type",
    189         "fws":[8, 16, 32],
     186        "signature":["SIMD_type (SIMD_type)(vzipq_u$fw$(SIMD_type arg2, SIMD_type arg1).val[0])"],
     187        "args_type":{"arg1":"NEON_utype(fw)", "arg2":"NEON_utype(fw)"},
     188        "return_type":"SIMD_type",
     189        "fws":[[8, 16, 32]],
    190190    },
    191191    "mvmd_fill":\
    192192    {
    193         "signature":"SIMD_type (SIMD_type)vdupq_n_u$fw$(int val1)",
     193        "signature":["SIMD_type (SIMD_type)vdupq_n_u$fw$(int val1)"],
    194194        "args_type":{"val1":"unsigned_int(fw)"},
    195195        "return_type":"SIMD_type",
    196         "fws":[8, 16, 32, 64],
     196        "fws":[[8, 16, 32, 64]],
    197197    },
    198198    "mvmd_extract":\
    199199    {
    200         "signature":"int vgetq_lane_u$fw$(SIMD_type arg1, int pos)",
     200        "signature":["int vgetq_lane_u$fw$(SIMD_type arg1, int pos)"],
    201201        "args_type":{"arg1":"NEON_utype(fw)", "pos":"signed_int(32)"},
    202202        "return_type":"unsigned_int(64)",
    203         "fws":[8, 16, 32, 64],
     203        "fws":[[8, 16, 32, 64]],
    204204    },
    205205    "bitblock_load_aligned":\
    206206    {
    207         "signature":"SIMD_type vld1q_u64(uint64_t const* arg1)",
     207        "signature":["SIMD_type vld1q_u64(uint64_t const* arg1)"],
    208208        "args_type":{"arg1":"uint64_t const*"},
    209209        "return_type":"SIMD_type",
    210         "fws":[128],
     210        "fws":[[128]],
    211211    },
    212212    "bitblock_store_aligned":\
    213213    {
    214         "signature":"void vst1q_u64(uint64_t* arg1, SIMD_type arg2)",
     214        "signature":["void vst1q_u64(uint64_t* arg1, SIMD_type arg2)"],
    215215        "args_type":{"arg1":"uint64_t*", "arg2":"SIMD_type"},
    216216        "return_type":"void",
    217         "fws":[128],
     217        "fws":[[128]],
    218218    },
    219219    "bitblock_load_unaligned":\
    220220    {
    221         "signature":"SIMD_type vld1q_u64(uint64_t const* arg1)",
     221        "signature":["SIMD_type vld1q_u64(uint64_t const* arg1)"],
    222222        "args_type":{"arg1":"uint64_t const*"},
    223223        "return_type":"SIMD_type",
    224         "fws":[128],
     224        "fws":[[128]],
    225225    },
    226226    "bitblock_store_unaligned":\
    227227    {
    228         "signature":"void vst1q_u64(uint64_t* arg1, SIMD_type arg2)",
     228        "signature":["void vst1q_u64(uint64_t* arg1, SIMD_type arg2)"],
    229229        "args_type":{"arg1":"uint64_t*", "arg2":"SIMD_type"},
    230230        "return_type":"void",
    231         "fws":[128],
     231        "fws":[[128]],
    232232    },
    233233    "vsetq_lane_u64":\
    234234    {
    235         "signature":"SIMD_type vsetq_lane_u64(int val, SIMD_type arg1, int pos)",
     235        "signature":["SIMD_type vsetq_lane_u64(int val, SIMD_type arg1, int pos)"],
    236236        "args_type":{"val":"uint64_t", "arg1":"SIMD_type", "pos":"signed_int(32)"},
    237237        "return_type":"SIMD_type",
    238         "fws":[64],
     238        "fws":[[64]],
    239239    },
    240240    "vcombine_u64":\
    241241    {
    242         "signature":"SIMD_type vcombine_u64(uint64x1_t low, uint64x1_t high)",
     242        "signature":["SIMD_type vcombine_u64(uint64x1_t low, uint64x1_t high)"],
    243243        "args_type":{"low":"uint64x1_t", "high":"uint64x1_t"},
    244244        "return_type":"SIMD_type",
    245         "fws":[64],
     245        "fws":[[64]],
    246246    },
    247247    "vget_high_u64":\
    248248    {
    249         "signature":"uint64x1_t vget_high_u64(SIMD_type arg1)",
     249        "signature":["uint64x1_t vget_high_u64(SIMD_type arg1)"],
    250250        "args_type":{"arg1":"SIMD_type"},
    251251        "return_type":"uint64x1_t",
    252         "fws":[64],
     252        "fws":[[64]],
    253253    },
    254254    "vget_low_u64":\
    255255    {
    256         "signature":"uint64x1_t vget_low_u64(SIMD_type arg1)",
     256        "signature":["uint64x1_t vget_low_u64(SIMD_type arg1)"],
    257257        "args_type":{"arg1":"SIMD_type"},
    258258        "return_type":"uint64x1_t",
    259         "fws":[64],
     259        "fws":[[64]],
    260260    },
    261261    "vorr_u64":\
    262262    {
    263         "signature":"uint64x1_t vorr_u64(uint64x1_t arg1, uint64x1_t arg2)",
     263        "signature":["uint64x1_t vorr_u64(uint64x1_t arg1, uint64x1_t arg2)"],
    264264        "args_type":{"arg1":"uint64x1_t", "arg2":"uint64x1_t"},
    265265        "return_type":"uint64x1_t",
    266         "fws":[64],
     266        "fws":[[64]],
    267267    },
    268268    "vshl_n_u64":\
    269269    {
    270         "signature":"uint64x1_t vshl_n_u64(uint64x1_t arg1, int sh)",
     270        "signature":["uint64x1_t vshl_n_u64(uint64x1_t arg1, int sh)"],
    271271        "args_type":{"arg1":"uint64x1_t", "sh":"signed_int(32)"},
    272272        "return_type":"uint64x1_t",
    273         "fws":[64],
     273        "fws":[[64]],
    274274    },
    275275    "vshr_n_u64":\
    276276    {
    277         "signature":"uint64x1_t vshr_n_u64(uint64x1_t arg1, int sh)",
     277        "signature":["uint64x1_t vshr_n_u64(uint64x1_t arg1, int sh)"],
    278278        "args_type":{"arg1":"uint64x1_t", "sh":"signed_int(32)"},
    279279        "return_type":"uint64x1_t",
    280         "fws":[64],
     280        "fws":[[64]],
    281281    },
    282282    "vshrq_n_u8":\
    283283    {
    284         "signature":"uint8x16_t vshrq_n_u8(uint8x16_t arg1, int sh)",
     284        "signature":["uint8x16_t vshrq_n_u8(uint8x16_t arg1, int sh)"],
    285285        "args_type":{"arg1":"uint8x16_t", "sh":"signed_int(32)"},
    286286        "return_type":"uint8x16_t",
    287         "fws":[8],
     287        "fws":[[8]],
    288288    },
    289289    "vshrq_n_u16":\
    290290    {
    291         "signature":"uint16x8_t vshrq_n_u16(uint16x8_t arg1, int sh)",
     291        "signature":["uint16x8_t vshrq_n_u16(uint16x8_t arg1, int sh)"],
    292292        "args_type":{"arg1":"uint16x8_t", "sh":"signed_int(32)"},
    293293        "return_type":"uint16x8_t",
    294         "fws":[16],
     294        "fws":[[16]],
    295295    },
    296296    "vshrq_n_u32":\
    297297    {
    298         "signature":"uint32x4_t vshrq_n_u32(uint32x4_t arg1, int sh)",
     298        "signature":["uint32x4_t vshrq_n_u32(uint32x4_t arg1, int sh)"],
    299299        "args_type":{"arg1":"uint32x4_t", "sh":"signed_int(32)"},
    300300        "return_type":"uint32x4_t",
    301         "fws":[32],
     301        "fws":[[32]],
    302302    },
    303303    "vshrq_n_u64":\
    304304    {
    305         "signature":"uint64x2_t vshrq_n_u64(uint64x2_t arg1, int sh)",
     305        "signature":["uint64x2_t vshrq_n_u64(uint64x2_t arg1, int sh)"],
    306306        "args_type":{"arg1":"uint64x2_t", "sh":"signed_int(32)"},
    307307        "return_type":"uint64x2_t",
    308         "fws":[64],
     308        "fws":[[64]],
    309309    },
    310310    "vshlq_n_u8":\
    311311    {
    312         "signature":"uint8x16_t vshlq_n_u8(uint8x16_t arg1, int sh)",
     312        "signature":["uint8x16_t vshlq_n_u8(uint8x16_t arg1, int sh)"],
    313313        "args_type":{"arg1":"uint8x16_t", "sh":"signed_int(32)"},
    314314        "return_type":"uint8x16_t",
    315         "fws":[8],
     315        "fws":[[8]],
    316316    },
    317317    "vshlq_n_u16":\
    318318    {
    319         "signature":"uint16x8_t vshlq_n_u16(uint16x8_t arg1, int sh)",
     319        "signature":["uint16x8_t vshlq_n_u16(uint16x8_t arg1, int sh)"],
    320320        "args_type":{"arg1":"uint16x8_t", "sh":"signed_int(32)"},
    321321        "return_type":"uint16x8_t",
    322         "fws":[16],
     322        "fws":[[16]],
    323323    },
    324324    "vshlq_n_u32":\
    325325    {
    326         "signature":"uint32x4_t vshlq_n_u32(uint32x4_t arg1, int sh)",
     326        "signature":["uint32x4_t vshlq_n_u32(uint32x4_t arg1, int sh)"],
    327327        "args_type":{"arg1":"uint32x4_t", "sh":"signed_int(32)"},
    328328        "return_type":"uint32x4_t",
    329         "fws":[32],
     329        "fws":[[32]],
    330330    },
    331331    "vshlq_n_u64":\
    332332    {
    333         "signature":"uint64x2_t vshlq_n_u64(uint64x2_t arg1, int sh)",
     333        "signature":["uint64x2_t vshlq_n_u64(uint64x2_t arg1, int sh)"],
    334334        "args_type":{"arg1":"uint64x2_t", "sh":"signed_int(32)"},
    335335        "return_type":"uint64x2_t",
    336         "fws":[64],
     336        "fws":[[64]],
    337337    },
    338338    "vshrq_n_s8":\
    339339    {
    340         "signature":"int8x16_t vshrq_n_s8(int8x16_t arg1, int sh)",
     340        "signature":["int8x16_t vshrq_n_s8(int8x16_t arg1, int sh)"],
    341341        "args_type":{"arg1":"int8x16_t", "sh":"signed_int(32)"},
    342342        "return_type":"int8x16_t",
    343         "fws":[8],
     343        "fws":[[8]],
    344344    },
    345345    "vshrq_n_s16":\
    346346    {
    347         "signature":"int16x8_t vshrq_n_s16(int16x8_t arg1, int sh)",
     347        "signature":["int16x8_t vshrq_n_s16(int16x8_t arg1, int sh)"],
    348348        "args_type":{"arg1":"int16x8_t", "sh":"signed_int(32)"},
    349349        "return_type":"int16x8_t",
    350         "fws":[16],
     350        "fws":[[16]],
    351351    },
    352352    "vshrq_n_s32":\
    353353    {
    354         "signature":"int32x4_t vshrq_n_s32(int32x4_t arg1, int sh)",
     354        "signature":["int32x4_t vshrq_n_s32(int32x4_t arg1, int sh)"],
    355355        "args_type":{"arg1":"int32x4_t", "sh":"signed_int(32)"},
    356356        "return_type":"int32x4_t",
    357         "fws":[32],
     357        "fws":[[32]],
    358358    },
    359359    "vshrq_n_s64":\
    360360    {
    361         "signature":"int64x2_t vshrq_n_s64(int64x2_t arg1, int sh)",
     361        "signature":["int64x2_t vshrq_n_s64(int64x2_t arg1, int sh)"],
    362362        "args_type":{"arg1":"int64x2_t", "sh":"signed_int(32)"},
    363363        "return_type":"int64x2_t",
    364         "fws":[64],
     364        "fws":[[64]],
    365365    },
    366366    "vshlq_u64":\
    367367    {
    368         "signature":"uint64x2_t vshlq_u64(uint64x2_t arg1, int64x2_t shift_mask)",
     368        "signature":["uint64x2_t vshlq_u64(uint64x2_t arg1, int64x2_t shift_mask)"],
    369369        "args_type":{"arg1":"SIMD_type", "shift_mask":"int64x2_t"},
    370370        "return_type":"SIMD_type",
    371         "fws":[64],
     371        "fws":[[64]],
    372372    },
    373373    "vextq_u64":\
    374374    {
    375         "signature":"uint64x2_t vextq_u64(uint64x2_t arg1, uint64x2_t arg2, int c)",
     375        "signature":["uint64x2_t vextq_u64(uint64x2_t arg1, uint64x2_t arg2, int c)"],
    376376        "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type", "c":"signed_int(32)"},
    377377        "return_type":"SIMD_type",
    378         "fws":[64],
     378        "fws":[[64]],
    379379    },
    380380}
  • trunk/libgen/Library_Generator/SSE2Instructions.py

    r1870 r1958  
    88        "simd_and":\
    99        {
    10                 "signature":"SIMD_type _mm_and_si128(SIMD_type arg1, SIMD_type arg2)",
    11                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    12                 "return_type":"SIMD_type",
    13                 "fws":[1],
     10                "signature":["SIMD_type _mm_and_si128(SIMD_type arg1, SIMD_type arg2)"],
     11                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     12                "return_type":"SIMD_type",
     13                "fws":[[1]],
    1414        },
    1515        "simd_andc":\
    1616        {
    17                 "signature":"SIMD_type _mm_andnot_si128(SIMD_type arg2, SIMD_type arg1)",
    18                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    19                 "return_type":"SIMD_type",
    20                 "fws":[1],
     17                "signature":["SIMD_type _mm_andnot_si128(SIMD_type arg2, SIMD_type arg1)"],
     18                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     19                "return_type":"SIMD_type",
     20                "fws":[[1]],
    2121        },
    2222        "simd_or":\
    2323        {
    24                 "signature":"SIMD_type _mm_or_si128(SIMD_type arg1, SIMD_type arg2)",
    25                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    26                 "return_type":"SIMD_type",
    27                 "fws":[1],
     24                "signature":["SIMD_type _mm_or_si128(SIMD_type arg1, SIMD_type arg2)"],
     25                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     26                "return_type":"SIMD_type",
     27                "fws":[[1]],
    2828        },
    2929        "simd_xor":\
    3030        {
    31                 "signature":"SIMD_type _mm_xor_si128(SIMD_type arg1, SIMD_type arg2)",
    32                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    33                 "return_type":"SIMD_type",
    34                 "fws":[1],
     31                "signature":["SIMD_type _mm_xor_si128(SIMD_type arg1, SIMD_type arg2)"],
     32                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     33                "return_type":"SIMD_type",
     34                "fws":[[1]],
    3535        },
    3636        "simd_add":\
    3737        {
    38                 "signature":"SIMD_type _mm_add_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    39                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    40                 "return_type":"SIMD_type",
    41                 "fws":[8, 16, 32, 64],
     38                "signature":["SIMD_type _mm_add_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     39                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     40                "return_type":"SIMD_type",
     41                "fws":[[8, 16, 32, 64]],
    4242        },
    4343        "simd_sub":\
    4444        {
    45                 "signature":"SIMD_type _mm_sub_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    46                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    47                 "return_type":"SIMD_type",
    48                 "fws":[8, 16, 32, 64],
     45                "signature":["SIMD_type _mm_sub_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     46                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     47                "return_type":"SIMD_type",
     48                "fws":[[8, 16, 32, 64]],
    4949        },
    5050        "simd_umult":\
    5151        {
    52                 "signature":"SIMD_type _mm_mul_epu$fw$(SIMD_type arg1, SIMD_type arg2)",
    53                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    54                 "return_type":"SIMD_type",
    55                 "fws":[32],
     52                "signature":["SIMD_type _mm_mul_epu$fw$(SIMD_type arg1, SIMD_type arg2)"],
     53                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     54                "return_type":"SIMD_type",
     55                "fws":[[32]],
    5656        },
    5757        "simd_mult":\
    5858        {
    59                 "signature":"SIMD_type _mm_mullo_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    60                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    61                 "return_type":"SIMD_type",
    62                 "fws":[16],
     59                "signature":["SIMD_type _mm_mullo_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     60                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     61                "return_type":"SIMD_type",
     62                "fws":[[16]],
    6363        },
    6464        "simd_eq":\
    6565        {
    66                 "signature":"SIMD_type _mm_cmpeq_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    67                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    68                 "return_type":"SIMD_type",
    69                 "fws":[8, 16, 32],
     66                "signature":["SIMD_type _mm_cmpeq_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     67                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     68                "return_type":"SIMD_type",
     69                "fws":[[8, 16, 32]],
    7070        },
    7171        "simd_gt":\
    7272        {
    73                 "signature":"SIMD_type _mm_cmpgt_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    74                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    75                 "return_type":"SIMD_type",
    76                 "fws":[8, 16, 32],
     73                "signature":["SIMD_type _mm_cmpgt_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     74                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     75                "return_type":"SIMD_type",
     76                "fws":[[8, 16, 32]],
    7777        },
    7878        "simd_max":\
    7979        {
    80                 "signature":"SIMD_type _mm_max_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    81                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    82                 "return_type":"SIMD_type",
    83                 "fws":[16],
     80                "signature":["SIMD_type _mm_max_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     81                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     82                "return_type":"SIMD_type",
     83                "fws":[[16]],
    8484        },
    8585        "simd_umax":\
    8686        {
    87                 "signature":"SIMD_type _mm_max_epu$fw$(SIMD_type arg1, SIMD_type arg2)",
    88                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    89                 "return_type":"SIMD_type",
    90                 "fws":[8],
     87                "signature":["SIMD_type _mm_max_epu$fw$(SIMD_type arg1, SIMD_type arg2)"],
     88                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     89                "return_type":"SIMD_type",
     90                "fws":[[8]],
    9191        },
    9292        "simd_min":\
    9393        {
    94                 "signature":"SIMD_type _mm_min_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
    95                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    96                 "return_type":"SIMD_type",
    97                 "fws":[16],
     94                "signature":["SIMD_type _mm_min_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
     95                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     96                "return_type":"SIMD_type",
     97                "fws":[[16]],
    9898        },
    9999        "simd_umin":\
    100100        {
    101                 "signature":"SIMD_type _mm_min_epu$fw$(SIMD_type arg1, SIMD_type arg2)",
    102                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    103                 "return_type":"SIMD_type",
    104                 "fws":[8],
     101                "signature":["SIMD_type _mm_min_epu$fw$(SIMD_type arg1, SIMD_type arg2)"],
     102                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     103                "return_type":"SIMD_type",
     104                "fws":[[8]],
    105105        },
    106106        "simd_srli":\
    107107        {
    108                 "signature":"SIMD_type _mm_srli_epi$fw$(SIMD_type arg1, int sh)",
    109                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    110                 "return_type":"SIMD_type",
    111                 "fws":[16, 32, 64],
     108                "signature":["SIMD_type _mm_srli_epi$fw$(SIMD_type arg1, int sh)"],
     109                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     110                "return_type":"SIMD_type",
     111                "fws":[[16, 32, 64]],
    112112        },
    113113        "simd_slli":\
    114114        {
    115                 "signature":"SIMD_type _mm_slli_epi$fw$(SIMD_type arg1, int sh)",
    116                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    117                 "return_type":"SIMD_type",
    118                 "fws":[16, 32, 64],
     115                "signature":["SIMD_type _mm_slli_epi$fw$(SIMD_type arg1, int sh)"],
     116                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     117                "return_type":"SIMD_type",
     118                "fws":[[16, 32, 64]],
    119119        },
    120120        "simd_srai":\
    121121        {
    122                 "signature":"SIMD_type _mm_srai_epi$fw$(SIMD_type arg1, int sh)",
    123                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    124                 "return_type":"SIMD_type",
    125                 "fws":[16, 32],
     122                "signature":["SIMD_type _mm_srai_epi$fw$(SIMD_type arg1, int sh)"],
     123                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     124                "return_type":"SIMD_type",
     125                "fws":[[16, 32]],
    126126        },
    127127        "simd_constant":\
    128128        {
    129                 "signature":"SIMD_type _mm_set1_epi$fw$(int val)",
     129                "signature":["SIMD_type _mm_set1_epi$fw$(int val)"],
    130130                "args_type":{"val":"signed_int(32)"},
    131131                "return_type":"SIMD_type",
    132                 "fws":[8, 16, 32],
     132                "fws":[[8, 16, 32]],
    133133        },
    134134        "hsimd_packus":\
    135135        {
    136                 "signature":"SIMD_type _mm_packus_epi$fw$(SIMD_type arg2, SIMD_type arg1)",
    137                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    138                 "return_type":"SIMD_type",
    139                 "fws":[16],
     136                "signature":["SIMD_type _mm_packus_epi$fw$(SIMD_type arg2, SIMD_type arg1)"],
     137                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     138                "return_type":"SIMD_type",
     139                "fws":[[16]],
    140140        },
    141141        "hsimd_packss":\
    142142        {
    143                 "signature":"SIMD_type _mm_packs_epi$fw$(SIMD_type arg2, SIMD_type arg1)",
    144                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    145                 "return_type":"SIMD_type",
    146                 "fws":[16, 32],
     143                "signature":["SIMD_type _mm_packs_epi$fw$(SIMD_type arg2, SIMD_type arg1)"],
     144                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     145                "return_type":"SIMD_type",
     146                "fws":[[16, 32]],
    147147        },
    148148        "hsimd_signmask":\
    149149        {
    150                 "signature":"int _mm_movemask_epi$fw$(SIMD_type arg1)",
     150                "signature":["int _mm_movemask_epi$fw$(SIMD_type arg1)"],
    151151                "args_type":{"arg1":"SIMD_type"},
    152152                "return_type":"signed_int(32)",
    153                 "fws":[8],
     153                "fws":[[8]],
    154154        },
    155155        "esimd_mergeh":\
    156156        {
    157                 "signature":"SIMD_type _mm_unpackhi_epi$fw$(SIMD_type arg2, SIMD_type arg1)",
    158                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    159                 "return_type":"SIMD_type",
    160                 "fws":[8, 16, 32, 64],
     157                "signature":["SIMD_type _mm_unpackhi_epi$fw$(SIMD_type arg2, SIMD_type arg1)"],
     158                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     159                "return_type":"SIMD_type",
     160                "fws":[[8, 16, 32, 64]],
    161161        },
    162162        "esimd_mergel":\
    163163        {
    164                 "signature":"SIMD_type _mm_unpacklo_epi$fw$(SIMD_type arg2, SIMD_type arg1)",
    165                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    166                 "return_type":"SIMD_type",
    167                 "fws":[8, 16, 32, 64],
     164                "signature":["SIMD_type _mm_unpacklo_epi$fw$(SIMD_type arg2, SIMD_type arg1)"],
     165                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     166                "return_type":"SIMD_type",
     167                "fws":[[8, 16, 32, 64]],
    168168        },
    169169        "mvmd_srli":\
    170170        {
    171                 "signature":"SIMD_type _mm_srli_si128(SIMD_type arg1, int sh)",
    172                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    173                 "return_type":"SIMD_type",
    174                 "fws":[8],
     171                "signature":["SIMD_type _mm_srli_si128(SIMD_type arg1, int sh)"],
     172                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     173                "return_type":"SIMD_type",
     174                "fws":[[8]],
    175175        },
    176176        "mvmd_slli":\
    177177        {
    178                 "signature":"SIMD_type _mm_slli_si128(SIMD_type arg1, int sh)",
    179                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    180                 "return_type":"SIMD_type",
    181                 "fws":[8],
     178                "signature":["SIMD_type _mm_slli_si128(SIMD_type arg1, int sh)"],
     179                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     180                "return_type":"SIMD_type",
     181                "fws":[[8]],
    182182        },     
    183183        "mvmd_fill":\
    184184        {
    185                 "signature":"SIMD_type _mm_set1_epi$fw$(int val1)",
     185                "signature":["SIMD_type _mm_set1_epi$fw$(int val1)"],
    186186                "args_type":{"val1":"signed_int(32)"},
    187187                "return_type":"SIMD_type",
    188                 "fws":[8, 16, 32],
     188                "fws":[[8, 16, 32]],
    189189        },
    190190        "mvmd_fill4":\
    191191        {
    192                 "signature":"SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4)",
     192                "signature":["SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4)"],
    193193                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)"},
    194194                "return_type":"SIMD_type",
    195                 "fws":[32],
     195                "fws":[[32]],
    196196        },
    197197        "mvmd_fill8":\
    198198        {
    199                 "signature":"SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)",
     199                "signature":["SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8)"],
    200200                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)", \
    201201                                        "val5":"signed_int(32)", "val6":"signed_int(32)", "val7":"signed_int(32)", "val8":"signed_int(32)"},
    202202                "return_type":"SIMD_type",
    203                 "fws":[16],
     203                "fws":[[16]],
    204204        },
    205205        "mvmd_fill16":\
    206206        {
    207                 "signature":"SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, \
    208                                         int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16)",
     207                "signature":["SIMD_type _mm_set_epi$fw$(int val1, int val2, int val3, int val4, int val5, int val6, int val7, int val8, \
     208                                        int val9, int val10, int val11, int val12, int val13, int val14, int val15, int val16)"],
    209209                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)", \
    210210                                        "val5":"signed_int(32)", "val6":"signed_int(32)", "val7":"signed_int(32)", "val8":"signed_int(32)", \
     
    212212                                        "val13":"signed_int(32)", "val14":"signed_int(32)", "val15":"signed_int(32)", "val16":"signed_int(32)"},
    213213                "return_type":"SIMD_type",
    214                 "fws":[8],
     214                "fws":[[8]],
    215215        },
    216216        "mvmd_shufflei":\
    217217        {
    218                 "signature":"SIMD_type _mm_shuffle_epi$fw$(SIMD_type arg1, int msk)",
     218                "signature":["SIMD_type _mm_shuffle_epi$fw$(SIMD_type arg1, int msk)"],
    219219                "args_type":{"arg1":"SIMD_type", "msk":"signed_int(32)"},
    220220                "return_type":"SIMD_type",
    221                 "fws":[32],
     221                "fws":[[32]],
    222222        },
    223223        "bitblock_load_aligned":\
    224224        {
    225                 "signature":"SIMD_type _mm_load_si128(SIMD_type* arg1)",
     225                "signature":["SIMD_type _mm_load_si128(SIMD_type* arg1)"],
    226226                "args_type":{"arg1":"SIMD_type*"},
    227227                "return_type":"SIMD_type",
    228                 "fws":[128],
     228                "fws":[[128]],
    229229        },
    230230        "bitblock_store_aligned":\
    231231        {
    232                 "signature":"void _mm_store_si128(SIMD_type* arg2, SIMD_type arg1)",
     232                "signature":["void _mm_store_si128(SIMD_type* arg2, SIMD_type arg1)"],
    233233                "args_type":{"arg2":"SIMD_type*", "arg1":"SIMD_type"},
    234234                "return_type":"void",
    235                 "fws":[128],
     235                "fws":[[128]],
    236236        },
    237237        "bitblock_load_unaligned":\
    238238        {
    239                 "signature":"SIMD_type _mm_loadu_si128(SIMD_type* arg1)",
     239                "signature":["SIMD_type _mm_loadu_si128(SIMD_type* arg1)"],
    240240                "args_type":{"arg1":"SIMD_type*"},
    241241                "return_type":"SIMD_type",
    242                 "fws":[128],
     242                "fws":[[128]],
    243243        },
    244244        "bitblock_store_unaligned":\
    245245        {
    246                 "signature":"void _mm_storeu_si128(SIMD_type* arg2, SIMD_type arg1)",
     246                "signature":["void _mm_storeu_si128(SIMD_type* arg2, SIMD_type arg1)"],
    247247                "args_type":{"arg2":"SIMD_type*", "arg1":"SIMD_type"},
    248248                "return_type":"void",
    249                 "fws":[128],
     249                "fws":[[128]],
    250250        },
    251251        "_mm_sll_epi64":\
    252252        {
    253                 "signature":"SIMD_type _mm_sll_epi64(SIMD_type arg1, SIMD_type sh)",
     253                "signature":["SIMD_type _mm_sll_epi64(SIMD_type arg1, SIMD_type sh)"],
    254254                "args_type":{"arg1":"SIMD_type", "sh":"SIMD_type"},
    255255                "return_type":"SIMD_type",
    256                 "fws":[64],
     256                "fws":[[64]],
    257257        },
    258258        "_mm_slli_si128":\
    259259        {
    260                 "signature":"SIMD_type _mm_slli_si128(SIMD_type arg1, int sh)",
    261                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    262                 "return_type":"SIMD_type",
    263                 "fws":[128],
     260                "signature":["SIMD_type _mm_slli_si128(SIMD_type arg1, int sh)"],
     261                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     262                "return_type":"SIMD_type",
     263                "fws":[[128]],
    264264        },
    265265        "_mm_srl_epi64":\
    266266        {
    267                 "signature":"SIMD_type _mm_srl_epi64(SIMD_type arg1, SIMD_type sh)",
     267                "signature":["SIMD_type _mm_srl_epi64(SIMD_type arg1, SIMD_type sh)"],
    268268                "args_type":{"arg1":"SIMD_type", "sh":"SIMD_type"},
    269269                "return_type":"SIMD_type",
    270                 "fws":[64],
     270                "fws":[[64]],
    271271        },
    272272        "_mm_srli_si128":\
    273273        {
    274                 "signature":"SIMD_type _mm_srli_si128(SIMD_type arg1, int sh)",
    275                 "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
    276                 "return_type":"SIMD_type",
    277                 "fws":[128],
     274                "signature":["SIMD_type _mm_srli_si128(SIMD_type arg1, int sh)"],
     275                "args_type":{"arg1":"SIMD_type", "sh":"signed_int(32)"},
     276                "return_type":"SIMD_type",
     277                "fws":[[128]],
    278278        },
    279279        "_mm_set_epi32":\
    280280        {
    281                 "signature":"SIMD_type _mm_set_epi32(int val1, int val2, int val3, int val4)",
     281                "signature":["SIMD_type _mm_set_epi32(int val1, int val2, int val3, int val4)"],
    282282                "args_type":{"val1":"signed_int(32)", "val2":"signed_int(32)", "val3":"signed_int(32)", "val4":"signed_int(32)"},
    283283                "return_type":"SIMD_type",
    284                 "fws":[32],
     284                "fws":[[32]],
    285285        },
    286286        "_mm_set1_epi32":\
    287287        {
    288                 "signature":"SIMD_type _mm_set1_epi32(int val1)",
     288                "signature":["SIMD_type _mm_set1_epi32(int val1)"],
    289289                "args_type":{"val1":"signed_int(32)"},
    290290                "return_type":"SIMD_type",
    291                 "fws":[32],
     291                "fws":[[32]],
    292292        },
    293293        "_mm_cvtsi32_si128":\
    294294        {
    295                 "signature":"SIMD_type _mm_cvtsi32_si128(int val1)",
     295                "signature":["SIMD_type _mm_cvtsi32_si128(int val1)"],
    296296                "args_type":{"val1":"signed_int(32)"},
    297297                "return_type":"SIMD_type",
    298                 "fws":[128],
     298                "fws":[[128]],
    299299        },
    300300        "_mm_shufflehi_epi16":\
    301301        {
    302                 "signature":"SIMD_type _mm_shufflehi_epi16(SIMD_type arg1, int msk)",
     302                "signature":["SIMD_type _mm_shufflehi_epi16(SIMD_type arg1, int msk)"],
    303303                "args_type":{"arg1":"SIMD_type", "msk":"signed_int(32)"},
    304304                "return_type":"SIMD_type",
    305                 "fws":[16],
     305                "fws":[[16]],
    306306        },
    307307        "_mm_shufflelo_epi16":\
    308308        {
    309                 "signature":"SIMD_type _mm_shufflelo_epi16(SIMD_type arg1, int msk)",
     309                "signature":["SIMD_type _mm_shufflelo_epi16(SIMD_type arg1, int msk)"],
    310310                "args_type":{"arg1":"SIMD_type", "msk":"signed_int(32)"},
    311311                "return_type":"SIMD_type",
    312                 "fws":[16],
     312                "fws":[[16]],
    313313        },
    314314        "_mm_sad_epu8":\
    315315        {
    316                 "signature":"SIMD_type _mm_sad_epu8(SIMD_type arg1, SIMD_type arg2)",
    317                 "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    318                 "return_type":"SIMD_type",
    319                 "fws":[8],
     316                "signature":["SIMD_type _mm_sad_epu8(SIMD_type arg1, SIMD_type arg2)"],
     317                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
     318                "return_type":"SIMD_type",
     319                "fws":[[8]],
    320320        },
    321321        "_mm_extract_epi16":\
    322322        {
    323                 "signature":"int _mm_extract_epi16(SIMD_type arg1, int pos)",
     323                "signature":["int _mm_extract_epi16(SIMD_type arg1, int pos)"],
    324324                "args_type":{"arg1":"SIMD_type", "pos":"signed_int(32)"},
    325325                "return_type":"signed_int(32)",
    326                 "fws":[16],
     326                "fws":[[16]],
    327327        },
    328328        "_mm_movemask_ps":\
    329329        {
    330                 "signature":"int _mm_movemask_ps(__m128 arg1)",
     330                "signature":["int _mm_movemask_ps(__m128 arg1)"],
    331331                "args_type":{"arg1":"__m128"},
    332332                "return_type":"signed_int(32)",
    333                 "fws":[32],
     333                "fws":[[32]],
    334334        },
    335335        "_mm_movemask_pd":\
    336336        {
    337                 "signature":"int _mm_movemask_pd(__m128 arg1)",
     337                "signature":["int _mm_movemask_pd(__m128 arg1)"],
    338338                "args_type":{"arg1":"__m128"},
    339339                "return_type":"signed_int(32)",
    340                 "fws":[64],
     340                "fws":[[64]],
    341341        },
    342342}
  • trunk/libgen/Library_Generator/SSE4_1Instructions.py

    r1767 r1958  
    1010        "simd_mult":\
    1111        {
    12                 "signature":"SIMD_type _mm_mullo_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     12                "signature":["SIMD_type _mm_mullo_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    1313                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    1414                "return_type":"SIMD_type",
    15                 "fws":[16, 32],
     15                "fws":[[16, 32]],
    1616        },
    1717        "simd_eq":\
    1818        {
    19                 "signature":"SIMD_type _mm_cmpeq_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     19                "signature":["SIMD_type _mm_cmpeq_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    2020                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2121                "return_type":"SIMD_type",
    22                 "fws":[8, 16, 32, 64],
     22                "fws":[[8, 16, 32, 64]],
    2323        },
    2424        "simd_max":\
    2525        {
    26                 "signature":"SIMD_type _mm_max_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     26                "signature":["SIMD_type _mm_max_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    2727                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2828                "return_type":"SIMD_type",
    29                 "fws":[8, 16, 32],
     29                "fws":[[8, 16, 32]],
    3030        },
    3131        "simd_umax":\
    3232        {
    33                 "signature":"SIMD_type _mm_max_epu$fw$(SIMD_type arg1, SIMD_type arg2)",
     33                "signature":["SIMD_type _mm_max_epu$fw$(SIMD_type arg1, SIMD_type arg2)"],
    3434                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    3535                "return_type":"SIMD_type",
    36                 "fws":[8, 16, 32],
     36                "fws":[[8, 16, 32]],
    3737        },
    3838        "simd_min":\
    3939        {
    40                 "signature":"SIMD_type _mm_min_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     40                "signature":["SIMD_type _mm_min_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    4141                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    4242                "return_type":"SIMD_type",
    43                 "fws":[8, 16, 32],
     43                "fws":[[8, 16, 32]],
    4444        },
    4545        "simd_umin":\
    4646        {
    47                 "signature":"SIMD_type _mm_min_epu$fw$(SIMD_type arg1, SIMD_type arg2)",
     47                "signature":["SIMD_type _mm_min_epu$fw$(SIMD_type arg1, SIMD_type arg2)"],
    4848                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    4949                "return_type":"SIMD_type",
    50                 "fws":[8, 16, 32],
     50                "fws":[[8, 16, 32]],
    5151        },
    5252        "hsimd_packus":\
    5353        {
    54                 "signature":"SIMD_type _mm_packus_epi$fw$(SIMD_type arg2, SIMD_type arg1)",
     54                "signature":["SIMD_type _mm_packus_epi$fw$(SIMD_type arg2, SIMD_type arg1)"],
    5555                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    5656                "return_type":"SIMD_type",
    57                 "fws":[16, 32],
     57                "fws":[[16, 32]],
    5858        },
    5959        "_mm_blendv_epi8":\
    6060        {
    61                 "signature":"SIMD_type _mm_blendv_epi8(SIMD_type arg3, SIMD_type arg2, SIMD_type arg1)",
     61                "signature":["SIMD_type _mm_blendv_epi8(SIMD_type arg3, SIMD_type arg2, SIMD_type arg1)"],
    6262                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type", "arg3":"SIMD_type"},
    6363                "return_type":"SIMD_type",
    64                 "fws":[8],
     64                "fws":[[8]],
    6565        },
    6666        "_mm_extract_epi8":\
    6767        {
    68                 "signature":"int _mm_extract_epi8(SIMD_type arg1, int pos)",
     68                "signature":["int _mm_extract_epi8(SIMD_type arg1, int pos)"],
    6969                "args_type":{"arg1":"SIMD_type", "pos":"signed_int(32)"},
    7070                "return_type":"signed_int(32)",
    71                 "fws":[8],
     71                "fws":[[8]],
    7272        },
    7373        "_mm_extract_epi32":\
    7474        {
    75                 "signature":"int _mm_extract_epi32(SIMD_type arg1, int pos)",
     75                "signature":["int _mm_extract_epi32(SIMD_type arg1, int pos)"],
    7676                "args_type":{"arg1":"SIMD_type", "pos":"signed_int(32)"},
    7777                "return_type":"signed_int(32)",
    78                 "fws":[32],
     78                "fws":[[32]],
    7979        },
    8080        "_mm_cvtepi8_epi16":\
    8181        {
    82                 "signature":"SIMD_type _mm_cvtepi8_epi16(SIMD_type arg1)",
     82                "signature":["SIMD_type _mm_cvtepi8_epi16(SIMD_type arg1)"],
    8383                "args_type":{"arg1":"SIMD_type"},
    8484                "return_type":"SIMD_type",
    85                 "fws":[8],
     85                "fws":[[8]],
    8686        },
    8787        "_mm_cvtepi16_epi32":\
    8888        {
    89                 "signature":"SIMD_type _mm_cvtepi16_epi32(SIMD_type arg1)",
     89                "signature":["SIMD_type _mm_cvtepi16_epi32(SIMD_type arg1)"],
    9090                "args_type":{"arg1":"SIMD_type"},
    9191                "return_type":"SIMD_type",
    92                 "fws":[16],
     92                "fws":[[16]],
    9393        },
    9494        "_mm_cvtepi32_epi64":\
    9595        {
    96                 "signature":"SIMD_type _mm_cvtepi32_epi64(SIMD_type arg1)",
     96                "signature":["SIMD_type _mm_cvtepi32_epi64(SIMD_type arg1)"],
    9797                "args_type":{"arg1":"SIMD_type"},
    9898                "return_type":"SIMD_type",
    99                 "fws":[32],
     99                "fws":[[32]],
    100100        },
    101101        "_mm_cvtepu8_epi16":
    102102        {
    103                 "signature":"SIMD_type _mm_cvtepu8_epi16(SIMD_type arg1)",
     103                "signature":["SIMD_type _mm_cvtepu8_epi16(SIMD_type arg1)"],
    104104                "args_type":{"arg1":"SIMD_type"},
    105105                "return_type":"SIMD_type",
    106                 "fws":[8],
     106                "fws":[[8]],
    107107        },
    108108        "_mm_cvtepu16_epi32":
    109109        {
    110                 "signature":"SIMD_type _mm_cvtepu16_epi32(SIMD_type arg1)",
     110                "signature":["SIMD_type _mm_cvtepu16_epi32(SIMD_type arg1)"],
    111111                "args_type":{"arg1":"SIMD_type"},
    112112                "return_type":"SIMD_type",
    113                 "fws":[16],
     113                "fws":[[16]],
    114114        },
    115115        "_mm_cvtepu32_epi64":
    116116        {
    117                 "signature":"SIMD_type _mm_cvtepu32_epi64(SIMD_type arg1)",
     117                "signature":["SIMD_type _mm_cvtepu32_epi64(SIMD_type arg1)"],
    118118                "args_type":{"arg1":"SIMD_type"},
    119119                "return_type":"SIMD_type",
    120                 "fws":[32],
     120                "fws":[[32]],
    121121        },
    122122        "_mm_mul_epi32":
    123123        {
    124                 "signature":"SIMD_type _mm_mul_epi32(SIMD_type arg1, SIMD_type arg2)",
     124                "signature":["SIMD_type _mm_mul_epi32(SIMD_type arg1, SIMD_type arg2)"],
    125125                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    126126                "return_type":"SIMD_type",
    127                 "fws":[32],
     127                "fws":[[32]],
    128128        },
    129129}.items())
  • trunk/libgen/Library_Generator/SSE4_2Instructions.py

    r1767 r1958  
    1010        "simd_gt":\
    1111        {
    12                 "signature":"SIMD_type _mm_cmpgt_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     12                "signature":["SIMD_type _mm_cmpgt_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    1313                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    1414                "return_type":"SIMD_type",
    15                 "fws":[8, 16, 32, 64],
     15                "fws":[[8, 16, 32, 64]],
    1616        },
    1717}.items())
  • trunk/libgen/Library_Generator/SSSE3Instructions.py

    r1767 r1958  
    1010        "simd_abs":\
    1111        {
    12                 "signature":"SIMD_type _mm_abs_epi$fw$(SIMD_type arg1)",
     12                "signature":["SIMD_type _mm_abs_epi$fw$(SIMD_type arg1)"],
    1313                "args_type":{"arg1":"SIMD_type"},
    1414                "return_type":"SIMD_type",
    15                 "fws":[8, 16, 32],
     15                "fws":[[8, 16, 32]],
    1616        },
    1717        "hsimd_add_hl":\
    1818        {
    19                 "signature":"SIMD_type _mm_hadd_epi$fw/2$(SIMD_type arg2, SIMD_type arg1)",
     19                "signature":["SIMD_type _mm_hadd_epi$fw/2$(SIMD_type arg2, SIMD_type arg1)"],
    2020                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2121                "return_type":"SIMD_type",
    22                 "fws":[32, 64],
     22                "fws":[[32, 64]],
    2323        },
    2424        "mvmd_shuffle":\
    2525        {
    26                 "signature":"SIMD_type _mm_shuffle_epi$fw$(SIMD_type arg1, SIMD_type arg2)",
     26                "signature":["SIMD_type _mm_shuffle_epi$fw$(SIMD_type arg1, SIMD_type arg2)"],
    2727                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    2828                "return_type":"SIMD_type",
    29                 "fws":[8],
     29                "fws":[[8]],
    3030        },
    3131        "_mm_hsub_epi16":\
    3232        {
    33                 "signature":"SIMD_type _mm_hsub_epi16(SIMD_type arg1, SIMD_type arg2)",
     33                "signature":["SIMD_type _mm_hsub_epi16(SIMD_type arg1, SIMD_type arg2)"],
    3434                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    3535                "return_type":"SIMD_type",
    36                 "fws":[16],
     36                "fws":[[16]],
    3737        },
    3838        "_mm_hsub_epi32":\
    3939        {
    40                 "signature":"SIMD_type _mm_hsub_epi32(SIMD_type arg1, SIMD_type arg2)",
     40                "signature":["SIMD_type _mm_hsub_epi32(SIMD_type arg1, SIMD_type arg2)"],
    4141                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    4242                "return_type":"SIMD_type",
    43                 "fws":[32],
     43                "fws":[[32]],
    4444        },
    4545        "_mm_sign_epi8":\
    4646        {
    47                 "signature":"SIMD_type _mm_sign_epi8(SIMD_type arg1, SIMD_type arg2)",
     47                "signature":["SIMD_type _mm_sign_epi8(SIMD_type arg1, SIMD_type arg2)"],
    4848                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    4949                "return_type":"SIMD_type",
    50                 "fws":[8],
     50                "fws":[[8]],
    5151        },
    5252        "_mm_sign_epi16":\
    5353        {
    54                 "signature":"SIMD_type _mm_sign_epi16(SIMD_type arg1, SIMD_type arg2)",
     54                "signature":["SIMD_type _mm_sign_epi16(SIMD_type arg1, SIMD_type arg2)"],
    5555                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    5656                "return_type":"SIMD_type",
    57                 "fws":[16],
     57                "fws":[[16]],
    5858        },
    5959        "_mm_sign_epi32":\
    6060        {
    61                 "signature":"SIMD_type _mm_sign_epi32(SIMD_type arg1, SIMD_type arg2)",
     61                "signature":["SIMD_type _mm_sign_epi32(SIMD_type arg1, SIMD_type arg2)"],
    6262                "args_type":{"arg1":"SIMD_type", "arg2":"SIMD_type"},
    6363                "return_type":"SIMD_type",
    64                 "fws":[32],
     64                "fws":[[32]],
    6565        },
    6666}.items())
  • trunk/libgen/Library_Generator/Utility.py

    r1767 r1958  
    4141def CallingStatement(func, arch, args):
    4242        if builtIns.IsOperationBuiltIn(func):
    43                 builtInOp = BuiltIns.BuiltInOperation(arch, builtIns.builtInsTable[func]["signature"], builtIns.builtInsTable[func]["args_type"])
     43                builtInOp = BuiltIns.BuiltInOperation(arch, builtIns.builtInsTable[func]["signature"][0], builtIns.builtInsTable[func]["args_type"])
    4444                builtInOp.arguments = args
    4545                return builtInOp.GetCallingConvention()
Note: See TracChangeset for help on using the changeset viewer.