Lines Matching refs:mnemonic

182     typedef void (MacroAssembler::*mnemonic)(  typedef in vixl::Test2OpImmediateNEONHelper_t
2034 typename Test2OpImmediateNEONHelper_t<Tm>::mnemonic helper, in Test2OpImmNEON_Helper()
2126 typename Test2OpImmediateNEONHelper_t<Tm>::mnemonic helper, in Test2OpImmNEON()
2472 #define CALL_TEST_FP_HELPER(mnemonic, variant, type, input) \ argument
2473 Test##type(STRINGIFY(mnemonic) "_" STRINGIFY(variant), \
2474 &MacroAssembler::mnemonic, \
2476 kExpected_##mnemonic##_##variant, \
2477 kExpectedCount_##mnemonic##_##variant)
2479 #define DEFINE_TEST_FP(mnemonic, type, input) \ argument
2480 TEST(mnemonic##_d) { \
2481 CALL_TEST_FP_HELPER(mnemonic, d, type, kInputDouble##input); \
2483 TEST(mnemonic##_s) { \
2484 CALL_TEST_FP_HELPER(mnemonic, s, type, kInputFloat##input); \
2527 #define DEFINE_TEST_FP_TO_INT(mnemonic, type, input) \ argument
2528 TEST(mnemonic##_xd) { \
2529 CALL_TEST_FP_HELPER(mnemonic, xd, type, kInputDouble##input); \
2531 TEST(mnemonic##_xs) { \
2532 CALL_TEST_FP_HELPER(mnemonic, xs, type, kInputFloat##input); \
2534 TEST(mnemonic##_wd) { \
2535 CALL_TEST_FP_HELPER(mnemonic, wd, type, kInputDouble##input); \
2537 TEST(mnemonic##_ws) { \
2538 CALL_TEST_FP_HELPER(mnemonic, ws, type, kInputFloat##input); \
2561 #define CALL_TEST_NEON_HELPER_1Op(mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2564 Test1OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \ in DEFINE_TEST_FP_TO_INT()
2565 &MacroAssembler::mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2568 kExpected_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2569 kExpectedCount_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2573 #define CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2576 Test1OpAcrossNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) \ in DEFINE_TEST_FP_TO_INT()
2578 &MacroAssembler::mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2581 kExpected_NEON_##mnemonic##_##vdform##_##vnform, \ in DEFINE_TEST_FP_TO_INT()
2582 kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform, \ in DEFINE_TEST_FP_TO_INT()
2586 #define CALL_TEST_NEON_HELPER_2Op(mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2589 Test2OpNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \ in DEFINE_TEST_FP_TO_INT()
2590 &MacroAssembler::mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2596 kExpected_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2597 kExpectedCount_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2602 #define CALL_TEST_NEON_HELPER_2OpImm(mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2605 Test2OpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) "_2OPIMM", \ in DEFINE_TEST_FP_TO_INT()
2606 &MacroAssembler::mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2611 kExpected_NEON_##mnemonic##_##vdform##_2OPIMM, \ in DEFINE_TEST_FP_TO_INT()
2612 kExpectedCount_NEON_##mnemonic##_##vdform##_2OPIMM, \ in DEFINE_TEST_FP_TO_INT()
2616 #define CALL_TEST_NEON_HELPER_ByElement(mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2619 TestByElementNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform) \ in DEFINE_TEST_FP_TO_INT()
2621 &MacroAssembler::mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2629 kExpected_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \ in DEFINE_TEST_FP_TO_INT()
2630 kExpectedCount_NEON_##mnemonic##_##vdform##_##vnform##_##vmform, \ in DEFINE_TEST_FP_TO_INT()
2636 mnemonic, \ in DEFINE_TEST_FP_TO_INT() argument
2640 TestOpImmOpImmNEON(STRINGIFY(mnemonic) "_" STRINGIFY(vdform), \ in DEFINE_TEST_FP_TO_INT()
2649 kExpected_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2650 kExpectedCount_NEON_##mnemonic##_##vdform, \ in DEFINE_TEST_FP_TO_INT()
2654 #define CALL_TEST_NEON_HELPER_2SAME(mnemonic, variant, input) \ in DEFINE_TEST_FP_TO_INT() argument
2655 CALL_TEST_NEON_HELPER_1Op(mnemonic, \ in DEFINE_TEST_FP_TO_INT()
2659 #define DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input) \ in DEFINE_TEST_FP_TO_INT() argument
2660 TEST(mnemonic##_8B) { \ in DEFINE_TEST_FP_TO_INT()
2661 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8B, kInput8bits##input); \ in DEFINE_TEST_FP_TO_INT()
2663 TEST(mnemonic##_16B) { \
2664 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 16B, kInput8bits##input); \
2667 #define DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input) \ argument
2668 TEST(mnemonic##_4H) { \
2669 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4H, kInput16bits##input); \
2671 TEST(mnemonic##_8H) { \
2672 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 8H, kInput16bits##input); \
2675 #define DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input) \ argument
2676 TEST(mnemonic##_2S) { \
2677 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInput32bits##input); \
2679 TEST(mnemonic##_4S) { \
2680 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInput32bits##input); \
2683 #define DEFINE_TEST_NEON_2SAME_BH(mnemonic, input) \ argument
2684 DEFINE_TEST_NEON_2SAME_8B_16B(mnemonic, input) \
2685 DEFINE_TEST_NEON_2SAME_4H_8H(mnemonic, input)
2687 #define DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input) \ argument
2688 DEFINE_TEST_NEON_2SAME_BH(mnemonic, input) \
2689 DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input)
2691 #define DEFINE_TEST_NEON_2SAME(mnemonic, input) \ argument
2692 DEFINE_TEST_NEON_2SAME_NO2D(mnemonic, input) \
2693 TEST(mnemonic##_2D) { \
2694 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
2696 #define DEFINE_TEST_NEON_2SAME_SD(mnemonic, input) \ argument
2697 DEFINE_TEST_NEON_2SAME_2S_4S(mnemonic, input) \
2698 TEST(mnemonic##_2D) { \
2699 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInput64bits##input); \
2702 #define DEFINE_TEST_NEON_2SAME_FP(mnemonic, input) \ argument
2703 TEST(mnemonic##_2S) { \
2704 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2S, kInputFloat##input); \
2706 TEST(mnemonic##_4S) { \
2707 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 4S, kInputFloat##input); \
2709 TEST(mnemonic##_2D) { \
2710 CALL_TEST_NEON_HELPER_2SAME(mnemonic, 2D, kInputDouble##input); \
2713 #define DEFINE_TEST_NEON_2SAME_FP_SCALAR(mnemonic, input) \ argument
2714 TEST(mnemonic##_S) { \
2715 CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInputFloat##input); \
2717 TEST(mnemonic##_D) { \
2718 CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInputDouble##input); \
2721 #define DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input) \ argument
2722 TEST(mnemonic##_B) { \
2723 CALL_TEST_NEON_HELPER_2SAME(mnemonic, B, kInput8bits##input); \
2725 #define DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input) \ argument
2726 TEST(mnemonic##_H) { \
2727 CALL_TEST_NEON_HELPER_2SAME(mnemonic, H, kInput16bits##input); \
2729 #define DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \ argument
2730 TEST(mnemonic##_S) { \
2731 CALL_TEST_NEON_HELPER_2SAME(mnemonic, S, kInput32bits##input); \
2733 #define DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input) \ argument
2734 TEST(mnemonic##_D) { \
2735 CALL_TEST_NEON_HELPER_2SAME(mnemonic, D, kInput64bits##input); \
2738 #define DEFINE_TEST_NEON_2SAME_SCALAR(mnemonic, input) \ argument
2739 DEFINE_TEST_NEON_2SAME_SCALAR_B(mnemonic, input) \
2740 DEFINE_TEST_NEON_2SAME_SCALAR_H(mnemonic, input) \
2741 DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \
2742 DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
2744 #define DEFINE_TEST_NEON_2SAME_SCALAR_SD(mnemonic, input) \ argument
2745 DEFINE_TEST_NEON_2SAME_SCALAR_S(mnemonic, input) \
2746 DEFINE_TEST_NEON_2SAME_SCALAR_D(mnemonic, input)
2749 #define CALL_TEST_NEON_HELPER_ACROSS(mnemonic, vd_form, vn_form, input_n) \ argument
2750 CALL_TEST_NEON_HELPER_1OpAcross(mnemonic, \
2754 #define DEFINE_TEST_NEON_ACROSS(mnemonic, input) \ argument
2755 TEST(mnemonic##_B_8B) { \
2756 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 8B, kInput8bits##input); \
2758 TEST(mnemonic##_B_16B) { \
2759 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, B, 16B, kInput8bits##input); \
2761 TEST(mnemonic##_H_4H) { \
2762 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 4H, kInput16bits##input); \
2764 TEST(mnemonic##_H_8H) { \
2765 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8H, kInput16bits##input); \
2767 TEST(mnemonic##_S_4S) { \
2768 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInput32bits##input); \
2771 #define DEFINE_TEST_NEON_ACROSS_LONG(mnemonic, input) \ argument
2772 TEST(mnemonic##_H_8B) { \
2773 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 8B, kInput8bits##input); \
2775 TEST(mnemonic##_H_16B) { \
2776 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, H, 16B, kInput8bits##input); \
2778 TEST(mnemonic##_S_4H) { \
2779 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4H, kInput16bits##input); \
2781 TEST(mnemonic##_S_8H) { \
2782 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 8H, kInput16bits##input); \
2784 TEST(mnemonic##_D_4S) { \
2785 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, D, 4S, kInput32bits##input); \
2788 #define DEFINE_TEST_NEON_ACROSS_FP(mnemonic, input) \ argument
2789 TEST(mnemonic##_S_4S) { \
2790 CALL_TEST_NEON_HELPER_ACROSS(mnemonic, S, 4S, kInputFloat##input); \
2793 #define CALL_TEST_NEON_HELPER_2DIFF(mnemonic, \ argument
2796 CALL_TEST_NEON_HELPER_1Op(mnemonic, \
2800 #define DEFINE_TEST_NEON_2DIFF_LONG(mnemonic, input) \ argument
2801 TEST(mnemonic##_4H) { \
2802 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 8B, kInput8bits##input); \
2804 TEST(mnemonic##_8H) { \
2805 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8H, 16B, kInput8bits##input); \
2807 TEST(mnemonic##_2S) { \
2808 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 4H, kInput16bits##input); \
2810 TEST(mnemonic##_4S) { \
2811 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 8H, kInput16bits##input); \
2813 TEST(mnemonic##_1D) { \
2814 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 1D, 2S, kInput32bits##input); \
2816 TEST(mnemonic##_2D) { \
2817 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 4S, kInput32bits##input); \
2820 #define DEFINE_TEST_NEON_2DIFF_NARROW(mnemonic, input) \ argument
2821 TEST(mnemonic##_8B) { \
2822 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 8B, 8H, kInput16bits##input); \
2824 TEST(mnemonic##_4H) { \
2825 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInput32bits##input); \
2827 TEST(mnemonic##_2S) { \
2828 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInput64bits##input); \
2830 TEST(mnemonic##2_16B) { \
2831 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 16B, 8H, kInput16bits##input);\
2833 TEST(mnemonic##2_8H) { \
2834 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInput32bits##input); \
2836 TEST(mnemonic##2_4S) { \
2837 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInput64bits##input); \
2840 #define DEFINE_TEST_NEON_2DIFF_FP_LONG(mnemonic, input) \ argument
2841 TEST(mnemonic##_4S) { \
2842 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4S, 4H, kInputFloat16##input); \
2844 TEST(mnemonic##_2D) { \
2845 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2D, 2S, kInputFloat##input); \
2847 TEST(mnemonic##2_4S) { \
2848 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 8H, kInputFloat16##input);\
2850 TEST(mnemonic##2_2D) { \
2851 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 2D, 4S, kInputFloat##input); \
2854 #define DEFINE_TEST_NEON_2DIFF_FP_NARROW(mnemonic, input) \ argument
2855 TEST(mnemonic##_4H) { \
2856 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 4H, 4S, kInputFloat##input); \
2858 TEST(mnemonic##_2S) { \
2859 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input); \
2861 TEST(mnemonic##2_8H) { \
2862 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 8H, 4S, kInputFloat##input); \
2864 TEST(mnemonic##2_4S) { \
2865 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
2868 #define DEFINE_TEST_NEON_2DIFF_FP_NARROW_2S(mnemonic, input) \ argument
2869 TEST(mnemonic##_2S) { \
2870 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, 2S, 2D, kInputDouble##input); \
2872 TEST(mnemonic##2_4S) { \
2873 CALL_TEST_NEON_HELPER_2DIFF(mnemonic##2, 4S, 2D, kInputDouble##input); \
2876 #define DEFINE_TEST_NEON_2DIFF_SCALAR_NARROW(mnemonic, input) \ argument
2877 TEST(mnemonic##_B) { \
2878 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, B, H, kInput16bits##input); \
2880 TEST(mnemonic##_H) { \
2881 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, H, S, kInput32bits##input); \
2883 TEST(mnemonic##_S) { \
2884 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, D, kInput64bits##input); \
2887 #define DEFINE_TEST_NEON_2DIFF_FP_SCALAR_SD(mnemonic, input) \ argument
2888 TEST(mnemonic##_S) { \
2889 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, S, 2S, kInputFloat##input); \
2891 TEST(mnemonic##_D) { \
2892 CALL_TEST_NEON_HELPER_2DIFF(mnemonic, D, 2D, kInputDouble##input); \
2895 #define CALL_TEST_NEON_HELPER_3SAME(mnemonic, variant, input_d, input_nm) { \ argument
2896 CALL_TEST_NEON_HELPER_2Op(mnemonic, \
2901 #define DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input) \ argument
2902 TEST(mnemonic##_8B) { \
2903 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 8B, \
2907 TEST(mnemonic##_16B) { \
2908 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 16B, \
2913 #define DEFINE_TEST_NEON_3SAME_HS(mnemonic, input) \ argument
2914 TEST(mnemonic##_4H) { \
2915 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4H, \
2919 TEST(mnemonic##_8H) { \
2920 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 8H, \
2924 TEST(mnemonic##_2S) { \
2925 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2S, \
2929 TEST(mnemonic##_4S) { \
2930 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4S, \
2935 #define DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input) \ argument
2936 DEFINE_TEST_NEON_3SAME_8B_16B(mnemonic, input) \
2937 DEFINE_TEST_NEON_3SAME_HS(mnemonic, input)
2939 #define DEFINE_TEST_NEON_3SAME(mnemonic, input) \ argument
2940 DEFINE_TEST_NEON_3SAME_NO2D(mnemonic, input) \
2941 TEST(mnemonic##_2D) { \
2942 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2D, \
2947 #define DEFINE_TEST_NEON_3SAME_FP(mnemonic, input) \ argument
2948 TEST(mnemonic##_2S) { \
2949 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2S, \
2953 TEST(mnemonic##_4S) { \
2954 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 4S, \
2958 TEST(mnemonic##_2D) { \
2959 CALL_TEST_NEON_HELPER_3SAME(mnemonic, 2D, \
2964 #define DEFINE_TEST_NEON_3SAME_SCALAR_D(mnemonic, input) \ argument
2965 TEST(mnemonic##_D) { \
2966 CALL_TEST_NEON_HELPER_3SAME(mnemonic, D, \
2971 #define DEFINE_TEST_NEON_3SAME_SCALAR_HS(mnemonic, input) \ argument
2972 TEST(mnemonic##_H) { \
2973 CALL_TEST_NEON_HELPER_3SAME(mnemonic, H, \
2977 TEST(mnemonic##_S) { \
2978 CALL_TEST_NEON_HELPER_3SAME(mnemonic, S, \
2983 #define DEFINE_TEST_NEON_3SAME_SCALAR(mnemonic, input) \ argument
2984 TEST(mnemonic##_B) { \
2985 CALL_TEST_NEON_HELPER_3SAME(mnemonic, B, \
2989 TEST(mnemonic##_H) { \
2990 CALL_TEST_NEON_HELPER_3SAME(mnemonic, H, \
2994 TEST(mnemonic##_S) { \
2995 CALL_TEST_NEON_HELPER_3SAME(mnemonic, S, \
2999 TEST(mnemonic##_D) { \
3000 CALL_TEST_NEON_HELPER_3SAME(mnemonic, D, \
3005 #define DEFINE_TEST_NEON_3SAME_FP_SCALAR(mnemonic, input) \ argument
3006 TEST(mnemonic##_S) { \
3007 CALL_TEST_NEON_HELPER_3SAME(mnemonic, S, \
3011 TEST(mnemonic##_D) { \
3012 CALL_TEST_NEON_HELPER_3SAME(mnemonic, D, \
3017 #define CALL_TEST_NEON_HELPER_3DIFF(mnemonic, \ argument
3020 CALL_TEST_NEON_HELPER_2Op(mnemonic, \
3025 #define DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input) \ argument
3026 TEST(mnemonic##_8H) { \
3027 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8H, 8B, 8B, \
3031 TEST(mnemonic##2_8H) { \
3032 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 16B, 16B, \
3037 #define DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \ argument
3038 TEST(mnemonic##_4S) { \
3039 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4S, 4H, 4H, \
3043 TEST(mnemonic##2_4S) { \
3044 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 8H, 8H, \
3049 #define DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input) \ argument
3050 TEST(mnemonic##_2D) { \
3051 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2D, 2S, 2S, \
3055 TEST(mnemonic##2_2D) { \
3056 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 2D, 4S, 4S, \
3061 #define DEFINE_TEST_NEON_3DIFF_LONG_SD(mnemonic, input) \ argument
3062 DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \
3063 DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
3065 #define DEFINE_TEST_NEON_3DIFF_LONG(mnemonic, input) \ argument
3066 DEFINE_TEST_NEON_3DIFF_LONG_8H(mnemonic, input) \
3067 DEFINE_TEST_NEON_3DIFF_LONG_4S(mnemonic, input) \
3068 DEFINE_TEST_NEON_3DIFF_LONG_2D(mnemonic, input)
3070 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input) \ argument
3071 TEST(mnemonic##_S) { \
3072 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, S, H, H, \
3078 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input) \ argument
3079 TEST(mnemonic##_D) { \
3080 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, D, S, S, \
3086 #define DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_SD(mnemonic, input) \ argument
3087 DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_S(mnemonic, input) \
3088 DEFINE_TEST_NEON_3DIFF_SCALAR_LONG_D(mnemonic, input)
3090 #define DEFINE_TEST_NEON_3DIFF_WIDE(mnemonic, input) \ argument
3091 TEST(mnemonic##_8H) { \
3092 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8H, 8H, 8B, \
3096 TEST(mnemonic##_4S) { \
3097 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4S, 4S, 4H, \
3101 TEST(mnemonic##_2D) { \
3102 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2D, 2D, 2S, \
3106 TEST(mnemonic##2_8H) { \
3107 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 8H, 16B, \
3111 TEST(mnemonic##2_4S) { \
3112 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 4S, 8H, \
3116 TEST(mnemonic##2_2D) { \
3117 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 2D, 2D, 4S, \
3122 #define DEFINE_TEST_NEON_3DIFF_NARROW(mnemonic, input) \ argument
3123 TEST(mnemonic##_8B) { \
3124 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 8B, 8H, 8H, \
3128 TEST(mnemonic##_4H) { \
3129 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 4H, 4S, 4S, \
3133 TEST(mnemonic##_2S) { \
3134 CALL_TEST_NEON_HELPER_3DIFF(mnemonic, 2S, 2D, 2D, \
3138 TEST(mnemonic##2_16B) { \
3139 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 16B, 8H, 8H, \
3143 TEST(mnemonic##2_8H) { \
3144 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 8H, 4S, 4S, \
3148 TEST(mnemonic##2_4S) { \
3149 CALL_TEST_NEON_HELPER_3DIFF(mnemonic##2, 4S, 2D, 2D, \
3154 #define CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \ argument
3158 CALL_TEST_NEON_HELPER_2OpImm(mnemonic, \
3163 #define DEFINE_TEST_NEON_2OPIMM(mnemonic, input, input_imm) \ argument
3164 TEST(mnemonic##_8B_2OPIMM) { \
3165 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3170 TEST(mnemonic##_16B_2OPIMM) { \
3171 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3176 TEST(mnemonic##_4H_2OPIMM) { \
3177 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3182 TEST(mnemonic##_8H_2OPIMM) { \
3183 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3188 TEST(mnemonic##_2S_2OPIMM) { \
3189 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3194 TEST(mnemonic##_4S_2OPIMM) { \
3195 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3200 TEST(mnemonic##_2D_2OPIMM) { \
3201 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3207 #define DEFINE_TEST_NEON_2OPIMM_COPY(mnemonic, input, input_imm) \ argument
3208 TEST(mnemonic##_8B_2OPIMM) { \
3209 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3214 TEST(mnemonic##_16B_2OPIMM) { \
3215 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3220 TEST(mnemonic##_4H_2OPIMM) { \
3221 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3226 TEST(mnemonic##_8H_2OPIMM) { \
3227 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3232 TEST(mnemonic##_2S_2OPIMM) { \
3233 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3238 TEST(mnemonic##_4S_2OPIMM) { \
3239 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3244 TEST(mnemonic##_2D_2OPIMM) { \
3245 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3251 #define DEFINE_TEST_NEON_2OPIMM_NARROW(mnemonic, input, input_imm) \ argument
3252 TEST(mnemonic##_8B_2OPIMM) { \
3253 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3258 TEST(mnemonic##_4H_2OPIMM) { \
3259 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3264 TEST(mnemonic##_2S_2OPIMM) { \
3265 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3270 TEST(mnemonic##2_16B_2OPIMM) { \
3271 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3276 TEST(mnemonic##2_8H_2OPIMM) { \
3277 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3282 TEST(mnemonic##2_4S_2OPIMM) { \
3283 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3289 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_NARROW(mnemonic, input, input_imm) \ argument
3290 TEST(mnemonic##_B_2OPIMM) { \
3291 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3296 TEST(mnemonic##_H_2OPIMM) { \
3297 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3302 TEST(mnemonic##_S_2OPIMM) { \
3303 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3309 #define DEFINE_TEST_NEON_2OPIMM_FCMP_ZERO(mnemonic, input, input_imm) \ argument
3310 TEST(mnemonic##_2S_2OPIMM) { \
3312 mnemonic, \
3317 TEST(mnemonic##_4S_2OPIMM) { \
3319 mnemonic, \
3324 TEST(mnemonic##_2D_2OPIMM) { \
3326 mnemonic, \
3332 #define DEFINE_TEST_NEON_2OPIMM_FP(mnemonic, input, input_imm) \ argument
3333 TEST(mnemonic##_2S_2OPIMM) { \
3335 mnemonic, \
3340 TEST(mnemonic##_4S_2OPIMM) { \
3342 mnemonic, \
3347 TEST(mnemonic##_2D_2OPIMM) { \
3349 mnemonic, \
3355 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR(mnemonic, input, input_imm) \ argument
3356 TEST(mnemonic##_S_2OPIMM) { \
3358 mnemonic, \
3363 TEST(mnemonic##_D_2OPIMM) { \
3365 mnemonic, \
3371 #define DEFINE_TEST_NEON_2OPIMM_SD(mnemonic, input, input_imm) \ argument
3372 TEST(mnemonic##_2S_2OPIMM) { \
3373 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3378 TEST(mnemonic##_4S_2OPIMM) { \
3379 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3384 TEST(mnemonic##_2D_2OPIMM) { \
3385 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3391 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm) \ argument
3392 TEST(mnemonic##_D_2OPIMM) { \
3393 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3399 #define DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm) \ argument
3400 TEST(mnemonic##_S_2OPIMM) { \
3401 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3406 DEFINE_TEST_NEON_2OPIMM_SCALAR_D(mnemonic, input, input_imm)
3408 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm) \ argument
3409 TEST(mnemonic##_D_2OPIMM) { \
3410 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3416 #define DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_SD(mnemonic, input, input_imm) \ argument
3417 TEST(mnemonic##_S_2OPIMM) { \
3418 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3423 DEFINE_TEST_NEON_2OPIMM_FP_SCALAR_D(mnemonic, input, input_imm)
3425 #define DEFINE_TEST_NEON_2OPIMM_SCALAR(mnemonic, input, input_imm) \ argument
3426 TEST(mnemonic##_B_2OPIMM) { \
3427 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3432 TEST(mnemonic##_H_2OPIMM) { \
3433 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3438 DEFINE_TEST_NEON_2OPIMM_SCALAR_SD(mnemonic, input, input_imm)
3440 #define DEFINE_TEST_NEON_2OPIMM_LONG(mnemonic, input, input_imm) \ argument
3441 TEST(mnemonic##_8H_2OPIMM) { \
3442 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3447 TEST(mnemonic##_4S_2OPIMM) { \
3448 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3453 TEST(mnemonic##_2D_2OPIMM) { \
3454 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic, \
3459 TEST(mnemonic##2_8H_2OPIMM) { \
3460 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3465 TEST(mnemonic##2_4S_2OPIMM) { \
3466 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3471 TEST(mnemonic##2_2D_2OPIMM) { \
3472 CALL_TEST_NEON_HELPER_2OPIMM(mnemonic##2, \
3478 #define CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \ argument
3482 CALL_TEST_NEON_HELPER_ByElement(mnemonic, \
3488 #define DEFINE_TEST_NEON_BYELEMENT(mnemonic, input_d, input_n, input_m) \ argument
3489 TEST(mnemonic##_4H_4H_H) { \
3490 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3497 TEST(mnemonic##_8H_8H_H) { \
3498 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3505 TEST(mnemonic##_2S_2S_S) { \
3506 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3513 TEST(mnemonic##_4S_4S_S) { \
3514 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3522 #define DEFINE_TEST_NEON_BYELEMENT_SCALAR(mnemonic, \ argument
3524 TEST(mnemonic##_H_H_H) { \
3525 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3532 TEST(mnemonic##_S_S_S) { \
3533 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3541 #define DEFINE_TEST_NEON_FP_BYELEMENT(mnemonic, input_d, input_n, input_m) \ argument
3542 TEST(mnemonic##_2S_2S_S) { \
3543 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3550 TEST(mnemonic##_4S_4S_S) { \
3551 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3558 TEST(mnemonic##_2D_2D_D) { \
3559 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3567 #define DEFINE_TEST_NEON_FP_BYELEMENT_SCALAR(mnemonic, inp_d, inp_n, inp_m) \ argument
3568 TEST(mnemonic##_S_S_S) { \
3569 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3576 TEST(mnemonic##_D_D_D) { \
3577 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3586 #define DEFINE_TEST_NEON_BYELEMENT_DIFF(mnemonic, input_d, input_n, input_m) \ argument
3587 TEST(mnemonic##_4S_4H_H) { \
3588 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3595 TEST(mnemonic##2_4S_8H_H) { \
3596 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2, \
3603 TEST(mnemonic##_2D_2S_S) { \
3604 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3611 TEST(mnemonic##2_2D_4S_S) { \
3612 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic##2, \
3620 #define DEFINE_TEST_NEON_BYELEMENT_DIFF_SCALAR(mnemonic, \ argument
3622 TEST(mnemonic##_S_H_H) { \
3623 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3630 TEST(mnemonic##_D_S_S) { \
3631 CALL_TEST_NEON_HELPER_BYELEMENT(mnemonic, \
3640 #define CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \ argument
3646 CALL_TEST_NEON_HELPER_OpImmOpImm(&MacroAssembler::mnemonic, \
3647 mnemonic, \
3653 #define DEFINE_TEST_NEON_2OP2IMM(mnemonic, \ argument
3656 TEST(mnemonic##_B) { \
3657 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
3664 TEST(mnemonic##_H) { \
3665 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
3672 TEST(mnemonic##_S) { \
3673 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \
3680 TEST(mnemonic##_D) { \
3681 CALL_TEST_NEON_HELPER_2OP2IMM(mnemonic, \