#define SIMDE_TEST_ARM_SVE_INSN cmplt #include "test-sve.h" #include "../../../simde/arm/sve/cmplt.h" #include "../../../simde/arm/sve/dup.h" static int test_simde_svcmplt_s8 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int8_t p[] = { -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0) }; static const int8_t a[] = { INT8_C( 54), INT8_C( 10), -INT8_C( 112), INT8_C( 90), INT8_C( 89), INT8_C( 123), -INT8_C( 83), -INT8_C( 50), INT8_C( 30), -INT8_C( 73), INT8_C( 71), -INT8_C( 95), INT8_C( 107), INT8_C( 76), -INT8_C( 29), -INT8_C( 109), INT8_C( 33), -INT8_C( 20), INT8_C( 3), INT8_C( 110), -INT8_C( 87), INT8_C( 68), INT8_C( 72), INT8_C( 73), INT8_C( 9), INT8_C( 5), INT8_C( 103), -INT8_C( 21), INT8_C( 111), INT8_C( 120), -INT8_C( 1), -INT8_C( 91), -INT8_C( 126), -INT8_C( 113), INT8_C( 0), -INT8_C( 37), INT8_C( 10), -INT8_C( 83), -INT8_C( 87), INT8_C( 40), INT8_C( 100), -INT8_C( 16), -INT8_C( 54), -INT8_C( 49), INT8_C( 61), -INT8_C( 83), INT8_C( 98), INT8_C( 94), -INT8_C( 103), INT8_C( 102), -INT8_C( 51), INT8_C( 66), -INT8_C( 86), INT8_C( 21), -INT8_C( 117), -INT8_C( 77), INT8_C( 26), -INT8_C( 14), -INT8_C( 98), -INT8_C( 119), INT8_C( 106), -INT8_C( 99), INT8_C( 46), -INT8_C( 19), INT8_C( 45), INT8_C( 46), -INT8_C( 56), INT8_C( 55), -INT8_C( 37), INT8_C( 114), INT8_C( 96), INT8_C( 63), INT8_C( 98), INT8_C( 42), INT8_C( 14), -INT8_C( 97), -INT8_C( 41), INT8_C( 113), -INT8_C( 2), INT8_C( 113), -INT8_C( 41), -INT8_C( 53), -INT8_C( 77), -INT8_C( 127), -INT8_C( 32), INT8_C( 63), INT8_C( 52), -INT8_C( 6), INT8_C( 49), -INT8_C( 46), -INT8_C( 125), -INT8_C( 100), INT8_C( 111), -INT8_C( 79), -INT8_C( 119), -INT8_C( 100), -INT8_C( 32), INT8_C( 81), -INT8_C( 44), -INT8_C( 69), -INT8_C( 61), INT8_C( 52), -INT8_C( 5), INT8_C( 38), INT8_C( 94), INT8_C( 9), -INT8_C( 59), INT8_C( 53), INT8_C( 122), -INT8_C( 61), -INT8_C( 90), INT8_C( 81), -INT8_C( 114), INT8_C( 90), -INT8_C( 46), INT8_C( 110), -INT8_C( 103), INT8_C( 6), INT8_C( 104), -INT8_C( 54), -INT8_C( 40), -INT8_C( 21), INT8_C( 102), INT8_C( 72), -INT8_C( 99), -INT8_C( 17), -INT8_C( 28), INT8_C( 125), INT8_C( 65), -INT8_C( 72), INT8_C( 56), INT8_C( 4), -INT8_C( 20), INT8_C( 51), INT8_C( 42), INT8_C( 74), INT8_C( 61), -INT8_C( 16), INT8_MIN, -INT8_C( 73), -INT8_C( 77), INT8_C( 38), INT8_C( 9), INT8_C( 66), INT8_MIN, -INT8_C( 37), -INT8_C( 80), INT8_C( 25), -INT8_C( 30), INT8_C( 25), -INT8_C( 28), -INT8_C( 70), INT8_C( 4), INT8_C( 74), INT8_C( 2), -INT8_C( 95), INT8_C( 58), -INT8_C( 25), INT8_C( 30), INT8_C( 123), -INT8_C( 97), INT8_C( 87), INT8_MAX, -INT8_C( 116), -INT8_C( 118), -INT8_C( 86), -INT8_C( 42), -INT8_C( 57), -INT8_C( 102), INT8_C( 86), INT8_MAX, INT8_C( 77), INT8_C( 125), -INT8_C( 120), -INT8_C( 113), -INT8_C( 3), INT8_C( 99), INT8_C( 64), INT8_C( 23), INT8_C( 69), INT8_C( 89), -INT8_C( 5), INT8_C( 0), INT8_C( 93), INT8_C( 69), INT8_C( 2), -INT8_C( 1), INT8_MAX, -INT8_C( 23), INT8_C( 29), -INT8_C( 6), -INT8_C( 119), INT8_C( 116), INT8_C( 122), INT8_C( 21), -INT8_C( 1), INT8_C( 36), -INT8_C( 21), -INT8_C( 58), -INT8_C( 66), INT8_C( 66), INT8_C( 69), INT8_C( 11), -INT8_C( 65), -INT8_C( 51), -INT8_C( 101), -INT8_C( 68), INT8_C( 49), -INT8_C( 37), -INT8_C( 45), INT8_C( 118), INT8_C( 52), -INT8_C( 50), INT8_C( 118), -INT8_C( 111), INT8_C( 20), INT8_C( 121), -INT8_C( 112), -INT8_C( 109), INT8_C( 98), -INT8_C( 82), -INT8_C( 114), -INT8_C( 21), INT8_C( 34), INT8_C( 8), INT8_C( 0), INT8_C( 33), INT8_C( 44), -INT8_C( 20), -INT8_C( 24), -INT8_C( 22), INT8_C( 46), INT8_C( 45), -INT8_C( 11), -INT8_C( 19), -INT8_C( 5), -INT8_C( 112), -INT8_C( 87), INT8_C( 44), INT8_C( 107), INT8_C( 125), -INT8_C( 94), -INT8_C( 97), INT8_C( 75), INT8_C( 25), INT8_C( 49), INT8_C( 95), -INT8_C( 110), -INT8_C( 63), -INT8_C( 13), -INT8_C( 12), INT8_C( 111), -INT8_C( 127), -INT8_C( 32), -INT8_C( 110), -INT8_C( 119), -INT8_C( 32), -INT8_C( 77), -INT8_C( 75), -INT8_C( 52), -INT8_C( 101), -INT8_C( 97), -INT8_C( 6), -INT8_C( 55), -INT8_C( 108), -INT8_C( 25), -INT8_C( 60), INT8_C( 37), -INT8_C( 111), -INT8_C( 16), -INT8_C( 112), INT8_C( 14), -INT8_C( 110), INT8_C( 48), INT8_C( 89), -INT8_C( 85), INT8_C( 97), -INT8_C( 71), INT8_C( 61), INT8_C( 34), -INT8_C( 84), INT8_C( 50), -INT8_C( 110), INT8_C( 45), INT8_C( 18), INT8_C( 36), -INT8_C( 74), -INT8_C( 14), -INT8_C( 41), INT8_C( 107), -INT8_C( 65), INT8_C( 115), INT8_C( 10), -INT8_C( 71), INT8_C( 60), -INT8_C( 98), -INT8_C( 95), INT8_C( 0), -INT8_C( 61), INT8_C( 50), -INT8_C( 16), INT8_C( 84), INT8_C( 64), -INT8_C( 126), -INT8_C( 124), -INT8_C( 103), INT8_C( 46), -INT8_C( 27), INT8_C( 82), INT8_C( 107), INT8_C( 7), -INT8_C( 2), -INT8_C( 99), -INT8_C( 103), INT8_C( 43), -INT8_C( 81), -INT8_C( 67), -INT8_C( 31), -INT8_C( 94), -INT8_C( 107), INT8_C( 76), INT8_C( 97), INT8_C( 8), INT8_C( 86), INT8_C( 26), INT8_C( 68), -INT8_C( 11), -INT8_C( 69), INT8_C( 68), -INT8_C( 72), -INT8_C( 19), INT8_C( 52), INT8_C( 12), INT8_C( 45), -INT8_C( 74), -INT8_C( 112), -INT8_C( 57), -INT8_C( 28), INT8_C( 117), INT8_C( 25), INT8_C( 80), INT8_C( 125), INT8_C( 24), -INT8_C( 19), INT8_C( 22), INT8_C( 67), -INT8_C( 99), -INT8_C( 44), INT8_C( 37), INT8_C( 63), INT8_C( 105), INT8_C( 113), -INT8_C( 96), INT8_C( 113), -INT8_C( 56), -INT8_C( 70), -INT8_C( 75), -INT8_C( 67), INT8_C( 118), -INT8_C( 7), INT8_C( 117), INT8_C( 99), INT8_C( 45), -INT8_C( 126), -INT8_C( 111), -INT8_C( 29), INT8_C( 18), INT8_C( 88), -INT8_C( 56), -INT8_C( 120), INT8_C( 113), INT8_C( 24), INT8_C( 5), -INT8_C( 119), INT8_C( 5), INT8_C( 27), -INT8_C( 51), -INT8_C( 94), -INT8_C( 17), -INT8_C( 14), -INT8_C( 31), INT8_C( 88), INT8_C( 99), -INT8_C( 127), -INT8_C( 55), INT8_C( 43), INT8_C( 60), INT8_C( 126), -INT8_C( 24), -INT8_C( 78), INT8_C( 119), INT8_C( 94), INT8_C( 21), -INT8_C( 92), -INT8_C( 32), -INT8_C( 90), -INT8_C( 120), -INT8_C( 14), -INT8_C( 2), INT8_C( 80), INT8_C( 122), INT8_C( 112), INT8_C( 104), INT8_MAX, -INT8_C( 7), INT8_C( 109), -INT8_C( 101), -INT8_C( 58), INT8_C( 16), -INT8_C( 118), -INT8_C( 72), -INT8_C( 15), -INT8_C( 29), INT8_C( 28), INT8_C( 115), -INT8_C( 84), INT8_C( 71), -INT8_C( 81), INT8_C( 43), INT8_C( 48), INT8_C( 97), -INT8_C( 94), -INT8_C( 114), INT8_C( 118), INT8_C( 71), INT8_C( 110), INT8_C( 29), -INT8_C( 49), INT8_C( 96), INT8_C( 27) }; static const int8_t b[] = { INT8_C( 31), -INT8_C( 37), -INT8_C( 117), -INT8_C( 121), INT8_C( 90), -INT8_C( 123), -INT8_C( 12), -INT8_C( 11), INT8_C( 75), INT8_C( 4), INT8_MIN, INT8_C( 4), -INT8_C( 10), INT8_C( 99), INT8_C( 32), INT8_C( 105), INT8_C( 15), INT8_C( 103), INT8_C( 24), INT8_C( 58), -INT8_C( 105), INT8_C( 121), -INT8_C( 35), INT8_C( 37), -INT8_C( 17), INT8_C( 36), -INT8_C( 109), INT8_C( 12), -INT8_C( 13), -INT8_C( 12), INT8_C( 40), INT8_C( 18), -INT8_C( 49), -INT8_C( 77), -INT8_C( 103), INT8_C( 41), INT8_C( 56), -INT8_C( 115), INT8_C( 31), -INT8_C( 124), -INT8_C( 110), -INT8_C( 97), -INT8_C( 120), -INT8_C( 120), INT8_C( 2), -INT8_C( 88), -INT8_C( 15), INT8_C( 17), INT8_C( 15), INT8_C( 9), INT8_C( 76), -INT8_C( 89), -INT8_C( 126), INT8_C( 41), -INT8_C( 52), INT8_C( 113), INT8_C( 77), INT8_C( 96), INT8_C( 126), INT8_C( 64), INT8_C( 84), -INT8_C( 90), INT8_C( 82), INT8_C( 35), INT8_C( 89), -INT8_C( 21), INT8_C( 76), -INT8_C( 110), INT8_C( 120), INT8_C( 107), INT8_C( 22), INT8_C( 10), INT8_C( 10), -INT8_C( 98), -INT8_C( 110), INT8_C( 12), INT8_C( 70), -INT8_C( 125), INT8_C( 30), INT8_C( 85), -INT8_C( 116), INT8_C( 106), -INT8_C( 4), INT8_C( 14), -INT8_C( 109), -INT8_C( 55), INT8_MIN, -INT8_C( 32), INT8_C( 41), -INT8_C( 2), INT8_C( 32), INT8_C( 125), -INT8_C( 92), INT8_C( 114), -INT8_C( 96), -INT8_C( 3), INT8_C( 93), -INT8_C( 20), -INT8_C( 113), -INT8_C( 43), INT8_C( 88), -INT8_C( 91), -INT8_C( 32), INT8_C( 98), INT8_C( 67), INT8_C( 114), INT8_C( 111), -INT8_C( 119), -INT8_C( 10), -INT8_C( 115), -INT8_C( 33), -INT8_C( 126), -INT8_C( 9), -INT8_C( 37), -INT8_C( 111), -INT8_C( 118), -INT8_C( 92), INT8_C( 17), INT8_C( 106), -INT8_C( 51), INT8_C( 15), -INT8_C( 118), INT8_C( 74), -INT8_C( 77), -INT8_C( 4), -INT8_C( 22), -INT8_C( 80), INT8_C( 89), -INT8_C( 41), INT8_C( 64), INT8_C( 46), INT8_C( 47), -INT8_C( 27), INT8_C( 14), -INT8_C( 111), INT8_C( 41), -INT8_C( 127), INT8_C( 0), -INT8_C( 78), INT8_C( 119), -INT8_C( 115), -INT8_C( 111), -INT8_C( 7), -INT8_C( 124), INT8_C( 109), -INT8_C( 118), INT8_C( 14), INT8_C( 17), -INT8_C( 101), INT8_C( 120), -INT8_C( 33), -INT8_C( 86), INT8_C( 2), INT8_C( 41), INT8_C( 93), -INT8_C( 2), INT8_C( 20), INT8_C( 14), INT8_C( 87), -INT8_C( 21), INT8_C( 78), -INT8_C( 122), INT8_C( 26), INT8_C( 51), -INT8_C( 108), -INT8_C( 85), INT8_C( 92), INT8_C( 21), -INT8_C( 84), INT8_C( 15), -INT8_C( 116), INT8_C( 57), -INT8_C( 96), -INT8_C( 122), -INT8_C( 66), INT8_C( 13), INT8_C( 16), -INT8_C( 52), INT8_C( 31), -INT8_C( 84), INT8_C( 69), -INT8_C( 2), INT8_C( 86), INT8_C( 71), INT8_C( 39), -INT8_C( 76), INT8_C( 70), INT8_C( 59), -INT8_C( 62), -INT8_C( 99), INT8_C( 38), INT8_C( 16), INT8_C( 35), INT8_C( 64), INT8_C( 67), -INT8_C( 72), -INT8_C( 20), -INT8_C( 96), -INT8_C( 51), -INT8_C( 104), -INT8_C( 81), INT8_C( 90), -INT8_C( 47), INT8_C( 79), -INT8_C( 32), -INT8_C( 113), INT8_C( 93), -INT8_C( 16), INT8_C( 92), INT8_C( 124), -INT8_C( 100), -INT8_C( 95), INT8_C( 122), -INT8_C( 13), -INT8_C( 24), -INT8_C( 95), -INT8_C( 89), INT8_C( 46), -INT8_C( 35), INT8_C( 105), -INT8_C( 52), INT8_C( 3), INT8_C( 121), -INT8_C( 17), INT8_C( 68), -INT8_C( 68), -INT8_C( 89), INT8_C( 48), INT8_C( 92), INT8_C( 117), -INT8_C( 56), INT8_C( 11), -INT8_C( 49), -INT8_C( 103), INT8_C( 91), -INT8_C( 81), INT8_C( 41), -INT8_C( 72), -INT8_C( 97), -INT8_C( 123), INT8_C( 52), INT8_C( 60), INT8_C( 38), -INT8_C( 82), INT8_C( 47), INT8_C( 14), INT8_C( 79), -INT8_C( 42), INT8_C( 61), INT8_C( 44), INT8_C( 63), INT8_C( 9), INT8_C( 48), -INT8_C( 72), -INT8_C( 8), INT8_C( 116), INT8_C( 116), -INT8_C( 96), -INT8_C( 92), -INT8_C( 47), INT8_C( 21), INT8_C( 108), -INT8_C( 36), -INT8_C( 28), INT8_C( 5), INT8_C( 55), -INT8_C( 109), INT8_C( 46), -INT8_C( 17), INT8_C( 50), -INT8_C( 77), INT8_C( 35), INT8_C( 110), -INT8_C( 39), -INT8_C( 47), -INT8_C( 99), -INT8_C( 24), INT8_C( 33), INT8_C( 115), INT8_C( 37), INT8_C( 77), -INT8_C( 78), INT8_C( 46), INT8_C( 125), INT8_C( 106), INT8_C( 38), -INT8_C( 15), -INT8_C( 33), -INT8_C( 58), -INT8_C( 107), -INT8_C( 80), -INT8_C( 37), INT8_C( 1), -INT8_C( 116), -INT8_C( 65), INT8_C( 7), -INT8_C( 60), INT8_C( 82), INT8_C( 53), -INT8_C( 77), -INT8_C( 123), -INT8_C( 23), -INT8_C( 41), -INT8_C( 13), -INT8_C( 62), -INT8_C( 88), -INT8_C( 111), -INT8_C( 86), -INT8_C( 55), INT8_C( 4), -INT8_C( 49), INT8_C( 23), -INT8_C( 73), -INT8_C( 3), -INT8_C( 108), INT8_C( 33), INT8_C( 36), -INT8_C( 122), INT8_C( 0), -INT8_C( 22), INT8_C( 27), -INT8_C( 80), -INT8_C( 58), INT8_C( 29), INT8_C( 61), -INT8_C( 123), INT8_C( 36), INT8_C( 1), -INT8_C( 40), INT8_C( 89), -INT8_C( 76), INT8_C( 93), INT8_C( 66), -INT8_C( 117), INT8_C( 80), INT8_C( 5), INT8_C( 52), -INT8_C( 31), -INT8_C( 81), -INT8_C( 3), -INT8_C( 26), INT8_MAX, INT8_C( 20), -INT8_C( 99), INT8_C( 124), -INT8_C( 87), -INT8_C( 66), -INT8_C( 96), INT8_C( 47), -INT8_C( 65), -INT8_C( 117), INT8_C( 74), INT8_C( 111), INT8_C( 81), INT8_C( 103), -INT8_C( 84), -INT8_C( 42), -INT8_C( 117), -INT8_C( 83), -INT8_C( 82), -INT8_C( 27), INT8_C( 98), INT8_C( 11), INT8_C( 39), -INT8_C( 19), INT8_C( 92), INT8_C( 44), INT8_C( 33), INT8_C( 61), -INT8_C( 36), INT8_C( 31), INT8_C( 35), INT8_C( 91), INT8_C( 51), -INT8_C( 64), -INT8_C( 41), -INT8_C( 36), INT8_MAX, INT8_C( 120), INT8_C( 11), INT8_C( 62), INT8_C( 3), INT8_C( 86), -INT8_C( 83), INT8_C( 84), -INT8_C( 67), INT8_C( 90), INT8_C( 42), INT8_C( 73), INT8_C( 7), -INT8_C( 39), INT8_C( 46), INT8_C( 105), -INT8_C( 28), INT8_C( 85), INT8_C( 87), INT8_C( 64), -INT8_C( 126), INT8_C( 120), INT8_C( 126), INT8_C( 94), -INT8_C( 105), -INT8_C( 95), -INT8_C( 71), -INT8_C( 53), INT8_C( 98), -INT8_C( 112), -INT8_C( 89), -INT8_C( 31), INT8_C( 8), -INT8_C( 77), INT8_C( 31), INT8_C( 11), INT8_C( 9), -INT8_C( 52), INT8_C( 95), -INT8_C( 58), INT8_C( 38), -INT8_C( 118), INT8_C( 15), INT8_C( 46), INT8_C( 99), INT8_C( 61), -INT8_C( 105), INT8_C( 71), -INT8_C( 109), -INT8_C( 18), -INT8_C( 120), INT8_C( 21), INT8_C( 103) }; static const int8_t e[] = { INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0) }; static int8_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b8_s32(i, len); while (simde_svptest_first(simde_svptrue_b8(), pg)) { simde_svbool_t pv, ev; simde_svint8_t av = simde_svld1_s8(pg, &(a[i])), bv = simde_svld1_s8(pg, &(b[i])); pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(0)); ev = simde_svcmplt_s8(pv, av, bv); simde_svst1_s8(pg, &(r[i]), simde_svdup_n_s8_z(ev, ~INT8_C(0))); i += simde_svcntb(); pg = simde_svwhilelt_b8_s32(i, len); } simde_assert_equal_vi8(len, e, r); return 0; #else int8_t p[1024 / sizeof(int8_t)], a[1024 / sizeof(int8_t)], b[1024 / sizeof(int8_t)], e[1024 / sizeof(int8_t)]; int32_t len = simde_test_codegen_random_i16() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b8_s32(i, len); while (simde_svptest_first(simde_svptrue_b8(), pg)) { simde_svint8_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(0)); av = simde_svld1_s8(pg, &(a[i])); bv = simde_svld1_s8(pg, &(b[i])); ev = simde_svcmplt_s8(pv, av, bv); simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~INT8_C(0))); simde_svst1_s8(pg, &(e[i]), simde_svdup_n_s8_z(ev, ~INT8_C(0))); i += simde_svcntb(); pg = simde_svwhilelt_b8_s32(i, len); } simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_s16 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int16_t p[] = { INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1) }; static const int16_t a[] = { -INT16_C( 28344), -INT16_C( 7466), -INT16_C( 12016), INT16_C( 31636), INT16_C( 325), INT16_C( 25066), -INT16_C( 4481), -INT16_C( 1032), -INT16_C( 3515), -INT16_C( 24598), INT16_C( 32589), INT16_C( 7175), INT16_C( 2746), -INT16_C( 29871), -INT16_C( 14448), -INT16_C( 9876), INT16_C( 16984), INT16_C( 26811), INT16_C( 20244), INT16_C( 23012), -INT16_C( 12719), -INT16_C( 12102), -INT16_C( 19524), INT16_C( 459), -INT16_C( 19035), -INT16_C( 3424), -INT16_C( 22476), -INT16_C( 4337), INT16_C( 24754), INT16_C( 17018), -INT16_C( 6617), INT16_C( 32539), -INT16_C( 10455), INT16_C( 15847), -INT16_C( 13530), INT16_C( 30614), INT16_C( 20634), INT16_C( 22087), INT16_C( 4867), -INT16_C( 22440), -INT16_C( 1848), -INT16_C( 613), -INT16_C( 21856), INT16_C( 21228), INT16_C( 26122), INT16_C( 12693), -INT16_C( 20404), INT16_C( 30128), -INT16_C( 26745), -INT16_C( 20814), INT16_C( 18531), -INT16_C( 731), INT16_C( 28057), -INT16_C( 25517), -INT16_C( 21632), INT16_C( 18501), -INT16_C( 8028), INT16_C( 17477), INT16_C( 12682), -INT16_C( 27497), INT16_C( 11415), -INT16_C( 6971), INT16_C( 30172), INT16_C( 25689), INT16_C( 3084), INT16_C( 28434), INT16_C( 14164), -INT16_C( 4756), -INT16_C( 16220), INT16_C( 9354), -INT16_C( 12437), INT16_C( 3949), -INT16_C( 19793), INT16_C( 14676), -INT16_C( 5148), INT16_C( 31693), -INT16_C( 28137), -INT16_C( 3233), -INT16_C( 18169), INT16_C( 4951), INT16_C( 27077), INT16_C( 6531), -INT16_C( 4191), INT16_C( 17671), -INT16_C( 28241), INT16_C( 7018), -INT16_C( 10400), INT16_C( 3882), INT16_C( 32393), INT16_C( 27976), INT16_C( 5481), -INT16_C( 32535) }; static const int16_t b[] = { INT16_C( 18599), -INT16_C( 20876), -INT16_C( 13567), -INT16_C( 14655), INT16_C( 17461), -INT16_C( 10528), -INT16_C( 6348), -INT16_C( 7397), -INT16_C( 31368), -INT16_C( 9986), INT16_C( 10588), -INT16_C( 6425), INT16_C( 12199), INT16_C( 4435), INT16_C( 15428), -INT16_C( 5231), INT16_C( 1413), -INT16_C( 31079), INT16_C( 23249), INT16_C( 1613), INT16_C( 11679), -INT16_C( 11300), -INT16_C( 2284), -INT16_C( 29514), -INT16_C( 19075), -INT16_C( 9884), INT16_C( 19422), -INT16_C( 31297), INT16_C( 4986), -INT16_C( 16746), INT16_C( 10319), -INT16_C( 11095), INT16_C( 16941), -INT16_C( 421), -INT16_C( 22372), INT16_C( 15108), -INT16_C( 7979), -INT16_C( 5874), -INT16_C( 14888), INT16_C( 21877), -INT16_C( 9862), INT16_C( 22574), -INT16_C( 4572), -INT16_C( 24867), INT16_C( 29697), INT16_C( 20572), INT16_C( 1436), -INT16_C( 14043), -INT16_C( 32697), -INT16_C( 7224), -INT16_C( 13272), -INT16_C( 737), INT16_C( 11693), -INT16_C( 31258), INT16_C( 23538), INT16_C( 27866), INT16_C( 2100), INT16_C( 22724), -INT16_C( 23818), -INT16_C( 2058), INT16_C( 21014), -INT16_C( 19896), INT16_C( 27991), -INT16_C( 24965), INT16_C( 17389), INT16_C( 5505), -INT16_C( 24560), -INT16_C( 17134), -INT16_C( 1842), -INT16_C( 16318), INT16_C( 7251), -INT16_C( 30931), -INT16_C( 3804), INT16_C( 7135), -INT16_C( 10861), -INT16_C( 22254), INT16_C( 23079), INT16_C( 32347), -INT16_C( 10297), -INT16_C( 19428), -INT16_C( 25318), INT16_C( 10953), -INT16_C( 9410), INT16_C( 3303), INT16_C( 10707), INT16_C( 9932), -INT16_C( 1723), INT16_C( 27309), -INT16_C( 29461), INT16_C( 32389), -INT16_C( 26783), -INT16_C( 30680) }; static const int16_t e[] = { INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1) }; static int16_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b16_s32(i, len); while (simde_svptest_first(simde_svptrue_b16(), pg)) { simde_svbool_t pv, ev; simde_svint16_t av = simde_svld1_s16(pg, &(a[i])), bv = simde_svld1_s16(pg, &(b[i])); pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(0)); ev = simde_svcmplt_s16(pv, av, bv); simde_svst1_s16(pg, &(r[i]), simde_svdup_n_s16_z(ev, ~INT16_C(0))); i += simde_svcnth(); pg = simde_svwhilelt_b16_s32(i, len); } simde_assert_equal_vi16(len, e, r); return 0; #else int16_t p[1024 / sizeof(int16_t)], a[1024 / sizeof(int16_t)], b[1024 / sizeof(int16_t)], e[1024 / sizeof(int16_t)]; int32_t len = simde_test_codegen_random_i16() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b16_s32(i, len); while (simde_svptest_first(simde_svptrue_b16(), pg)) { simde_svint16_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(0)); av = simde_svld1_s16(pg, &(a[i])); bv = simde_svld1_s16(pg, &(b[i])); ev = simde_svcmplt_s16(pv, av, bv); simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~INT16_C(0))); simde_svst1_s16(pg, &(e[i]), simde_svdup_n_s16_z(ev, ~INT16_C(0))); i += simde_svcnth(); pg = simde_svwhilelt_b16_s32(i, len); } simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_s32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int32_t p[] = { -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0) }; static const int32_t a[] = { INT32_C( 46683809), -INT32_C( 1115452356), -INT32_C( 461756592), INT32_C( 1576242389), INT32_C( 2016372030), INT32_C( 747430481), INT32_C( 793202128), -INT32_C( 1599720449), -INT32_C( 962367606), INT32_C( 1283663611), INT32_C( 590413133), -INT32_C( 947903351), -INT32_C( 633360247), INT32_C( 1644612498), INT32_C( 395398424), INT32_C( 196622465), -INT32_C( 1563337817), -INT32_C( 823241599), -INT32_C( 621732015), -INT32_C( 861834685), -INT32_C( 1264132062), -INT32_C( 1021923925), INT32_C( 2077992954), -INT32_C( 2038000673), INT32_C( 1864980462), -INT32_C( 63105109), INT32_C( 2044079926), -INT32_C( 1018857567), INT32_C( 41413719), -INT32_C( 1815704167), INT32_C( 336568628), INT32_C( 580556084), -INT32_C( 1735277587), INT32_C( 295030491), -INT32_C( 1635030019), INT32_C( 979488995), INT32_C( 1430116540), -INT32_C( 1696005275), -INT32_C( 659621724), INT32_C( 2063222925), -INT32_C( 418149620), INT32_C( 1475913817), -INT32_C( 151682285), INT32_C( 271669076), -INT32_C( 1788449233), INT32_C( 355422065), -INT32_C( 722608825), INT32_C( 827320101), -INT32_C( 887594382), INT32_C( 488771850), -INT32_C( 401336172), -INT32_C( 1627830929), INT32_C( 607346611), -INT32_C( 180788562), INT32_C( 1707681343), INT32_C( 2140542989), -INT32_C( 2075480198), INT32_C( 1419931072), -INT32_C( 197282171), -INT32_C( 1366149381), INT32_C( 1137886869), INT32_C( 1748503336), INT32_C( 1053622577), -INT32_C( 1799527654), -INT32_C( 770111726), -INT32_C( 114836620), INT32_C( 1827497073), INT32_C( 790266010), INT32_C( 1853025350), INT32_C( 685157111), -INT32_C( 983129173), INT32_C( 425337607) }; static const int32_t b[] = { -INT32_C( 1611893974), -INT32_C( 1617423570), INT32_C( 285967991), INT32_C( 1279272198), INT32_C( 146453009), INT32_C( 120623452), INT32_C( 1003329076), -INT32_C( 480958535), -INT32_C( 930987622), -INT32_C( 882435244), -INT32_C( 1478724959), -INT32_C( 1460462441), INT32_C( 716221902), INT32_C( 1932648510), INT32_C( 799997558), -INT32_C( 1089338587), -INT32_C( 1735944892), INT32_C( 1365503664), -INT32_C( 134725792), INT32_C( 698346331), -INT32_C( 682405992), -INT32_C( 1521842897), -INT32_C( 1445660541), INT32_C( 1080616956), INT32_C( 752480380), INT32_C( 1065172190), -INT32_C( 684296836), -INT32_C( 134097312), INT32_C( 1439650853), INT32_C( 1576671705), INT32_C( 235327250), INT32_C( 844000950), INT32_C( 1029580638), -INT32_C( 528688284), -INT32_C( 1330138544), -INT32_C( 1364674424), -INT32_C( 435980275), -INT32_C( 1555825263), -INT32_C( 2102310452), INT32_C( 380895416), -INT32_C( 1957490137), INT32_C( 1030475757), INT32_C( 183313282), -INT32_C( 390555941), -INT32_C( 1613776114), -INT32_C( 2059201863), INT32_C( 336131164), INT32_C( 472562932), -INT32_C( 1129873713), -INT32_C( 805694643), INT32_C( 299558710), -INT32_C( 1946512771), INT32_C( 120310094), INT32_C( 931950299), INT32_C( 1464570978), INT32_C( 544437841), INT32_C( 1104943860), INT32_C( 1662113325), INT32_C( 997583806), -INT32_C( 876122243), INT32_C( 332591672), -INT32_C( 1035247776), INT32_C( 1142527731), INT32_C( 6589452), -INT32_C( 733855321), -INT32_C( 717729001), -INT32_C( 1156469442), INT32_C( 1418188828), INT32_C( 711416266), -INT32_C( 1393773896), INT32_C( 1441793609), INT32_C( 961959314) }; static const int32_t e[] = { INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0) }; static int32_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svbool_t pv, ev; simde_svint32_t av = simde_svld1_s32(pg, &(a[i])), bv = simde_svld1_s32(pg, &(b[i])); pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); ev = simde_svcmplt_s32(pv, av, bv); simde_svst1_s32(pg, &(r[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_assert_equal_vi32(len, e, r); return 0; #else int32_t p[1024 / sizeof(int32_t)], a[1024 / sizeof(int32_t)], b[1024 / sizeof(int32_t)], e[1024 / sizeof(int32_t)]; int32_t len = simde_test_codegen_random_i32() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svint32_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); av = simde_svld1_s32(pg, &(a[i])); bv = simde_svld1_s32(pg, &(b[i])); ev = simde_svcmplt_s32(pv, av, bv); simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~INT32_C(0))); simde_svst1_s32(pg, &(e[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_s64 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int64_t p[] = { INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0) }; static const int64_t a[] = { -INT64_C( 8385271428064129702), -INT64_C( 2691043331897020548), -INT64_C( 7328162405211079502), -INT64_C( 8827554261572742103), -INT64_C( 8925194342084739193), INT64_C( 7762265917864754054), INT64_C( 815184387826040471), -INT64_C( 8475232422895630159), -INT64_C( 722751399495854228), INT64_C( 2208044229737016448), INT64_C( 4771322536163308619), -INT64_C( 37577373513767187), INT64_C( 7204190271942466966), -INT64_C( 6521703353978925608), INT64_C( 7244331883512812213), -INT64_C( 4737278665005160273), -INT64_C( 382316538301794965), INT64_C( 4938716574616538506), INT64_C( 1370524084043733802), -INT64_C( 7808513701533361732), -INT64_C( 6023403825021229748), -INT64_C( 4201266251800919328), INT64_C( 1075353514125180277), INT64_C( 2630547316787003845), -INT64_C( 3041905617652260103), -INT64_C( 1649172388278740547), -INT64_C( 5434525407053184205), INT64_C( 1507618577499457264), INT64_C( 3913619801832980101), -INT64_C( 4851033714923302063), INT64_C( 1139646134831181869), INT64_C( 1985177682003391068), INT64_C( 428657478974422083), INT64_C( 6250282875867463544), INT64_C( 3608865258622615527), -INT64_C( 763864046902841931), INT64_C( 6389099206626376689), -INT64_C( 3269024080151874526), INT64_C( 945453937980871958), -INT64_C( 1260234949502908453), -INT64_C( 507993241525406790), INT64_C( 8822524610068368562), INT64_C( 1180369941931902972), INT64_C( 3618395427090315851), -INT64_C( 4890698049752544430), INT64_C( 5254233245420709132), INT64_C( 2257989876338937872), INT64_C( 7161461253647954615), -INT64_C( 274810907810648214), INT64_C( 7108182498628897041), -INT64_C( 677231824154902106), INT64_C( 749155133822468592), -INT64_C( 5934708995607564104), INT64_C( 858973004553129782), -INT64_C( 9212922758583446544), -INT64_C( 8373344185494648032), INT64_C( 3252116764232993239), -INT64_C( 3722328603758285594), INT64_C( 2037070672168737844), -INT64_C( 8806040655037085845), -INT64_C( 5109866130227724814), -INT64_C( 6778378765354021817), INT64_C( 8381386962558708024), -INT64_C( 4060701134674514574), INT64_C( 74247521856167802), -INT64_C( 6871909843508982637), INT64_C( 2700229802900850939), INT64_C( 2589265947525459025), -INT64_C( 484849004242165878), INT64_C( 8542375744502392964), -INT64_C( 2918626654920416859), INT64_C( 4174534144388154401), INT64_C( 6623601909703729035), INT64_C( 2890136143960466730), -INT64_C( 6083800650301204940), INT64_C( 552645860647145411), INT64_C( 1582421440852404419), INT64_C( 4932520278572547273), -INT64_C( 5214728611256404885), INT64_C( 4512841553452603166), INT64_C( 5043413094090971646), -INT64_C( 622617648729835767), INT64_C( 550722189816322809), -INT64_C( 6746883018576507227), INT64_C( 908750772756952794), INT64_C( 3153506219262750015), -INT64_C( 2032042354070212389), -INT64_C( 8515918015344972405), INT64_C( 2568879053970889623), INT64_C( 2812412535510125482), INT64_C( 7459572715069644643), -INT64_C( 9124460061725915098), INT64_C( 7478722771721928642), -INT64_C( 3674572898673903475), -INT64_C( 3625973129979892374), INT64_C( 7919581776108995452), INT64_C( 6081228144064529473), INT64_C( 6758828766252607636), -INT64_C( 6084555305983395044), INT64_C( 8407369702402306709), INT64_C( 3393698283727798270), -INT64_C( 8011909834046814594), INT64_C( 6417597327150904117), INT64_C( 1854433130054230292), -INT64_C( 8948381955550990843), INT64_C( 3261104177609571900), -INT64_C( 8406636692234988489) }; static const int64_t b[] = { INT64_C( 4104908137810882242), INT64_C( 596632168279168446), INT64_C( 4020863447921671335), -INT64_C( 4642780220041831025), -INT64_C( 5484939088326990475), INT64_C( 737673772273220201), INT64_C( 9165236394533713402), INT64_C( 6957805151382234066), INT64_C( 2964753666462526587), INT64_C( 5986298036905483173), INT64_C( 432202844616899984), INT64_C( 1598044058810680545), -INT64_C( 4072474377948088687), INT64_C( 284258337226283333), -INT64_C( 7000701873233379680), -INT64_C( 6721737816848814842), INT64_C( 3293943223716953550), INT64_C( 774545927045940808), -INT64_C( 3794645775198371076), INT64_C( 2744419885746274658), -INT64_C( 4506189555848312223), -INT64_C( 232150881909521837), -INT64_C( 4823624193579637378), INT64_C( 21189372085894092), -INT64_C( 9183473861733555886), -INT64_C( 4251955199947765246), -INT64_C( 8520502919424331094), -INT64_C( 8344614606203850094), INT64_C( 4325958382119254618), -INT64_C( 794537569852439058), -INT64_C( 6181830298352156178), INT64_C( 3923494942803813293), -INT64_C( 7061988707481499000), INT64_C( 7370927457858370571), -INT64_C( 6084845786945666100), INT64_C( 17457461654088235), -INT64_C( 3594786460965602097), -INT64_C( 8801600778945630468), INT64_C( 6943415060486811058), -INT64_C( 4478082217978303134), INT64_C( 6355806526048869539), INT64_C( 8685375250781460554), INT64_C( 5343947468665581971), -INT64_C( 2583660768085634704), INT64_C( 742661559700055194), INT64_C( 6056661732528298702), INT64_C( 3006511988476818822), INT64_C( 8569418650196172247), INT64_C( 8277259481766506004), INT64_C( 498513626765126614), INT64_C( 2750341810511677513), INT64_C( 8889299069155325707), INT64_C( 6658059156761594448), -INT64_C( 3918449981862482920), INT64_C( 5430204531366106087), INT64_C( 257145752566010286), INT64_C( 2755179390529167450), -INT64_C( 787183193894735926), -INT64_C( 9008176906584269200), INT64_C( 1859469599881834263), -INT64_C( 1351583313810504183), -INT64_C( 3789415859098223258), INT64_C( 3566701482923037480), INT64_C( 5368513133780146087), INT64_C( 1630760121374177936), INT64_C( 5531250628166867356), INT64_C( 6832462796396510855), INT64_C( 2912215529223933408), INT64_C( 614035924109282494), -INT64_C( 8446851830394187689), -INT64_C( 5182520738490675201), -INT64_C( 2627213643420739382), INT64_C( 4360275973754218255), INT64_C( 4714562111168479711), INT64_C( 6853364369711405196), INT64_C( 5177533429796959714), -INT64_C( 3183124698607049550), -INT64_C( 7833691563716343099), INT64_C( 3292153641338159292), INT64_C( 8036680940659699977), INT64_C( 6048856078459226666), -INT64_C( 8719349539739555996), INT64_C( 1467759010703210213), -INT64_C( 4961596172061472008), INT64_C( 7497026651307977256), -INT64_C( 1098084417712986767), INT64_C( 1938938323324148424), INT64_C( 4996166665819340297), INT64_C( 7749012676436242205), -INT64_C( 547916122802397589), INT64_C( 954679575932864003), INT64_C( 2185368425187446514), -INT64_C( 4642987653556318420), -INT64_C( 6606329160598735063), -INT64_C( 4381429793102947040), INT64_C( 231414036604049942), INT64_C( 7676589257051895412), INT64_C( 8662134403440557552), INT64_C( 2217970074359037746), INT64_C( 3712211562622523818), INT64_C( 6237069203413445858), -INT64_C( 7416551830531386814), INT64_C( 3045389374093897757), -INT64_C( 3967337132960548354), -INT64_C( 5361682200210379300), -INT64_C( 5058278383451930676), -INT64_C( 3549361181386970605) }; static const int64_t e[] = { INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0) }; static int64_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svbool_t pv, ev; simde_svint64_t av = simde_svld1_s64(pg, &(a[i])), bv = simde_svld1_s64(pg, &(b[i])); pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); ev = simde_svcmplt_s64(pv, av, bv); simde_svst1_s64(pg, &(r[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_assert_equal_vi64(len, e, r); return 0; #else int64_t p[1024 / sizeof(int64_t)], a[1024 / sizeof(int64_t)], b[1024 / sizeof(int64_t)], e[1024 / sizeof(int64_t)]; int32_t len = simde_test_codegen_random_i64() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svint64_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); av = simde_svld1_s64(pg, &(a[i])); bv = simde_svld1_s64(pg, &(b[i])); ev = simde_svcmplt_s64(pv, av, bv); simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~INT64_C(0))); simde_svst1_s64(pg, &(e[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_u8 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int8_t p[] = { INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1) }; static const uint8_t a[] = { UINT8_C(185), UINT8_C(118), UINT8_C( 20), UINT8_C(106), UINT8_C( 87), UINT8_C(173), UINT8_C( 82), UINT8_C( 80), UINT8_C(134), UINT8_MAX, UINT8_C(132), UINT8_C(145), UINT8_C(225), UINT8_C(141), UINT8_C( 39), UINT8_C(162), UINT8_C(126), UINT8_C( 55), UINT8_C( 68), UINT8_C( 49), UINT8_C(225), UINT8_C( 64), UINT8_C(179), UINT8_C(137), UINT8_C(218), UINT8_C( 66), UINT8_C(253), UINT8_C(184), UINT8_C(210), UINT8_C(252), UINT8_C(173), UINT8_C(139), UINT8_C(114), UINT8_C(194), UINT8_C(245), UINT8_C(202), UINT8_C(111), UINT8_C( 72), UINT8_C( 26), UINT8_C(245), UINT8_C( 71), UINT8_C(158), UINT8_C(135), UINT8_C( 40), UINT8_C( 43), UINT8_C(174), UINT8_C(203), UINT8_C(169), UINT8_C(229), UINT8_C( 15), UINT8_C(218), UINT8_C(198), UINT8_C( 79), UINT8_C(141), UINT8_C( 79), UINT8_C( 42), UINT8_C(207), UINT8_C( 77), UINT8_C(226), UINT8_C(161), UINT8_C( 73), UINT8_C(143), UINT8_C( 45), UINT8_C(188), UINT8_C( 81), UINT8_C( 34), UINT8_C(134), UINT8_C(193), UINT8_C(106), UINT8_C(160), UINT8_C(182), UINT8_C(177), UINT8_C( 62), UINT8_C( 61), UINT8_C(218), UINT8_C(105), UINT8_C(235), UINT8_C(165), UINT8_C( 18), UINT8_C(208), UINT8_C(180), UINT8_C(236), UINT8_C(151), UINT8_C( 4), UINT8_C(121), UINT8_C(230), UINT8_C( 46), UINT8_C( 72), UINT8_C( 51), UINT8_C( 16), UINT8_C(234), UINT8_C(125), UINT8_C(159), UINT8_C( 23), UINT8_C( 57), UINT8_C(241), UINT8_C( 57), UINT8_C(191), UINT8_C(178), UINT8_C(164), UINT8_C( 95), UINT8_C(104), UINT8_C( 85), UINT8_C(157), UINT8_C(166), UINT8_C( 47), UINT8_C( 6), UINT8_C(145), UINT8_C(212), UINT8_C( 24), UINT8_C( 98), UINT8_C(137), UINT8_C( 4), UINT8_C(249), UINT8_C(141), UINT8_C(125), UINT8_C(223), UINT8_C(187), UINT8_C(197), UINT8_C( 19), UINT8_C(203), UINT8_C(175), UINT8_C(144), UINT8_C(106), UINT8_C(198), UINT8_C(201), UINT8_C( 91), UINT8_C( 0), UINT8_C(136), UINT8_C( 13), UINT8_C(164), UINT8_C(231), UINT8_C(118), UINT8_C(249), UINT8_C(132), UINT8_C( 28), UINT8_C( 41), UINT8_C(138), UINT8_C(173), UINT8_C(253), UINT8_C(162), UINT8_C( 15), UINT8_C(134), UINT8_C(166), UINT8_C( 8), UINT8_C( 19), UINT8_C( 35), UINT8_C(232), UINT8_C(206), UINT8_C(232), UINT8_C(251), UINT8_C(153), UINT8_C(152), UINT8_C(139), UINT8_C( 4), UINT8_C( 94), UINT8_C( 84), UINT8_C( 95), UINT8_C( 94), UINT8_C(220), UINT8_C(109), UINT8_C( 2), UINT8_C(195), UINT8_C(227), UINT8_C(252), UINT8_C( 71), UINT8_MAX, UINT8_C( 37), UINT8_C(209), UINT8_C(172), UINT8_C( 34), UINT8_C(115), UINT8_C(188), UINT8_C(169), UINT8_C( 25), UINT8_C(196), UINT8_C(188), UINT8_C( 60), UINT8_C(172), UINT8_C(139), UINT8_C( 36), UINT8_C(167), UINT8_C( 36), UINT8_C(188), UINT8_C( 50), UINT8_C( 40), UINT8_C( 27), UINT8_C(134), UINT8_C(136), UINT8_C(121), UINT8_C( 98), UINT8_C(245), UINT8_C(124), UINT8_C( 37), UINT8_C(216), UINT8_C(120), UINT8_C(108), UINT8_C(215), UINT8_C(157), UINT8_C( 61), UINT8_C(131), UINT8_C(191), UINT8_C(176), UINT8_C( 63), UINT8_C(104), UINT8_C(201), UINT8_C( 4), UINT8_C( 37), UINT8_C( 5), UINT8_C(176), UINT8_C(176), UINT8_C( 42), UINT8_C( 88), UINT8_C(212), UINT8_C(230), UINT8_C(138), UINT8_C(253), UINT8_C( 1), UINT8_C( 17), UINT8_C(133), UINT8_C(123), UINT8_C(115), UINT8_C(122), UINT8_C(247), UINT8_C(153), UINT8_C( 82), UINT8_C(111), UINT8_C( 5), UINT8_C( 41), UINT8_C( 12), UINT8_C( 67), UINT8_C(172), UINT8_C(203), UINT8_C(243), UINT8_C(236), UINT8_C( 52), UINT8_C(189), UINT8_C(240), UINT8_C( 89), UINT8_C(194), UINT8_C(160), UINT8_C( 9), UINT8_C(236), UINT8_C(248), UINT8_C(221), UINT8_C(211), UINT8_C(131), UINT8_C(218), UINT8_C(212), UINT8_C(148), UINT8_C( 95), UINT8_C( 79), UINT8_C( 7), UINT8_C(217), UINT8_C( 70), UINT8_C(160), UINT8_C( 43), UINT8_C(181), UINT8_C(166), UINT8_C( 84), UINT8_C(193), UINT8_C(233), UINT8_C( 1), UINT8_C(141), UINT8_C(220), UINT8_C(237), UINT8_C(193), UINT8_C(153), UINT8_C(221), UINT8_C( 26), UINT8_C( 92), UINT8_C(125), UINT8_C( 35), UINT8_C( 72), UINT8_C(118), UINT8_C( 0), UINT8_C( 27), UINT8_C(249), UINT8_C(219), UINT8_C(240), UINT8_C(141), UINT8_C( 58), UINT8_C( 63), UINT8_C(148), UINT8_C( 20), UINT8_C(134), UINT8_C( 53), UINT8_C( 63), UINT8_C( 59), UINT8_C(219), UINT8_C(148), UINT8_C(253), UINT8_C(196), UINT8_C(149), UINT8_C(138), UINT8_C(160), UINT8_C(130), UINT8_C( 75), UINT8_C( 58), UINT8_C( 95), UINT8_C(101), UINT8_C(150), UINT8_C(220), UINT8_C(136), UINT8_C(222), UINT8_C( 82), UINT8_C(136), UINT8_C(250), UINT8_C( 75), UINT8_C( 99), UINT8_C(234), UINT8_C(216), UINT8_C(158), UINT8_C( 41), UINT8_C(109), UINT8_C(178), UINT8_C(175), UINT8_C(162), UINT8_C(241), UINT8_C(235), UINT8_C(125), UINT8_C(133), UINT8_C(232), UINT8_C( 65), UINT8_C( 26), UINT8_C(114), UINT8_C(225), UINT8_C(156), UINT8_C(189), UINT8_C( 27), UINT8_C(251), UINT8_C( 34), UINT8_C(177), UINT8_C(216), UINT8_C(170), UINT8_C(144), UINT8_C( 42), UINT8_C( 50), UINT8_C(138), UINT8_C(118), UINT8_C(150), UINT8_C(116), UINT8_C( 78), UINT8_C( 52), UINT8_C(157), UINT8_C(187), UINT8_C(230), UINT8_C( 77), UINT8_C( 93), UINT8_C(215), UINT8_C( 56), UINT8_C(218), UINT8_C( 93), UINT8_C( 32), UINT8_C( 27), UINT8_C(119), UINT8_C(146), UINT8_C(253), UINT8_C( 20), UINT8_C( 79), UINT8_C( 24), UINT8_C( 15), UINT8_C(113), UINT8_C(202), UINT8_C(231), UINT8_C( 27), UINT8_C( 90), UINT8_C( 18), UINT8_C( 77), UINT8_C(228), UINT8_C(136), UINT8_C(227), UINT8_C( 88), UINT8_C(214), UINT8_C( 23), UINT8_C(245), UINT8_C(146), UINT8_C(253), UINT8_C( 66), UINT8_C(239), UINT8_C(213), UINT8_C(122), UINT8_C(202), UINT8_C( 50), UINT8_C(154), UINT8_C(229), UINT8_C(169), UINT8_C( 44), UINT8_C(226), UINT8_C(189), UINT8_C(123), UINT8_C(251), UINT8_C(205), UINT8_C(236), UINT8_C(197), UINT8_C(180), UINT8_C( 7), UINT8_C( 31), UINT8_C(198), UINT8_C( 85), UINT8_C( 3), UINT8_C( 78), UINT8_C( 56), UINT8_C( 91), UINT8_C( 37), UINT8_C( 80), UINT8_C( 80), UINT8_C(183), UINT8_C( 77), UINT8_C(147), UINT8_C(166), UINT8_C( 34), UINT8_C( 13), UINT8_C(112), UINT8_C( 84), UINT8_C(168), UINT8_C( 86), UINT8_C(254), UINT8_C(212), UINT8_C( 56), UINT8_C(187), UINT8_C( 80), UINT8_C( 51), UINT8_C(136), UINT8_C( 60), UINT8_C(248), UINT8_C( 61), UINT8_C( 68), UINT8_C( 23), UINT8_C( 3), UINT8_C(153), UINT8_C( 26), UINT8_C( 82), UINT8_C(209), UINT8_C(117), UINT8_C(119), UINT8_C( 33), UINT8_C(198), UINT8_C( 46), UINT8_C(111), UINT8_C( 89), UINT8_C(212), UINT8_C(145), UINT8_C(102), UINT8_C( 69), UINT8_C(230), UINT8_C( 14), UINT8_C(155), UINT8_C(228), UINT8_C(227), UINT8_C(211), UINT8_C(159), UINT8_C( 51), UINT8_C( 7), UINT8_C( 40), UINT8_C(111), UINT8_MAX, UINT8_C(101), UINT8_C(179), UINT8_C( 23), UINT8_C(104), UINT8_C( 76), UINT8_C( 49), UINT8_C(186), UINT8_C( 30), UINT8_C(167), UINT8_C( 49), UINT8_C( 63), UINT8_C(109), UINT8_C( 95), UINT8_C(174), UINT8_C(198), UINT8_C( 52), UINT8_C( 64), UINT8_C( 44), UINT8_C(121), UINT8_C( 38), UINT8_C( 59), UINT8_C( 20), UINT8_C( 10), UINT8_C( 30), UINT8_C(231), UINT8_C(169), UINT8_C( 81), UINT8_C(238), UINT8_C(209), UINT8_C(192), UINT8_C(238), UINT8_C( 54), UINT8_C(116), UINT8_C( 5), UINT8_C(159), UINT8_C(192), UINT8_C( 54), UINT8_C( 89), UINT8_C(222), UINT8_C(221), UINT8_C(139), UINT8_C( 30), UINT8_C( 74), UINT8_C(234), UINT8_C(204), UINT8_C( 16), UINT8_C( 30), UINT8_C( 12), UINT8_C( 61), UINT8_C(151), UINT8_C( 50), UINT8_C(120), UINT8_C(171), UINT8_C( 60), UINT8_C(150), UINT8_C(147), UINT8_C(230), UINT8_C(231), UINT8_C(129), UINT8_C(183), UINT8_C(167), UINT8_C(111), UINT8_C(238), UINT8_C( 27), UINT8_C(116), UINT8_C(141), UINT8_C(220), UINT8_C(171), UINT8_C(230), UINT8_C(186), UINT8_C(136), UINT8_C(113), UINT8_C(216), UINT8_C(211), UINT8_C( 92), UINT8_C(165), UINT8_C(227), UINT8_C(122), UINT8_C(177), UINT8_C( 32), UINT8_C( 18), UINT8_C(228), UINT8_C(152), UINT8_C(189), UINT8_C( 32), UINT8_C( 46), UINT8_C( 80), UINT8_C( 6), UINT8_C( 21), UINT8_C(210), UINT8_C(190), UINT8_C(189), UINT8_C( 65), UINT8_C(172), UINT8_C(216), UINT8_C(182), UINT8_C( 57), UINT8_C(180), UINT8_C( 97), UINT8_C( 31), UINT8_C(111), UINT8_C(233), UINT8_C(145), UINT8_C( 71), UINT8_C(188), UINT8_C(237), UINT8_C(236), UINT8_C(160), UINT8_C(103), UINT8_C(158), UINT8_C(192), UINT8_C(121), UINT8_C(130), UINT8_C( 89), UINT8_C( 55), UINT8_C(162), UINT8_C(135), UINT8_C(135), UINT8_C(169), UINT8_C(157), UINT8_C( 89), UINT8_C(103), UINT8_C( 90), UINT8_C(155), UINT8_C( 19), UINT8_C( 50), UINT8_C( 81), UINT8_C( 76), UINT8_C(231), UINT8_C(178), UINT8_C(107), UINT8_C( 86), UINT8_C(155), UINT8_C(252), UINT8_C(157), UINT8_C( 88), UINT8_C(233), UINT8_C(138), UINT8_C(248), UINT8_C( 81), UINT8_C( 40), UINT8_C(184), UINT8_C(202), UINT8_C(170), UINT8_C( 17), UINT8_C( 1), UINT8_C( 76), UINT8_C(153), UINT8_C(137), UINT8_C(245), UINT8_C( 54), UINT8_C(226), UINT8_C( 92), UINT8_C(144), UINT8_C(125), UINT8_C(111), UINT8_C(194), UINT8_C(206), UINT8_C(187), UINT8_C(169), UINT8_C(128), UINT8_C( 39), UINT8_MAX, UINT8_C( 28), UINT8_C( 35), UINT8_C(157), UINT8_C(116), UINT8_C( 13), UINT8_C( 39), UINT8_C(108), UINT8_C( 94), UINT8_C( 79), UINT8_C( 36), UINT8_C( 40), UINT8_C(249), UINT8_C( 54), UINT8_C( 42), UINT8_C( 69), UINT8_C(207), UINT8_C(179), UINT8_C( 59), UINT8_C( 5), UINT8_C(149), UINT8_C(151), UINT8_C(149), UINT8_C( 19), UINT8_C( 7), UINT8_C( 87), UINT8_C(225), UINT8_C(194), UINT8_C( 1), UINT8_C( 98), UINT8_C(233), UINT8_C( 0), UINT8_C(126), UINT8_C( 13), UINT8_C(157), UINT8_C(242), UINT8_C( 26), UINT8_C(196), UINT8_C( 94), UINT8_C(120), UINT8_C( 19), UINT8_C(130), UINT8_C(160), UINT8_C( 12), UINT8_C(184), UINT8_C(202), UINT8_C( 82), UINT8_C(135), UINT8_C(125), UINT8_C(141), UINT8_C(140), UINT8_C( 19), UINT8_C( 36), UINT8_C( 33), UINT8_C( 38), UINT8_C( 43), UINT8_C(121), UINT8_C( 7), UINT8_C(238), UINT8_C(122), UINT8_C(105), UINT8_C(215), UINT8_C(122), UINT8_C(231), UINT8_C(228), UINT8_C( 24), UINT8_C(217), UINT8_C(254), UINT8_C(220), UINT8_C( 55), UINT8_C(118), UINT8_C(240), UINT8_C(186), UINT8_C( 23), UINT8_C(252), UINT8_C(114), UINT8_C(225), UINT8_C( 78), UINT8_C(250), UINT8_C( 95), UINT8_C(219), UINT8_C(134), UINT8_C(114), UINT8_C( 0), UINT8_C(168), UINT8_C(152), UINT8_C( 43), UINT8_C( 33), UINT8_C(159), UINT8_C( 25), UINT8_C(155), UINT8_C( 9), UINT8_C(241), UINT8_C( 21), UINT8_C(240), UINT8_C(213), UINT8_C( 45), UINT8_C(202), UINT8_C(212), UINT8_C( 10), UINT8_C( 1), UINT8_C( 74), UINT8_C(250), UINT8_C(187), UINT8_C( 97), UINT8_C(246), UINT8_C( 46), UINT8_C( 67), UINT8_C( 69), UINT8_C( 40), UINT8_C(162), UINT8_C( 32), UINT8_C(174), UINT8_C( 20), UINT8_C( 32), UINT8_C( 86), UINT8_C(172), UINT8_C( 76), UINT8_C(119), UINT8_C( 75), UINT8_C(101), UINT8_C( 18), UINT8_C( 84), UINT8_C( 86), UINT8_C( 40), UINT8_C( 69), UINT8_C( 44), UINT8_C( 85), UINT8_C( 15), UINT8_C( 0), UINT8_C( 95), UINT8_C( 16), UINT8_C( 74), UINT8_C( 89), UINT8_C(204), UINT8_C(172), UINT8_C( 80), UINT8_C(250), UINT8_C(239), UINT8_C(149), UINT8_C( 34), UINT8_C(145), UINT8_C(181), UINT8_C(208), UINT8_C(165), UINT8_C(214), UINT8_C( 39), UINT8_C( 81), UINT8_C( 34), UINT8_C(158), UINT8_C(156), UINT8_C(135), UINT8_C(177), UINT8_C(241), UINT8_C(222), UINT8_C(217), UINT8_C( 54), UINT8_C( 10), UINT8_C( 46), UINT8_C( 69), UINT8_C( 10), UINT8_C(142), UINT8_C( 85), UINT8_C( 84), UINT8_C(231), UINT8_C( 33), UINT8_C( 0), UINT8_C( 55), UINT8_C( 27), UINT8_C(239), UINT8_C(204), UINT8_C( 61), UINT8_C(128), UINT8_C(130), UINT8_C( 14), UINT8_C( 37), UINT8_C( 88), UINT8_C( 53), UINT8_C(118), UINT8_C(122), UINT8_C(211), UINT8_C( 19), UINT8_C( 1), UINT8_C(132), UINT8_C( 4), UINT8_C(223), UINT8_C( 93), UINT8_C( 58), UINT8_C(233), UINT8_C(140), UINT8_C(127), UINT8_C(243), UINT8_C( 26), UINT8_C(212), UINT8_C( 72), UINT8_C( 1), UINT8_C(246), UINT8_C( 72), UINT8_C( 57), UINT8_C( 17), UINT8_C( 56), UINT8_C( 5), UINT8_C( 79), UINT8_C(184), UINT8_C(135), UINT8_C( 93), UINT8_C(222), UINT8_C(223), UINT8_C(146), UINT8_C( 84), UINT8_C( 89), UINT8_C(101), UINT8_C(103), UINT8_C( 91), UINT8_C(234), UINT8_C(107), UINT8_C( 58), UINT8_C( 71), UINT8_C(165), UINT8_C( 36), UINT8_C(211), UINT8_C( 36), UINT8_C( 23), UINT8_C(237), UINT8_C(249), UINT8_C( 95), UINT8_C(239), UINT8_C(239), UINT8_C(168), UINT8_C( 40), UINT8_C( 0), UINT8_C(224), UINT8_C( 45), UINT8_C( 79), UINT8_C(152), UINT8_C(181), UINT8_C(172), UINT8_C(118), UINT8_C(148), UINT8_C( 62), UINT8_C(203), UINT8_C(238), UINT8_C(164), UINT8_C( 50), UINT8_C( 73), UINT8_C(142), UINT8_C(158), UINT8_C(131), UINT8_C(213), UINT8_C( 67), UINT8_C(167), UINT8_C(169), UINT8_C(104), UINT8_C(191), UINT8_C(150), UINT8_C( 97), UINT8_C( 30), UINT8_C(133), UINT8_C( 80), UINT8_C(198), UINT8_C(173), UINT8_C( 80), UINT8_C(166), UINT8_C(219), UINT8_C(160), UINT8_C( 63), UINT8_C(144), UINT8_C( 76), UINT8_C(181), UINT8_C( 36), UINT8_C(139), UINT8_C(128), UINT8_C( 18), UINT8_C( 47), UINT8_C(179), UINT8_C( 91), UINT8_C(189), UINT8_C( 81), UINT8_C(223), UINT8_C(146), UINT8_C(148), UINT8_C(134), UINT8_C( 59), UINT8_C(252), UINT8_C( 69), UINT8_C(210), UINT8_C( 93), UINT8_C(100), UINT8_C( 87), UINT8_C(173), UINT8_C( 42), UINT8_C( 5), UINT8_C(254), UINT8_C(209), UINT8_C(224), UINT8_C(158) }; static const uint8_t b[] = { UINT8_C( 16), UINT8_C(112), UINT8_C(234), UINT8_C(197), UINT8_C(148), UINT8_C(117), UINT8_C( 70), UINT8_C(167), UINT8_C(164), UINT8_C(249), UINT8_C( 2), UINT8_C( 97), UINT8_C( 74), UINT8_C(225), UINT8_C(244), UINT8_C(222), UINT8_C(104), UINT8_C( 47), UINT8_C(219), UINT8_C(173), UINT8_C( 1), UINT8_C( 56), UINT8_C( 17), UINT8_C( 89), UINT8_C(230), UINT8_C( 60), UINT8_C( 94), UINT8_C(228), UINT8_C( 13), UINT8_C( 62), UINT8_C(130), UINT8_C( 29), UINT8_C(174), UINT8_C(108), UINT8_C(226), UINT8_C( 66), UINT8_C(226), UINT8_C( 40), UINT8_C(233), UINT8_C(134), UINT8_C( 33), UINT8_C(236), UINT8_C(232), UINT8_C(107), UINT8_C(205), UINT8_C(220), UINT8_C( 74), UINT8_C( 53), UINT8_C( 11), UINT8_C( 37), UINT8_C(227), UINT8_C( 13), UINT8_C( 93), UINT8_C(244), UINT8_C(102), UINT8_C( 67), UINT8_C( 48), UINT8_C(196), UINT8_C( 39), UINT8_C( 61), UINT8_C( 2), UINT8_C(169), UINT8_C( 90), UINT8_C(176), UINT8_C( 22), UINT8_C( 61), UINT8_C(242), UINT8_C(248), UINT8_C(101), UINT8_C(220), UINT8_C(126), UINT8_C(135), UINT8_C(200), UINT8_C(102), UINT8_C(242), UINT8_C(149), UINT8_C( 66), UINT8_C( 60), UINT8_C(203), UINT8_C( 78), UINT8_C( 97), UINT8_C(174), UINT8_C( 91), UINT8_C(191), UINT8_C(162), UINT8_C(193), UINT8_C( 2), UINT8_C(211), UINT8_C(133), UINT8_C( 42), UINT8_C( 16), UINT8_C(135), UINT8_C(211), UINT8_C(107), UINT8_C( 55), UINT8_C(233), UINT8_C(168), UINT8_C( 41), UINT8_C(225), UINT8_C( 13), UINT8_C( 5), UINT8_C( 96), UINT8_C(148), UINT8_C(205), UINT8_C(198), UINT8_C(135), UINT8_C( 99), UINT8_C( 9), UINT8_C(195), UINT8_C( 46), UINT8_C( 87), UINT8_C( 37), UINT8_C(220), UINT8_C(178), UINT8_C(228), UINT8_C(126), UINT8_C(115), UINT8_C(230), UINT8_C( 81), UINT8_C(248), UINT8_C( 16), UINT8_C( 98), UINT8_C(127), UINT8_C(228), UINT8_C(205), UINT8_C(182), UINT8_C(205), UINT8_C(117), UINT8_C(223), UINT8_C(175), UINT8_C(130), UINT8_C(229), UINT8_C( 15), UINT8_C( 23), UINT8_C(178), UINT8_C(213), UINT8_C(158), UINT8_C( 21), UINT8_C(222), UINT8_C( 97), UINT8_C( 67), UINT8_C( 53), UINT8_C(134), UINT8_C( 31), UINT8_C(231), UINT8_C(106), UINT8_C(158), UINT8_C( 90), UINT8_C( 81), UINT8_C(239), UINT8_C( 82), UINT8_C( 97), UINT8_C( 81), UINT8_C(209), UINT8_C( 69), UINT8_C( 30), UINT8_C(135), UINT8_C( 19), UINT8_C(147), UINT8_C(103), UINT8_C(194), UINT8_C( 22), UINT8_C( 76), UINT8_C(209), UINT8_C( 45), UINT8_C(254), UINT8_C(166), UINT8_C(203), UINT8_C( 20), UINT8_C(133), UINT8_C( 44), UINT8_C( 87), UINT8_C(186), UINT8_C(179), UINT8_C(119), UINT8_C(162), UINT8_C( 29), UINT8_C( 21), UINT8_C(252), UINT8_C(110), UINT8_C( 4), UINT8_C( 79), UINT8_C(208), UINT8_C( 86), UINT8_C( 32), UINT8_C( 21), UINT8_C(116), UINT8_C(168), UINT8_C( 40), UINT8_C( 8), UINT8_C( 15), UINT8_C(234), UINT8_C( 30), UINT8_C( 91), UINT8_C(187), UINT8_C( 75), UINT8_C( 89), UINT8_C( 98), UINT8_C( 22), UINT8_C(109), UINT8_C(231), UINT8_C( 66), UINT8_C(197), UINT8_C(161), UINT8_C(245), UINT8_C( 60), UINT8_C( 67), UINT8_C( 19), UINT8_C( 81), UINT8_C( 64), UINT8_C(129), UINT8_C( 85), UINT8_C(143), UINT8_C( 81), UINT8_C(171), UINT8_C(175), UINT8_C(103), UINT8_C( 32), UINT8_C( 87), UINT8_C(143), UINT8_C( 40), UINT8_C(102), UINT8_C(122), UINT8_C( 70), UINT8_C(193), UINT8_C( 53), UINT8_C(145), UINT8_C( 27), UINT8_C(151), UINT8_C(167), UINT8_C(136), UINT8_C(126), UINT8_C(233), UINT8_C( 77), UINT8_C( 32), UINT8_C(223), UINT8_C(137), UINT8_C( 99), UINT8_C(242), UINT8_C(218), UINT8_C(163), UINT8_C(115), UINT8_C( 48), UINT8_C( 50), UINT8_C(197), UINT8_C(219), UINT8_C(226), UINT8_C( 44), UINT8_C(251), UINT8_C( 57), UINT8_C(187), UINT8_C( 35), UINT8_C(160), UINT8_C( 53), UINT8_C(105), UINT8_C( 97), UINT8_C(107), UINT8_C(250), UINT8_C(124), UINT8_C( 2), UINT8_C(161), UINT8_C( 5), UINT8_C(129), UINT8_C(139), UINT8_C( 82), UINT8_C(161), UINT8_C(106), UINT8_C(220), UINT8_C( 4), UINT8_C( 92), UINT8_C(182), UINT8_C(168), UINT8_C(207), UINT8_C(230), UINT8_C(218), UINT8_C(148), UINT8_C(194), UINT8_C(188), UINT8_C(192), UINT8_C(189), UINT8_C(246), UINT8_C(124), UINT8_C(225), UINT8_C(150), UINT8_C(177), UINT8_C( 74), UINT8_C(247), UINT8_C( 28), UINT8_C( 69), UINT8_C(116), UINT8_C( 31), UINT8_C(230), UINT8_C(121), UINT8_C(160), UINT8_C(113), UINT8_C(203), UINT8_C( 65), UINT8_C(219), UINT8_C(167), UINT8_C( 69), UINT8_C( 55), UINT8_C( 94), UINT8_C(237), UINT8_C( 7), UINT8_C( 68), UINT8_C(200), UINT8_C(155), UINT8_C( 6), UINT8_C(132), UINT8_C( 92), UINT8_C(196), UINT8_C(122), UINT8_C(216), UINT8_C(165), UINT8_C( 16), UINT8_C(137), UINT8_C(239), UINT8_C( 8), UINT8_C(166), UINT8_C( 52), UINT8_C(124), UINT8_C(197), UINT8_C( 27), UINT8_C(245), UINT8_C(101), UINT8_C(140), UINT8_C(192), UINT8_C(166), UINT8_C(104), UINT8_C(104), UINT8_C(235), UINT8_C(159), UINT8_C(198), UINT8_C(217), UINT8_C(166), UINT8_C( 10), UINT8_C(161), UINT8_C( 66), UINT8_C( 17), UINT8_C( 37), UINT8_C(158), UINT8_C(213), UINT8_C(160), UINT8_C(118), UINT8_C(122), UINT8_C(176), UINT8_MAX, UINT8_C(105), UINT8_C(184), UINT8_C(165), UINT8_C(158), UINT8_C( 52), UINT8_C(106), UINT8_C(185), UINT8_C( 41), UINT8_C(207), UINT8_C( 69), UINT8_C(234), UINT8_C(117), UINT8_C(173), UINT8_C( 82), UINT8_C( 97), UINT8_C( 77), UINT8_C( 24), UINT8_C( 58), UINT8_C(243), UINT8_C( 34), UINT8_C(219), UINT8_C( 53), UINT8_C( 51), UINT8_C( 0), UINT8_C(211), UINT8_C( 8), UINT8_C(160), UINT8_C( 73), UINT8_C(130), UINT8_C( 81), UINT8_C( 73), UINT8_C(236), UINT8_C( 9), UINT8_C(238), UINT8_C(138), UINT8_C( 62), UINT8_C( 89), UINT8_C( 67), UINT8_C(103), UINT8_C( 40), UINT8_C(136), UINT8_C( 81), UINT8_C(158), UINT8_C( 54), UINT8_C(163), UINT8_MAX, UINT8_C(131), UINT8_C(187), UINT8_C( 57), UINT8_C(118), UINT8_C(222), UINT8_C( 20), UINT8_C(172), UINT8_C( 17), UINT8_C( 20), UINT8_C(127), UINT8_C( 26), UINT8_C(181), UINT8_C(201), UINT8_C(156), UINT8_C( 6), UINT8_C( 18), UINT8_C(136), UINT8_C( 15), UINT8_C( 0), UINT8_C( 18), UINT8_C( 77), UINT8_C( 89), UINT8_C( 85), UINT8_C(181), UINT8_C(130), UINT8_C(222), UINT8_C( 6), UINT8_C( 32), UINT8_C( 20), UINT8_C(170), UINT8_C( 31), UINT8_C(151), UINT8_C(101), UINT8_C( 88), UINT8_C( 13), UINT8_C( 67), UINT8_C(108), UINT8_C(185), UINT8_C( 85), UINT8_C(128), UINT8_C( 57), UINT8_C(111), UINT8_C( 53), UINT8_C( 2), UINT8_C( 11), UINT8_C( 59), UINT8_C( 20), UINT8_C(148), UINT8_C( 75), UINT8_C( 20), UINT8_C(166), UINT8_C(152), UINT8_C(110), UINT8_C(252), UINT8_C( 77), UINT8_C(240), UINT8_C(218), UINT8_C( 84), UINT8_C( 16), UINT8_C(238), UINT8_C(254), UINT8_C( 47), UINT8_C(133), UINT8_C( 99), UINT8_C(135), UINT8_C(146), UINT8_C(167), UINT8_C(243), UINT8_C( 76), UINT8_C(252), UINT8_C(115), UINT8_C(133), UINT8_C(107), UINT8_C(169), UINT8_C(135), UINT8_C(118), UINT8_C(228), UINT8_C(155), UINT8_C( 10), UINT8_C( 47), UINT8_C(175), UINT8_C(177), UINT8_C(200), UINT8_C( 29), UINT8_C(173), UINT8_C( 21), UINT8_C( 13), UINT8_C(135), UINT8_C(105), UINT8_C( 29), UINT8_C(117), UINT8_C(103), UINT8_C( 76), UINT8_C(250), UINT8_C(203), UINT8_C(211), UINT8_C(140), UINT8_C(114), UINT8_C(198), UINT8_C(216), UINT8_C(110), UINT8_C( 58), UINT8_C( 93), UINT8_C(217), UINT8_C(227), UINT8_C(228), UINT8_C( 79), UINT8_C(199), UINT8_C(127), UINT8_C( 90), UINT8_C(247), UINT8_C( 47), UINT8_C( 11), UINT8_C(191), UINT8_C( 76), UINT8_C(184), UINT8_C(212), UINT8_C( 90), UINT8_C( 63), UINT8_C( 62), UINT8_C(119), UINT8_C(180), UINT8_C(165), UINT8_C(196), UINT8_C(174), UINT8_C(112), UINT8_C(151), UINT8_C( 58), UINT8_C(226), UINT8_C( 94), UINT8_C( 19), UINT8_C( 80), UINT8_C(152), UINT8_C(112), UINT8_C( 41), UINT8_C(123), UINT8_C( 85), UINT8_C(121), UINT8_C( 66), UINT8_C(212), UINT8_C(211), UINT8_C( 57), UINT8_C( 3), UINT8_C(222), UINT8_C(248), UINT8_C( 80), UINT8_C(150), UINT8_C(205), UINT8_C(170), UINT8_C(213), UINT8_C( 11), UINT8_C( 33), UINT8_C(137), UINT8_C(176), UINT8_C(229), UINT8_C( 55), UINT8_C( 33), UINT8_C(125), UINT8_C(113), UINT8_C( 3), UINT8_C(219), UINT8_C(132), UINT8_C( 84), UINT8_C(115), UINT8_C(245), UINT8_C(125), UINT8_C(238), UINT8_C( 74), UINT8_C(246), UINT8_C( 48), UINT8_C( 30), UINT8_C(201), UINT8_C(106), UINT8_C( 34), UINT8_C(167), UINT8_C( 98), UINT8_C(114), UINT8_C( 61), UINT8_C( 47), UINT8_C( 28), UINT8_C( 18), UINT8_C( 58), UINT8_C( 61), UINT8_C(155), UINT8_C(235), UINT8_C( 35), UINT8_C(210), UINT8_C( 12), UINT8_C(160), UINT8_C( 68), UINT8_C( 15), UINT8_C(123), UINT8_C(200), UINT8_C( 99), UINT8_C(238), UINT8_C(189), UINT8_C(225), UINT8_C(220), UINT8_C( 7), UINT8_C(215), UINT8_C( 12), UINT8_C( 38), UINT8_C(161), UINT8_C(118), UINT8_C( 72), UINT8_C( 72), UINT8_C(217), UINT8_C(186), UINT8_C(134), UINT8_C( 8), UINT8_C(214), UINT8_C(152), UINT8_C( 67), UINT8_C( 19), UINT8_C( 52), UINT8_C( 46), UINT8_C( 54), UINT8_C( 6), UINT8_C( 58), UINT8_C(214), UINT8_C( 74), UINT8_C( 73), UINT8_C( 81), UINT8_C( 19), UINT8_C(173), UINT8_C( 63), UINT8_C(208), UINT8_C(142), UINT8_C( 27), UINT8_C(216), UINT8_C(101), UINT8_C( 40), UINT8_C(254), UINT8_C( 6), UINT8_C(158), UINT8_C( 70), UINT8_C( 79), UINT8_C(119), UINT8_C( 0), UINT8_C(213), UINT8_C(128), UINT8_C(214), UINT8_C(109), UINT8_C(195), UINT8_C(233), UINT8_C(161), UINT8_C(241), UINT8_C( 32), UINT8_C(168), UINT8_C( 43), UINT8_C(246), UINT8_C(242), UINT8_C(116), UINT8_C( 72), UINT8_C( 5), UINT8_C( 33), UINT8_C(135), UINT8_C(214), UINT8_C(175), UINT8_C(163), UINT8_C(174), UINT8_C( 21), UINT8_C(203), UINT8_C(172), UINT8_C( 27), UINT8_C(105), UINT8_C(242), UINT8_C(106), UINT8_C(225), UINT8_C(242), UINT8_C( 63), UINT8_C( 97), UINT8_C(200), UINT8_C(173), UINT8_C( 36), UINT8_C(177), UINT8_C( 78), UINT8_C( 21), UINT8_C(209), UINT8_C(246), UINT8_C( 64), UINT8_C(200), UINT8_C(233), UINT8_C(180), UINT8_C( 16), UINT8_C(238), UINT8_C(214), UINT8_C(151), UINT8_C(196), UINT8_C(133), UINT8_C( 58), UINT8_C(114), UINT8_C(154), UINT8_C( 5), UINT8_C( 30), UINT8_C(182), UINT8_C(111), UINT8_C( 16), UINT8_C( 32), UINT8_C( 80), UINT8_C( 2), UINT8_C( 96), UINT8_C(177), UINT8_C(202), UINT8_C( 13), UINT8_C(213), UINT8_C(124), UINT8_C( 91), UINT8_C(234), UINT8_C( 77), UINT8_C( 82), UINT8_C( 42), UINT8_C( 21), UINT8_C( 59), UINT8_C(222), UINT8_C( 37), UINT8_C( 41), UINT8_C(180), UINT8_C(189), UINT8_C(238), UINT8_C( 58), UINT8_C(247), UINT8_C( 96), UINT8_C(212), UINT8_C(253), UINT8_C(127), UINT8_C(138), UINT8_C(108), UINT8_C(143), UINT8_C(171), UINT8_C(188), UINT8_C(146), UINT8_C( 11), UINT8_C(109), UINT8_C( 92), UINT8_C( 24), UINT8_C( 66), UINT8_C(216), UINT8_C(115), UINT8_C( 44), UINT8_C( 38), UINT8_C(197), UINT8_C( 86), UINT8_C( 59), UINT8_C( 0), UINT8_C( 52), UINT8_C( 97), UINT8_C( 42), UINT8_C(233), UINT8_C( 30), UINT8_C( 24), UINT8_C( 35), UINT8_C( 21), UINT8_C(120), UINT8_C(247), UINT8_C( 18), UINT8_C(247), UINT8_C(130), UINT8_C(126), UINT8_C(135), UINT8_C( 45), UINT8_C( 58), UINT8_C( 25), UINT8_C( 56), UINT8_C(167), UINT8_C(117), UINT8_C( 80), UINT8_C(233), UINT8_C( 78), UINT8_C(195), UINT8_C( 21), UINT8_C(116), UINT8_C(137), UINT8_C(107), UINT8_C(175), UINT8_C(137), UINT8_C(160), UINT8_C( 16), UINT8_C(179), UINT8_C(137), UINT8_C( 46), UINT8_C(203), UINT8_C(172), UINT8_C( 68), UINT8_C( 68), UINT8_C(163), UINT8_C( 86), UINT8_C( 59), UINT8_C( 37), UINT8_C(213), UINT8_C(194), UINT8_C( 82), UINT8_C( 15), UINT8_C(219), UINT8_C(138), UINT8_C(183), UINT8_C( 81), UINT8_C(218), UINT8_C(160), UINT8_C(159), UINT8_C(158), UINT8_C(182), UINT8_C( 19), UINT8_C( 39), UINT8_C( 33), UINT8_C(194), UINT8_C(176), UINT8_C(193), UINT8_C(211), UINT8_C(100), UINT8_C( 74), UINT8_C( 1), UINT8_C( 47), UINT8_C(246), UINT8_C( 69), UINT8_C(115), UINT8_C(154), UINT8_C(156), UINT8_C(175), UINT8_C(191), UINT8_C(113), UINT8_C(113), UINT8_C( 18), UINT8_C(128), UINT8_C( 77), UINT8_C(156), UINT8_C( 55), UINT8_C(158), UINT8_C(119), UINT8_C(216), UINT8_C( 61), UINT8_C( 21), UINT8_C(142), UINT8_C( 80), UINT8_C( 60), UINT8_C(175), UINT8_C( 18), UINT8_C(236), UINT8_C(113), UINT8_C(229), UINT8_C( 80), UINT8_C(187), UINT8_C(231), UINT8_C(128), UINT8_C(178), UINT8_C( 44), UINT8_C(243), UINT8_C( 76), UINT8_C(200), UINT8_C(162), UINT8_C( 11), UINT8_C( 57), UINT8_C( 20), UINT8_C( 29), UINT8_C(186), UINT8_C( 97), UINT8_C(186), UINT8_C(241), UINT8_MAX, UINT8_C( 49), UINT8_C(201), UINT8_C( 60), UINT8_C( 70), UINT8_C( 87), UINT8_C(140), UINT8_C(130), UINT8_C( 7), UINT8_C(158), UINT8_C(110), UINT8_C(120), UINT8_C(132), UINT8_C(191), UINT8_C( 51), UINT8_C(107), UINT8_C( 63), UINT8_C(229), UINT8_C(151), UINT8_C( 50), UINT8_C( 49), UINT8_C( 96), UINT8_C(213), UINT8_C( 61), UINT8_C(153), UINT8_C(233), UINT8_C( 90), UINT8_C( 83), UINT8_C( 74), UINT8_C( 20), UINT8_C( 69), UINT8_C( 73), UINT8_C( 69), UINT8_C( 14), UINT8_C(133), UINT8_C(139), UINT8_C(102), UINT8_C( 17), UINT8_C( 13), UINT8_C(109), UINT8_C(175), UINT8_C(124), UINT8_C(229), UINT8_C( 51), UINT8_C( 59), UINT8_C( 24), UINT8_C(158), UINT8_C(122), UINT8_C(254), UINT8_C( 54), UINT8_C(172), UINT8_C( 47), UINT8_C(150), UINT8_C(129), UINT8_C(108), UINT8_C( 47), UINT8_C(106), UINT8_C(199), UINT8_C(131), UINT8_C(180), UINT8_C(219), UINT8_C(200), UINT8_C(253), UINT8_C( 33) }; static const int8_t e[] = { INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), INT8_C( 0), -INT8_C( 1), -INT8_C( 1), -INT8_C( 1), INT8_C( 0), INT8_C( 0), INT8_C( 0), -INT8_C( 1), INT8_C( 0) }; static int8_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b8_s32(i, len); while (simde_svptest_first(simde_svptrue_b8(), pg)) { simde_svbool_t pv, ev; simde_svuint8_t av = simde_svld1_u8(pg, &(a[i])), bv = simde_svld1_u8(pg, &(b[i])); pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(0)); ev = simde_svcmplt_u8(pv, av, bv); simde_svst1_s8(pg, &(r[i]), simde_svdup_n_s8_z(ev, ~INT8_C(0))); i += simde_svcntb(); pg = simde_svwhilelt_b8_s32(i, len); } simde_assert_equal_vi8(len, e, r); return 0; #else int8_t p[1024 / sizeof(int8_t)], e[1024 / sizeof(int8_t)]; uint8_t a[1024 / sizeof(uint8_t)], b[1024 / sizeof(uint8_t)]; int32_t len = simde_test_codegen_random_i16() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b8_s32(i, len); while (simde_svptest_first(simde_svptrue_b8(), pg)) { simde_svuint8_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(0)); av = simde_svld1_u8(pg, &(a[i])); bv = simde_svld1_u8(pg, &(b[i])); ev = simde_svcmplt_u8(pv, av, bv); simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~INT8_C(0))); simde_svst1_s8(pg, &(e[i]), simde_svdup_n_s8_z(ev, ~INT8_C(0))); i += simde_svcntb(); pg = simde_svwhilelt_b8_s32(i, len); } simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vu8(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vu8(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_u16 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int16_t p[] = { INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1) }; static const uint16_t a[] = { UINT16_C(10693), UINT16_C(59520), UINT16_C(51934), UINT16_C(31321), UINT16_C(11820), UINT16_C(54228), UINT16_C(18363), UINT16_C(20575), UINT16_C(15962), UINT16_C(52245), UINT16_C(25819), UINT16_C(48770), UINT16_C(23212), UINT16_C( 2562), UINT16_C(58108), UINT16_C(49408), UINT16_C(32779), UINT16_C(59817), UINT16_C( 586), UINT16_C(30308), UINT16_C(14384), UINT16_C(60489), UINT16_C(43392), UINT16_C(55868), UINT16_C(20967), UINT16_C(49830), UINT16_C(10422), UINT16_C(25217), UINT16_C(33666), UINT16_C(32364), UINT16_C(27749), UINT16_C(28735), UINT16_C(59628), UINT16_C(13914), UINT16_C(48875), UINT16_C( 7084), UINT16_C(63222), UINT16_C(30215), UINT16_C(17567), UINT16_C(34384), UINT16_C(63125), UINT16_C(19272), UINT16_C(51487), UINT16_C(41390), UINT16_C( 6733), UINT16_C(45600), UINT16_C(24455), UINT16_C(29475), UINT16_C(32072), UINT16_C(13226), UINT16_C(22075), UINT16_C(12622), UINT16_C(22092), UINT16_C(60328), UINT16_C(63642), UINT16_C(12145), UINT16_C(47855), UINT16_C( 3707), UINT16_C(10627), UINT16_C(53423), UINT16_C(53059), UINT16_C(51843), UINT16_C(42543), UINT16_C(30526), UINT16_C(59427), UINT16_C(24234), UINT16_C(63550), UINT16_C(35727), UINT16_C(14158), UINT16_C(59510), UINT16_C(59440), UINT16_C( 7960), UINT16_C(37794), UINT16_C( 9517), UINT16_C(56508), UINT16_C(65526), UINT16_C(31148), UINT16_C(56266), UINT16_C( 2079), UINT16_C(16978), UINT16_C(64752), UINT16_C(11936), UINT16_C(12276), UINT16_C(17337), UINT16_C(12391), UINT16_C(38699), UINT16_C(17176), UINT16_C(47798), UINT16_C(58326), UINT16_C(37599), UINT16_C(54719), UINT16_C(27538), UINT16_C(23630), UINT16_C(27974), UINT16_C(39012), UINT16_C(21679), UINT16_C(20372), UINT16_C(35202), UINT16_C(15487), UINT16_C(59084), UINT16_C(63340), UINT16_C(33917), UINT16_C(13115), UINT16_C( 4414), UINT16_C( 7446), UINT16_C(54692), UINT16_C(14067), UINT16_C(16705), UINT16_C(34706), UINT16_C(63151), UINT16_C(24096), UINT16_C(46154), UINT16_C(52398), UINT16_C(11581), UINT16_C( 2312), UINT16_C(29715), UINT16_C(36865), UINT16_C(15608), UINT16_C(14019), UINT16_C(55629), UINT16_C(61780), UINT16_C(18350), UINT16_C(61223), UINT16_C(47496), UINT16_C(14199), UINT16_C(38831), UINT16_C(63894), UINT16_C(17483), UINT16_C(35270), UINT16_C(52849), UINT16_C(33938), UINT16_C(37699), UINT16_C(15124), UINT16_C(55247), UINT16_C( 7538), UINT16_C(50864), UINT16_C(24078), UINT16_C(13837), UINT16_C(38222), UINT16_C(50671), UINT16_C(40909), UINT16_C(25436), UINT16_C(42904), UINT16_C(24231), UINT16_C( 6192), UINT16_C(49965), UINT16_C(28828), UINT16_C(45142), UINT16_C( 9899), UINT16_C( 7559), UINT16_C(14147), UINT16_C(20963), UINT16_C(61589), UINT16_C(58247), UINT16_C(30598), UINT16_C(21416), UINT16_C( 1046), UINT16_C(44726), UINT16_C(23980), UINT16_C(56333), UINT16_C(14965), UINT16_C( 4511), UINT16_C(63146), UINT16_C(21953), UINT16_C(18460), UINT16_C(24435), UINT16_C(22143), UINT16_C( 5296), UINT16_C(14407), UINT16_C(52728), UINT16_C(41135), UINT16_C(50464), UINT16_C(54949), UINT16_C(20851), UINT16_C(32819), UINT16_C(43053), UINT16_C(52666), UINT16_C(25785), UINT16_C(31427), UINT16_C(57274), UINT16_C(11714), UINT16_C(16702), UINT16_C(61059), UINT16_C(51797), UINT16_C(19750), UINT16_C(54679), UINT16_C(47086), UINT16_C(37786), UINT16_C( 3725), UINT16_C(49380), UINT16_C( 4494), UINT16_C(18792), UINT16_C( 8670), UINT16_C(41389), UINT16_C(26523), UINT16_C(23936), UINT16_C(48788), UINT16_C( 6302), UINT16_C(62637), UINT16_C(54242), UINT16_C(31297), UINT16_C(12201), UINT16_C(17201), UINT16_C(49090), UINT16_C(42577), UINT16_C(57471), UINT16_C(59576), UINT16_C(38441), UINT16_C(54793), UINT16_C(42296), UINT16_C(47166), UINT16_C(53762), UINT16_C(41335), UINT16_C( 9450), UINT16_C(52629), UINT16_C(55031), UINT16_C(41031), UINT16_C(30726), UINT16_C(51428), UINT16_C(13623), UINT16_C(46959), UINT16_C(10005), UINT16_C(16031), UINT16_C(43197), UINT16_C(62741), UINT16_C(21325), UINT16_C(20654), UINT16_C( 9509), UINT16_C( 4337), UINT16_C(34377), UINT16_C(16605), UINT16_C( 9308), UINT16_C(25313), UINT16_C(50588), UINT16_C(54315), UINT16_C(39674), UINT16_C( 4235), UINT16_C(10945), UINT16_C(32334), UINT16_C(25554), UINT16_C( 8308), UINT16_C( 8886), UINT16_C(56432), UINT16_C(24903), UINT16_C(37100), UINT16_C(51687), UINT16_C(17360), UINT16_C(45549), UINT16_C(35238), UINT16_C(53622), UINT16_C(29021), UINT16_C(59499), UINT16_C(11393), UINT16_C(53010), UINT16_C(58794), UINT16_C( 7731), UINT16_C(59653), UINT16_C(30016), UINT16_C(34757), UINT16_C(45526), UINT16_C(48407), UINT16_C(59514), UINT16_C(26368), UINT16_C(42649), UINT16_C( 4337), UINT16_C(20087), UINT16_C(57985), UINT16_C( 567), UINT16_C(18702), UINT16_C(47569), UINT16_C( 1070), UINT16_C(13271), UINT16_C( 6382), UINT16_C(45992), UINT16_C(32415), UINT16_C(46949), UINT16_C(57147), UINT16_C(15519), UINT16_C(14407), UINT16_C(14562), UINT16_C(23112), UINT16_C(51590), UINT16_C(48444), UINT16_C(19403), UINT16_C(40199), UINT16_C(13572), UINT16_C(56225), UINT16_C(36713), UINT16_C( 4595), UINT16_C(37699), UINT16_C(43152), UINT16_C(52042), UINT16_C(59783), UINT16_C(52743), UINT16_C(59937), UINT16_C(27142), UINT16_C(36164), UINT16_C(32819), UINT16_C(65354), UINT16_C(20939), UINT16_C(53148), UINT16_C(15751), UINT16_C(61611), UINT16_C(40653), UINT16_C( 4097), UINT16_C(37169), UINT16_C(31672), UINT16_C(16221), UINT16_C(25700), UINT16_C(34318), UINT16_C( 5198), UINT16_C(37616), UINT16_C( 9121), UINT16_C(60435), UINT16_C(56866), UINT16_C(48701), UINT16_C(50350), UINT16_C(23036), UINT16_C(51636), UINT16_C(46839), UINT16_C(10713), UINT16_C(37191), UINT16_C(42148), UINT16_C( 2512), UINT16_C(56841), UINT16_C(22415), UINT16_C(32755), UINT16_C(38122), UINT16_C(64930), UINT16_C(50560), UINT16_C(48859), UINT16_C(35203), UINT16_C(32642), UINT16_C(14306), UINT16_C(55880), UINT16_C( 8685), UINT16_C(13315), UINT16_C(42930), UINT16_C(33753), UINT16_C(58032), UINT16_C(16225), UINT16_C(21561), UINT16_C( 9150), UINT16_C(25065), UINT16_C(26912), UINT16_C(64550), UINT16_C(43303), UINT16_C(43653), UINT16_C(26665), UINT16_C(29153), UINT16_C(52802), UINT16_C(17811), UINT16_C(17666), UINT16_C(56300), UINT16_C(40392), UINT16_C(10941), UINT16_C(63452), UINT16_C(39806), UINT16_C(26394), UINT16_C(15356), UINT16_C( 8913), UINT16_C(63543), UINT16_C(48331), UINT16_C(62626), UINT16_C(33572), UINT16_C(26214), UINT16_C(63825), UINT16_C(21675), UINT16_C(38974), UINT16_C( 1839), UINT16_C(60725), UINT16_C( 4401), UINT16_C(45028), UINT16_C(65196), UINT16_C(43031), UINT16_C(59449), UINT16_C(28874), UINT16_C(38624), UINT16_C(33581), UINT16_C(20874), UINT16_C(61446), UINT16_C(22712), UINT16_C(25577), UINT16_C(10412), UINT16_C(56315), UINT16_C(12335), UINT16_C(24776), UINT16_C(44098), UINT16_C(60943), UINT16_C( 9899), UINT16_C(58519), UINT16_C(24846), UINT16_C(61269), UINT16_C(33527), UINT16_C(33394), UINT16_C(30931), UINT16_C(35698), UINT16_C(23760), UINT16_C(31983), UINT16_C(60036), UINT16_C(45912), UINT16_C( 8219), UINT16_C(23827), UINT16_C( 8909), UINT16_C(30795), UINT16_C(57929), UINT16_C(22364), UINT16_C(45380), UINT16_C(15174), UINT16_C(47155), UINT16_C( 1981), UINT16_C(12337), UINT16_C( 402), UINT16_C(33164), UINT16_C( 4222), UINT16_C(54892), UINT16_C(34755), UINT16_C(55030), UINT16_C(50148), UINT16_C(12280), UINT16_C(16699), UINT16_C(38930), UINT16_C(22169), UINT16_C(57161), UINT16_C(32145), UINT16_C(20376), UINT16_C(51588), UINT16_C( 5759), UINT16_C( 3018), UINT16_C(18584), UINT16_C( 1051), UINT16_C(56862), UINT16_C( 5515), UINT16_C(28596), UINT16_C(44248), UINT16_C( 5278), UINT16_C(45294), UINT16_C(34732) }; static const uint16_t b[] = { UINT16_C(62726), UINT16_C(39014), UINT16_C(65138), UINT16_C(63207), UINT16_C(26311), UINT16_C(37389), UINT16_C(42353), UINT16_C(36058), UINT16_C(63913), UINT16_C(13418), UINT16_C( 7694), UINT16_C(59043), UINT16_C(16842), UINT16_C(47354), UINT16_C(42738), UINT16_C(63551), UINT16_C(42652), UINT16_C( 3728), UINT16_C(30628), UINT16_C(27653), UINT16_C( 4829), UINT16_C(20222), UINT16_C(55479), UINT16_C(24794), UINT16_C(17617), UINT16_C(57236), UINT16_C(14178), UINT16_C(11718), UINT16_C(49272), UINT16_C(27365), UINT16_C( 9575), UINT16_C( 867), UINT16_C(62411), UINT16_C(28433), UINT16_C( 5739), UINT16_C(18651), UINT16_C(55592), UINT16_C(57239), UINT16_C(29106), UINT16_C(33599), UINT16_C(54198), UINT16_C( 6243), UINT16_C(10506), UINT16_C(33605), UINT16_C(11241), UINT16_C(20717), UINT16_C(20560), UINT16_C( 6995), UINT16_C(25924), UINT16_C(44938), UINT16_C(26235), UINT16_C(42231), UINT16_C(36415), UINT16_C(61827), UINT16_C(49920), UINT16_C(46709), UINT16_C(55446), UINT16_C(41422), UINT16_C( 5121), UINT16_C(59940), UINT16_C( 4415), UINT16_C(36667), UINT16_C(36450), UINT16_C(42666), UINT16_C(13555), UINT16_C(28501), UINT16_C(19610), UINT16_C(55827), UINT16_C(38619), UINT16_C(56267), UINT16_C(16473), UINT16_C(61585), UINT16_C(24344), UINT16_C( 6545), UINT16_C(46451), UINT16_C(45572), UINT16_C(16326), UINT16_C(10305), UINT16_C(60365), UINT16_C(49614), UINT16_C( 8992), UINT16_C(47664), UINT16_C(17264), UINT16_C(19348), UINT16_C(24793), UINT16_C(13094), UINT16_C(47008), UINT16_C(47395), UINT16_C(46102), UINT16_C(35538), UINT16_C(54889), UINT16_C(12092), UINT16_C(32277), UINT16_C(58200), UINT16_C( 9833), UINT16_C(35236), UINT16_C(54346), UINT16_C(47684), UINT16_C(55319), UINT16_C(61445), UINT16_C(11064), UINT16_C(55587), UINT16_C(18146), UINT16_C(63634), UINT16_C(25850), UINT16_C(25474), UINT16_C(48955), UINT16_C(20627), UINT16_C(60221), UINT16_C(42547), UINT16_C(55057), UINT16_C(23344), UINT16_C(29867), UINT16_C(49685), UINT16_C( 6732), UINT16_C(34227), UINT16_C(54853), UINT16_C(10078), UINT16_C(61469), UINT16_C( 5920), UINT16_C(41556), UINT16_C(36731), UINT16_C( 3681), UINT16_C(40672), UINT16_C( 5113), UINT16_C( 2629), UINT16_C(30187), UINT16_C(38502), UINT16_C(31721), UINT16_C(13657), UINT16_C( 3222), UINT16_C(56250), UINT16_C( 6370), UINT16_C(65283), UINT16_C( 8968), UINT16_C(23831), UINT16_C(37573), UINT16_C(10220), UINT16_C(52384), UINT16_C(39365), UINT16_C( 2784), UINT16_C(52131), UINT16_C( 2431), UINT16_C(26721), UINT16_C(47749), UINT16_C( 7070), UINT16_C(22726), UINT16_C(43510), UINT16_C(63857), UINT16_C(31144), UINT16_C(48924), UINT16_C(58070), UINT16_C(50001), UINT16_C(61705), UINT16_C(52879), UINT16_C(28554), UINT16_C(11993), UINT16_C(22586), UINT16_C(39991), UINT16_C(48321), UINT16_C(24406), UINT16_C( 7639), UINT16_C(52919), UINT16_C(10438), UINT16_C(28359), UINT16_C(58530), UINT16_C(30766), UINT16_C(32710), UINT16_C(53051), UINT16_C(52081), UINT16_C(64413), UINT16_C(30266), UINT16_C(29993), UINT16_C(25039), UINT16_C(36881), UINT16_C(26397), UINT16_C(62959), UINT16_C(42628), UINT16_C(19139), UINT16_C(35535), UINT16_C(29113), UINT16_C(59246), UINT16_C(13545), UINT16_C( 9574), UINT16_C(55043), UINT16_C(41456), UINT16_C(10963), UINT16_C(64535), UINT16_C(59039), UINT16_C(45149), UINT16_C(31606), UINT16_C(25880), UINT16_C(40048), UINT16_C(13068), UINT16_C(56295), UINT16_C(41149), UINT16_C(11340), UINT16_C(13703), UINT16_C(60768), UINT16_C(25690), UINT16_C(19141), UINT16_C(38917), UINT16_C( 7285), UINT16_C( 5268), UINT16_C(61955), UINT16_C(31173), UINT16_C(56685), UINT16_C(56799), UINT16_C(60281), UINT16_C(24592), UINT16_C(52678), UINT16_C( 4608), UINT16_C(34809), UINT16_C(23111), UINT16_C(41589), UINT16_C(15038), UINT16_C(50156), UINT16_C(25042), UINT16_C(26335), UINT16_C(57974), UINT16_C(15192), UINT16_C(50524), UINT16_C(15128), UINT16_C(37282), UINT16_C(45606), UINT16_C(60658), UINT16_C(62080), UINT16_C(31230), UINT16_C(17786), UINT16_C(61395), UINT16_C(37351), UINT16_C(54313), UINT16_C(64340), UINT16_C(13365), UINT16_C(43873), UINT16_C(47638), UINT16_C(29414), UINT16_C(65151), UINT16_C( 8877), UINT16_C(54160), UINT16_C(33492), UINT16_C(21695), UINT16_C(48500), UINT16_C(61134), UINT16_C(41219), UINT16_C(60125), UINT16_C( 1587), UINT16_C(34750), UINT16_C(62465), UINT16_C(25531), UINT16_C(53919), UINT16_C(34333), UINT16_C(40004), UINT16_C(62084), UINT16_C( 5310), UINT16_C(37829), UINT16_C(34198), UINT16_C( 3047), UINT16_C(46402), UINT16_C(17913), UINT16_C(55127), UINT16_C(35376), UINT16_C(61149), UINT16_C(57105), UINT16_C(52706), UINT16_C(33346), UINT16_C(24479), UINT16_C(58120), UINT16_C(36091), UINT16_C(47829), UINT16_C(39841), UINT16_C(14157), UINT16_C(13344), UINT16_C(25154), UINT16_C(15594), UINT16_C(16808), UINT16_C(55315), UINT16_C(61643), UINT16_C(56518), UINT16_C(43471), UINT16_C( 4521), UINT16_C(18475), UINT16_C(13168), UINT16_C(27692), UINT16_C( 447), UINT16_C(24614), UINT16_C(29596), UINT16_C(48280), UINT16_C(55975), UINT16_C(37151), UINT16_C(50966), UINT16_C(10706), UINT16_C(40351), UINT16_C(25882), UINT16_C(59770), UINT16_C( 8974), UINT16_C(14843), UINT16_C(27500), UINT16_C(39020), UINT16_C(11479), UINT16_C(64921), UINT16_C(13964), UINT16_C( 9328), UINT16_C( 6386), UINT16_C( 4607), UINT16_C( 5545), UINT16_C(31960), UINT16_C(30527), UINT16_C(22809), UINT16_C(37853), UINT16_C(60226), UINT16_C(15799), UINT16_C( 8997), UINT16_C(37289), UINT16_C(32955), UINT16_C(21693), UINT16_C(19070), UINT16_C(61066), UINT16_C(32110), UINT16_C(27910), UINT16_C(45198), UINT16_C(26499), UINT16_C(49708), UINT16_C(17886), UINT16_C(47899), UINT16_C(24025), UINT16_C(37031), UINT16_C(52379), UINT16_C(17587), UINT16_C(28253), UINT16_C( 7108), UINT16_C(17090), UINT16_C(19813), UINT16_C(54065), UINT16_C(14282), UINT16_C(22593), UINT16_C(50407), UINT16_C( 5055), UINT16_C(40582), UINT16_C(41305), UINT16_C(12889), UINT16_C( 254), UINT16_C(39362), UINT16_C(30156), UINT16_C(10973), UINT16_C(41699), UINT16_C(42309), UINT16_C(43748), UINT16_C( 5618), UINT16_C(48253), UINT16_C(48717), UINT16_C(13333), UINT16_C(54402), UINT16_C( 2120), UINT16_C(41330), UINT16_C(52393), UINT16_C(43219), UINT16_C(38348), UINT16_C(39233), UINT16_C( 7946), UINT16_C(60867), UINT16_C( 2241), UINT16_C(42386), UINT16_C(34226), UINT16_C(12219), UINT16_C( 2113), UINT16_C(22254), UINT16_C(28732), UINT16_C(33835), UINT16_C(40313), UINT16_C( 8741), UINT16_C(63593), UINT16_C(14026), UINT16_C( 3213), UINT16_C(38863), UINT16_C(37419), UINT16_C(60548), UINT16_C( 6042), UINT16_C(19601), UINT16_C(19612), UINT16_C(56699), UINT16_C(26964), UINT16_C(37172), UINT16_C(24538), UINT16_C(21269), UINT16_C(15356), UINT16_C(26229), UINT16_C(16435), UINT16_C(49564), UINT16_C(27468), UINT16_C(30552), UINT16_C(56829), UINT16_C(38755), UINT16_C(62708), UINT16_C(37091), UINT16_C(24129), UINT16_C(38253), UINT16_C(41416), UINT16_C(41510), UINT16_C(15360), UINT16_C(65013), UINT16_C(27255), UINT16_C(43619), UINT16_C(65450), UINT16_C(63083), UINT16_C(50282), UINT16_C(26477), UINT16_C(53409), UINT16_C(38398), UINT16_C(57797), UINT16_C( 1573), UINT16_C(37439), UINT16_C( 1947), UINT16_C(49716), UINT16_C(13481), UINT16_C(40702), UINT16_C(30001), UINT16_C(37897), UINT16_C(45855), UINT16_C(35731), UINT16_C(64938), UINT16_C( 5967), UINT16_C(61540), UINT16_C(25320), UINT16_C(44421), UINT16_C(43587), UINT16_C(33715), UINT16_C(20028), UINT16_C(28810), UINT16_C(13328), UINT16_C( 3749), UINT16_C(54994), UINT16_C(56195), UINT16_C(41835), UINT16_C(65167), UINT16_C(14638), UINT16_C(32252), UINT16_C(24656) }; static const int16_t e[] = { INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), -INT16_C( 1), -INT16_C( 1), INT16_C( 0), INT16_C( 0), INT16_C( 0), INT16_C( 0) }; static int16_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b16_s32(i, len); while (simde_svptest_first(simde_svptrue_b16(), pg)) { simde_svbool_t pv, ev; simde_svuint16_t av = simde_svld1_u16(pg, &(a[i])), bv = simde_svld1_u16(pg, &(b[i])); pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(0)); ev = simde_svcmplt_u16(pv, av, bv); simde_svst1_s16(pg, &(r[i]), simde_svdup_n_s16_z(ev, ~INT16_C(0))); i += simde_svcnth(); pg = simde_svwhilelt_b16_s32(i, len); } simde_assert_equal_vi16(len, e, r); return 0; #else int16_t p[1024 / sizeof(uint16_t)], e[1024 / sizeof(uint16_t)]; uint16_t a[1024 / sizeof(uint16_t)], b[1024 / sizeof(uint16_t)]; int32_t len = simde_test_codegen_random_i16() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b16_s32(i, len); while (simde_svptest_first(simde_svptrue_b16(), pg)) { simde_svuint16_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(0)); av = simde_svld1_u16(pg, &(a[i])); bv = simde_svld1_u16(pg, &(b[i])); ev = simde_svcmplt_u16(pv, av, bv); simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~INT16_C(0))); simde_svst1_s16(pg, &(e[i]), simde_svdup_n_s16_z(ev, ~INT16_C(0))); i += simde_svcnth(); pg = simde_svwhilelt_b16_s32(i, len); } simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vu16(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vu16(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi16(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_u32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int32_t p[] = { INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0) }; static const uint32_t a[] = { UINT32_C(3603872422), UINT32_C( 808234706), UINT32_C( 520601825), UINT32_C( 979411821), UINT32_C(1823659495), UINT32_C( 940171821), UINT32_C( 604491865), UINT32_C( 391263857), UINT32_C(3287097841), UINT32_C(2968721871), UINT32_C(1188035289), UINT32_C(2239836062), UINT32_C( 854668037), UINT32_C(1852504597), UINT32_C( 999453130), UINT32_C(2572346792), UINT32_C(3579592454), UINT32_C( 830820440), UINT32_C(3900200010), UINT32_C(2305751428), UINT32_C(1102798636), UINT32_C( 615458138), UINT32_C(1046495638), UINT32_C( 752333350), UINT32_C(1241593074), UINT32_C(3464267396), UINT32_C(1605891291), UINT32_C( 434644461), UINT32_C(3730482052), UINT32_C(1577257416), UINT32_C(1906139978), UINT32_C( 127759381), UINT32_C( 743612328) }; static const uint32_t b[] = { UINT32_C( 16502309), UINT32_C(2942284482), UINT32_C(1539852247), UINT32_C(2990154474), UINT32_C(1964064043), UINT32_C(3051794080), UINT32_C(3418194978), UINT32_C(1224150819), UINT32_C(2672423645), UINT32_C(2068752548), UINT32_C(3671529200), UINT32_C(1670189368), UINT32_C(4007173710), UINT32_C(1856225100), UINT32_C(1715036227), UINT32_C(1286484335), UINT32_C(3370907427), UINT32_C(2420324768), UINT32_C(2271877711), UINT32_C(2045441835), UINT32_C(3781673877), UINT32_C(3310357378), UINT32_C(3677063531), UINT32_C(3727153594), UINT32_C(1906709457), UINT32_C(2617370956), UINT32_C( 790850308), UINT32_C(4171828835), UINT32_C(1406800081), UINT32_C(2266507803), UINT32_C(1851933619), UINT32_C(3981216028), UINT32_C(3915313820) }; static const int32_t e[] = { INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0) }; static int32_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svbool_t pv, ev; simde_svuint32_t av = simde_svld1_u32(pg, &(a[i])), bv = simde_svld1_u32(pg, &(b[i])); pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); ev = simde_svcmplt_u32(pv, av, bv); simde_svst1_s32(pg, &(r[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_assert_equal_vi32(len, e, r); return 0; #else int32_t p[1024 / sizeof(int32_t)], e[1024 / sizeof(int32_t)]; uint32_t a[1024 / sizeof(int32_t)], b[1024 / sizeof(int32_t)]; int32_t len = simde_test_codegen_random_i32() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svuint32_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); av = simde_svld1_u32(pg, &(a[i])); bv = simde_svld1_u32(pg, &(b[i])); ev = simde_svcmplt_u32(pv, av, bv); simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~INT32_C(0))); simde_svst1_s32(pg, &(e[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vu32(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vu32(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_u64 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int64_t p[] = { -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1) }; static const uint64_t a[] = { UINT64_C(11916227837588595609), UINT64_C( 711979398422470116), UINT64_C( 7444396629704810646), UINT64_C( 1339748843932424856), UINT64_C( 9537722001996492193), UINT64_C(14298646445972962024), UINT64_C( 9318508280817785247), UINT64_C( 9701812313525004055), UINT64_C(14093058300098449520), UINT64_C( 5857378479525900884), UINT64_C( 943940583359772848), UINT64_C( 8583650915672540595), UINT64_C( 5400128172333685842), UINT64_C( 6976101869622729165), UINT64_C( 5409125067281402639), UINT64_C( 4888097681259605847), UINT64_C( 5088893277704314207), UINT64_C(10559698141907872891), UINT64_C(17042650773753136032), UINT64_C(14450962040410039896), UINT64_C(15654156470845308030), UINT64_C( 4124892198896665384), UINT64_C(15462252245498844434), UINT64_C( 9190908959335112539), UINT64_C(10222806550153963943), UINT64_C( 9550578387881943736), UINT64_C( 5449849164528417869), UINT64_C( 1377990897547853984), UINT64_C( 159868211831543364), UINT64_C( 3949620487504752857), UINT64_C( 6563613533882416090), UINT64_C( 423931834158294371), UINT64_C(14699440160784775857), UINT64_C( 753760508034044502), UINT64_C( 9076980969697998560), UINT64_C(13895344341474145040), UINT64_C(14043835982197589288), UINT64_C(13854892009103424268), UINT64_C( 1550172878280530924), UINT64_C( 2671969374686334789), UINT64_C(10912262075166216258), UINT64_C(15257943646286344479), UINT64_C(12920928955134450485), UINT64_C( 3913095857394103851), UINT64_C(15063507979106291179), UINT64_C( 3422613648140525765), UINT64_C(16270583741249313195), UINT64_C(15643631464171033584), UINT64_C( 1614640872401337829), UINT64_C( 8458959436361382203), UINT64_C( 8588745501590867355), UINT64_C( 8643661755703769901), UINT64_C(15697709499937604465), UINT64_C( 8786649172855921840), UINT64_C( 449792450568486463), UINT64_C( 9025237897403602998), UINT64_C( 8561372329190379097), UINT64_C(10380199352859680438), UINT64_C( 522018233135847007), UINT64_C(15038944634913972268), UINT64_C(14310917961027221086), UINT64_C(14580236031239031415), UINT64_C( 7932598446123560509), UINT64_C( 6190298800354420385), UINT64_C(13846056785262784593), UINT64_C( 2797544506219004317), UINT64_C(13131734645525042317), UINT64_C(10411678291639329586), UINT64_C(12065170931139606119), UINT64_C( 7181414938662926234), UINT64_C( 6566651955365731926) }; static const uint64_t b[] = { UINT64_C( 946039211642122066), UINT64_C(14314741078333133560), UINT64_C( 3485490183964022820), UINT64_C( 6004913490053861840), UINT64_C(15159122780997605805), UINT64_C( 7929005277369867543), UINT64_C( 1504140997874504404), UINT64_C(16549710724831476569), UINT64_C(12531433729248759867), UINT64_C( 967984997433654453), UINT64_C(17916334852223588171), UINT64_C( 5635408392619208726), UINT64_C(13461625445667859599), UINT64_C( 382850748775055625), UINT64_C(13661449187728035071), UINT64_C( 8595471633690126824), UINT64_C( 318469126443740844), UINT64_C( 5615592146259617070), UINT64_C(11675445395125470115), UINT64_C(18360304121692361325), UINT64_C( 257860578929764245), UINT64_C( 1574811205261646656), UINT64_C(13239006523031537245), UINT64_C(15333024174860687481), UINT64_C(15138841978720254015), UINT64_C( 4277358468138009556), UINT64_C(11169504466776079105), UINT64_C( 2699960644255747685), UINT64_C(12181199968848698535), UINT64_C(12064100678993144915), UINT64_C( 3658317955045965575), UINT64_C( 4027897250982402), UINT64_C(16981180389118265131), UINT64_C(17005461232286472625), UINT64_C(16809361141897949767), UINT64_C(10906556574802713602), UINT64_C(10135986319123780903), UINT64_C(10928797377412515802), UINT64_C(11071520892967960277), UINT64_C( 9011791186711901709), UINT64_C(14000819228920031205), UINT64_C(16831125072247861421), UINT64_C( 4402913157885280233), UINT64_C( 5013568921898717120), UINT64_C( 7140828527741751150), UINT64_C(12573474864123386497), UINT64_C( 3287989932826501683), UINT64_C(10159231386364630872), UINT64_C(15258471868695445926), UINT64_C( 5190931925395054741), UINT64_C(15681900595884341256), UINT64_C( 7083755105758012836), UINT64_C(14029978569908629902), UINT64_C( 791829803028978847), UINT64_C(11148415647245838685), UINT64_C( 7143742368500238341), UINT64_C( 129471209472844508), UINT64_C( 7647589411553928981), UINT64_C(14261774945973018715), UINT64_C(15096534291855067464), UINT64_C(15343383219950765452), UINT64_C(12827392304258720908), UINT64_C(10822975970345176493), UINT64_C(17149202023056652344), UINT64_C( 688146384890353914), UINT64_C( 3636277942119790701), UINT64_C(11662020010101930484), UINT64_C(13391678616636394377), UINT64_C(16873860237964260260), UINT64_C( 7578753837086723702), UINT64_C( 2785619980461984925) }; static const int64_t e[] = { INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0) }; static int64_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svbool_t pv, ev; simde_svuint64_t av = simde_svld1_u64(pg, &(a[i])), bv = simde_svld1_u64(pg, &(b[i])); pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); ev = simde_svcmplt_u64(pv, av, bv); simde_svst1_s64(pg, &(r[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_assert_equal_vi64(len, e, r); return 0; #else int64_t p[1024 / sizeof(int64_t)], e[1024 / sizeof(int64_t)]; uint64_t a[1024 / sizeof(int64_t)], b[1024 / sizeof(int64_t)]; int32_t len = simde_test_codegen_random_i64() & ((sizeof(e) / sizeof(e[0])) -1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a)); simde_test_codegen_random_memory(sizeof(b), HEDLEY_REINTERPRET_CAST(uint8_t*, b)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svuint64_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); av = simde_svld1_u64(pg, &(a[i])); bv = simde_svld1_u64(pg, &(b[i])); ev = simde_svcmplt_u64(pv, av, bv); simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~INT64_C(0))); simde_svst1_s64(pg, &(e[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vu64(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vu64(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_f32 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int32_t p[] = { INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1) }; static const simde_float32 a[] = { SIMDE_FLOAT32_C( -91.01), SIMDE_FLOAT32_C( 330.29), SIMDE_FLOAT32_C( -472.15), SIMDE_FLOAT32_C( -113.20), SIMDE_FLOAT32_C( 444.83), SIMDE_FLOAT32_C( 564.94), SIMDE_FLOAT32_C( 263.04), SIMDE_FLOAT32_C( -643.49), SIMDE_FLOAT32_C( -399.55), SIMDE_FLOAT32_C( 827.07), SIMDE_FLOAT32_C( 860.22), SIMDE_FLOAT32_C( 929.73), SIMDE_FLOAT32_C( -808.98), SIMDE_FLOAT32_C( -704.70), SIMDE_FLOAT32_C( 358.61), SIMDE_FLOAT32_C( -705.77), SIMDE_FLOAT32_C( 607.37), SIMDE_FLOAT32_C( 627.69), SIMDE_FLOAT32_C( -326.02), SIMDE_FLOAT32_C( 54.58), SIMDE_FLOAT32_C( -739.91), SIMDE_FLOAT32_C( 342.01), SIMDE_FLOAT32_C( -844.35), SIMDE_FLOAT32_C( 727.20), SIMDE_FLOAT32_C( 536.80), SIMDE_FLOAT32_C( 574.40), SIMDE_FLOAT32_C( -947.97), SIMDE_FLOAT32_C( -537.36), SIMDE_FLOAT32_C( 712.97), SIMDE_FLOAT32_C( 926.59), SIMDE_FLOAT32_C( -299.09), SIMDE_FLOAT32_C( -378.04), SIMDE_FLOAT32_C( 256.89), SIMDE_FLOAT32_C( 228.76), SIMDE_FLOAT32_C( 508.76), SIMDE_FLOAT32_C( -298.29), SIMDE_FLOAT32_C( -206.31), SIMDE_FLOAT32_C( -228.20), SIMDE_FLOAT32_C( 58.22), SIMDE_FLOAT32_C( 394.14), SIMDE_FLOAT32_C( -401.13), SIMDE_FLOAT32_C( -81.56), SIMDE_FLOAT32_C( 323.87), SIMDE_FLOAT32_C( -210.11), SIMDE_FLOAT32_C( 213.75), SIMDE_FLOAT32_C( -317.52), SIMDE_FLOAT32_C( 84.13), SIMDE_FLOAT32_C( -178.88), SIMDE_FLOAT32_C( -689.84), SIMDE_FLOAT32_C( 758.10), SIMDE_FLOAT32_C( 875.70), SIMDE_FLOAT32_C( -429.74), SIMDE_FLOAT32_C( 100.11), SIMDE_FLOAT32_C( -968.65), SIMDE_FLOAT32_C( -702.55), SIMDE_FLOAT32_C( -363.09), SIMDE_FLOAT32_C( 605.75), SIMDE_FLOAT32_C( -650.51), SIMDE_FLOAT32_C( 99.56), SIMDE_FLOAT32_C( 318.72), SIMDE_FLOAT32_C( -723.92), SIMDE_FLOAT32_C( 800.46), SIMDE_FLOAT32_C( 940.68), SIMDE_FLOAT32_C( 532.97), SIMDE_FLOAT32_C( 29.22), SIMDE_FLOAT32_C( 449.44), SIMDE_FLOAT32_C( -765.32), SIMDE_FLOAT32_C( 822.91), SIMDE_FLOAT32_C( -778.76), SIMDE_FLOAT32_C( 292.90), SIMDE_FLOAT32_C( 217.05), SIMDE_FLOAT32_C( -179.89), SIMDE_FLOAT32_C( -788.66), SIMDE_FLOAT32_C( -459.08), SIMDE_FLOAT32_C( 610.01), SIMDE_FLOAT32_C( 425.09), SIMDE_FLOAT32_C( 223.39), SIMDE_FLOAT32_C( -305.87), SIMDE_FLOAT32_C( -753.79), SIMDE_FLOAT32_C( 533.56), SIMDE_FLOAT32_C( -547.77), SIMDE_FLOAT32_C( -878.09), SIMDE_FLOAT32_C( -896.19), SIMDE_FLOAT32_C( 552.35), SIMDE_FLOAT32_C( -846.74), SIMDE_FLOAT32_C( -598.73), SIMDE_FLOAT32_C( -810.74), SIMDE_FLOAT32_C( 759.01), SIMDE_FLOAT32_C( -249.25), SIMDE_FLOAT32_C( 288.81), SIMDE_FLOAT32_C( 77.73), SIMDE_FLOAT32_C( 26.83), SIMDE_FLOAT32_C( 89.28), SIMDE_FLOAT32_C( 18.41), SIMDE_FLOAT32_C( -440.20), SIMDE_FLOAT32_C( -881.51), SIMDE_FLOAT32_C( -532.14), SIMDE_FLOAT32_C( -205.52), SIMDE_FLOAT32_C( 941.40), SIMDE_FLOAT32_C( -310.90), SIMDE_FLOAT32_C( -912.61), SIMDE_FLOAT32_C( 158.45), SIMDE_FLOAT32_C( 509.22), SIMDE_FLOAT32_C( -701.27), SIMDE_FLOAT32_C( 699.37), SIMDE_FLOAT32_C( 119.22), SIMDE_FLOAT32_C( 723.82), SIMDE_FLOAT32_C( -77.24), SIMDE_FLOAT32_C( 813.35), SIMDE_FLOAT32_C( 970.03), SIMDE_FLOAT32_C( -543.68), SIMDE_FLOAT32_C( -734.41), SIMDE_FLOAT32_C( -908.06), SIMDE_FLOAT32_C( -439.87), SIMDE_FLOAT32_C( 817.93), SIMDE_FLOAT32_C( -754.80), SIMDE_FLOAT32_C( -38.60), SIMDE_FLOAT32_C( -992.81), SIMDE_FLOAT32_C( -995.79), SIMDE_FLOAT32_C( 712.15), SIMDE_FLOAT32_C( 296.01), SIMDE_FLOAT32_C( 81.95), SIMDE_FLOAT32_C( -261.02), SIMDE_FLOAT32_C( -614.72), SIMDE_FLOAT32_C( -899.64), SIMDE_FLOAT32_C( 298.79), SIMDE_FLOAT32_C( -496.22), SIMDE_FLOAT32_C( -431.78), SIMDE_FLOAT32_C( -906.73), SIMDE_FLOAT32_C( -554.82), SIMDE_FLOAT32_C( 257.32), SIMDE_FLOAT32_C( -819.34), SIMDE_FLOAT32_C( 603.63), SIMDE_FLOAT32_C( -233.46), SIMDE_FLOAT32_C( -520.61), SIMDE_FLOAT32_C( 303.01), SIMDE_FLOAT32_C( 885.76), SIMDE_FLOAT32_C( -796.79), SIMDE_FLOAT32_C( -774.23), SIMDE_FLOAT32_C( 699.11), SIMDE_FLOAT32_C( -826.76), SIMDE_FLOAT32_C( -317.91), SIMDE_FLOAT32_C( 964.70), SIMDE_FLOAT32_C( -734.82), SIMDE_FLOAT32_C( 242.22), SIMDE_FLOAT32_C( 782.63), SIMDE_FLOAT32_C( -489.62), SIMDE_FLOAT32_C( -796.38), SIMDE_FLOAT32_C( 789.82), SIMDE_FLOAT32_C( -485.40), SIMDE_FLOAT32_C( 915.77), SIMDE_FLOAT32_C( 85.82), SIMDE_FLOAT32_C( 596.54), SIMDE_FLOAT32_C( -345.25), SIMDE_FLOAT32_C( 471.11), SIMDE_FLOAT32_C( 696.90), SIMDE_FLOAT32_C( 953.54), SIMDE_FLOAT32_C( 974.88), SIMDE_FLOAT32_C( -734.88), SIMDE_FLOAT32_C( -953.19), SIMDE_FLOAT32_C( -579.94), SIMDE_FLOAT32_C( 522.44), SIMDE_FLOAT32_C( -772.53), SIMDE_FLOAT32_C( -976.30), SIMDE_FLOAT32_C( -711.02), SIMDE_FLOAT32_C( -293.15), SIMDE_FLOAT32_C( 326.70), SIMDE_FLOAT32_C( -825.27), SIMDE_FLOAT32_C( -89.94), SIMDE_FLOAT32_C( 552.47), SIMDE_FLOAT32_C( 873.84), SIMDE_FLOAT32_C( 83.31), SIMDE_FLOAT32_C( -765.44), SIMDE_FLOAT32_C( 838.54), SIMDE_FLOAT32_C( 348.49), SIMDE_FLOAT32_C( 476.79), SIMDE_FLOAT32_C( 621.17), SIMDE_FLOAT32_C( 858.87), SIMDE_FLOAT32_C( 680.40), SIMDE_FLOAT32_C( 410.98), SIMDE_FLOAT32_C( -626.53), SIMDE_FLOAT32_C( 596.17), SIMDE_FLOAT32_C( -503.19), SIMDE_FLOAT32_C( 970.01) }; static const simde_float32 b[] = { SIMDE_FLOAT32_C( -749.08), SIMDE_FLOAT32_C( 967.91), SIMDE_FLOAT32_C( 666.91), SIMDE_FLOAT32_C( -795.54), SIMDE_FLOAT32_C( 942.80), SIMDE_FLOAT32_C( 932.03), SIMDE_FLOAT32_C( -748.73), SIMDE_FLOAT32_C( -637.14), SIMDE_FLOAT32_C( 454.47), SIMDE_FLOAT32_C( -521.26), SIMDE_FLOAT32_C( -613.44), SIMDE_FLOAT32_C( 743.45), SIMDE_FLOAT32_C( 185.59), SIMDE_FLOAT32_C( 713.26), SIMDE_FLOAT32_C( 918.18), SIMDE_FLOAT32_C( -904.34), SIMDE_FLOAT32_C( 265.74), SIMDE_FLOAT32_C( 792.02), SIMDE_FLOAT32_C( 178.96), SIMDE_FLOAT32_C( 500.30), SIMDE_FLOAT32_C( 630.56), SIMDE_FLOAT32_C( -472.55), SIMDE_FLOAT32_C( -22.91), SIMDE_FLOAT32_C( 251.73), SIMDE_FLOAT32_C( -613.68), SIMDE_FLOAT32_C( -342.51), SIMDE_FLOAT32_C( -337.29), SIMDE_FLOAT32_C( -240.21), SIMDE_FLOAT32_C( -746.34), SIMDE_FLOAT32_C( 159.52), SIMDE_FLOAT32_C( -270.20), SIMDE_FLOAT32_C( -495.41), SIMDE_FLOAT32_C( 127.44), SIMDE_FLOAT32_C( -603.29), SIMDE_FLOAT32_C( -290.95), SIMDE_FLOAT32_C( 70.23), SIMDE_FLOAT32_C( -671.25), SIMDE_FLOAT32_C( -39.68), SIMDE_FLOAT32_C( 433.09), SIMDE_FLOAT32_C( 783.22), SIMDE_FLOAT32_C( 439.06), SIMDE_FLOAT32_C( 819.65), SIMDE_FLOAT32_C( 526.66), SIMDE_FLOAT32_C( -375.35), SIMDE_FLOAT32_C( 532.91), SIMDE_FLOAT32_C( 444.85), SIMDE_FLOAT32_C( -279.69), SIMDE_FLOAT32_C( -201.35), SIMDE_FLOAT32_C( 236.87), SIMDE_FLOAT32_C( 899.27), SIMDE_FLOAT32_C( -701.05), SIMDE_FLOAT32_C( -132.57), SIMDE_FLOAT32_C( -573.28), SIMDE_FLOAT32_C( 276.04), SIMDE_FLOAT32_C( -880.84), SIMDE_FLOAT32_C( -186.96), SIMDE_FLOAT32_C( 933.53), SIMDE_FLOAT32_C( -218.13), SIMDE_FLOAT32_C( 572.83), SIMDE_FLOAT32_C( -812.80), SIMDE_FLOAT32_C( 941.40), SIMDE_FLOAT32_C( -697.37), SIMDE_FLOAT32_C( -308.22), SIMDE_FLOAT32_C( 68.83), SIMDE_FLOAT32_C( -300.65), SIMDE_FLOAT32_C( 400.83), SIMDE_FLOAT32_C( -860.93), SIMDE_FLOAT32_C( 28.09), SIMDE_FLOAT32_C( -638.85), SIMDE_FLOAT32_C( 572.16), SIMDE_FLOAT32_C( -188.69), SIMDE_FLOAT32_C( 800.21), SIMDE_FLOAT32_C( 391.81), SIMDE_FLOAT32_C( -662.03), SIMDE_FLOAT32_C( -575.14), SIMDE_FLOAT32_C( -75.27), SIMDE_FLOAT32_C( 782.82), SIMDE_FLOAT32_C( 145.16), SIMDE_FLOAT32_C( 723.38), SIMDE_FLOAT32_C( 19.69), SIMDE_FLOAT32_C( 44.43), SIMDE_FLOAT32_C( -977.67), SIMDE_FLOAT32_C( 887.12), SIMDE_FLOAT32_C( 471.15), SIMDE_FLOAT32_C( 298.38), SIMDE_FLOAT32_C( -993.72), SIMDE_FLOAT32_C( -715.81), SIMDE_FLOAT32_C( 231.91), SIMDE_FLOAT32_C( -211.84), SIMDE_FLOAT32_C( 857.02), SIMDE_FLOAT32_C( 419.11), SIMDE_FLOAT32_C( -270.45), SIMDE_FLOAT32_C( -840.34), SIMDE_FLOAT32_C( -889.11), SIMDE_FLOAT32_C( 798.39), SIMDE_FLOAT32_C( -141.00), SIMDE_FLOAT32_C( 511.72), SIMDE_FLOAT32_C( 937.46), SIMDE_FLOAT32_C( 887.09), SIMDE_FLOAT32_C( 872.88), SIMDE_FLOAT32_C( 509.62), SIMDE_FLOAT32_C( -301.60), SIMDE_FLOAT32_C( 673.08), SIMDE_FLOAT32_C( -98.57), SIMDE_FLOAT32_C( 36.38), SIMDE_FLOAT32_C( -902.06), SIMDE_FLOAT32_C( 826.16), SIMDE_FLOAT32_C( -180.80), SIMDE_FLOAT32_C( 243.10), SIMDE_FLOAT32_C( 549.54), SIMDE_FLOAT32_C( 838.89), SIMDE_FLOAT32_C( -712.47), SIMDE_FLOAT32_C( 571.87), SIMDE_FLOAT32_C( 726.01), SIMDE_FLOAT32_C( 758.68), SIMDE_FLOAT32_C( -129.76), SIMDE_FLOAT32_C( 732.29), SIMDE_FLOAT32_C( -957.12), SIMDE_FLOAT32_C( -897.85), SIMDE_FLOAT32_C( -479.55), SIMDE_FLOAT32_C( 899.90), SIMDE_FLOAT32_C( 521.26), SIMDE_FLOAT32_C( 250.00), SIMDE_FLOAT32_C( -940.44), SIMDE_FLOAT32_C( 632.15), SIMDE_FLOAT32_C( 48.39), SIMDE_FLOAT32_C( -81.44), SIMDE_FLOAT32_C( 143.88), SIMDE_FLOAT32_C( -14.15), SIMDE_FLOAT32_C( -194.35), SIMDE_FLOAT32_C( 16.75), SIMDE_FLOAT32_C( -504.54), SIMDE_FLOAT32_C( 504.06), SIMDE_FLOAT32_C( -310.16), SIMDE_FLOAT32_C( 396.89), SIMDE_FLOAT32_C( -459.57), SIMDE_FLOAT32_C( -212.22), SIMDE_FLOAT32_C( 223.05), SIMDE_FLOAT32_C( 359.63), SIMDE_FLOAT32_C( -969.11), SIMDE_FLOAT32_C( -227.41), SIMDE_FLOAT32_C( 198.52), SIMDE_FLOAT32_C( -681.58), SIMDE_FLOAT32_C( -655.54), SIMDE_FLOAT32_C( -75.48), SIMDE_FLOAT32_C( -922.89), SIMDE_FLOAT32_C( 214.70), SIMDE_FLOAT32_C( -343.18), SIMDE_FLOAT32_C( -880.02), SIMDE_FLOAT32_C( 316.85), SIMDE_FLOAT32_C( 177.26), SIMDE_FLOAT32_C( -980.12), SIMDE_FLOAT32_C( -161.89), SIMDE_FLOAT32_C( -572.73), SIMDE_FLOAT32_C( -920.56), SIMDE_FLOAT32_C( -529.73), SIMDE_FLOAT32_C( 475.66), SIMDE_FLOAT32_C( -2.01), SIMDE_FLOAT32_C( 614.15), SIMDE_FLOAT32_C( -538.49), SIMDE_FLOAT32_C( 803.65), SIMDE_FLOAT32_C( -369.10), SIMDE_FLOAT32_C( -43.03), SIMDE_FLOAT32_C( 307.70), SIMDE_FLOAT32_C( 320.74), SIMDE_FLOAT32_C( -646.14), SIMDE_FLOAT32_C( 848.14), SIMDE_FLOAT32_C( -891.48), SIMDE_FLOAT32_C( 576.92), SIMDE_FLOAT32_C( 207.77), SIMDE_FLOAT32_C( -860.59), SIMDE_FLOAT32_C( -650.50), SIMDE_FLOAT32_C( -593.72), SIMDE_FLOAT32_C( -542.17), SIMDE_FLOAT32_C( -306.04), SIMDE_FLOAT32_C( 330.81), SIMDE_FLOAT32_C( -465.07), SIMDE_FLOAT32_C( 908.66), SIMDE_FLOAT32_C( 987.62), SIMDE_FLOAT32_C( -345.09), SIMDE_FLOAT32_C( 225.51), SIMDE_FLOAT32_C( 164.89), SIMDE_FLOAT32_C( -325.21), SIMDE_FLOAT32_C( -936.37) }; static const int32_t e[] = { INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), INT32_C( 0), -INT32_C( 1), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), -INT32_C( 1), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0), INT32_C( 0) }; static int32_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svbool_t pv, ev; simde_svfloat32_t av = simde_svld1_f32(pg, &(a[i])), bv = simde_svld1_f32(pg, &(b[i])); pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); ev = simde_svcmplt_f32(pv, av, bv); simde_svst1_s32(pg, &(r[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_assert_equal_vi32(len, e, r); return 0; #else int32_t p[1024 / sizeof(int32_t)], e[1024 / sizeof(int32_t)]; simde_float32 a[1024 / sizeof(int32_t)], b[1024 / sizeof(int32_t)]; int32_t len = simde_test_codegen_random_i32() & ((sizeof(e) / sizeof(e[0])) - 1); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_vf32(len, a, SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0)); simde_test_codegen_random_vf32(len, b, SIMDE_FLOAT32_C(-1000.0), SIMDE_FLOAT32_C(1000.0)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b32_s32(i, len); while (simde_svptest_first(simde_svptrue_b32(), pg)) { simde_svfloat32_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(0)); av = simde_svld1_f32(pg, &(a[i])); bv = simde_svld1_f32(pg, &(b[i])); ev = simde_svcmplt_f32(pv, av, bv); simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~INT32_C(0))); simde_svst1_s32(pg, &(e[i]), simde_svdup_n_s32_z(ev, ~INT32_C(0))); i += simde_svcntw(); pg = simde_svwhilelt_b32_s32(i, len); } simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vf32(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vf32(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi32(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } static int test_simde_svcmplt_f64 (SIMDE_MUNIT_TEST_ARGS) { #if 1 static const int64_t p[] = { -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0) }; static const simde_float64 a[] = { SIMDE_FLOAT64_C( 595.54), SIMDE_FLOAT64_C( -852.85), SIMDE_FLOAT64_C( -318.15), SIMDE_FLOAT64_C( -743.45), SIMDE_FLOAT64_C( -558.95), SIMDE_FLOAT64_C( 850.28), SIMDE_FLOAT64_C( 15.80), SIMDE_FLOAT64_C( 420.10), SIMDE_FLOAT64_C( 530.70), SIMDE_FLOAT64_C( 172.92), SIMDE_FLOAT64_C( 511.22), SIMDE_FLOAT64_C( 971.98), SIMDE_FLOAT64_C( -942.14), SIMDE_FLOAT64_C( 698.17), SIMDE_FLOAT64_C( 647.48), SIMDE_FLOAT64_C( -404.55), SIMDE_FLOAT64_C( 552.77), SIMDE_FLOAT64_C( 359.04), SIMDE_FLOAT64_C( 716.51), SIMDE_FLOAT64_C( -464.91), SIMDE_FLOAT64_C( 331.18), SIMDE_FLOAT64_C( -865.71), SIMDE_FLOAT64_C( 159.75), SIMDE_FLOAT64_C( -429.02), SIMDE_FLOAT64_C( 226.26), SIMDE_FLOAT64_C( -91.05), SIMDE_FLOAT64_C( 304.34), SIMDE_FLOAT64_C( 600.46), SIMDE_FLOAT64_C( -510.32), SIMDE_FLOAT64_C( -392.78), SIMDE_FLOAT64_C( -138.41), SIMDE_FLOAT64_C( -914.78), SIMDE_FLOAT64_C( -245.63), SIMDE_FLOAT64_C( 543.44), SIMDE_FLOAT64_C( -658.23), SIMDE_FLOAT64_C( 195.43), SIMDE_FLOAT64_C( 393.72), SIMDE_FLOAT64_C( 357.57), SIMDE_FLOAT64_C( -384.47), SIMDE_FLOAT64_C( -75.58), SIMDE_FLOAT64_C( -469.51), SIMDE_FLOAT64_C( -873.25), SIMDE_FLOAT64_C( -103.60), SIMDE_FLOAT64_C( -411.65), SIMDE_FLOAT64_C( 824.92), SIMDE_FLOAT64_C( -456.12), SIMDE_FLOAT64_C( 183.81), SIMDE_FLOAT64_C( 377.69), SIMDE_FLOAT64_C( 902.92), SIMDE_FLOAT64_C( -99.69), SIMDE_FLOAT64_C( 912.78), SIMDE_FLOAT64_C( 234.11), SIMDE_FLOAT64_C( 34.60), SIMDE_FLOAT64_C( 72.54), SIMDE_FLOAT64_C( 805.09), SIMDE_FLOAT64_C( -739.14), SIMDE_FLOAT64_C( 981.49), SIMDE_FLOAT64_C( 109.43), SIMDE_FLOAT64_C( 861.33), SIMDE_FLOAT64_C( -528.83), SIMDE_FLOAT64_C( 716.64), SIMDE_FLOAT64_C( -277.08), SIMDE_FLOAT64_C( -443.61), SIMDE_FLOAT64_C( -528.99), SIMDE_FLOAT64_C( -733.64), SIMDE_FLOAT64_C( -101.84), SIMDE_FLOAT64_C( 666.44), SIMDE_FLOAT64_C( 660.08), SIMDE_FLOAT64_C( -744.27), SIMDE_FLOAT64_C( -718.03), SIMDE_FLOAT64_C( -415.50), SIMDE_FLOAT64_C( -213.78), SIMDE_FLOAT64_C( -591.28), SIMDE_FLOAT64_C( 480.90), SIMDE_FLOAT64_C( 374.58), SIMDE_FLOAT64_C( -766.36), SIMDE_FLOAT64_C( -975.21), SIMDE_FLOAT64_C( -441.62), SIMDE_FLOAT64_C( 611.33), SIMDE_FLOAT64_C( 927.71), SIMDE_FLOAT64_C( 458.70), SIMDE_FLOAT64_C( 524.11), SIMDE_FLOAT64_C( 161.82), SIMDE_FLOAT64_C( -506.70) }; static const simde_float64 b[] = { SIMDE_FLOAT64_C( -403.35), SIMDE_FLOAT64_C( -33.09), SIMDE_FLOAT64_C( -245.84), SIMDE_FLOAT64_C( -421.86), SIMDE_FLOAT64_C( -923.67), SIMDE_FLOAT64_C( -384.51), SIMDE_FLOAT64_C( 49.31), SIMDE_FLOAT64_C( 792.97), SIMDE_FLOAT64_C( 338.40), SIMDE_FLOAT64_C( 605.70), SIMDE_FLOAT64_C( -736.01), SIMDE_FLOAT64_C( 604.77), SIMDE_FLOAT64_C( -496.14), SIMDE_FLOAT64_C( 930.43), SIMDE_FLOAT64_C( 264.85), SIMDE_FLOAT64_C( -240.41), SIMDE_FLOAT64_C( -787.60), SIMDE_FLOAT64_C( 849.35), SIMDE_FLOAT64_C( 545.82), SIMDE_FLOAT64_C( -378.89), SIMDE_FLOAT64_C( 330.25), SIMDE_FLOAT64_C( -79.60), SIMDE_FLOAT64_C( -145.25), SIMDE_FLOAT64_C( 355.04), SIMDE_FLOAT64_C( 478.78), SIMDE_FLOAT64_C( -533.92), SIMDE_FLOAT64_C( 282.75), SIMDE_FLOAT64_C( -62.52), SIMDE_FLOAT64_C( 990.20), SIMDE_FLOAT64_C( -555.43), SIMDE_FLOAT64_C( 430.78), SIMDE_FLOAT64_C( -413.15), SIMDE_FLOAT64_C( 411.48), SIMDE_FLOAT64_C( -815.06), SIMDE_FLOAT64_C( 164.99), SIMDE_FLOAT64_C( 487.81), SIMDE_FLOAT64_C( -199.58), SIMDE_FLOAT64_C( -785.71), SIMDE_FLOAT64_C( 280.79), SIMDE_FLOAT64_C( -861.17), SIMDE_FLOAT64_C( 820.00), SIMDE_FLOAT64_C( 544.78), SIMDE_FLOAT64_C( 743.59), SIMDE_FLOAT64_C( -676.14), SIMDE_FLOAT64_C( 475.20), SIMDE_FLOAT64_C( 8.44), SIMDE_FLOAT64_C( 83.45), SIMDE_FLOAT64_C( 687.60), SIMDE_FLOAT64_C( -142.20), SIMDE_FLOAT64_C( -370.73), SIMDE_FLOAT64_C( -691.29), SIMDE_FLOAT64_C( -811.95), SIMDE_FLOAT64_C( 549.67), SIMDE_FLOAT64_C( 163.46), SIMDE_FLOAT64_C( 543.09), SIMDE_FLOAT64_C( 28.45), SIMDE_FLOAT64_C( 629.55), SIMDE_FLOAT64_C( -174.15), SIMDE_FLOAT64_C( 965.93), SIMDE_FLOAT64_C( 619.75), SIMDE_FLOAT64_C( 270.42), SIMDE_FLOAT64_C( 396.70), SIMDE_FLOAT64_C( -793.41), SIMDE_FLOAT64_C( -318.10), SIMDE_FLOAT64_C( 581.64), SIMDE_FLOAT64_C( 371.58), SIMDE_FLOAT64_C( -830.29), SIMDE_FLOAT64_C( -617.94), SIMDE_FLOAT64_C( 585.87), SIMDE_FLOAT64_C( 450.50), SIMDE_FLOAT64_C( -479.11), SIMDE_FLOAT64_C( 405.87), SIMDE_FLOAT64_C( -4.72), SIMDE_FLOAT64_C( -735.52), SIMDE_FLOAT64_C( 729.73), SIMDE_FLOAT64_C( -529.52), SIMDE_FLOAT64_C( 272.93), SIMDE_FLOAT64_C( -186.82), SIMDE_FLOAT64_C( -841.92), SIMDE_FLOAT64_C( -869.27), SIMDE_FLOAT64_C( 442.45), SIMDE_FLOAT64_C( -533.21), SIMDE_FLOAT64_C( -681.22), SIMDE_FLOAT64_C( -7.88) }; static const int64_t e[] = { INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), -INT64_C( 1), -INT64_C( 1), -INT64_C( 1), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0), INT64_C( 0) }; static int64_t r[sizeof(e) / sizeof(e[0])]; static const int32_t len = HEDLEY_STATIC_CAST(int32_t, sizeof(e) / sizeof(e[0])); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svbool_t pv, ev; simde_svfloat64_t av = simde_svld1_f64(pg, &(a[i])), bv = simde_svld1_f64(pg, &(b[i])); pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); ev = simde_svcmplt_f64(pv, av, bv); simde_svst1_s64(pg, &(r[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_assert_equal_vi64(len, e, r); return 0; #else simde_float64 a[1024 / sizeof(int64_t)], b[1024 / sizeof(int64_t)]; int64_t p[1024 / sizeof(int64_t)], e[1024 / sizeof(int64_t)]; int32_t len = simde_test_codegen_random_i64() & (sizeof(e) / sizeof(e[0])); fputc('\n', stdout); simde_test_codegen_random_memory(sizeof(p), HEDLEY_REINTERPRET_CAST(uint8_t*, p)); simde_test_codegen_random_vf64(len, a, SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); simde_test_codegen_random_vf64(len, b, SIMDE_FLOAT64_C(-1000.0), SIMDE_FLOAT64_C(1000.0)); int32_t i = 0; simde_svbool_t pg = simde_svwhilelt_b64_s32(i, len); while (simde_svptest_first(simde_svptrue_b64(), pg)) { simde_svfloat64_t av, bv; simde_svbool_t pv, ev; pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(0)); av = simde_svld1_f64(pg, &(a[i])); bv = simde_svld1_f64(pg, &(b[i])); ev = simde_svcmplt_f64(pv, av, bv); simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~INT64_C(0))); simde_svst1_s64(pg, &(e[i]), simde_svdup_n_s64_z(ev, ~INT64_C(0))); i += simde_svcntd(); pg = simde_svwhilelt_b64_s32(i, len); } simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), p); simde_test_codegen_write_1vf64(1, HEDLEY_STATIC_CAST(size_t, len), a); simde_test_codegen_write_1vf64(1, HEDLEY_STATIC_CAST(size_t, len), b); simde_test_codegen_write_1vi64(1, HEDLEY_STATIC_CAST(size_t, len), e); return 1; #endif } SIMDE_TEST_FUNC_LIST_BEGIN SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_s8) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_s16) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_s32) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_s64) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_u8) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_u16) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_u32) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_u64) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_f32) SIMDE_TEST_FUNC_LIST_ENTRY(svcmplt_f64) SIMDE_TEST_FUNC_LIST_END #include "test-sve-footer.h"