Lines Matching refs:mnemonic

224   typedef void (MacroAssembler::*mnemonic)(const VRegister& vd,
1643 // ==== Tests for instructions of the form <mnemonic> <V><d>, <Vn>.<T> ====
2405 typename Test2OpImmediateNEONHelper_t<Tm>::mnemonic helper,
2498 typename Test2OpImmediateNEONHelper_t<Tm>::mnemonic helper,
2870 #define CALL_TEST_FP_HELPER(mnemonic, variant, type, input) \
2871 Test##type(STRINGIFY(mnemonic) "_" STRINGIFY(variant), \
2872 &MacroAssembler::mnemonic, \
2875 kExpected_##mnemonic##_##variant, \
2876 kExpectedCount_##mnemonic##_##variant)
2878 #define DEFINE_TEST_FP(mnemonic, type, input) \
2879 TEST(mnemonic##_d) { \
2880 CALL_TEST_FP_HELPER(mnemonic, d, type, kInputDouble##input); \
2882 TEST(mnemonic##_s) { \
2883 CALL_TEST_FP_HELPER(mnemonic, s, type, kInputFloat##input); \
2886 #define DEFINE_TEST_FP_FP16(mnemonic, type, input) \
2887 TEST(mnemonic##_d) { \
2888 CALL_TEST_FP_HELPER(mnemonic, d, type, kInputDouble##input); \
2890 TEST(mnemonic##_s) { \
2891 CALL_TEST_FP_HELPER(mnemonic, s, type, kInputFloat##input); \
2893 TEST(mnemonic##_h) { \
2894 CALL_TEST_FP_HELPER(mnemonic, h, type, kInputFloat16##input); \
2942 #define DEFINE_TEST_FP_TO_INT(mnemonic, type, input) \
2943 TEST(mnemonic##_xd) { \
2944 CALL_TEST_FP_HELPER(mnemonic, xd, type, kInputDouble##input); \
2946 TEST(mnemonic##_xs) { \
2947 CALL_TEST_FP_HELPER(mnemonic, xs, type, kInputFloat##input); \
2949 TEST(mnemonic##_xh) { \
2950 CALL_TEST_FP_HELPER(mnemonic, xh, type, kInputFloat16##input); \
2952 TEST(mnemonic##_wd) { \
2953 CALL_TEST_FP_HELPER(mnemonic, wd, type, kInputDouble##input); \
2955 TEST(mnemonic##_ws) { \
2956 CALL_TEST_FP_HELPER(mnemonic, ws, type, kInputFloat##input); \
2958 TEST(mnemonic##_wh) { \
2959 CALL_TEST_FP_HELPER(mnemonic, wh, type, kInputFloat16##input); \
2971 #define DEFINE_TEST_FP_TO_JS_INT(mnemonic, type, input) \
2972 TEST(mnemonic##_wd) { \
2973 CALL_TEST_FP_HELPER(mnemonic, wd, type, kInputDouble##input); \
2989 #define CALL_TEST_NEON_HELPER_1Op(mnemonic, vdform, vnform, input_n) \
2990 Test1OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \
2991 &MacroAssembler::mnemonic, \
2994 kExpected_NEON_##mnemonic##_##vdform, \
2995 kExpectedCount_NEON_##mnemonic##_##vdform, \
2999 #define CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, vdform, vnform, input_n) \
3000 Test1OpAcrossNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_" STRINGIFY( \
3002 &MacroAssembler::mnemonic, \
3005 kExpected_NEON_##mnemonic##_##vdform##_##vnform, \
3006 kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform, \
3010 #define CALL_TEST_NEON_HELPER_2Op(mnemonic, \
3017 Test2OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \
3018 &MacroAssembler::mnemonic, \
3024 kExpected_NEON_##mnemonic##_##vdform, \
3025 kExpectedCount_NEON_##mnemonic##_##vdform, \
3030 #define CALL_TEST_NEON_HELPER_2OpImm(mnemonic, \
3035 Test2OpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_2OPIMM", \
3036 &MacroAssembler::mnemonic, \
3041 kExpected_NEON_##mnemonic##_##vdform##_2OPIMM, \
3042 kExpectedCount_NEON_##mnemonic##_##vdform##_2OPIMM, \
3046 #define CALL_TEST_NEON_HELPER_ByElement(mnemonic, \
3055 STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_" STRINGIFY( \
3057 &MacroAssembler::mnemonic, \
3065 kExpected_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \
3066 kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \
3071 #define CALL_TEST_NEON_HELPER_ByElement_Dot_Product(mnemonic, \
3081 STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_" STRINGIFY( \
3083 &MacroAssembler::mnemonic, \
3091 kExpected_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \
3092 kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \
3099 mnemonic, \
3106 TestOpImmOpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \
3115 kExpected_NEON_##mnemonic##_##vdform, \
3116 kExpectedCount_NEON_##mnemonic##_##vdform, \
3120 #define CALL_TEST_NEON_HELPER_2SAME(mnemonic, variant, input) \
3121 CALL_TEST_NEON_HELPER_1Op(mnemonic, variant, variant, input)
3123 #define DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input) \
3124 TEST(mnemonic##_8B) { \
3125 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8B, kInput8bits##input); \
3127 TEST(mnemonic##_16B) { \
3128 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 16B, kInput8bits##input); \
3131 #define DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input) \
3132 TEST(mnemonic##_4H) { \
3133 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4H, kInput16bits##input); \
3135 TEST(mnemonic##_8H) { \
3136 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8H, kInput16bits##input); \
3139 #define DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input) \
3140 TEST(mnemonic##_2S) { \
3141 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInput32bits##input); \
3143 TEST(mnemonic##_4S) { \
3144 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInput32bits##input); \
3147 #define DEFINE_TEST_NEON_2SAME_BH(mnemonic, input) \
3148 DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input) \
3149 DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)
3151 #define DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input) \
3152 DEFINE_TEST_NEON_2SAME_BH(mnemonic, input) \
3153 DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)
3155 #define DEFINE_TEST_NEON_2SAME(mnemonic, input) \
3156 DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input) \
3157 TEST(mnemonic##_2D) { \
3158 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
3160 #define DEFINE_TEST_NEON_2SAME_SD(mnemonic, input) \
3161 DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input) \
3162 TEST(mnemonic##_2D) { \
3163 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
3166 #define DEFINE_TEST_NEON_2SAME_FP(mnemonic, input) \
3167 TEST(mnemonic##_2S) { \
3168 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInputFloat##input); \
3170 TEST(mnemonic##_4S) { \
3171 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInputFloat##input); \
3173 TEST(mnemonic##_2D) { \
3174 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInputDouble##input); \
3177 #define DEFINE_TEST_NEON_2SAME_FP_FP16(mnemonic, input) \
3178 DEFINE_TEST_NEON_2SAME_FP(mnemonic, input) \
3179 TEST(mnemonic##_4H) { \
3180 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4H, kInputFloat16##input); \
3182 TEST(mnemonic##_8H) { \
3183 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8H, kInputFloat16##input); \
3186 #define DEFINE_TEST_NEON_2SAME_FP_FP16_SCALAR(mnemonic, input) \
3187 TEST(mnemonic##_H) { \
3188 CALL_TEST_NEON_HELPER_2SAME(mnemonic, H, kInputFloat16##input); \
3190 TEST(mnemonic##_S) { \
3191 CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInputFloat##input); \
3193 TEST(mnemonic##_D) { \
3194 CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInputDouble##input); \
3197 #define DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input) \
3198 TEST(mnemonic##_B) { \
3199 CALL_TEST_NEON_HELPER_2SAME(mnemonic, B, kInput8bits##input); \
3201 #define DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input) \
3202 TEST(mnemonic##_H) { \
3203 CALL_TEST_NEON_HELPER_2SAME(mnemonic, H, kInput16bits##input); \
3205 #define DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \
3206 TEST(mnemonic##_S) { \
3207 CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInput32bits##input); \
3209 #define DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input) \
3210 TEST(mnemonic##_D) { \
3211 CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInput64bits##input); \
3214 #define DEFINE_TEST_NEON_2SAME_SCALAR(mnemonic, input) \
3215 DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input) \
3216 DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input) \
3217 DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \
3218 DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
3220 #define DEFINE_TEST_NEON_2SAME_SCALAR_SD(mnemonic, input) \
3221 DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \
3222 DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
3225 #define CALL_TEST_NEON_HELPER_ACROSS(mnemonic, vd_form, vn_form, input_n) \
3226 CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, vd_form, vn_form, input_n)
3228 #define DEFINE_TEST_NEON_ACROSS(mnemonic, input) \
3229 TEST(mnemonic##_B_8B) { \
3230 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 8B, kInput8bits##input); \
3232 TEST(mnemonic##_B_16B) { \
3233 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 16B, kInput8bits##input); \
3235 TEST(mnemonic##_H_4H) { \
3236 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 4H, kInput16bits##input); \
3238 TEST(mnemonic##_H_8H) { \
3239 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8H, kInput16bits##input); \
3241 TEST(mnemonic##_S_4S) { \
3242 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInput32bits##input); \
3245 #define DEFINE_TEST_NEON_ACROSS_LONG(mnemonic, input) \
3246 TEST(mnemonic##_H_8B) { \
3247 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8B, kInput8bits##input); \
3249 TEST(mnemonic##_H_16B) { \
3250 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 16B, kInput8bits##input); \
3252 TEST(mnemonic##_S_4H) { \
3253 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4H, kInput16bits##input); \
3255 TEST(mnemonic##_S_8H) { \
3256 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 8H, kInput16bits##input); \
3258 TEST(mnemonic##_D_4S) { \
3259 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, D, 4S, kInput32bits##input); \
3262 #define DEFINE_TEST_NEON_ACROSS_FP(mnemonic, input) \
3263 TEST(mnemonic##_H_4H) { \
3264 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 4H, kInputFloat16##input); \
3266 TEST(mnemonic##_H_8H) { \
3267 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8H, kInputFloat16##input); \
3269 TEST(mnemonic##_S_4S) { \
3270 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInputFloat##input); \
3273 #define CALL_TEST_NEON_HELPER_2DIFF(mnemonic, vdform, vnform, input_n) \
3274 CALL_TEST_NEON_HELPER_1Op(mnemonic, vdform, vnform, input_n)
3276 #define DEFINE_TEST_NEON_2DIFF_LONG(mnemonic, input) \
3277 TEST(mnemonic##_4H) { \
3278 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 8B, kInput8bits##input); \
3280 TEST(mnemonic##_8H) { \
3281 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8H, 16B, kInput8bits##input); \
3283 TEST(mnemonic##_2S) { \
3284 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 4H, kInput16bits##input); \
3286 TEST(mnemonic##_4S) { \
3287 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 8H, kInput16bits##input); \
3289 TEST(mnemonic##_1D) { \
3290 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 1D, 2S, kInput32bits##input); \
3292 TEST(mnemonic##_2D) { \
3293 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 4S, kInput32bits##input); \
3296 #define DEFINE_TEST_NEON_2DIFF_NARROW(mnemonic, input) \
3297 TEST(mnemonic##_8B) { \
3298 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8B, 8H, kInput16bits##input); \
3300 TEST(mnemonic##_4H) { \
3301 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInput32bits##input); \
3303 TEST(mnemonic##_2S) { \
3304 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInput64bits##input); \
3306 TEST(mnemonic##2_16B) { \
3307 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 16B, 8H, kInput16bits##input); \
3309 TEST(mnemonic##2_8H) { \
3310 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInput32bits##input); \
3312 TEST(mnemonic##2_4S) { \
3313 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInput64bits##input); \
3316 #define DEFINE_TEST_NEON_2DIFF_FP_LONG(mnemonic, input) \
3317 TEST(mnemonic##_4S) { \
3318 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 4H, kInputFloat16##input); \
3320 TEST(mnemonic##_2D) { \
3321 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 2S, kInputFloat##input); \
3323 TEST(mnemonic##2_4S) { \
3324 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 8H, kInputFloat16##input); \
3326 TEST(mnemonic##2_2D) { \
3327 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 2D, 4S, kInputFloat##input); \
3330 #define DEFINE_TEST_NEON_2DIFF_FP_NARROW(mnemonic, input) \
3331 TEST(mnemonic##_4H) { \
3332 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInputFloat##input); \
3334 TEST(mnemonic##_2S) { \
3335 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input); \
3337 TEST(mnemonic##2_8H) { \
3338 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInputFloat##input); \
3340 TEST(mnemonic##2_4S) { \
3341 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
3344 #define DEFINE_TEST_NEON_2DIFF_FP_NARROW_2S(mnemonic, input) \
3345 TEST(mnemonic##_2S) { \
3346 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input); \
3348 TEST(mnemonic##2_4S) { \
3349 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
3352 #define DEFINE_TEST_NEON_2DIFF_SCALAR_NARROW(mnemonic, input) \
3353 TEST(mnemonic##_B) { \
3354 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, B, H, kInput16bits##input); \
3356 TEST(mnemonic##_H) { \
3357 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, H, S, kInput32bits##input); \
3359 TEST(mnemonic##_S) { \
3360 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, D, kInput64bits##input); \
3363 #define DEFINE_TEST_NEON_2DIFF_FP_SCALAR_SD(mnemonic, input) \
3364 TEST(mnemonic##_S) { \
3365 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, 2S, kInputFloat##input); \
3367 TEST(mnemonic##_D) { \
3368 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, D, 2D, kInputDouble##input); \
3370 TEST(mnemonic##_H) { \
3371 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, H, 2H, kInputFloat16##input); \
3374 #define CALL_TEST_NEON_HELPER_3SAME(mnemonic, variant, input_d, input_nm) \
3376 CALL_TEST_NEON_HELPER_2Op(mnemonic, \
3385 #define DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input) \
3386 TEST(mnemonic##_8B) { \
3387 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3392 TEST(mnemonic##_16B) { \
3393 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3399 #define DEFINE_TEST_NEON_3SAME_HS(mnemonic, input) \
3400 TEST(mnemonic##_4H) { \
3401 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3406 TEST(mnemonic##_8H) { \
3407 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3412 TEST(mnemonic##_2S) { \
3413 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3418 TEST(mnemonic##_4S) { \
3419 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3425 #define DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input) \
3426 DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input) \
3427 DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)
3429 #define DEFINE_TEST_NEON_3SAME(mnemonic, input) \
3430 DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input) \
3431 TEST(mnemonic##_2D) { \
3432 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3438 #define DEFINE_TEST_NEON_3SAME_FP(mnemonic, input) \
3439 TEST(mnemonic##_4H) { \
3440 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3445 TEST(mnemonic##_8H) { \
3446 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3451 TEST(mnemonic##_2S) { \
3452 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3457 TEST(mnemonic##_4S) { \
3458 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3463 TEST(mnemonic##_2D) { \
3464 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3470 #define DEFINE_TEST_NEON_3SAME_SCALAR_D(mnemonic, input) \
3471 TEST(mnemonic##_D) { \
3472 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3478 #define DEFINE_TEST_NEON_3SAME_SCALAR_HS(mnemonic, input) \
3479 TEST(mnemonic##_H) { \
3480 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3485 TEST(mnemonic##_S) { \
3486 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3492 #define DEFINE_TEST_NEON_3SAME_SCALAR(mnemonic, input) \
3493 TEST(mnemonic##_B) { \
3494 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3499 TEST(mnemonic##_H) { \
3500 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3505 TEST(mnemonic##_S) { \
3506 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3511 TEST(mnemonic##_D) { \
3512 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3518 #define DEFINE_TEST_NEON_3SAME_FP_SCALAR(mnemonic, input) \
3519 TEST(mnemonic##_H) { \
3520 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3525 TEST(mnemonic##_S) { \
3526 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3531 TEST(mnemonic##_D) { \
3532 CALL_TEST_NEON_HELPER_3SAME(mnemonic, \
3538 #define DEFINE_TEST_NEON_FHM(mnemonic, input_d, input_n, input_m) \
3539 TEST(mnemonic##_2S) { \
3540 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3548 TEST(mnemonic##_4S) { \
3549 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3558 #define CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3566 CALL_TEST_NEON_HELPER_2Op(mnemonic, \
3575 #define DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input) \
3576 TEST(mnemonic##_8H) { \
3577 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3585 TEST(mnemonic##2_8H) { \
3586 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3595 #define DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \
3596 TEST(mnemonic##_4S) { \
3597 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3605 TEST(mnemonic##2_4S) { \
3606 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3615 #define DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input) \
3616 TEST(mnemonic##_2D) { \
3617 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3625 TEST(mnemonic##2_2D) { \
3626 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3635 #define DEFINE_TEST_NEON_3DIFF_LONG_SD(mnemonic, input) \
3636 DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \
3637 DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
3639 #define DEFINE_TEST_NEON_3DIFF_LONG(mnemonic, input) \
3640 DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input) \
3641 DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \
3642 DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
3644 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input) \
3645 TEST(mnemonic##_S) { \
3646 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3655 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input) \
3656 TEST(mnemonic##_D) { \
3657 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3666 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_SD(mnemonic, input) \
3667 DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input) \
3668 DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input)
3670 #define DEFINE_TEST_NEON_3DIFF_WIDE(mnemonic, input) \
3671 TEST(mnemonic##_8H) { \
3672 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3680 TEST(mnemonic##_4S) { \
3681 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3689 TEST(mnemonic##_2D) { \
3690 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3698 TEST(mnemonic##2_8H) { \
3699 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3707 TEST(mnemonic##2_4S) { \
3708 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3716 TEST(mnemonic##2_2D) { \
3717 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3726 #define DEFINE_TEST_NEON_3DIFF_NARROW(mnemonic, input) \
3727 TEST(mnemonic##_8B) { \
3728 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3736 TEST(mnemonic##_4H) { \
3737 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3745 TEST(mnemonic##_2S) { \
3746 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3754 TEST(mnemonic##2_16B) { \
3755 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3763 TEST(mnemonic##2_8H) { \
3764 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3772 TEST(mnemonic##2_4S) { \
3773 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, \
3782 #define DEFINE_TEST_NEON_3DIFF_DOUBLE_WIDE(mnemonic, input) \
3783 TEST(mnemonic##_2S) { \
3784 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3792 TEST(mnemonic##_4S) { \
3793 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \
3803 #define CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3809 CALL_TEST_NEON_HELPER_2OpImm(mnemonic, \
3816 #define DEFINE_TEST_NEON_2OPIMM(mnemonic, input, input_imm) \
3817 TEST(mnemonic##_8B_2OPIMM) { \
3818 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3824 TEST(mnemonic##_16B_2OPIMM) { \
3825 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3831 TEST(mnemonic##_4H_2OPIMM) { \
3832 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3838 TEST(mnemonic##_8H_2OPIMM) { \
3839 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3845 TEST(mnemonic##_2S_2OPIMM) { \
3846 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3852 TEST(mnemonic##_4S_2OPIMM) { \
3853 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3859 TEST(mnemonic##_2D_2OPIMM) { \
3860 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3867 #define DEFINE_TEST_NEON_2OPIMM_COPY(mnemonic, input, input_imm) \
3868 TEST(mnemonic##_8B_2OPIMM) { \
3869 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3875 TEST(mnemonic##_16B_2OPIMM) { \
3876 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3882 TEST(mnemonic##_4H_2OPIMM) { \
3883 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3889 TEST(mnemonic##_8H_2OPIMM) { \
3890 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3896 TEST(mnemonic##_2S_2OPIMM) { \
3897 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3903 TEST(mnemonic##_4S_2OPIMM) { \
3904 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3910 TEST(mnemonic##_2D_2OPIMM) { \
3911 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3918 #define DEFINE_TEST_NEON_2OPIMM_NARROW(mnemonic, input, input_imm) \
3919 TEST(mnemonic##_8B_2OPIMM) { \
3920 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3926 TEST(mnemonic##_4H_2OPIMM) { \
3927 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3933 TEST(mnemonic##_2S_2OPIMM) { \
3934 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3940 TEST(mnemonic##2_16B_2OPIMM) { \
3941 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3947 TEST(mnemonic##2_8H_2OPIMM) { \
3948 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3954 TEST(mnemonic##2_4S_2OPIMM) { \
3955 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3962 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(mnemonic, input, input_imm) \
3963 TEST(mnemonic##_B_2OPIMM) { \
3964 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3970 TEST(mnemonic##_H_2OPIMM) { \
3971 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3977 TEST(mnemonic##_S_2OPIMM) { \
3978 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3985 #define DEFINE_TEST_NEON_2OPIMM_FCMP_ZERO(mnemonic, input, input_imm) \
3986 TEST(mnemonic##_4H_2OPIMM) { \
3987 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3993 TEST(mnemonic##_8H_2OPIMM) { \
3994 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4000 TEST(mnemonic##_2S_2OPIMM) { \
4001 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4007 TEST(mnemonic##_4S_2OPIMM) { \
4008 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4014 TEST(mnemonic##_2D_2OPIMM) { \
4015 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4022 #define DEFINE_TEST_NEON_2OPIMM_FP(mnemonic, input, input_imm) \
4023 TEST(mnemonic##_4H_2OPIMM) { \
4024 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4030 TEST(mnemonic##_8H_2OPIMM) { \
4031 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4037 TEST(mnemonic##_2S_2OPIMM) { \
4038 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4044 TEST(mnemonic##_4S_2OPIMM) { \
4045 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4051 TEST(mnemonic##_2D_2OPIMM) { \
4052 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4059 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(mnemonic, input, input_imm) \
4060 TEST(mnemonic##_H_2OPIMM) { \
4061 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4067 TEST(mnemonic##_S_2OPIMM) { \
4068 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4074 TEST(mnemonic##_D_2OPIMM) { \
4075 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4082 #define DEFINE_TEST_NEON_2OPIMM_HSD(mnemonic, input, input_imm) \
4083 TEST(mnemonic##_4H_2OPIMM) { \
4084 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4090 TEST(mnemonic##_8H_2OPIMM) { \
4091 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4097 TEST(mnemonic##_2S_2OPIMM) { \
4098 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4104 TEST(mnemonic##_4S_2OPIMM) { \
4105 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4111 TEST(mnemonic##_2D_2OPIMM) { \
4112 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4119 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm) \
4120 TEST(mnemonic##_D_2OPIMM) { \
4121 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4128 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_HSD(mnemonic, input, input_imm) \
4129 TEST(mnemonic##_H_2OPIMM) { \
4130 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4136 TEST(mnemonic##_S_2OPIMM) { \
4137 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4143 DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm)
4145 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm) \
4146 TEST(mnemonic##_D_2OPIMM) { \
4147 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4154 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_HSD(mnemonic, input, input_imm) \
4155 TEST(mnemonic##_H_2OPIMM) { \
4156 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4162 TEST(mnemonic##_S_2OPIMM) { \
4163 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4169 DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm)
4171 #define DEFINE_TEST_NEON_2OPIMM_SCALAR(mnemonic, input, input_imm) \
4172 TEST(mnemonic##_B_2OPIMM) { \
4173 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4179 DEFINE_TEST_NEON_2OPIMM_SCALAR_HSD(mnemonic, input, input_imm)
4181 #define DEFINE_TEST_NEON_2OPIMM_LONG(mnemonic, input, input_imm) \
4182 TEST(mnemonic##_8H_2OPIMM) { \
4183 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4189 TEST(mnemonic##_4S_2OPIMM) { \
4190 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4196 TEST(mnemonic##_2D_2OPIMM) { \
4197 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
4203 TEST(mnemonic##2_8H_2OPIMM) { \
4204 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
4210 TEST(mnemonic##2_4S_2OPIMM) { \
4211 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
4217 TEST(mnemonic##2_2D_2OPIMM) { \
4218 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
4225 #define CALL_TEST_NEON_HELPER_BYELEMENT_DOT_PRODUCT(mnemonic, \
4235 CALL_TEST_NEON_HELPER_ByElement_Dot_Product(mnemonic, \
4246 #define DEFINE_TEST_NEON_BYELEMENT_DOT_PRODUCT(mnemonic, \
4250 TEST(mnemonic##_2S_8B_B) { \
4251 CALL_TEST_NEON_HELPER_BYELEMENT_DOT_PRODUCT(mnemonic, \
4261 TEST(mnemonic##_4S_16B_B) { \
4262 CALL_TEST_NEON_HELPER_BYELEMENT_DOT_PRODUCT(mnemonic, \
4273 #define CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4282 CALL_TEST_NEON_HELPER_ByElement(mnemonic, \
4292 #define DEFINE_TEST_NEON_BYELEMENT(mnemonic, input_d, input_n, input_m) \
4293 TEST(mnemonic##_4H_4H_H) { \
4294 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4303 TEST(mnemonic##_8H_8H_H) { \
4304 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4313 TEST(mnemonic##_2S_2S_S) { \
4314 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4323 TEST(mnemonic##_4S_4S_S) { \
4324 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4334 #define DEFINE_TEST_NEON_BYELEMENT_SCALAR(mnemonic, input_d, input_n, input_m) \
4335 TEST(mnemonic##_H_H_H) { \
4336 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4345 TEST(mnemonic##_S_S_S) { \
4346 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4356 #define DEFINE_TEST_NEON_FP_BYELEMENT(mnemonic, input_d, input_n, input_m) \
4357 TEST(mnemonic##_4H_4H_H) { \
4358 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4367 TEST(mnemonic##_8H_8H_H) { \
4368 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4377 TEST(mnemonic##_2S_2S_S) { \
4378 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4387 TEST(mnemonic##_4S_4S_S) { \
4388 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4397 TEST(mnemonic##_2D_2D_D) { \
4398 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4408 #define DEFINE_TEST_NEON_FHM_BYELEMENT(mnemonic, input_d, input_n, input_m) \
4409 TEST(mnemonic##_2S_2H_H) { \
4410 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4419 TEST(mnemonic##_4S_4H_H) { \
4420 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4430 #define DEFINE_TEST_NEON_FP_BYELEMENT_SCALAR(mnemonic, inp_d, inp_n, inp_m) \
4431 TEST(mnemonic##_H_H_H) { \
4432 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4441 TEST(mnemonic##_S_S_S) { \
4442 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4451 TEST(mnemonic##_D_D_D) { \
4452 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4463 #define DEFINE_TEST_NEON_BYELEMENT_DIFF(mnemonic, input_d, input_n, input_m) \
4464 TEST(mnemonic##_4S_4H_H) { \
4465 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4474 TEST(mnemonic##2_4S_8H_H) { \
4475 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2, \
4484 TEST(mnemonic##_2D_2S_S) { \
4485 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4494 TEST(mnemonic##2_2D_4S_S) { \
4495 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2, \
4505 #define DEFINE_TEST_NEON_BYELEMENT_DIFF_SCALAR(mnemonic, \
4509 TEST(mnemonic##_S_H_H) { \
4510 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4519 TEST(mnemonic##_D_S_S) { \
4520 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
4531 #define CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
4538 CALL_TEST_NEON_HELPER_OpImmOpImm(&MacroAssembler::mnemonic, \
4539 mnemonic, \
4548 #define DEFINE_TEST_NEON_2OP2IMM(mnemonic, \
4553 TEST(mnemonic##_B) { \
4554 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
4561 TEST(mnemonic##_H) { \
4562 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
4569 TEST(mnemonic##_S) { \
4570 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
4577 TEST(mnemonic##_D) { \
4578 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \