#define SIMDE_TEST_ARM_SVE_INSN and

#include "test-sve.h"
#include "../../../simde/arm/sve/and.h"

#include "../../../simde/arm/sve/cmplt.h"
#include "../../../simde/arm/sve/dup.h"

static int
test_simde_svand_s8_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int8_t p[] =
    { -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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),
      -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(   0), -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(   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(   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(   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(   1),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),
      -INT8_C(   1) };
  static const int8_t a[] =
    {  INT8_C(  80), -INT8_C( 110),  INT8_C(  40), -INT8_C( 102),  INT8_C( 100), -INT8_C(   4),  INT8_C(  10), -INT8_C(  18),
      -INT8_C(  22),  INT8_C( 108),  INT8_C(  81), -INT8_C(  87),  INT8_C(  68),  INT8_C(  55), -INT8_C(  67), -INT8_C( 109),
       INT8_C(  25),  INT8_C(  35),  INT8_C(   6),  INT8_C(  22), -INT8_C(  28), -INT8_C(  23), -INT8_C( 100), -INT8_C(   1),
      -INT8_C(  11), -INT8_C(   3),  INT8_C(  89), -INT8_C(  26), -INT8_C( 123), -INT8_C(  90), -INT8_C(  60), -INT8_C(  43),
       INT8_C(  56), -INT8_C(  20),  INT8_C( 111), -INT8_C( 100), -INT8_C(  24),  INT8_C( 121), -INT8_C( 118), -INT8_C(  46),
      -INT8_C(  27), -INT8_C(  36),  INT8_C( 123),  INT8_C(  41),  INT8_C(  19),  INT8_C(  56), -INT8_C(  67),  INT8_C(  44),
       INT8_C(  91), -INT8_C(  61),  INT8_C(  66),  INT8_C(  64), -INT8_C(  83), -INT8_C(  33),  INT8_C(  63), -INT8_C(  94),
      -INT8_C(  36), -INT8_C( 103), -INT8_C( 120),  INT8_C(  97),  INT8_C(  63),  INT8_C(  76),  INT8_C(  54),  INT8_C( 119),
       INT8_C(  56), -INT8_C(  90),  INT8_C(  20),  INT8_C(  32),  INT8_C(  31), -INT8_C(  98), -INT8_C(  14),  INT8_C(   5),
       INT8_C( 122),  INT8_C( 110),  INT8_C(  46), -INT8_C( 114), -INT8_C(  90), -INT8_C(  21), -INT8_C(  70),  INT8_C(   2),
      -INT8_C(  81), -INT8_C(   3),  INT8_C(  66),  INT8_C(  92), -INT8_C(  36), -INT8_C( 127), -INT8_C(   2), -INT8_C(  72),
       INT8_C(  26), -INT8_C( 122),  INT8_C(  25),  INT8_C(  89), -INT8_C(  46),  INT8_C(  79), -INT8_C(  47),  INT8_C(  10),
      -INT8_C(  11), -INT8_C(  27),  INT8_C(  42),  INT8_C(  21), -INT8_C( 125),  INT8_C(  28),  INT8_C(  26), -INT8_C(   2),
      -INT8_C( 118),  INT8_C(  72), -INT8_C( 116),  INT8_C(  49),  INT8_C(  52),  INT8_C(  70),  INT8_C(  51), -INT8_C(  29),
       INT8_C(  67),  INT8_C( 117),  INT8_C(  63),  INT8_C(  31), -INT8_C(  10),  INT8_C(  61), -INT8_C(  41),  INT8_C(  17),
      -INT8_C(  61), -INT8_C(  16),  INT8_C( 106), -INT8_C( 107),  INT8_C(  64),  INT8_C(  59), -INT8_C(  97),  INT8_C(  53),
       INT8_C(  32), -INT8_C(  55),  INT8_C(  74), -INT8_C(  92), -INT8_C(  27),  INT8_C( 100), -INT8_C(  94),  INT8_C( 112),
      -INT8_C(  83),  INT8_C(  46), -INT8_C(  95), -INT8_C(  31),  INT8_C( 116), -INT8_C(  44), -INT8_C(  60), -INT8_C(  72),
       INT8_C(  73),  INT8_C(   3), -INT8_C(  41),  INT8_C(  63),  INT8_C(  64), -INT8_C(  81),  INT8_C(  80),  INT8_C(   3),
      -INT8_C(  97), -INT8_C(  69), -INT8_C( 104), -INT8_C(  33), -INT8_C(  10),  INT8_C(  55),  INT8_C(  21),  INT8_C(  23),
       INT8_C(   0),  INT8_C(  95), -INT8_C(  69), -INT8_C(  27), -INT8_C(  60),  INT8_C(  93),  INT8_C(  85),  INT8_C( 113),
      -INT8_C( 117), -INT8_C(  10),  INT8_C(  82), -INT8_C(   1), -INT8_C(  54),  INT8_C(  22), -INT8_C(  73),  INT8_C(  19),
       INT8_C(  25), -INT8_C( 113),  INT8_C(  83),  INT8_C(  89),  INT8_C(  62), -INT8_C(  93),  INT8_C(  92), -INT8_C(  35),
       INT8_C(  94), -INT8_C(  12), -INT8_C(  67),  INT8_C(  85),  INT8_C(  43), -INT8_C(  46),  INT8_C( 108),  INT8_C(  43),
       INT8_C(  49),  INT8_C(  39),  INT8_C(  16), -INT8_C(  11), -INT8_C( 124),  INT8_C( 102),  INT8_C( 102),  INT8_C(  15),
       INT8_C(  92), -INT8_C(  72),  INT8_C(  14),  INT8_C(  39), -INT8_C(  50), -INT8_C(  58),  INT8_C(  58), -INT8_C(  25),
       INT8_C(  85), -INT8_C( 115),  INT8_C(  64), -INT8_C( 109),  INT8_C(  49), -INT8_C( 100),  INT8_C( 112), -INT8_C( 113),
      -INT8_C( 112),  INT8_C(  45), -INT8_C(  28), -INT8_C(  69), -INT8_C(   1),  INT8_C(  80), -INT8_C(  26),  INT8_C(  49),
       INT8_C( 119), -INT8_C(   9),  INT8_C(  38), -INT8_C(   5),  INT8_C(  93), -INT8_C( 115),  INT8_C(  10), -INT8_C(  71),
       INT8_C(  69),  INT8_C(  25), -INT8_C(  32),  INT8_C(  20), -INT8_C(  33),  INT8_C(  27), -INT8_C(   5),  INT8_C(  52),
      -INT8_C(  88),  INT8_C(  60), -INT8_C(  57), -INT8_C(  39), -INT8_C(  40),  INT8_C(  55),  INT8_C( 105),  INT8_C( 105),
       INT8_C( 101),  INT8_C(  77),  INT8_C(  36),  INT8_C( 100), -INT8_C(  98),  INT8_C(  11), -INT8_C( 107),  INT8_C(  21),
       INT8_C(   2), -INT8_C(  68),  INT8_C(  17),  INT8_C(  95),  INT8_C(  73),  INT8_C(  27),  INT8_C(  24), -INT8_C( 114),
       INT8_C(  52), -INT8_C(   7), -INT8_C(  94),  INT8_C(  19),  INT8_C(  20), -INT8_C(  98),  INT8_C(  71), -INT8_C(  68),
      -INT8_C(  38),  INT8_C(  14), -INT8_C( 106), -INT8_C(  78),  INT8_C(  70), -INT8_C(   1),  INT8_C(  27), -INT8_C(  85),
       INT8_C(  76),  INT8_C(  64),  INT8_C(  15), -INT8_C(  22),  INT8_C(  75), -INT8_C(  91),  INT8_C(   0),  INT8_C(  77),
       INT8_C(  97),  INT8_C(  17), -INT8_C(  84), -INT8_C(  86),  INT8_C(  44), -INT8_C(  60),  INT8_C(  56),  INT8_C(  97),
      -INT8_C(  67), -INT8_C(  37),  INT8_C( 116), -INT8_C(  47),  INT8_C( 121), -INT8_C(  68), -INT8_C( 114),  INT8_C(  83),
      -INT8_C(  54),  INT8_C(  36),  INT8_C(   5),  INT8_C(  16),  INT8_C(  35),  INT8_C(  33), -INT8_C(  69),  INT8_C( 111),
       INT8_C(  97), -INT8_C(  53),  INT8_C(  90), -INT8_C(  84),  INT8_C( 112),  INT8_C(  90), -INT8_C(   7), -INT8_C(  47),
       INT8_C( 107), -INT8_C(  91),  INT8_C( 123), -INT8_C( 105),  INT8_C( 105), -INT8_C(  77), -INT8_C(   8),  INT8_C(  39),
      -INT8_C( 114),  INT8_C( 109), -INT8_C(   8),  INT8_C(   7),  INT8_C(  41), -INT8_C( 122),  INT8_C(  90), -INT8_C(  13),
      -INT8_C(  86),  INT8_C(  96),  INT8_C(   4), -INT8_C(  51), -INT8_C( 127), -INT8_C(  65),  INT8_C(  61), -INT8_C(  30),
      -INT8_C( 118), -INT8_C( 105), -INT8_C( 114), -INT8_C(   6), -INT8_C(  15), -INT8_C( 121), -INT8_C(  53),  INT8_C(  92),
       INT8_C(  44),  INT8_C(  70), -INT8_C(  13), -INT8_C( 107), -INT8_C(   6), -INT8_C(  20), -INT8_C(  68), -INT8_C( 120),
       INT8_C(  89), -INT8_C(  75), -INT8_C( 112), -INT8_C( 126),  INT8_C(  59), -INT8_C(  22),  INT8_C( 117), -INT8_C(  26),
       INT8_C(  74),  INT8_C( 121), -INT8_C(  77), -INT8_C(  53),  INT8_C(  57), -INT8_C(  16), -INT8_C(  83), -INT8_C(  61),
      -INT8_C( 121),  INT8_C(  59), -INT8_C(  66),  INT8_C( 120), -INT8_C(  62), -INT8_C( 119), -INT8_C(  44), -INT8_C(  18),
      -INT8_C(  48), -INT8_C(  56), -INT8_C( 124), -INT8_C(  54), -INT8_C(  76),  INT8_C(  64),  INT8_C(  82),  INT8_C(  13),
      -INT8_C(  11), -INT8_C(  30), -INT8_C( 113),  INT8_C(  49), -INT8_C(  51),  INT8_C(   4),  INT8_C(  23),  INT8_C(  23),
       INT8_C( 126), -INT8_C(  54), -INT8_C(  29), -INT8_C(  73), -INT8_C(  69), -INT8_C( 112),  INT8_C( 122),  INT8_C(  66),
      -INT8_C(  52),  INT8_C(  56), -INT8_C(  69), -INT8_C( 114), -INT8_C(  62), -INT8_C( 113),  INT8_C( 125), -INT8_C( 110),
       INT8_C(  87),  INT8_C(   1),  INT8_C(  92),  INT8_C(  11),  INT8_C(  65), -INT8_C(  82),  INT8_C(  24),  INT8_C(  55),
      -INT8_C( 111), -INT8_C(  89),  INT8_C( 104),  INT8_C(  94), -INT8_C(  84),      INT8_MAX,  INT8_C( 117),  INT8_C(  42),
       INT8_C(  73),  INT8_C(  88), -INT8_C(  31),  INT8_C(   4), -INT8_C(  23),  INT8_C(  91),  INT8_C(  71), -INT8_C(  75),
      -INT8_C( 108),  INT8_C(   2),  INT8_C(  67),  INT8_C(  86), -INT8_C( 111), -INT8_C(  64), -INT8_C(  24), -INT8_C(  23),
      -INT8_C(  63) };
  static const int8_t b[] =
    {  INT8_C(   3),  INT8_C( 112),  INT8_C( 100),  INT8_C(  75),  INT8_C(  95), -INT8_C(  88),  INT8_C(  91), -INT8_C( 113),
      -INT8_C( 112),  INT8_C(  47), -INT8_C(  32),  INT8_C(  64), -INT8_C(  32),  INT8_C(  79), -INT8_C( 101),  INT8_C(  75),
       INT8_C(  31),  INT8_C(  37), -INT8_C(  65),  INT8_C(  39),  INT8_C(  28), -INT8_C(  14),  INT8_C(  30), -INT8_C(  64),
      -INT8_C(  74),  INT8_C(  58),  INT8_C(  98),  INT8_C(  36), -INT8_C(  12),  INT8_C( 104), -INT8_C(  64), -INT8_C(   8),
      -INT8_C(  39),  INT8_C(  36),  INT8_C(  67),  INT8_C(  56), -INT8_C(  51), -INT8_C(  98), -INT8_C(   57),  INT8_C(  93),
      -INT8_C(  51), -INT8_C(  89), -INT8_C(  99), -INT8_C(  83), -INT8_C(   9),  INT8_C(  57), -INT8_C(   8),  INT8_C(  22),
       INT8_C(  94), -INT8_C(  73),  INT8_C(  62),  INT8_C( 122), -INT8_C(  86),  INT8_C(  92),  INT8_C(  58),  INT8_C(  96),
      -INT8_C( 106), -INT8_C( 100), -INT8_C( 124), -INT8_C( 117),  INT8_C(   5),  INT8_C(  68), -INT8_C( 125), -INT8_C(  34),
       INT8_C( 104), -INT8_C(  58),  INT8_C(  22),  INT8_C(  53),  INT8_C( 100), -INT8_C(  35), -INT8_C( 109),  INT8_C(  49),
      -INT8_C( 124),  INT8_C(  48), -INT8_C(  34),  INT8_C( 123),  INT8_C( 105), -INT8_C(  42), -INT8_C( 110), -INT8_C(  57),
      -INT8_C( 114), -INT8_C(  48),  INT8_C(  65),  INT8_C(  56),  INT8_C(  44),  INT8_C( 124), -INT8_C( 104), -INT8_C(  61),
       INT8_C(  24),  INT8_C(  28),  INT8_C(  78),  INT8_C(  29),  INT8_C(  96), -INT8_C(  47), -INT8_C(   5), -INT8_C(  56),
      -INT8_C( 105),  INT8_C(  17), -INT8_C(   2), -INT8_C(   5), -INT8_C(  18), -INT8_C( 111),  INT8_C(  44),  INT8_C( 115),
      -INT8_C(  63),  INT8_C(  10), -INT8_C(  18),  INT8_C(  43), -INT8_C(  32),      INT8_MIN, -INT8_C(  14),  INT8_C( 110),
       INT8_C(  80),  INT8_C(  52), -INT8_C(  90),  INT8_C( 125), -INT8_C(  80),  INT8_C(  62),  INT8_C(  64), -INT8_C(  56),
       INT8_C(  90), -INT8_C( 114), -INT8_C(  26), -INT8_C(  70),  INT8_C(  95), -INT8_C(  31), -INT8_C( 125), -INT8_C(  10),
      -INT8_C(  13), -INT8_C( 127), -INT8_C(  15), -INT8_C(  31),  INT8_C(  18),  INT8_C(  29),  INT8_C(  84), -INT8_C(  45),
       INT8_C(  39),  INT8_C(  67), -INT8_C(   2),  INT8_C(   7), -INT8_C(  61), -INT8_C(  15),  INT8_C( 118),  INT8_C(  20),
       INT8_C(  37),  INT8_C(  28), -INT8_C( 111), -INT8_C(  43),  INT8_C(  91), -INT8_C(  47), -INT8_C(  99), -INT8_C(  75),
       INT8_C(  95), -INT8_C( 125),  INT8_C( 112), -INT8_C(  66),  INT8_C( 101), -INT8_C(  13), -INT8_C(  76),  INT8_C(  88),
       INT8_C( 116), -INT8_C(  91),  INT8_C(  57), -INT8_C( 122), -INT8_C(  62), -INT8_C( 114),  INT8_C(  89), -INT8_C(  23),
      -INT8_C(  47),  INT8_C(  88), -INT8_C(  16), -INT8_C( 108),  INT8_C(  73),  INT8_C( 102), -INT8_C(  88),  INT8_C( 110),
      -INT8_C( 125),  INT8_C(  57),  INT8_C(  67), -INT8_C(  34),  INT8_C(  10), -INT8_C(  32), -INT8_C( 109),  INT8_C( 105),
       INT8_C( 100),  INT8_C(   3),  INT8_C(  39), -INT8_C(  55), -INT8_C(  10), -INT8_C(  37),  INT8_C(  33),  INT8_C( 106),
           INT8_MIN,  INT8_C(  90), -INT8_C(  16),  INT8_C(  66), -INT8_C(  24),  INT8_C(  74),  INT8_C(  43), -INT8_C(  71),
      -INT8_C(  94),  INT8_C(  28),  INT8_C(  78), -INT8_C(  21), -INT8_C( 126), -INT8_C(  10),  INT8_C(  89),  INT8_C(   5),
       INT8_C(  48), -INT8_C( 100), -INT8_C(  29),  INT8_C(  58),  INT8_C( 124),  INT8_C( 119), -INT8_C(  92), -INT8_C(  32),
       INT8_C( 122), -INT8_C(  53), -INT8_C(  87),  INT8_C( 113), -INT8_C(  89), -INT8_C(  54), -INT8_C(  37),  INT8_C(  39),
       INT8_C(  37), -INT8_C(  52),  INT8_C( 106),  INT8_C(  13),  INT8_C(  22), -INT8_C( 107), -INT8_C(  57), -INT8_C(  72),
      -INT8_C(  79),  INT8_C(  21), -INT8_C(  93),  INT8_C(  52),  INT8_C(  11), -INT8_C(   4),  INT8_C(  57),  INT8_C(  59),
      -INT8_C( 104),  INT8_C(  29),  INT8_C( 118),  INT8_C(  20), -INT8_C( 108),  INT8_C(  26), -INT8_C(  11),  INT8_C(  14),
      -INT8_C(  27), -INT8_C(  98),      INT8_MAX, -INT8_C( 116),  INT8_C( 105),  INT8_C(  91), -INT8_C(  76), -INT8_C( 114),
       INT8_C(  39),  INT8_C(  30), -INT8_C( 101),  INT8_C(  61), -INT8_C(  77),  INT8_C(  98), -INT8_C(  11),  INT8_C( 101),
       INT8_C( 119), -INT8_C( 104), -INT8_C( 103), -INT8_C( 125), -INT8_C( 108), -INT8_C(  46), -INT8_C(  66),  INT8_C(  44),
      -INT8_C(  17),  INT8_C(  52),  INT8_C(  64), -INT8_C( 125),  INT8_C(  78),  INT8_C(  53), -INT8_C( 110),  INT8_C(  52),
      -INT8_C(  44),  INT8_C(  17), -INT8_C(  64),  INT8_C(  61),  INT8_C( 108),  INT8_C( 116), -INT8_C(  53), -INT8_C( 109),
      -INT8_C( 110),  INT8_C( 102), -INT8_C(  48),  INT8_C(  70), -INT8_C(  55), -INT8_C(  59), -INT8_C(  85),  INT8_C(  64),
       INT8_C(  93),  INT8_C(  68), -INT8_C(  61), -INT8_C(  15),  INT8_C(  22), -INT8_C( 126),  INT8_C(  29),  INT8_C(   6),
      -INT8_C(  74),  INT8_C(  94), -INT8_C( 119),  INT8_C(   5), -INT8_C( 109),  INT8_C(  27),  INT8_C(  57),  INT8_C( 103),
       INT8_C(  45), -INT8_C(   7), -INT8_C(  92), -INT8_C( 103),  INT8_C( 110),  INT8_C( 111),  INT8_C(  45),  INT8_C(   0),
      -INT8_C(  42), -INT8_C(   3),  INT8_C(  70), -INT8_C(  97), -INT8_C(  61), -INT8_C(  15), -INT8_C(  33),  INT8_C(  32),
       INT8_C(  53), -INT8_C(  93),  INT8_C(  18),  INT8_C(  76),  INT8_C(  37),  INT8_C(  47),  INT8_C(  82), -INT8_C(  37),
      -INT8_C( 115), -INT8_C(  37), -INT8_C(  32),  INT8_C(  33), -INT8_C(   9),  INT8_C(  25), -INT8_C( 120),  INT8_C(  36),
       INT8_C(  19),  INT8_C(  45), -INT8_C(  67), -INT8_C( 127), -INT8_C( 100), -INT8_C(  22), -INT8_C( 127),  INT8_C( 114),
      -INT8_C(  24), -INT8_C(  56),  INT8_C(  17), -INT8_C(  85), -INT8_C(  71), -INT8_C(  15), -INT8_C(  53), -INT8_C(  17),
      -INT8_C( 108), -INT8_C(  35),  INT8_C(  59), -INT8_C(  71),  INT8_C(  13), -INT8_C( 115), -INT8_C( 108), -INT8_C( 102),
       INT8_C( 104),  INT8_C( 117), -INT8_C(  69),  INT8_C(  95), -INT8_C( 114),  INT8_C(  68), -INT8_C( 125), -INT8_C(  95),
       INT8_C( 113),  INT8_C(  65),  INT8_C(  34),  INT8_C(  13),  INT8_C(  43), -INT8_C(  92),      INT8_MIN,  INT8_C(  19),
       INT8_C( 108), -INT8_C( 111), -INT8_C(  66),  INT8_C(  37), -INT8_C( 126), -INT8_C( 118),  INT8_C(  20),  INT8_C(  22),
       INT8_C( 103),  INT8_C(  79), -INT8_C(  49),  INT8_C( 116), -INT8_C(  36),  INT8_C( 100),  INT8_C(  15),  INT8_C(  69),
      -INT8_C(  39), -INT8_C(  54), -INT8_C(  92),  INT8_C( 103),  INT8_C(  14),  INT8_C(  40),  INT8_C(   9),      INT8_MAX,
       INT8_C( 105),  INT8_C(  43), -INT8_C( 115), -INT8_C( 108), -INT8_C(  49),  INT8_C(  13), -INT8_C(  88),  INT8_C(  59),
      -INT8_C(  98),  INT8_C( 102),  INT8_C(  97),  INT8_C(  33), -INT8_C(  16),  INT8_C( 117),  INT8_C(  55),  INT8_C(  88),
      -INT8_C(  59),  INT8_C(   7), -INT8_C(  52), -INT8_C(  95),  INT8_C( 107), -INT8_C(  37), -INT8_C(  26),  INT8_C(  68),
      -INT8_C(  90), -INT8_C( 117), -INT8_C(  85), -INT8_C(  76), -INT8_C(  77), -INT8_C(  76),  INT8_C(  52),  INT8_C(  28),
      -INT8_C(  32), -INT8_C(  63), -INT8_C(  80), -INT8_C(  81), -INT8_C(  50),  INT8_C(  88), -INT8_C(  21),  INT8_C( 108),
      -INT8_C(  65) };
  static const int8_t e[] =
    {  INT8_C(   0),  INT8_C(  16),  INT8_C(  32),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C( 114),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  64),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   3),
       INT8_C(   0),  INT8_C(  33),  INT8_C(   0),  INT8_C(   6),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  64),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  64),  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(  24), -INT8_C(  56),  INT8_C(  24),  INT8_C(   0),  INT8_C(  80),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  41),  INT8_C(   0),  INT8_C(  56),  INT8_C(   0),  INT8_C(   4),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  88),  INT8_C(  92),  INT8_C(   0),  INT8_C(   0),
      -INT8_C( 108), -INT8_C( 104),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  68),  INT8_C(   0),  INT8_C(   0),
       INT8_C(  40), -INT8_C( 122),  INT8_C(  20),  INT8_C(  32),  INT8_C(   4),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(  32),  INT8_C(  14),  INT8_C(  10),  INT8_C(   0), -INT8_C(  62),  INT8_C(   0),  INT8_C(   0),
      -INT8_C( 114), -INT8_C(  48),  INT8_C(  64),  INT8_C(  24),  INT8_C(   0),  INT8_C(   0), -INT8_C( 104),  INT8_C(   0),
       INT8_C(  24),  INT8_C(   0),  INT8_C(   8),  INT8_C(  25),  INT8_C(  64),  INT8_C(  65),  INT8_C(   0),  INT8_C(   8),
      -INT8_C( 107),  INT8_C(   1),  INT8_C(  42),  INT8_C(  17),  INT8_C(   0),  INT8_C(  16),  INT8_C(   8),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  32),  INT8_C(   0),  INT8_C(  50),  INT8_C(  98),
       INT8_C(   0),  INT8_C(  52),  INT8_C(   0),  INT8_C(  29), -INT8_C(  80),  INT8_C(  60),  INT8_C(  64),  INT8_C(   0),
       INT8_C(  66),  INT8_C(   0),  INT8_C(   0), -INT8_C( 112),  INT8_C(   0),  INT8_C(   0), -INT8_C( 125),  INT8_C(   0),
       INT8_C(  32),  INT8_C(   0),  INT8_C(  64),  INT8_C(   0),  INT8_C(   0),  INT8_C(   4),  INT8_C(   0),  INT8_C(   0),
       INT8_C(  37),  INT8_C(   2), -INT8_C(  96),  INT8_C(   1),  INT8_C(   0), -INT8_C(  48),  INT8_C(   0),  INT8_C(  16),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  21),  INT8_C(  64), -INT8_C( 127),  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(  20),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C( 124), -INT8_C(  64),  INT8_C(  12),  INT8_C(   0),  INT8_C(  97),
      -INT8_C( 127),  INT8_C(   0),  INT8_C(   0), -INT8_C( 108),  INT8_C(  72),  INT8_C(   6),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  67),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  16),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  37),  INT8_C(  65),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  42),
       INT8_C(   0),  INT8_C(   2),  INT8_C(  16),  INT8_C(   0),      INT8_MIN,  INT8_C(  66),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(  24),  INT8_C(  14),  INT8_C(  35),  INT8_C(   0),  INT8_C(   0),  INT8_C(  24),  INT8_C(   5),
       INT8_C(  16), -INT8_C( 116),  INT8_C(  64),  INT8_C(  18),  INT8_C(  48),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   9), -INT8_C(  96),  INT8_C(  49),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  33),
       INT8_C(  37), -INT8_C(  60),  INT8_C(   0),  INT8_C(   0),  INT8_C(  20),  INT8_C(   0),  INT8_C(   2), -INT8_C(  72),
       INT8_C(   1),  INT8_C(  17),  INT8_C(   0),  INT8_C(   0),  INT8_C(  11),  INT8_C(  24),  INT8_C(   0),  INT8_C(  48),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C( 112),  INT8_C(  18),  INT8_C(   0),  INT8_C(   8),
       INT8_C( 101),  INT8_C(   0),  INT8_C(  36),  INT8_C(   4),  INT8_C(   0),  INT8_C(  11),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   2),  INT8_C(   0),  INT8_C(  17),  INT8_C(  29),  INT8_C(   1),  INT8_C(   0),  INT8_C(   0),  INT8_C(   4),
       INT8_C(  52),  INT8_C(   0),  INT8_C(   0),  INT8_C(   3),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  44),
       INT8_C(   0),  INT8_C(   4),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  53),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(  72),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),  INT8_C(   8),  INT8_C(   0),  INT8_C(  40),  INT8_C(  64),
       INT8_C(  29),  INT8_C(  64),  INT8_C(   0), -INT8_C(  47),  INT8_C(   0),  INT8_C(   0),  INT8_C(  12),  INT8_C(   2),
      -INT8_C( 126),  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(  55),  INT8_C(   0), -INT8_C( 120),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
       INT8_C(  66),  INT8_C(   0),  INT8_C(  66),  INT8_C(   0),  INT8_C(  65), -INT8_C(  79), -INT8_C(  40),  INT8_C(   0),
       INT8_C(   4),  INT8_C(   0),  INT8_C(   0),  INT8_C(   4),  INT8_C(   0),  INT8_C(   6),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   1), -INT8_C( 127),  INT8_C(  25),  INT8_C(   8),  INT8_C(   0),
       INT8_C(   2),  INT8_C(   0),  INT8_C(   0),      INT8_MIN, -INT8_C( 112), -INT8_C( 126),  INT8_C(   0),  INT8_C(  80),
       INT8_C(   0),  INT8_C(  64),  INT8_C(   0), -INT8_C( 127), -INT8_C(  72),  INT8_C(   0), -INT8_C( 120),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  16),      INT8_MIN,  INT8_C(   0),  INT8_C(   0),  INT8_C(  20),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0), -INT8_C(  77),  INT8_C(   0),  INT8_C(   0),  INT8_C(  64), -INT8_C( 127),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  34),  INT8_C(   0),  INT8_C(   2),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),
       INT8_C(   0),      INT8_MIN, -INT8_C( 124),  INT8_C(   0),      INT8_MIN,  INT8_C(   0),  INT8_C(  16),  INT8_C(   4),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0), -INT8_C(  52),  INT8_C(   0),  INT8_C(   7),  INT8_C(   5),
       INT8_C(  88), -INT8_C(  54),  INT8_C(   0),  INT8_C(  39),  INT8_C(   0),  INT8_C(   0),  INT8_C(   8),  INT8_C(  66),
       INT8_C(   0),  INT8_C(  40), -INT8_C( 119),  INT8_C(   0), -INT8_C(  62),  INT8_C(   0),  INT8_C(   0),  INT8_C(  18),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  64),  INT8_C(   1),  INT8_C(  64),  INT8_C(   0),  INT8_C(  16),  INT8_C(  16),
      -INT8_C( 127),  INT8_C(   0),  INT8_C(  72),  INT8_C(   0),  INT8_C(  40),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   8), -INT8_C(  95),  INT8_C(   0), -INT8_C(  95),  INT8_C(  16),  INT8_C(   4),  INT8_C(  20),
       INT8_C(   0),  INT8_C(   0),  INT8_C(   0),  INT8_C(   0),      INT8_MIN,  INT8_C(  64),  INT8_C(   0),  INT8_C( 104),
      -INT8_C( 127) };

  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_svint8_t
      rv,
      av = simde_svld1_s8(pg, &(a[i])),
      bv = simde_svld1_s8(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(INT8_C(0)));
    rv = simde_svand_s8_z(pv, av, bv);

    simde_svst1_s8(pg, &(r[i]), rv);

    i += simde_svcntb();
    pg = simde_svwhilelt_b8_s32(i, len);
  }

  simde_assert_equal_vi8(len, e, r);

  return 0;
#else
  int8_t p[1024], a[1024], b[1024], e[1024];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s8_z(pv, av, bv);

    simde_svst1_s8(pg, &(e[i]), ev);
    simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~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_svand_s8_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int8_t p[] =
    {  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),
      -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(   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(   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(   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(   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(   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(   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(   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(   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(   1),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),  INT8_C(   0),
       INT8_C(   0),  INT8_C(   0), -INT8_C(   1), -INT8_C(   1) };
  static const int8_t a[] =
    { -INT8_C(  11),  INT8_C( 117),  INT8_C(  63),  INT8_C(  41),  INT8_C( 122), -INT8_C(  13), -INT8_C(   6),  INT8_C( 122),
       INT8_C( 108), -INT8_C(  97),  INT8_C(  80), -INT8_C(  64),  INT8_C(  42),  INT8_C( 114), -INT8_C(  57),  INT8_C(  76),
       INT8_C(  58), -INT8_C(  66),  INT8_C(   2), -INT8_C(  52),  INT8_C(  91), -INT8_C(  92), -INT8_C(  86),  INT8_C( 100),
      -INT8_C(  61), -INT8_C( 107), -INT8_C(  20), -INT8_C(  55), -INT8_C(  69),  INT8_C(  40), -INT8_C(  91), -INT8_C(  80),
      -INT8_C(  98), -INT8_C(  28), -INT8_C(  39),  INT8_C(  24), -INT8_C(  41), -INT8_C(  45), -INT8_C( 110),  INT8_C(  67),
       INT8_C( 114), -INT8_C(  30),  INT8_C(   3), -INT8_C( 100),  INT8_C(  84), -INT8_C(  54), -INT8_C(  24), -INT8_C( 114),
      -INT8_C( 120), -INT8_C(  21),  INT8_C(  90), -INT8_C(  28), -INT8_C( 113),  INT8_C(   4),  INT8_C(  72),  INT8_C(  83),
      -INT8_C( 102),  INT8_C(  52),  INT8_C(  28),  INT8_C(  85),  INT8_C(  93), -INT8_C(  62),  INT8_C(   5), -INT8_C(   5),
      -INT8_C(  90), -INT8_C(  34),  INT8_C(  19),  INT8_C( 126), -INT8_C(  79), -INT8_C(  91), -INT8_C(  63),  INT8_C(  36),
      -INT8_C( 121), -INT8_C(  59), -INT8_C(  64), -INT8_C(  36), -INT8_C( 113), -INT8_C(  87),  INT8_C( 106),  INT8_C(  24),
      -INT8_C( 108), -INT8_C(  59), -INT8_C(   4),  INT8_C(  35), -INT8_C(  55),  INT8_C(  68),  INT8_C( 118),  INT8_C(  99),
       INT8_C( 121), -INT8_C( 109), -INT8_C(  72), -INT8_C(  42),  INT8_C(  85), -INT8_C(  67), -INT8_C(  47), -INT8_C(   5),
      -INT8_C( 101), -INT8_C(  28),  INT8_C( 121),  INT8_C(  77), -INT8_C( 119),  INT8_C(  59),  INT8_C( 113),  INT8_C(  16),
       INT8_C(   0),  INT8_C(  49), -INT8_C(  20), -INT8_C( 113), -INT8_C(  38),  INT8_C(  87), -INT8_C(  89),  INT8_C( 110),
       INT8_C(  28), -INT8_C(  93), -INT8_C( 110), -INT8_C(  27), -INT8_C(  24),  INT8_C(   8),  INT8_C(  73),  INT8_C(  97),
      -INT8_C( 101),  INT8_C(   1),  INT8_C(  55), -INT8_C(  16), -INT8_C(  65),  INT8_C(   8), -INT8_C(  20),  INT8_C(  90),
      -INT8_C(  20),  INT8_C( 101), -INT8_C(  89),  INT8_C( 117), -INT8_C(  96),  INT8_C(  24), -INT8_C( 123), -INT8_C(  96),
       INT8_C(  74),  INT8_C( 114),  INT8_C(  48),  INT8_C(  36), -INT8_C(  55), -INT8_C(  41), -INT8_C( 109), -INT8_C(  27),
       INT8_C( 123),  INT8_C(  37), -INT8_C(  54),  INT8_C(  99),  INT8_C(  45),  INT8_C(  19), -INT8_C(  60), -INT8_C(  55),
       INT8_C(  21), -INT8_C(   5), -INT8_C(  71), -INT8_C(  44),  INT8_C(   3), -INT8_C(  91),  INT8_C(  46), -INT8_C(  17),
       INT8_C(  11), -INT8_C(  42),  INT8_C( 100), -INT8_C(  85), -INT8_C(  18), -INT8_C(  23),  INT8_C(  76),  INT8_C(  56),
       INT8_C(  91),  INT8_C( 124),  INT8_C(  93),  INT8_C(  36),  INT8_C(  83), -INT8_C(  16),  INT8_C(   9), -INT8_C(  50),
       INT8_C(  21), -INT8_C(  44),  INT8_C(  49),  INT8_C(  66), -INT8_C(  25), -INT8_C(  11),  INT8_C(  11), -INT8_C(   4),
      -INT8_C(  16), -INT8_C(  59), -INT8_C(  48), -INT8_C(  13),  INT8_C( 106), -INT8_C(   1), -INT8_C(  30),  INT8_C( 117),
      -INT8_C(  43),  INT8_C(  70),  INT8_C(  33), -INT8_C(  61),  INT8_C(  48),  INT8_C( 109), -INT8_C(   4), -INT8_C( 117),
      -INT8_C(  23),  INT8_C(  89), -INT8_C(  80),  INT8_C(  60),  INT8_C(  73), -INT8_C(  71),  INT8_C(  11),  INT8_C(  94),
      -INT8_C( 115),  INT8_C(  60), -INT8_C(  96),  INT8_C( 117),  INT8_C(  50), -INT8_C(  84),  INT8_C( 113),  INT8_C(  34),
       INT8_C( 113),  INT8_C(  66),  INT8_C(  22), -INT8_C(  37),  INT8_C(  65), -INT8_C(   8),  INT8_C(  81),  INT8_C(  22),
       INT8_C(  63),  INT8_C( 114), -INT8_C(  39),  INT8_C( 111), -INT8_C(  33), -INT8_C(  43), -INT8_C(   6), -INT8_C(  56),
       INT8_C(  46), -INT8_C(  86),  INT8_C(   4),  INT8_C( 119),  INT8_C( 100),  INT8_C(  15), -INT8_C(  43), -INT8_C(  15),
       INT8_C(  76),  INT8_C( 118),  INT8_C( 102),  INT8_C( 126),  INT8_C(  34), -INT8_C(  40), -INT8_C(  96), -INT8_C( 109),
       INT8_C(  26), -INT8_C(  74),  INT8_C( 110),  INT8_C(  91), -INT8_C(  81), -INT8_C(  65),  INT8_C( 113), -INT8_C(  18),
       INT8_C(  49),  INT8_C(  74),  INT8_C(  93),  INT8_C(  16),  INT8_C(  32),  INT8_C(  87), -INT8_C(  40),  INT8_C(  78),
       INT8_C(   2), -INT8_C(  35), -INT8_C(  58),  INT8_C( 102), -INT8_C(  20), -INT8_C( 101),  INT8_C(  87),  INT8_C(  56),
       INT8_C(  17), -INT8_C(  66), -INT8_C(  74),  INT8_C(  51), -INT8_C( 106),  INT8_C(  87), -INT8_C(  58), -INT8_C(  80),
       INT8_C(  13),  INT8_C(  53),  INT8_C(  11), -INT8_C(  68), -INT8_C(  12),  INT8_C( 124), -INT8_C(  86),  INT8_C(  38),
      -INT8_C(  58),  INT8_C(   7),  INT8_C(  54), -INT8_C(  26),  INT8_C(  95),  INT8_C(  15),  INT8_C(  53),  INT8_C(  97),
      -INT8_C(  20), -INT8_C(   5), -INT8_C(  57), -INT8_C(  40), -INT8_C( 106),  INT8_C(  30),  INT8_C(  17), -INT8_C(  88),
      -INT8_C(  36), -INT8_C(  57), -INT8_C(  37),  INT8_C( 114),  INT8_C(  30), -INT8_C(  94),  INT8_C(  34),  INT8_C(  44),
      -INT8_C(  41),  INT8_C(  45), -INT8_C(  24), -INT8_C(  53), -INT8_C(  87), -INT8_C( 109), -INT8_C(  15),  INT8_C( 112),
      -INT8_C( 102),  INT8_C(  40),  INT8_C(  86), -INT8_C(   7),  INT8_C(  55), -INT8_C( 117),  INT8_C(  90),  INT8_C(  35),
      -INT8_C( 122),  INT8_C(  33), -INT8_C(   5),  INT8_C(  29),  INT8_C(  64),  INT8_C(  12), -INT8_C(  59),  INT8_C(  28),
      -INT8_C(  44), -INT8_C(  96), -INT8_C( 113), -INT8_C(  14),  INT8_C(  66), -INT8_C(  79),  INT8_C(  30),  INT8_C(  25),
      -INT8_C(  33),  INT8_C(   7), -INT8_C(  27), -INT8_C( 120), -INT8_C( 102), -INT8_C(  42), -INT8_C(   8),  INT8_C(  52),
      -INT8_C(   2),  INT8_C(  79),  INT8_C(  46),  INT8_C(  53), -INT8_C(  38), -INT8_C( 120),  INT8_C(  88),  INT8_C(  97),
      -INT8_C(  86),  INT8_C(  84),  INT8_C( 126), -INT8_C(  22),  INT8_C(  96),  INT8_C(  67),  INT8_C(   6),  INT8_C(  52),
      -INT8_C(  29), -INT8_C( 107),  INT8_C(  39),  INT8_C(  38),  INT8_C(  71),  INT8_C(  69),  INT8_C(  63),  INT8_C(  38),
       INT8_C(  76),  INT8_C(  36), -INT8_C(  82), -INT8_C(  26), -INT8_C(   5), -INT8_C(  89),  INT8_C(  27), -INT8_C(   7),
      -INT8_C(  10),  INT8_C(  73),  INT8_C(  47), -INT8_C(  48), -INT8_C(  47), -INT8_C( 121),  INT8_C(  49),  INT8_C( 123),
      -INT8_C(  37), -INT8_C(  81),  INT8_C( 101),  INT8_C(  60), -INT8_C(  14),  INT8_C( 108),  INT8_C( 112), -INT8_C(  42),
       INT8_C(   1), -INT8_C( 105), -INT8_C(   4),  INT8_C(  72), -INT8_C(  35),  INT8_C(  59),  INT8_C( 110),  INT8_C(  41),
       INT8_C(  96),  INT8_C(  29),  INT8_C(  16),  INT8_C(  91), -INT8_C(  60),  INT8_C(  43),  INT8_C(  84), -INT8_C(  70),
       INT8_C( 116), -INT8_C( 125), -INT8_C( 118),  INT8_C(  69),  INT8_C(  11), -INT8_C(  68), -INT8_C(  63), -INT8_C(  26),
       INT8_C( 107),  INT8_C(  38),  INT8_C(  34),  INT8_C(  94), -INT8_C( 110), -INT8_C( 109),  INT8_C(  52), -INT8_C( 108),
       INT8_C(  42),  INT8_C(  48), -INT8_C(  36),  INT8_C(   7),  INT8_C( 107),  INT8_C(  75),  INT8_C(  49), -INT8_C(  53),
       INT8_C( 104),  INT8_C(  65),  INT8_C(  38),  INT8_C(  44),  INT8_C( 108),  INT8_C( 123), -INT8_C(  26), -INT8_C(  32),
      -INT8_C(   2),  INT8_C( 112),  INT8_C(  37),  INT8_C(   9),  INT8_C(  44), -INT8_C(  26), -INT8_C(  16), -INT8_C( 104),
       INT8_C(  13),  INT8_C(  18), -INT8_C(  10), -INT8_C(  97), -INT8_C(  91),  INT8_C(  42),  INT8_C(  51), -INT8_C(  48),
       INT8_C(  90),  INT8_C(  16), -INT8_C(  41), -INT8_C(  59),  INT8_C(  91),  INT8_C(   8), -INT8_C( 111), -INT8_C(  61),
       INT8_C(  73), -INT8_C(  73), -INT8_C(  17), -INT8_C(  75),  INT8_C(  50), -INT8_C(  43), -INT8_C( 107),  INT8_C(  49),
       INT8_C(  69), -INT8_C(  69),  INT8_C(  58),  INT8_C( 114), -INT8_C(  95),  INT8_C(  42),  INT8_C(  10), -INT8_C(  82),
       INT8_C(  61),  INT8_C(   0),  INT8_C(  78), -INT8_C(  30),  INT8_C(  42), -INT8_C( 127), -INT8_C(  78), -INT8_C( 124),
      -INT8_C( 111), -INT8_C( 118),  INT8_C(  73), -INT8_C(  20), -INT8_C( 110), -INT8_C(  38), -INT8_C(  81), -INT8_C(  36),
      -INT8_C( 110), -INT8_C(  98), -INT8_C( 111), -INT8_C(  60),  INT8_C( 115),  INT8_C(  39), -INT8_C(  11), -INT8_C(  71),
      -INT8_C(  30),  INT8_C(  48),  INT8_C(  43), -INT8_C( 125),  INT8_C(  90),  INT8_C(  53),  INT8_C(  50), -INT8_C( 105),
       INT8_C(  53),      INT8_MIN,  INT8_C( 122),  INT8_C(  95),  INT8_C(   1),  INT8_C(  44), -INT8_C(  29), -INT8_C( 109),
      -INT8_C(  74),  INT8_C(  44),      INT8_MAX,  INT8_C(  73),  INT8_C(   7),  INT8_C(  47),  INT8_C(  37), -INT8_C( 103),
      -INT8_C(  51), -INT8_C(  74),  INT8_C(  93),  INT8_C(  65), -INT8_C(  35),  INT8_C(  83), -INT8_C(   6), -INT8_C(  65),
      -INT8_C( 125),  INT8_C(  37),  INT8_C(  67), -INT8_C(  35),  INT8_C(  90),  INT8_C( 117),  INT8_C( 117), -INT8_C( 113),
      -INT8_C(  11), -INT8_C(  17), -INT8_C(  18), -INT8_C(  10),  INT8_C(  27), -INT8_C(  47), -INT8_C( 119), -INT8_C(  46),
      -INT8_C(   3),  INT8_C(   9),  INT8_C(  27),  INT8_C(   4),  INT8_C(  56),  INT8_C(  64), -INT8_C(  99),  INT8_C(   5),
      -INT8_C(  10), -INT8_C(   5),  INT8_C(  70), -INT8_C(  44),  INT8_C(  78),  INT8_C(  64), -INT8_C( 109), -INT8_C(  47),
       INT8_C( 101), -INT8_C(  42), -INT8_C(  82), -INT8_C(  65),  INT8_C(  75),  INT8_C(  35),  INT8_C(  78),  INT8_C(  64),
       INT8_C(  18),  INT8_C(  60),  INT8_C(  55),  INT8_C(  46),  INT8_C(  13), -INT8_C(  64),  INT8_C(   0),  INT8_C(  11),
      -INT8_C(  55),  INT8_C(  27),  INT8_C(  15),  INT8_C(   1),  INT8_C(  91), -INT8_C(  83),  INT8_C(   7),  INT8_C(  81),
      -INT8_C(  88),  INT8_C(  77),  INT8_C(  37), -INT8_C(  10), -INT8_C( 114), -INT8_C(  71), -INT8_C(  57), -INT8_C(  13),
      -INT8_C( 113),  INT8_C( 117), -INT8_C(  77), -INT8_C(  37), -INT8_C( 103),  INT8_C(   1),  INT8_C(  27), -INT8_C(  85),
       INT8_C(  62),  INT8_C(  82), -INT8_C(  39),  INT8_C(  75),  INT8_C(  19), -INT8_C(  39),  INT8_C(  86), -INT8_C(  36),
      -INT8_C(  12),  INT8_C( 102), -INT8_C(  34),  INT8_C(  79),  INT8_C(  19), -INT8_C(  27), -INT8_C(  95), -INT8_C(  69),
       INT8_C(  50), -INT8_C(  58), -INT8_C(  79), -INT8_C(  64),      INT8_MAX,  INT8_C( 120), -INT8_C(  76),  INT8_C(  15),
      -INT8_C(  19),  INT8_C( 103), -INT8_C(  22), -INT8_C( 122),  INT8_C( 104),  INT8_C(   5),  INT8_C(  50), -INT8_C(  90),
       INT8_C(  88),  INT8_C(  11), -INT8_C(  14),  INT8_C( 107), -INT8_C(  27),  INT8_C(  72),  INT8_C(  71), -INT8_C(  39),
      -INT8_C(  82),  INT8_C(  37),  INT8_C(  41), -INT8_C(  63),  INT8_C(  10), -INT8_C(  54),  INT8_C( 124),  INT8_C(  61),
      -INT8_C( 112),  INT8_C(  45), -INT8_C(   3),  INT8_C(  16), -INT8_C(  91), -INT8_C(  79),  INT8_C(  31), -INT8_C( 109),
       INT8_C(  24),  INT8_C(   9),  INT8_C(  25), -INT8_C( 127),  INT8_C(  14),  INT8_C(  75),  INT8_C(  39),  INT8_C( 102),
       INT8_C(  87),  INT8_C(  25), -INT8_C(  47),  INT8_C(  60),  INT8_C(  98),  INT8_C(  25),  INT8_C(  21),  INT8_C(  16),
       INT8_C(  62),  INT8_C(  62), -INT8_C(  46),  INT8_C(  73),  INT8_C(   8),  INT8_C(  78), -INT8_C( 122), -INT8_C( 103),
       INT8_C( 124), -INT8_C( 125), -INT8_C(  87),  INT8_C(  33),  INT8_C(  53), -INT8_C(  56), -INT8_C(  76),  INT8_C(  77),
      -INT8_C(  47), -INT8_C(  50), -INT8_C(  50), -INT8_C(  33),  INT8_C(  25), -INT8_C(  10),  INT8_C(  70),  INT8_C( 112),
       INT8_C(  15),  INT8_C(  23), -INT8_C(  84),  INT8_C( 113),  INT8_C(  48), -INT8_C(  62), -INT8_C( 126),  INT8_C( 111),
       INT8_C(   0),  INT8_C(  84), -INT8_C(  72),  INT8_C(   9), -INT8_C(  94),  INT8_C(  62), -INT8_C(  94),  INT8_C(  30),
      -INT8_C(  63),  INT8_C(  75),  INT8_C(  64), -INT8_C(  10) };
  static const int8_t b[] =
    { -INT8_C( 117), -INT8_C(  32), -INT8_C(  74), -INT8_C(  60),  INT8_C(  15), -INT8_C(   4), -INT8_C(  25), -INT8_C(  63),
      -INT8_C(  34), -INT8_C(  30),  INT8_C(  36),  INT8_C( 121),  INT8_C(  92),  INT8_C(  25), -INT8_C( 122),  INT8_C(  45),
       INT8_C(   6),  INT8_C( 104),  INT8_C(  72), -INT8_C( 101),  INT8_C(  39),  INT8_C(  38), -INT8_C(  29),  INT8_C(   9),
       INT8_C(  20), -INT8_C(  65),  INT8_C( 114), -INT8_C( 109), -INT8_C(  41), -INT8_C(  82), -INT8_C( 119),  INT8_C(  99),
      -INT8_C( 114),  INT8_C(  64),  INT8_C(  39), -INT8_C(  98),  INT8_C(  60),  INT8_C(  14),  INT8_C(  95),  INT8_C(  26),
      -INT8_C(  16), -INT8_C( 125), -INT8_C( 109),  INT8_C(  77), -INT8_C( 100),  INT8_C(  25),  INT8_C( 122), -INT8_C(  94),
      -INT8_C( 127), -INT8_C(  62),  INT8_C(  61), -INT8_C(  88), -INT8_C(  23),  INT8_C(  32), -INT8_C(  78), -INT8_C(   3),
      -INT8_C(  33),  INT8_C(  36), -INT8_C( 111), -INT8_C(  73), -INT8_C(  45),  INT8_C(  26),  INT8_C(  26),  INT8_C(  97),
       INT8_C(  90),  INT8_C(  65), -INT8_C(   1), -INT8_C( 106),  INT8_C(  79),  INT8_C(  94), -INT8_C(  80),  INT8_C(  64),
      -INT8_C(  31),  INT8_C(  67), -INT8_C( 115),  INT8_C( 125),  INT8_C(  92),  INT8_C(   7),  INT8_C(  31), -INT8_C(  35),
      -INT8_C(  54),  INT8_C(  92), -INT8_C( 122), -INT8_C(  77),  INT8_C( 125),  INT8_C(  56), -INT8_C(  80),  INT8_C(  92),
       INT8_C(  92),  INT8_C(  65),  INT8_C(  19),  INT8_C(  47),  INT8_C(  92),  INT8_C(  45), -INT8_C( 111), -INT8_C(  74),
       INT8_C( 110), -INT8_C( 112),  INT8_C(  77), -INT8_C(  66), -INT8_C(  17), -INT8_C(   3), -INT8_C(   2), -INT8_C(  48),
       INT8_C(  65), -INT8_C( 117),  INT8_C(  78), -INT8_C(  99), -INT8_C( 110),  INT8_C( 109),  INT8_C( 123),  INT8_C(  92),
      -INT8_C(  54),  INT8_C(   1),  INT8_C(  15),  INT8_C(  71),  INT8_C(  57), -INT8_C(  64), -INT8_C(  93), -INT8_C( 107),
       INT8_C(   1), -INT8_C(  73), -INT8_C(  59),  INT8_C(  93), -INT8_C(  28),  INT8_C(  86),  INT8_C(  20),  INT8_C(  83),
      -INT8_C(  26),  INT8_C(  97),  INT8_C(  17), -INT8_C(  43),  INT8_C(  94),  INT8_C(  15), -INT8_C(  90), -INT8_C(  97),
      -INT8_C( 102), -INT8_C(  12),  INT8_C(  61),  INT8_C(  44),  INT8_C(  97), -INT8_C(  72), -INT8_C( 119),  INT8_C(  43),
      -INT8_C(  71), -INT8_C( 104),  INT8_C( 114), -INT8_C(  14),  INT8_C(  88),  INT8_C(  22), -INT8_C( 121),  INT8_C(  90),
      -INT8_C(  51),  INT8_C(  76), -INT8_C(  73), -INT8_C(  79), -INT8_C(  94), -INT8_C(  53),  INT8_C(   4), -INT8_C( 119),
       INT8_C(  44),  INT8_C(  21),  INT8_C(  94), -INT8_C( 117),  INT8_C(  36),  INT8_C(   4),  INT8_C(  42), -INT8_C(  66),
      -INT8_C(   8),  INT8_C( 103), -INT8_C(  21),  INT8_C(  90),  INT8_C(  31),  INT8_C( 116), -INT8_C( 123), -INT8_C(  40),
       INT8_C(  12), -INT8_C(   8), -INT8_C(  54),  INT8_C( 101),  INT8_C(  14),  INT8_C(  82), -INT8_C(  65), -INT8_C(  37),
      -INT8_C(  98),  INT8_C( 118), -INT8_C( 116),  INT8_C(  65),  INT8_C(  66), -INT8_C( 111), -INT8_C(  54),  INT8_C( 110),
      -INT8_C(  90),  INT8_C(  40), -INT8_C(   7), -INT8_C(  53),  INT8_C(  45),  INT8_C(  36), -INT8_C( 119),  INT8_C(  37),
      -INT8_C( 117),  INT8_C( 116),      INT8_MAX, -INT8_C(  85), -INT8_C(  24),  INT8_C(   5), -INT8_C( 125), -INT8_C(  11),
      -INT8_C(   3),  INT8_C(  78),  INT8_C(  90),  INT8_C(  11), -INT8_C(  96),  INT8_C(  25), -INT8_C(  26),  INT8_C(  62),
      -INT8_C( 113),  INT8_C( 114),      INT8_MAX, -INT8_C(  47),  INT8_C(   3),  INT8_C(  73),  INT8_C(  64), -INT8_C(  86),
       INT8_C( 114),  INT8_C(  57),  INT8_C( 117), -INT8_C(  97),  INT8_C(  93), -INT8_C(   2), -INT8_C(  60), -INT8_C(  23),
       INT8_C( 115),  INT8_C(  68), -INT8_C( 108),  INT8_C(  91),  INT8_C(  73),  INT8_C(  23),  INT8_C(  80),  INT8_C(  70),
       INT8_C( 101), -INT8_C(  86),  INT8_C(  81),  INT8_C(   5), -INT8_C(  61),  INT8_C(  55),  INT8_C(  68),  INT8_C(  83),
      -INT8_C(  87), -INT8_C(  61),  INT8_C(  36), -INT8_C(  83),  INT8_C(  13),  INT8_C( 100),  INT8_C(  87),      INT8_MAX,
      -INT8_C(  98), -INT8_C(  52),  INT8_C(  30), -INT8_C(   5), -INT8_C(  54), -INT8_C(  30), -INT8_C(  28),  INT8_C(  61),
       INT8_C(  38),  INT8_C( 120), -INT8_C( 103),  INT8_C( 111), -INT8_C( 112), -INT8_C(  23), -INT8_C(  75), -INT8_C(  11),
      -INT8_C( 108),  INT8_C(   6), -INT8_C(   5),  INT8_C(  87),  INT8_C(  61),  INT8_C(  63), -INT8_C(  86), -INT8_C(  25),
       INT8_C(   2), -INT8_C(  49), -INT8_C( 108),  INT8_C(  15),  INT8_C(  51), -INT8_C(  21), -INT8_C( 114), -INT8_C(  47),
      -INT8_C(  73), -INT8_C(  84), -INT8_C(  51), -INT8_C( 127), -INT8_C( 113), -INT8_C(  79), -INT8_C(  65), -INT8_C(  75),
       INT8_C(  42),  INT8_C(  88),  INT8_C(  37), -INT8_C(  70),  INT8_C(  65), -INT8_C(  38), -INT8_C(  81), -INT8_C(  43),
      -INT8_C(  31), -INT8_C(  86),  INT8_C(  45),  INT8_C(  30), -INT8_C(  23), -INT8_C(  41),  INT8_C(   5), -INT8_C(  20),
      -INT8_C(  90), -INT8_C( 103), -INT8_C(   5), -INT8_C(  38), -INT8_C( 124), -INT8_C( 118), -INT8_C(  85),  INT8_C(  59),
       INT8_C(  54),  INT8_C( 120), -INT8_C(  67), -INT8_C(  59),  INT8_C(  42),  INT8_C( 124),  INT8_C( 123),  INT8_C(  84),
      -INT8_C(  44), -INT8_C(  96),  INT8_C(  14),  INT8_C(  21),  INT8_C( 122), -INT8_C(  67), -INT8_C(  21),  INT8_C(  91),
       INT8_C( 104),  INT8_C(  24),  INT8_C( 122),  INT8_C(  81), -INT8_C(  17),      INT8_MAX,  INT8_C(  61), -INT8_C( 106),
       INT8_C(  25),  INT8_C(  57),  INT8_C( 112), -INT8_C(  99), -INT8_C(  61),  INT8_C(  27), -INT8_C(  39), -INT8_C(   7),
      -INT8_C( 108), -INT8_C( 106), -INT8_C(  65), -INT8_C(  66),  INT8_C(  18),  INT8_C(  58),  INT8_C(  18), -INT8_C(  26),
      -INT8_C(  38),  INT8_C(  32), -INT8_C(   5),  INT8_C(  84), -INT8_C(  35), -INT8_C(  26), -INT8_C(  80),  INT8_C(  69),
      -INT8_C(   2),  INT8_C(  42), -INT8_C( 105), -INT8_C(  18), -INT8_C(  87), -INT8_C(  44), -INT8_C( 124), -INT8_C(  62),
       INT8_C(  13), -INT8_C(  12),  INT8_C(  96), -INT8_C(  48),  INT8_C(  15),  INT8_C(  57), -INT8_C(  54), -INT8_C(  93),
      -INT8_C(  49), -INT8_C( 119),  INT8_C(  97), -INT8_C(  31), -INT8_C(  61),  INT8_C( 115), -INT8_C(  57), -INT8_C(  99),
      -INT8_C( 109), -INT8_C(  62), -INT8_C(  15),  INT8_C( 113), -INT8_C(  87), -INT8_C(  95), -INT8_C(  74), -INT8_C(  89),
      -INT8_C(  53),  INT8_C(  77), -INT8_C( 107),  INT8_C( 117),  INT8_C(  34),  INT8_C(  25),  INT8_C(  55),  INT8_C(  47),
       INT8_C(  13), -INT8_C( 105),  INT8_C(   0),  INT8_C(  29), -INT8_C(  48), -INT8_C(  54), -INT8_C(  64), -INT8_C(  97),
       INT8_C(  83),  INT8_C(  34),      INT8_MIN,  INT8_C(  22), -INT8_C( 107),  INT8_C(  71), -INT8_C(  77),  INT8_C(  41),
       INT8_C(  10), -INT8_C(  92), -INT8_C( 102), -INT8_C(  77),  INT8_C(  70),  INT8_C(  80),  INT8_C(  90),  INT8_C(  17),
      -INT8_C(  98), -INT8_C(  16), -INT8_C( 122), -INT8_C(  64),  INT8_C(   9), -INT8_C(  66), -INT8_C(  17),  INT8_C(  23),
       INT8_C(  85), -INT8_C(  17),  INT8_C(  52),  INT8_C(  38), -INT8_C(  71), -INT8_C(  12), -INT8_C(  59),  INT8_C(  12),
       INT8_C(  22),  INT8_C(  70),  INT8_C(  34), -INT8_C(  84), -INT8_C( 115), -INT8_C(  43), -INT8_C(  43), -INT8_C( 105),
       INT8_C( 122),  INT8_C( 111),  INT8_C(  74), -INT8_C(  64), -INT8_C(  65), -INT8_C(  91), -INT8_C(  47),  INT8_C(  93),
      -INT8_C( 107),  INT8_C(  88),  INT8_C(  29), -INT8_C(  98),  INT8_C(  22),  INT8_C(  13), -INT8_C(  75),  INT8_C( 107),
      -INT8_C(   4), -INT8_C(  23), -INT8_C( 111), -INT8_C(  74), -INT8_C(  34),  INT8_C(  87), -INT8_C(  62), -INT8_C(  12),
      -INT8_C(  99), -INT8_C(  27), -INT8_C(  96),  INT8_C(  42), -INT8_C(  70),  INT8_C( 117), -INT8_C(  62),  INT8_C(  52),
      -INT8_C(  28),  INT8_C(  12), -INT8_C(  12), -INT8_C(  92), -INT8_C(  79), -INT8_C(  58),  INT8_C(   1),  INT8_C(  70),
       INT8_C(  30),  INT8_C(  31), -INT8_C(  27),  INT8_C(  52),  INT8_C(  44), -INT8_C( 102), -INT8_C(  97),  INT8_C(  40),
      -INT8_C( 124),  INT8_C(  49), -INT8_C(  34),  INT8_C(  98), -INT8_C( 120), -INT8_C(  95),  INT8_C(  86),  INT8_C(  37),
      -INT8_C( 122), -INT8_C(   9),  INT8_C(  79),  INT8_C(  64),  INT8_C( 108),  INT8_C(  17),  INT8_C( 117),  INT8_C(  81),
       INT8_C(  30),  INT8_C( 105), -INT8_C(  11), -INT8_C(  49),  INT8_C(  47), -INT8_C(  10),  INT8_C(  22),  INT8_C(  77),
       INT8_C(  21), -INT8_C(   5), -INT8_C( 127),  INT8_C(  65), -INT8_C( 107),  INT8_C(  33),  INT8_C( 106),  INT8_C(  25),
       INT8_C(  82),  INT8_C(  72),  INT8_C( 123), -INT8_C(  38), -INT8_C(  23), -INT8_C(  46), -INT8_C(   1),  INT8_C( 111),
      -INT8_C(  55),  INT8_C(  78), -INT8_C(  80),  INT8_C(  53),  INT8_C(  96),  INT8_C(  37), -INT8_C( 122),  INT8_C( 126),
      -INT8_C( 114),  INT8_C( 123),  INT8_C(  77), -INT8_C(  66),  INT8_C( 114),  INT8_C(  99),  INT8_C(  11), -INT8_C( 121),
       INT8_C(  94), -INT8_C( 115), -INT8_C(  55), -INT8_C(  12), -INT8_C(  82),  INT8_C(  51),  INT8_C(  13),  INT8_C(   0),
       INT8_C( 123), -INT8_C( 119), -INT8_C(  38),  INT8_C( 101),  INT8_C(  91), -INT8_C(  39), -INT8_C(  44),  INT8_C(  36),
       INT8_C(  39), -INT8_C( 124),  INT8_C(  89), -INT8_C( 121), -INT8_C(  87), -INT8_C(  32),  INT8_C(   5),  INT8_C(  56),
       INT8_C(  91),  INT8_C(  83), -INT8_C(  10), -INT8_C(  51), -INT8_C(  74),  INT8_C(   1),  INT8_C(  85),  INT8_C(  21),
      -INT8_C( 114),  INT8_C(  30),  INT8_C(   9),  INT8_C(  60),  INT8_C(  81),  INT8_C(  22),  INT8_C(  60), -INT8_C(  52),
      -INT8_C(  97),  INT8_C(  22),  INT8_C(  49), -INT8_C(   6), -INT8_C(  17),  INT8_C(   6),  INT8_C(  30),  INT8_C(  23),
      -INT8_C( 118),  INT8_C( 120), -INT8_C(  98),  INT8_C(  52),  INT8_C(  88), -INT8_C(  92),  INT8_C( 108), -INT8_C(  77),
      -INT8_C(   9),  INT8_C(  98), -INT8_C( 127), -INT8_C(  83),  INT8_C(  99), -INT8_C(  42), -INT8_C(  62), -INT8_C(  14),
      -INT8_C(  12), -INT8_C(  53),  INT8_C(  46),  INT8_C(  69), -INT8_C(  30),  INT8_C( 107),  INT8_C(  17), -INT8_C( 127),
      -INT8_C( 127),  INT8_C(  67),  INT8_C( 124),  INT8_C( 113),  INT8_C(  73), -INT8_C( 102), -INT8_C( 120), -INT8_C(  45),
       INT8_C(  18),  INT8_C(  38),  INT8_C(   7),  INT8_C( 106), -INT8_C(  54),  INT8_C( 115),  INT8_C(  30), -INT8_C(  63),
      -INT8_C(  43), -INT8_C(  97),  INT8_C( 111),  INT8_C(  57),  INT8_C( 117),  INT8_C(  49),  INT8_C(  43),  INT8_C( 105),
      -INT8_C(   3),  INT8_C(  89), -INT8_C(  82), -INT8_C(  33), -INT8_C(  60), -INT8_C(  65),  INT8_C(  96),  INT8_C(  70),
       INT8_C(   2), -INT8_C(  36), -INT8_C(  73),  INT8_C(  75),  INT8_C( 119),  INT8_C(  63),  INT8_C(  31), -INT8_C( 119),
       INT8_C( 101),  INT8_C(  38), -INT8_C(  12),  INT8_C(  48), -INT8_C( 102),  INT8_C(  18), -INT8_C(  15),  INT8_C( 111),
      -INT8_C(  79),  INT8_C(  96), -INT8_C(  88),  INT8_C(  38), -INT8_C( 110), -INT8_C(  45), -INT8_C( 113), -INT8_C( 113),
       INT8_C(  45),  INT8_C(  61),  INT8_C( 110), -INT8_C(  15), -INT8_C(   4), -INT8_C(  50),  INT8_C(  55), -INT8_C(   1),
      -INT8_C(  85), -INT8_C(  18),  INT8_C(  74),  INT8_C(  34),  INT8_C(  45),  INT8_C( 105), -INT8_C(  85), -INT8_C( 109),
      -INT8_C( 112), -INT8_C(  97), -INT8_C(  61),  INT8_C(  42), -INT8_C(  79), -INT8_C(  76), -INT8_C( 103),  INT8_C(  98),
       INT8_C(  21),  INT8_C(  66), -INT8_C( 120), -INT8_C(  89),  INT8_C(  21),  INT8_C(  23),  INT8_C(  54),  INT8_C(  66),
       INT8_C(  84), -INT8_C(  92),  INT8_C(  52),  INT8_C(  81),  INT8_C( 114),  INT8_C( 107),  INT8_C(  80),  INT8_C(  29),
       INT8_C(  90), -INT8_C( 102),  INT8_C(  63), -INT8_C( 121) };
  static const int8_t e[] =
    { -INT8_C(  11),  INT8_C(  96),  INT8_C(  54),  INT8_C(  41),  INT8_C(  10), -INT8_C(  13), -INT8_C(   6),  INT8_C(  64),
       INT8_C( 108), -INT8_C(  97),  INT8_C(   0),  INT8_C(  64),  INT8_C(  42),  INT8_C(  16), -INT8_C(  57),  INT8_C(  12),
       INT8_C(   2),  INT8_C(  40),  INT8_C(   0), -INT8_C(  52),  INT8_C(  91), -INT8_C(  92), -INT8_C(  86),  INT8_C(   0),
      -INT8_C(  61), -INT8_C( 107),  INT8_C(  96), -INT8_C(  55), -INT8_C(  69),  INT8_C(  40), -INT8_C( 127),  INT8_C(  32),
      -INT8_C( 114),  INT8_C(  64), -INT8_C(  39),  INT8_C(  24), -INT8_C(  41),  INT8_C(   2), -INT8_C( 110),  INT8_C(  67),
       INT8_C( 112), -INT8_C( 126),  INT8_C(   3),  INT8_C(  12),  INT8_C(  20), -INT8_C(  54), -INT8_C(  24), -INT8_C( 126),
           INT8_MIN, -INT8_C(  62),  INT8_C(  90), -INT8_C(  96), -INT8_C( 113),  INT8_C(   4),  INT8_C(   0),  INT8_C(  83),
      -INT8_C( 102),  INT8_C(  52),  INT8_C(  28),  INT8_C(  21),  INT8_C(  81), -INT8_C(  62),  INT8_C(   0), -INT8_C(   5),
      -INT8_C(  90),  INT8_C(  64),  INT8_C(  19),  INT8_C( 126), -INT8_C(  79), -INT8_C(  91), -INT8_C(  63),  INT8_C(   0),
      -INT8_C( 121), -INT8_C(  59),      INT8_MIN,  INT8_C(  92), -INT8_C( 113), -INT8_C(  87),  INT8_C(  10),  INT8_C(  24),
      -INT8_C( 108), -INT8_C(  59), -INT8_C( 124),  INT8_C(  35),  INT8_C(  73),  INT8_C(   0),  INT8_C( 118),  INT8_C(  64),
       INT8_C(  88),  INT8_C(   1),  INT8_C(  16), -INT8_C(  42),  INT8_C(  84),  INT8_C(  45), -INT8_C( 111), -INT8_C(  78),
      -INT8_C( 101),      INT8_MIN,  INT8_C(  73),  INT8_C(  12), -INT8_C( 119),  INT8_C(  59),  INT8_C( 112),  INT8_C(  16),
       INT8_C(   0),  INT8_C(  49),  INT8_C(  76), -INT8_C( 113), -INT8_C(  38),  INT8_C(  69), -INT8_C(  89),  INT8_C(  76),
       INT8_C(   8), -INT8_C(  93),  INT8_C(   2), -INT8_C(  27),  INT8_C(  40),  INT8_C(   0),  INT8_C(  73),  INT8_C(   1),
      -INT8_C( 101),  INT8_C(   1),  INT8_C(  55), -INT8_C(  16), -INT8_C(  92),  INT8_C(   0),  INT8_C(   4),  INT8_C(  90),
      -INT8_C(  28),  INT8_C(  97),  INT8_C(   1),  INT8_C(  85),  INT8_C(   0),  INT8_C(   8), -INT8_C( 124),      INT8_MIN,
       INT8_C(  74),  INT8_C( 112),  INT8_C(  48),  INT8_C(  36), -INT8_C(  55), -INT8_C( 112), -INT8_C( 109), -INT8_C(  27),
       INT8_C(  57),  INT8_C(   0),  INT8_C(  66),  INT8_C(  98),  INT8_C(   8),  INT8_C(  18), -INT8_C(  60),  INT8_C(  72),
       INT8_C(  21),  INT8_C(  72), -INT8_C(  71), -INT8_C( 112),  INT8_C(   3), -INT8_C( 127),  INT8_C(   4), -INT8_C(  17),
       INT8_C(  11),  INT8_C(  20),  INT8_C(  68), -INT8_C(  85), -INT8_C(  18), -INT8_C(  23),  INT8_C(   8),  INT8_C(  56),
       INT8_C(  91),  INT8_C( 124),  INT8_C(  93),  INT8_C(  36),  INT8_C(  19), -INT8_C(  16),  INT8_C(   1), -INT8_C(  50),
       INT8_C(   4), -INT8_C(  44),  INT8_C(  49),  INT8_C(  66), -INT8_C(  25), -INT8_C(  11),  INT8_C(  11), -INT8_C(   4),
      -INT8_C( 112), -INT8_C(  59), -INT8_C(  48), -INT8_C(  13),  INT8_C( 106), -INT8_C( 111), -INT8_C(  62),  INT8_C( 100),
      -INT8_C( 124),  INT8_C(  70),  INT8_C(  33), -INT8_C(  61),  INT8_C(  32),  INT8_C(  36), -INT8_C( 120),  INT8_C(   1),
      -INT8_C( 119),  INT8_C(  80), -INT8_C(  80),  INT8_C(  60),  INT8_C(  73),  INT8_C(   1),  INT8_C(   3),  INT8_C(  84),
      -INT8_C( 115),  INT8_C(  12), -INT8_C(  96),  INT8_C( 117),  INT8_C(  50), -INT8_C(  84),  INT8_C( 113),  INT8_C(  34),
       INT8_C(   1),  INT8_C(  66),  INT8_C(  22), -INT8_C(  37),  INT8_C(  65), -INT8_C(   8),  INT8_C(  64),  INT8_C(  22),
       INT8_C(  50),  INT8_C(  48),  INT8_C(  81),  INT8_C(  15), -INT8_C(  33), -INT8_C(  43), -INT8_C(   6), -INT8_C(  56),
       INT8_C(  46),  INT8_C(   0),  INT8_C(   4),  INT8_C( 119),  INT8_C(  64),  INT8_C(  15), -INT8_C(  43),  INT8_C(  64),
       INT8_C(  76),  INT8_C( 118),  INT8_C(  64),  INT8_C( 126),  INT8_C(   2), -INT8_C(  40),  INT8_C(   0),  INT8_C(  19),
       INT8_C(   8), -INT8_C(  74),  INT8_C(  36),  INT8_C(  91),  INT8_C(  13),  INT8_C(  36),  INT8_C( 113), -INT8_C(  18),
       INT8_C(  16),  INT8_C(  72),  INT8_C(  93),  INT8_C(  16),  INT8_C(  32),  INT8_C(  66), -INT8_C(  40),  INT8_C(  12),
       INT8_C(   2), -INT8_C(  35), -INT8_C(  58),  INT8_C( 102), -INT8_C(  20), -INT8_C( 101),  INT8_C(  87),  INT8_C(  48),
       INT8_C(  16), -INT8_C(  66), -INT8_C(  74),  INT8_C(  19),  INT8_C(  20),  INT8_C(  23), -INT8_C(  58), -INT8_C(  80),
       INT8_C(  13),  INT8_C(  53),  INT8_C(   0),  INT8_C(  12), -INT8_C(  12),  INT8_C( 124), -INT8_C(  86),  INT8_C(   0),
      -INT8_C(  58),  INT8_C(   7),  INT8_C(  54), -INT8_C(  26),  INT8_C(  15),  INT8_C(  15),  INT8_C(  53),  INT8_C(  97),
      -INT8_C(  20), -INT8_C(   5),  INT8_C(   5), -INT8_C( 104),  INT8_C(   0),  INT8_C(  30),  INT8_C(  17), -INT8_C(  88),
      -INT8_C(  64), -INT8_C(  57),  INT8_C(   9),  INT8_C(  18),  INT8_C(  30), -INT8_C(  94),  INT8_C(   0),  INT8_C(  44),
      -INT8_C(  41),  INT8_C(   9), -INT8_C(  24), -INT8_C(  53),      INT8_MIN, -INT8_C( 109), -INT8_C(  15),  INT8_C(  48),
       INT8_C(  18),  INT8_C(  40),  INT8_C(  86), -INT8_C(  63),  INT8_C(  34), -INT8_C( 117),  INT8_C(  90),  INT8_C(  35),
      -INT8_C( 124),  INT8_C(  32), -INT8_C(   5),  INT8_C(  29),  INT8_C(  64),  INT8_C(  12), -INT8_C(  59),  INT8_C(  28),
       INT8_C(  64), -INT8_C(  96),  INT8_C(  10),  INT8_C(  80),  INT8_C(  66),  INT8_C(  49),  INT8_C(  30),  INT8_C(  16),
      -INT8_C(  33),  INT8_C(   7),  INT8_C(  96), -INT8_C( 120), -INT8_C( 126), -INT8_C(  42), -INT8_C(  40),  INT8_C(  48),
      -INT8_C( 108),  INT8_C(   6),  INT8_C(  46),  INT8_C(  53), -INT8_C(  38), -INT8_C( 120),  INT8_C(  16),  INT8_C(  97),
      -INT8_C(  86),  INT8_C(   0),  INT8_C( 126),  INT8_C(  64),  INT8_C(  64),  INT8_C(  66),  INT8_C(   6),  INT8_C(   4),
      -INT8_C(  30),  INT8_C(   0),  INT8_C(   7),  INT8_C(  38),  INT8_C(   1),  INT8_C(  68),  INT8_C(   4),  INT8_C(   2),
       INT8_C(  12),  INT8_C(  36), -INT8_C(  82), -INT8_C(  64), -INT8_C(   5),  INT8_C(  33),  INT8_C(  27), -INT8_C(  95),
      -INT8_C(  58),  INT8_C(   9),  INT8_C(  33), -INT8_C(  48), -INT8_C(  47), -INT8_C( 121),  INT8_C(  49),  INT8_C( 123),
      -INT8_C(  37), -INT8_C(  81),  INT8_C( 101),  INT8_C(  60), -INT8_C(  14),  INT8_C( 108),  INT8_C(  48), -INT8_C(  42),
       INT8_C(   1), -INT8_C( 105), -INT8_C(   4),  INT8_C(  64), -INT8_C(  35),  INT8_C(  59),  INT8_C(  38),  INT8_C(  41),
       INT8_C(   0),  INT8_C(  21),  INT8_C(   0),  INT8_C(  25), -INT8_C(  60),  INT8_C(  10),  INT8_C(  64), -INT8_C(  70),
       INT8_C(  80), -INT8_C( 125), -INT8_C( 118),  INT8_C(   4),  INT8_C(   1),  INT8_C(   4), -INT8_C(  63),  INT8_C(  32),
       INT8_C( 107),  INT8_C(  38),  INT8_C(  34),  INT8_C(  94),  INT8_C(   2),  INT8_C(  16),  INT8_C(  52),  INT8_C(  16),
       INT8_C(  42),  INT8_C(  48), -INT8_C(  36),  INT8_C(   7),  INT8_C( 107),  INT8_C(  10),  INT8_C(  49), -INT8_C(  53),
       INT8_C( 104),  INT8_C(  65),  INT8_C(  36),  INT8_C(  36),  INT8_C(  40),  INT8_C( 112), -INT8_C(  60), -INT8_C(  32),
       INT8_C(  22),  INT8_C( 112),  INT8_C(  37),  INT8_C(   8),  INT8_C(  12), -INT8_C(  26), -INT8_C(  48), -INT8_C( 112),
       INT8_C(   8),  INT8_C(   2), -INT8_C(  10), -INT8_C(  97), -INT8_C(  91),  INT8_C(  32),  INT8_C(  17),  INT8_C(  80),
       INT8_C(  90),  INT8_C(  16),  INT8_C(  21), -INT8_C(  59),  INT8_C(  18),  INT8_C(   8), -INT8_C( 111),  INT8_C(  67),
       INT8_C(  73), -INT8_C(  73), -INT8_C( 127), -INT8_C(  75),  INT8_C(  18),  INT8_C(  85), -INT8_C( 107),  INT8_C(  48),
       INT8_C(   5), -INT8_C(  95),  INT8_C(  32),  INT8_C(  34), -INT8_C(  96),  INT8_C(  32),  INT8_C(   2),  INT8_C(  36),
       INT8_C(  36),  INT8_C(   0),  INT8_C(  68), -INT8_C(  30),  INT8_C(  32), -INT8_C( 127), -INT8_C(  78),  INT8_C(   4),
      -INT8_C( 111),  INT8_C(  10),  INT8_C(  73),  INT8_C(  36),  INT8_C(   0), -INT8_C( 102), -INT8_C( 113), -INT8_C(  36),
      -INT8_C( 110), -INT8_C(  98), -INT8_C( 111), -INT8_C(  60),  INT8_C(   0),  INT8_C(  33), -INT8_C(  11),  INT8_C(  33),
      -INT8_C(  30),  INT8_C(  48),  INT8_C(  43), -INT8_C( 125),  INT8_C(  72),  INT8_C(  53),  INT8_C(  48), -INT8_C( 105),
       INT8_C(  53),      INT8_MIN,  INT8_C( 112),  INT8_C(  79),  INT8_C(   1),  INT8_C(  36),  INT8_C(   2), -INT8_C( 109),
       INT8_C(  20),  INT8_C(  44),  INT8_C(   1),  INT8_C(  65),  INT8_C(   7),  INT8_C(  33),  INT8_C(  32), -INT8_C( 103),
       INT8_C(  64),  INT8_C(   0),  INT8_C(  89),  INT8_C(  65), -INT8_C(  55),  INT8_C(  82), -INT8_C(   6),  INT8_C(  47),
      -INT8_C( 127),  INT8_C(  37),  INT8_C(   0), -INT8_C(  35),  INT8_C(  64),  INT8_C( 117),  INT8_C(   4), -INT8_C( 113),
      -INT8_C( 124),  INT8_C( 107), -INT8_C(  18), -INT8_C(  10),  INT8_C(  18), -INT8_C(  47), -INT8_C( 119), -INT8_C(  46),
      -INT8_C(   3),  INT8_C(   9),  INT8_C(   9),  INT8_C(   4),  INT8_C(  40),  INT8_C(   0),  INT8_C(  13),  INT8_C(   5),
      -INT8_C(  10), -INT8_C(   5),  INT8_C(  66),  INT8_C(  68),  INT8_C(  78),  INT8_C(  64), -INT8_C( 112),  INT8_C(   0),
       INT8_C( 101), -INT8_C(  42),  INT8_C(   8), -INT8_C( 121),  INT8_C(   9),  INT8_C(  32),  INT8_C(   4),  INT8_C(  64),
       INT8_C(  18),  INT8_C(  60),  INT8_C(  54),  INT8_C(  12),  INT8_C(  13), -INT8_C(  64),  INT8_C(   0),  INT8_C(  11),
      -INT8_C( 120),  INT8_C(  27),  INT8_C(  15),  INT8_C(   1),  INT8_C(  81),  INT8_C(   4),  INT8_C(   4),  INT8_C(  64),
      -INT8_C(  88),  INT8_C(   4),  INT8_C(  33), -INT8_C(  10), -INT8_C( 114), -INT8_C(  71), -INT8_C(  57),  INT8_C(  19),
      -INT8_C( 118),  INT8_C( 117), -INT8_C(  77),  INT8_C(  16),  INT8_C(  24),  INT8_C(   1),  INT8_C(  27), -INT8_C(  93),
       INT8_C(  62),  INT8_C(  82), -INT8_C( 127),  INT8_C(  75),  INT8_C(  19), -INT8_C(  48),  INT8_C(  66), -INT8_C(  36),
      -INT8_C(  12),  INT8_C(  66),  INT8_C(  14),  INT8_C(  79),  INT8_C(   2), -INT8_C(  27), -INT8_C(  95), -INT8_C(  69),
       INT8_C(  50), -INT8_C(  58),  INT8_C(  48),  INT8_C(  64),  INT8_C(  73),  INT8_C(  24), -INT8_C(  76),  INT8_C(   3),
       INT8_C(   0),  INT8_C(  38), -INT8_C(  22),  INT8_C(   2),  INT8_C(  72),  INT8_C(   1),  INT8_C(  50), -INT8_C(  90),
       INT8_C(  80),  INT8_C(  11), -INT8_C(  14),  INT8_C( 107),  INT8_C( 101),  INT8_C(  72),  INT8_C(  71),  INT8_C(  73),
      -INT8_C(  82),  INT8_C(   1),  INT8_C(  41), -INT8_C(  63),  INT8_C(  10), -INT8_C( 118),  INT8_C( 124),  INT8_C(  61),
       INT8_C(   0),  INT8_C(  45), -INT8_C(   3),  INT8_C(   0), -INT8_C(  91), -INT8_C(  79),  INT8_C(  31), -INT8_C( 109),
       INT8_C(   0),  INT8_C(   0),  INT8_C(  16),  INT8_C(   0),  INT8_C(  14),  INT8_C(   2),  INT8_C(  33),  INT8_C( 102),
       INT8_C(  87),  INT8_C(  25), -INT8_C(  47),  INT8_C(  36),  INT8_C(   2),  INT8_C(  25),  INT8_C(   5),  INT8_C(   0),
       INT8_C(  44),  INT8_C(  60),  INT8_C(  66),  INT8_C(  65),  INT8_C(   8),  INT8_C(  78), -INT8_C( 122), -INT8_C( 103),
       INT8_C( 124), -INT8_C( 125), -INT8_C(  87),  INT8_C(  33),  INT8_C(  37),  INT8_C(  72), -INT8_C(  76),  INT8_C(  77),
      -INT8_C(  47), -INT8_C( 114), -INT8_C(  50),  INT8_C(  10),  INT8_C(  17), -INT8_C(  76),  INT8_C(   0),  INT8_C(  96),
       INT8_C(  15),  INT8_C(   2), -INT8_C( 120),  INT8_C(  33),  INT8_C(  48), -INT8_C(  62), -INT8_C( 126),  INT8_C(  66),
       INT8_C(   0),  INT8_C(  84),  INT8_C(  48),  INT8_C(   9), -INT8_C(  94),  INT8_C(  62),  INT8_C(   0),  INT8_C(  30),
      -INT8_C(  63),  INT8_C(  75),  INT8_C(   0), -INT8_C( 122) };

  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_svint8_t
      rv,
      av = simde_svld1_s8(pg, &(a[i])),
      bv = simde_svld1_s8(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(INT8_C(0)));
    rv = simde_svand_s8_m(pv, av, bv);

    simde_svst1_s8(pg, &(r[i]), rv);

    i += simde_svcntb();
    pg = simde_svwhilelt_b8_s32(i, len);
  }

  simde_assert_equal_vi8(len, e, r);

  return 0;
#else
  int8_t p[1024], a[1024], b[1024], e[1024];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s8_m(pv, av, bv);

    simde_svst1_s8(pg, &(e[i]), ev);
    simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~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
}

/* the simde_svand_n_s8_m test needs finishing */
//static int
//test_simde_svand_n_s8_m (SIMDE_MUNIT_TEST_ARGS) {
//#if 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_svint8_t
//      rv,
//      av = simde_svld1_s8(pg, &(a[i])),
//      bv = simde_svld1_s8(pg, &(b[i]));
//    simde_svbool_t pv;
//
//    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(INT8_C(0)));
//    rv = simde_svand_s8_m(pv, av, bv);
//
//    simde_svst1_s8(pg, &(r[i]), rv);
//
//    i += simde_svcntb();
//    pg = simde_svwhilelt_b8_s32(i, len);
//  }
//
//  simde_assert_equal_vi8(len, e, r);
//
//  return 0;
//#else
//  int8_t p[1024], a[1024], b, e[1024];
//  int32_t len = simde_test_arm_sve_random_length(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_memory(sizeof(a), HEDLEY_REINTERPRET_CAST(uint8_t*, a));
//  b = simde_test_codegen_random_i8();
//
//  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, ev;
//    simde_svbool_t pv;
//
//    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(0));
//    av = simde_svld1_s8(pg, &(a[i]));
//
//    ev = simde_svand_n_s8_m(pv, av, b);
//
//    simde_svst1_s8(pg, &(e[i]), ev);
//    simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~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_1i8(1, b);
//  simde_test_codegen_write_1vi8(1, HEDLEY_STATIC_CAST(size_t, len), e);
//
//  return 1;
//#endif
//}

static int
test_simde_svand_s16_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int16_t p[] =
    { -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(     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(     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(     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(     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(     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(     1), -INT16_C(     1), -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(     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(     0),  INT16_C(     0),  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(     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(     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(     1),  INT16_C(     0),  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(     1), -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(     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(     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(     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(     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(     1),  INT16_C(     0),  INT16_C(     0), -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(     1), -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(     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(     0),  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(     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(     1),  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(     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(     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(     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(     0),  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(     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(     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(     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(     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(     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(     1),  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(     1), -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(     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(     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(     1), -INT16_C(     1),  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(     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(     0),  INT16_C(     0), -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(     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(     0),  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(     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(     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(     1), -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(     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(     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) };
  static const int16_t a[] =
    {  INT16_C( 30444),  INT16_C(  4872), -INT16_C( 19789),  INT16_C( 32466),  INT16_C(  1593),  INT16_C(  2365), -INT16_C(   535), -INT16_C( 12482),
      -INT16_C( 11858),  INT16_C( 16121),  INT16_C( 18676), -INT16_C(  6322),  INT16_C( 24804), -INT16_C( 21092),  INT16_C( 19788),  INT16_C( 14436),
       INT16_C( 27843),  INT16_C( 30283),  INT16_C(  7454),  INT16_C( 22772),  INT16_C( 12579),  INT16_C(  3169), -INT16_C( 24786), -INT16_C(  8740),
      -INT16_C( 10896),  INT16_C( 25883),  INT16_C( 27165),  INT16_C(   588), -INT16_C(  5942),  INT16_C(  5807),  INT16_C(  4917), -INT16_C(  1970),
      -INT16_C( 26241), -INT16_C( 24978),  INT16_C( 25270), -INT16_C(  9482),  INT16_C( 22419), -INT16_C( 15898), -INT16_C( 15625),  INT16_C( 26526),
      -INT16_C( 17769), -INT16_C( 18996),  INT16_C(  6180), -INT16_C(  4425),  INT16_C( 26112),  INT16_C( 13573),  INT16_C( 21369), -INT16_C(  2003),
      -INT16_C( 25619), -INT16_C( 23658), -INT16_C( 29443), -INT16_C( 28547),  INT16_C( 25828), -INT16_C(  9390), -INT16_C(  4058), -INT16_C( 16830),
       INT16_C(  4010), -INT16_C( 12685),  INT16_C( 10791),  INT16_C( 10429), -INT16_C( 15728),  INT16_C(  2397), -INT16_C( 29931),  INT16_C(   513),
      -INT16_C( 26586),  INT16_C(  9382),  INT16_C(  8996),  INT16_C(  2228),  INT16_C(  1671), -INT16_C( 20765),  INT16_C(  9975), -INT16_C( 24212),
      -INT16_C(  8395),  INT16_C( 23664),  INT16_C( 11529), -INT16_C( 26236), -INT16_C(  7441),  INT16_C(  1186), -INT16_C( 23699), -INT16_C( 27897),
      -INT16_C( 21189),  INT16_C( 24759),  INT16_C( 27856),  INT16_C( 22632),  INT16_C( 19570),  INT16_C( 26886),  INT16_C( 29298), -INT16_C( 22773),
       INT16_C( 31569),  INT16_C( 23043), -INT16_C( 30552), -INT16_C( 26637), -INT16_C( 27286), -INT16_C( 10341), -INT16_C( 24008),  INT16_C( 29802),
       INT16_C(  8783),  INT16_C(  8404),  INT16_C( 15502),  INT16_C(   120),  INT16_C( 32392), -INT16_C(  1430),  INT16_C( 30192),  INT16_C( 16801),
      -INT16_C( 23056), -INT16_C( 26469), -INT16_C( 29139), -INT16_C( 26833), -INT16_C( 13789),  INT16_C( 23406), -INT16_C( 10131), -INT16_C( 17201),
      -INT16_C( 23558), -INT16_C( 30500),  INT16_C( 21728),  INT16_C( 26761), -INT16_C(  3118), -INT16_C( 15773),  INT16_C(  1128),  INT16_C( 22531),
      -INT16_C( 24919), -INT16_C( 10512),  INT16_C(  7980),  INT16_C( 20333), -INT16_C(  9239),  INT16_C( 22187),  INT16_C( 31412), -INT16_C( 20973),
      -INT16_C(  4322), -INT16_C(   457), -INT16_C( 16316),  INT16_C(  5734), -INT16_C( 13901),  INT16_C(  7129), -INT16_C(  9010),  INT16_C( 30579),
       INT16_C( 25467), -INT16_C( 22706), -INT16_C( 17534),  INT16_C( 27639), -INT16_C( 23913),  INT16_C( 19394), -INT16_C( 10980),  INT16_C( 15097),
       INT16_C( 12484),  INT16_C(  2104), -INT16_C( 24592), -INT16_C( 23777), -INT16_C(  1944),  INT16_C( 14014),  INT16_C( 12756),  INT16_C( 20398),
      -INT16_C(   876),  INT16_C(  5879), -INT16_C(  4425),  INT16_C( 20098),  INT16_C( 17552), -INT16_C( 21351), -INT16_C( 27879), -INT16_C(  8729),
       INT16_C(  8131), -INT16_C( 19226),  INT16_C(  1470),  INT16_C( 10071),  INT16_C(  5885), -INT16_C( 11939),  INT16_C(  2887), -INT16_C(  9183),
       INT16_C(  6151), -INT16_C( 16398),  INT16_C( 29702), -INT16_C( 27123), -INT16_C( 22600), -INT16_C( 11966),  INT16_C( 10554), -INT16_C(   593),
      -INT16_C( 27319),  INT16_C(  1969),  INT16_C(  2458), -INT16_C( 26834), -INT16_C( 29665),  INT16_C( 26216), -INT16_C( 30313), -INT16_C( 24766),
       INT16_C( 13729), -INT16_C( 22690),  INT16_C( 27561),  INT16_C( 25149), -INT16_C( 32750),  INT16_C( 19507), -INT16_C(  7511), -INT16_C(  3510),
      -INT16_C(  1161),  INT16_C(  4602),  INT16_C( 10244),  INT16_C(  9128),  INT16_C(  4532),  INT16_C( 19594), -INT16_C( 13158),  INT16_C( 15595),
       INT16_C( 18689), -INT16_C( 21533),  INT16_C(  8628), -INT16_C( 14579),  INT16_C( 16545),  INT16_C( 18963),  INT16_C( 23843), -INT16_C( 26051),
       INT16_C( 14169),  INT16_C( 23980),  INT16_C( 21599),  INT16_C(  5249),  INT16_C(  2917),  INT16_C(    96),  INT16_C( 19415), -INT16_C(  9924),
       INT16_C(  8084),  INT16_C( 18564), -INT16_C( 28352), -INT16_C(  7921),  INT16_C(  9169), -INT16_C(  3028),  INT16_C( 27008), -INT16_C(  9841),
       INT16_C( 15264), -INT16_C(   201), -INT16_C( 18289), -INT16_C(  2797),  INT16_C( 29635), -INT16_C( 25867),  INT16_C( 12734),  INT16_C( 21107),
      -INT16_C(  2224), -INT16_C( 28261), -INT16_C( 21880),  INT16_C( 23154), -INT16_C( 24883),  INT16_C( 20046), -INT16_C(  8953), -INT16_C( 22745),
       INT16_C( 24088), -INT16_C( 22361), -INT16_C( 17898), -INT16_C(  9827), -INT16_C( 28114), -INT16_C(  5004), -INT16_C(  6205),  INT16_C(  4927),
      -INT16_C(  9505),  INT16_C( 26532),  INT16_C(  6020),  INT16_C( 21185),  INT16_C(  4277), -INT16_C( 16992), -INT16_C( 14355),  INT16_C(  1636),
       INT16_C(  2854),  INT16_C( 15534),  INT16_C( 19398), -INT16_C(  3050), -INT16_C( 29987), -INT16_C( 24352),  INT16_C(  8049),  INT16_C( 20659),
       INT16_C( 22777),  INT16_C( 32440),  INT16_C( 31087),  INT16_C(  9424),  INT16_C( 28809),  INT16_C( 30689),  INT16_C( 17975),  INT16_C( 23933),
       INT16_C( 11089),  INT16_C(  6042), -INT16_C( 20362),  INT16_C( 21259), -INT16_C(  5062), -INT16_C( 21517), -INT16_C( 23029),  INT16_C(  1532),
      -INT16_C( 19202),  INT16_C( 28035),  INT16_C( 21293), -INT16_C( 18542),  INT16_C( 29635), -INT16_C(  1490), -INT16_C( 21575),  INT16_C(  2904),
      -INT16_C(  3370),  INT16_C( 19490),  INT16_C( 11938), -INT16_C(  9057), -INT16_C( 28134),  INT16_C(  9607), -INT16_C( 31944),  INT16_C( 14122),
      -INT16_C( 21193),  INT16_C( 26020),  INT16_C( 13824), -INT16_C( 15588),  INT16_C( 19114),  INT16_C( 25534),  INT16_C(  5877), -INT16_C( 13458),
      -INT16_C( 28408), -INT16_C( 21993), -INT16_C( 18753), -INT16_C(  9850),  INT16_C(  3400), -INT16_C( 32514),  INT16_C( 10641), -INT16_C( 14153),
       INT16_C( 23766), -INT16_C( 10451),  INT16_C( 18834),  INT16_C( 15514),  INT16_C( 22675), -INT16_C( 30560),  INT16_C(  3694),  INT16_C( 30291),
       INT16_C( 27295),  INT16_C( 24096), -INT16_C( 23008),  INT16_C( 26679),  INT16_C( 14004),  INT16_C( 17897), -INT16_C( 24481),  INT16_C( 13581),
       INT16_C( 15356), -INT16_C( 28916), -INT16_C( 22652),  INT16_C(  6347),  INT16_C( 27647),  INT16_C( 28320), -INT16_C(  2950),  INT16_C(  6628),
       INT16_C(  1374),  INT16_C( 32632), -INT16_C( 20565),  INT16_C( 24551), -INT16_C( 12059),  INT16_C( 17572), -INT16_C( 19855),  INT16_C( 28026),
      -INT16_C( 30995),  INT16_C( 29180), -INT16_C( 14291),  INT16_C( 11657),  INT16_C( 10803), -INT16_C( 21093),  INT16_C( 32542),  INT16_C( 31943),
       INT16_C( 16260),  INT16_C( 12539), -INT16_C(  7186), -INT16_C( 11121),  INT16_C( 13491),  INT16_C(  9240), -INT16_C( 27930), -INT16_C( 11374),
      -INT16_C( 29159),  INT16_C( 17988), -INT16_C( 12714), -INT16_C( 30093),  INT16_C(  3832),  INT16_C(  5687), -INT16_C(   370),  INT16_C(  4754),
      -INT16_C( 29123),  INT16_C( 11330), -INT16_C( 11663),  INT16_C(  9216),  INT16_C(  6150), -INT16_C(  5047), -INT16_C(  9301), -INT16_C( 15169),
       INT16_C(   873), -INT16_C( 16374),  INT16_C( 32465), -INT16_C( 14006), -INT16_C( 32372),  INT16_C(  6879),  INT16_C( 29312), -INT16_C( 17107),
       INT16_C( 28416),  INT16_C( 29161), -INT16_C(  5823),  INT16_C( 18325), -INT16_C(  8702), -INT16_C( 21197), -INT16_C(  3399),  INT16_C(  9073),
       INT16_C( 31734), -INT16_C( 14365),  INT16_C( 11769), -INT16_C( 31087),  INT16_C( 28846),  INT16_C( 11936), -INT16_C( 12830), -INT16_C(  7444),
      -INT16_C( 10947),  INT16_C( 32339), -INT16_C(  5697), -INT16_C( 15930), -INT16_C(  1593), -INT16_C( 32402), -INT16_C(  8212), -INT16_C(  7516),
      -INT16_C( 30886),  INT16_C( 21673),  INT16_C( 15028),  INT16_C( 25306),  INT16_C( 31403), -INT16_C( 29295),  INT16_C( 32072), -INT16_C( 31376),
      -INT16_C( 15534),  INT16_C(  4355), -INT16_C( 13908),  INT16_C( 29906),  INT16_C( 16579), -INT16_C( 20491), -INT16_C( 26337),  INT16_C( 31377),
       INT16_C( 14880), -INT16_C( 11058), -INT16_C( 22411),  INT16_C(  8246), -INT16_C( 14558),  INT16_C( 27309),  INT16_C(  7492), -INT16_C( 26641),
      -INT16_C(  3103), -INT16_C( 29272),  INT16_C( 31676),  INT16_C( 32513), -INT16_C(  2373), -INT16_C(  9426), -INT16_C( 16497), -INT16_C( 20651),
       INT16_C(  9210),  INT16_C( 28547), -INT16_C( 17717), -INT16_C(  4721),  INT16_C( 15489), -INT16_C( 14760),  INT16_C( 18266),  INT16_C( 15197),
       INT16_C(  1338), -INT16_C(  2104), -INT16_C( 13696),  INT16_C( 15478), -INT16_C( 23104),  INT16_C( 20503),  INT16_C( 27748),  INT16_C( 24319),
      -INT16_C( 31857),  INT16_C( 23245),  INT16_C( 23613), -INT16_C( 16825), -INT16_C( 24679), -INT16_C(  3196), -INT16_C(  7705),  INT16_C(  8494),
      -INT16_C(  2329),  INT16_C( 26392), -INT16_C( 28736), -INT16_C( 32349), -INT16_C( 17868), -INT16_C( 26415), -INT16_C( 12250), -INT16_C( 18953),
      -INT16_C( 15277), -INT16_C( 28657),  INT16_C( 22305), -INT16_C( 17841), -INT16_C( 11274), -INT16_C(  8787), -INT16_C(  9291), -INT16_C( 25345),
       INT16_C(  6097), -INT16_C( 28157), -INT16_C( 22618), -INT16_C(  9709), -INT16_C(  7071), -INT16_C( 30605),  INT16_C( 27316),  INT16_C(  2109),
       INT16_C( 19758),  INT16_C( 20376), -INT16_C(  6236), -INT16_C( 26103), -INT16_C( 18757),  INT16_C( 28792),  INT16_C( 30609),  INT16_C( 25356),
       INT16_C(  3982),  INT16_C( 13813),  INT16_C(  2230) };
  static const int16_t b[] =
    {  INT16_C(  5231),  INT16_C(  9499),  INT16_C( 11036),  INT16_C(  2109), -INT16_C(  8787), -INT16_C( 25944),  INT16_C( 20923), -INT16_C(  6731),
       INT16_C(  8082), -INT16_C( 17740),  INT16_C(  7571), -INT16_C( 16738), -INT16_C(  3586),  INT16_C( 22138), -INT16_C( 26287), -INT16_C( 16324),
       INT16_C( 22701), -INT16_C( 13851),  INT16_C(  9091),  INT16_C( 12497),  INT16_C( 30976), -INT16_C( 17462),  INT16_C( 32714),  INT16_C( 23713),
       INT16_C( 21919),  INT16_C( 12823), -INT16_C( 19086),  INT16_C( 28912),  INT16_C( 27302), -INT16_C(  2106),  INT16_C(   515), -INT16_C( 20297),
      -INT16_C( 25254), -INT16_C(  8839),  INT16_C( 19136), -INT16_C( 16370), -INT16_C( 10044), -INT16_C( 29060),  INT16_C(  7512), -INT16_C(  2069),
       INT16_C(   626), -INT16_C(  7127),  INT16_C(  6839),  INT16_C( 23892),  INT16_C(  6788), -INT16_C( 30635),  INT16_C(  3100),  INT16_C( 30520),
      -INT16_C( 19799),  INT16_C( 26964),  INT16_C( 25340), -INT16_C( 16342), -INT16_C( 22981), -INT16_C( 27825),  INT16_C( 15043),  INT16_C( 13706),
      -INT16_C( 19652), -INT16_C(  3303),  INT16_C( 28109),  INT16_C( 21072), -INT16_C( 23161), -INT16_C( 23590),  INT16_C(  4786),  INT16_C( 23322),
       INT16_C( 28612), -INT16_C( 15931), -INT16_C(  4143),  INT16_C(  3201), -INT16_C( 12139),  INT16_C( 22687),  INT16_C( 10506),  INT16_C( 18061),
      -INT16_C( 22819), -INT16_C( 21959), -INT16_C( 30189), -INT16_C( 25860), -INT16_C( 10705), -INT16_C(  7875),  INT16_C( 22761), -INT16_C( 21187),
       INT16_C(   711), -INT16_C( 26514), -INT16_C(  3855), -INT16_C( 31067),  INT16_C( 17600), -INT16_C( 13346),  INT16_C( 27502),  INT16_C( 19217),
       INT16_C( 19217),  INT16_C(  9461), -INT16_C(  3371),  INT16_C(  1214), -INT16_C(  1080), -INT16_C( 19994),  INT16_C(  9043),  INT16_C(  6751),
      -INT16_C( 13019),  INT16_C(  5811),  INT16_C( 22717),  INT16_C( 32412),  INT16_C( 31388),  INT16_C(  2633),  INT16_C( 23269), -INT16_C(  2475),
       INT16_C( 19365),  INT16_C( 31258), -INT16_C( 10179),  INT16_C(  1407),  INT16_C( 26067),  INT16_C( 10167),  INT16_C(  5768), -INT16_C( 21183),
      -INT16_C(  2845), -INT16_C( 24125),  INT16_C( 24396), -INT16_C(  5857),  INT16_C( 26841), -INT16_C( 16653),  INT16_C( 18882),  INT16_C( 26804),
      -INT16_C( 12652), -INT16_C( 11806),  INT16_C( 24998),  INT16_C( 31190), -INT16_C( 29242),  INT16_C( 20128), -INT16_C(  7517), -INT16_C( 30725),
      -INT16_C( 16682),  INT16_C(  9000),  INT16_C( 18205), -INT16_C(  2548), -INT16_C(    81),  INT16_C( 29108),  INT16_C( 26696), -INT16_C(  8999),
      -INT16_C( 17354), -INT16_C(  9043), -INT16_C( 31715), -INT16_C(  7082), -INT16_C(  2543), -INT16_C( 19150),  INT16_C( 11992), -INT16_C( 20676),
       INT16_C( 25836),  INT16_C(  2770), -INT16_C(  8533),  INT16_C( 23040), -INT16_C( 18979),  INT16_C(  9931), -INT16_C( 23267),  INT16_C( 21506),
      -INT16_C( 20383),  INT16_C( 32304), -INT16_C( 31180),  INT16_C( 17762), -INT16_C( 27267),  INT16_C( 22010),  INT16_C( 14019), -INT16_C( 20732),
      -INT16_C( 10598),  INT16_C( 17849), -INT16_C( 17740), -INT16_C( 28001),  INT16_C( 27503), -INT16_C( 29512), -INT16_C( 17904),  INT16_C( 29152),
       INT16_C(  4458), -INT16_C( 24849),  INT16_C( 21143),  INT16_C(  5348), -INT16_C(  8473), -INT16_C( 21910),  INT16_C( 28181), -INT16_C( 20647),
       INT16_C(  4933), -INT16_C(  1547), -INT16_C( 27443),  INT16_C( 15499),  INT16_C( 17407),  INT16_C(  4040), -INT16_C( 22018),  INT16_C( 26752),
       INT16_C( 28858),  INT16_C( 20743), -INT16_C(  5182), -INT16_C( 22170), -INT16_C( 12087), -INT16_C(  8621), -INT16_C( 21442), -INT16_C( 31858),
      -INT16_C( 31809), -INT16_C( 29571),  INT16_C(  2071),  INT16_C(  6088), -INT16_C( 28340),  INT16_C( 18982), -INT16_C( 22726), -INT16_C(  2894),
      -INT16_C( 18153), -INT16_C(  9915), -INT16_C( 21596),  INT16_C( 28290), -INT16_C( 10885), -INT16_C( 17844), -INT16_C(  9599),  INT16_C( 16701),
      -INT16_C( 17827),  INT16_C( 30157), -INT16_C( 26941),  INT16_C(  3980), -INT16_C( 19929),  INT16_C( 24921),  INT16_C(  2905),  INT16_C( 28757),
      -INT16_C( 25915),  INT16_C( 26953), -INT16_C( 13498), -INT16_C( 15913),  INT16_C(  9376),  INT16_C(  8827), -INT16_C( 17922),  INT16_C( 23651),
       INT16_C( 12403),  INT16_C( 14033),  INT16_C( 24006), -INT16_C(  4795), -INT16_C( 25073),  INT16_C( 26958), -INT16_C( 23638),  INT16_C( 28633),
       INT16_C(  9022), -INT16_C( 31528), -INT16_C( 20242), -INT16_C( 28859), -INT16_C( 15916), -INT16_C( 11599),  INT16_C(  5242), -INT16_C(  4818),
      -INT16_C(   188),  INT16_C(  2852),  INT16_C( 26972),  INT16_C( 27896),  INT16_C( 18184), -INT16_C( 19755), -INT16_C( 20758),  INT16_C( 10273),
      -INT16_C(  1583), -INT16_C( 16212), -INT16_C(  3415),  INT16_C( 32079),  INT16_C(   179),  INT16_C( 11600),  INT16_C( 32276),  INT16_C( 22554),
       INT16_C( 15998), -INT16_C(  9629),  INT16_C( 23720), -INT16_C( 20410),  INT16_C(  7075), -INT16_C( 29342), -INT16_C( 31798), -INT16_C( 25674),
       INT16_C( 25212),  INT16_C(  9819), -INT16_C( 21932),  INT16_C(  1955), -INT16_C(  3158), -INT16_C( 16844),  INT16_C( 20338), -INT16_C(  4073),
       INT16_C( 31373),  INT16_C( 13770),  INT16_C(  4566),  INT16_C( 31205),  INT16_C( 18220), -INT16_C(  2553), -INT16_C( 16950),  INT16_C( 18322),
      -INT16_C(  4833),  INT16_C( 29805),  INT16_C(  4248),  INT16_C( 17019), -INT16_C( 20476),  INT16_C( 30209),  INT16_C(  6399), -INT16_C( 29594),
       INT16_C( 12434),  INT16_C( 27074), -INT16_C( 22719),  INT16_C( 28386), -INT16_C(  5649), -INT16_C( 18076), -INT16_C(  2394), -INT16_C( 14848),
       INT16_C( 28132),  INT16_C( 31802), -INT16_C( 19074), -INT16_C( 32066), -INT16_C( 16539),  INT16_C( 25848),  INT16_C( 24279),  INT16_C( 27377),
      -INT16_C( 19570), -INT16_C( 12077), -INT16_C( 19110),  INT16_C( 18750), -INT16_C( 23905),  INT16_C( 17667),  INT16_C(   921),  INT16_C( 32011),
       INT16_C( 17777), -INT16_C(  4103), -INT16_C( 18437),  INT16_C( 24689),  INT16_C( 26999),  INT16_C( 20165), -INT16_C( 18745),  INT16_C( 21944),
      -INT16_C( 29847), -INT16_C( 15579),  INT16_C( 25409), -INT16_C(  8179),  INT16_C(  4102), -INT16_C( 24795),  INT16_C( 12563), -INT16_C( 31716),
       INT16_C(  5494),  INT16_C( 29043), -INT16_C(  6964),  INT16_C( 17362), -INT16_C( 26803),  INT16_C(  5266),  INT16_C( 19021), -INT16_C( 18838),
      -INT16_C( 28714),  INT16_C(  6009), -INT16_C( 30989), -INT16_C(  1545),  INT16_C(  7318), -INT16_C( 21864), -INT16_C( 19379), -INT16_C( 15314),
      -INT16_C( 23863), -INT16_C( 27339),  INT16_C(  1926), -INT16_C( 11047),  INT16_C( 27550), -INT16_C(  5144),  INT16_C( 21173), -INT16_C( 29791),
       INT16_C(  7138), -INT16_C( 10846), -INT16_C( 26207),  INT16_C( 14542),  INT16_C( 26294),  INT16_C(   994),  INT16_C(  4122), -INT16_C(  7225),
      -INT16_C(   590),  INT16_C( 14712),  INT16_C( 20740), -INT16_C( 23795), -INT16_C(  2628),  INT16_C( 29326),  INT16_C( 12360),  INT16_C( 11005),
      -INT16_C( 24501), -INT16_C(  4865), -INT16_C( 12999), -INT16_C(  4316),  INT16_C(  1587),  INT16_C( 19955), -INT16_C( 17897), -INT16_C( 14032),
      -INT16_C( 22345), -INT16_C( 17406),  INT16_C(  4090), -INT16_C( 18849), -INT16_C(  4859),  INT16_C( 19752),  INT16_C(  9757),  INT16_C( 26743),
       INT16_C( 30406), -INT16_C(   171),  INT16_C( 31043),  INT16_C( 30447), -INT16_C(  7552), -INT16_C( 26685), -INT16_C(  3172),  INT16_C( 21600),
       INT16_C( 25499), -INT16_C( 27376),  INT16_C( 28530),  INT16_C( 30540),  INT16_C( 29788),  INT16_C( 31428),  INT16_C( 15258),  INT16_C( 24802),
       INT16_C( 14257), -INT16_C(  2976),  INT16_C( 20401),  INT16_C( 12650),  INT16_C( 11569), -INT16_C( 12856),  INT16_C( 10272), -INT16_C( 17375),
       INT16_C( 12683), -INT16_C(   431), -INT16_C( 25184), -INT16_C(   651),  INT16_C( 14866), -INT16_C( 21385),  INT16_C( 22901),  INT16_C(  9997),
       INT16_C( 28049),  INT16_C( 16923), -INT16_C( 31044), -INT16_C(  4749),  INT16_C( 15283), -INT16_C( 11078), -INT16_C(  9117), -INT16_C(  4208),
      -INT16_C(  7923), -INT16_C( 20755),  INT16_C( 25215), -INT16_C( 28245),  INT16_C(  8860),  INT16_C(  4669),  INT16_C( 19067),  INT16_C(  3129),
       INT16_C( 21687),  INT16_C( 29518), -INT16_C( 15910), -INT16_C( 29088),  INT16_C(  7164),  INT16_C( 24674), -INT16_C(  3337),  INT16_C(  1103),
       INT16_C( 15571),  INT16_C( 21170),  INT16_C( 23966),  INT16_C( 15331),  INT16_C(  8575), -INT16_C(  1203), -INT16_C( 31125),  INT16_C(  8967),
       INT16_C( 22234), -INT16_C( 19050), -INT16_C(  2281),  INT16_C(  5187), -INT16_C( 23278),  INT16_C(  2420), -INT16_C( 15465),  INT16_C( 27149),
      -INT16_C( 16129), -INT16_C( 25155), -INT16_C( 24547), -INT16_C( 25128),  INT16_C(  9665),  INT16_C( 11672), -INT16_C( 24661), -INT16_C( 31152),
      -INT16_C(  6411),  INT16_C(  3387),  INT16_C( 32477), -INT16_C(  4319), -INT16_C( 27357), -INT16_C( 17672),  INT16_C(  1624),  INT16_C( 22308),
      -INT16_C(  7738), -INT16_C(  7180), -INT16_C( 12926),  INT16_C( 17280),  INT16_C(  6386), -INT16_C( 24976), -INT16_C( 16200), -INT16_C( 21212),
       INT16_C( 24487), -INT16_C( 31558), -INT16_C(  9251),  INT16_C(   116),  INT16_C( 27760), -INT16_C( 14150), -INT16_C(  8590),  INT16_C( 14367),
       INT16_C(  5312),  INT16_C( 16924), -INT16_C( 25375), -INT16_C( 11387), -INT16_C(  2379),  INT16_C( 28017), -INT16_C( 27210),  INT16_C( 23834),
      -INT16_C( 10764), -INT16_C( 11806),  INT16_C( 22192) };
  static const int16_t e[] =
    {  INT16_C(  5228),  INT16_C(   264),  INT16_C(     0),  INT16_C(     0),  INT16_C(  1065),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C( 15024),  INT16_C(     0), -INT16_C( 23026),  INT16_C(     0),  INT16_C(     0),  INT16_C(  2368),  INT16_C(     0),
       INT16_C( 18561),  INT16_C( 16449),  INT16_C(   258),  INT16_C(     0),  INT16_C(     0),  INT16_C(  2112),  INT16_C(     0),  INT16_C( 23680),
       INT16_C(     0),  INT16_C(  8211),  INT16_C(  8208),  INT16_C(     0),  INT16_C( 26754),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
      -INT16_C( 26278), -INT16_C( 25496),  INT16_C( 17024), -INT16_C( 16378),  INT16_C(     0), -INT16_C( 32668),  INT16_C(    80),  INT16_C(     0),
       INT16_C(     0), -INT16_C( 23544),  INT16_C(     0),  INT16_C( 19476),  INT16_C(   512),  INT16_C(     5),  INT16_C(    24),  INT16_C(     0),
      -INT16_C( 27991),  INT16_C(  8468),  INT16_C(   252), -INT16_C( 32728),  INT16_C(     0), -INT16_C( 27838),  INT16_C( 12290),  INT16_C( 13314),
       INT16_C(     0), -INT16_C( 15855),  INT16_C( 10245),  INT16_C(    16), -INT16_C( 32640),  INT16_C(     0),  INT16_C(     0),  INT16_C(   512),
       INT16_C(  2052),  INT16_C(   132),  INT16_C(  8960),  INT16_C(  2176),  INT16_C(     0),  INT16_C(  2179),  INT16_C(     0),  INT16_C(    12),
       INT16_C(     0),  INT16_C(  2096),  INT16_C(     0), -INT16_C( 26492),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 32507),
       INT16_C(     3),  INT16_C(    38),  INT16_C( 24784),  INT16_C(    32),  INT16_C(     0),  INT16_C(     0),  INT16_C( 25186),  INT16_C(     0),
       INT16_C( 19217),  INT16_C(     0), -INT16_C( 32640),  INT16_C(  1202), -INT16_C( 28344),  INT16_C(     0),  INT16_C(  8720),  INT16_C(  4170),
       INT16_C(     0),  INT16_C(   144),  INT16_C(     0),  INT16_C(    24),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(  6170),  INT16_C(     0),  INT16_C(  1327),  INT16_C( 16387),  INT16_C(   806),  INT16_C(     0),  INT16_C(     0),
      -INT16_C( 24350),  INT16_C(     0),  INT16_C(     0),  INT16_C( 26633),  INT16_C( 24784), -INT16_C( 32157),  INT16_C(     0),  INT16_C( 18432),
       INT16_C(     0), -INT16_C( 12064),  INT16_C(     0),  INT16_C( 18756), -INT16_C( 30272),  INT16_C( 18080),  INT16_C(     0), -INT16_C( 31213),
       INT16_C(     0),  INT16_C(     0),  INT16_C( 16388),  INT16_C(  5636),  INT16_C(     0),  INT16_C(  4496),  INT16_C(     0),  INT16_C( 21585),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 24662),  INT16_C(     0),  INT16_C(     0),  INT16_C(  1048),  INT16_C( 10808),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(   512),  INT16_C(     0),  INT16_C(  9866),  INT16_C(  8468),  INT16_C( 17410),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 17410),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 29436),
       INT16_C(     0),  INT16_C(     0),  INT16_C(   180),  INT16_C(   535),  INT16_C(   621),  INT16_C(     0),  INT16_C(  2560),  INT16_C(     0),
       INT16_C(     0), -INT16_C( 24862),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(  4417),  INT16_C(   433),  INT16_C(   136),  INT16_C(  5130),  INT16_C(     0),  INT16_C(     0), -INT16_C( 30314),  INT16_C(  2048),
       INT16_C( 12448),  INT16_C(   262),  INT16_C( 27520),  INT16_C(     0),       INT16_MIN,  INT16_C(     0),  INT16_C(     0), -INT16_C( 32246),
       INT16_C(     0),  INT16_C(   120),  INT16_C(  2052),  INT16_C(   904),  INT16_C(  4356),  INT16_C(     0), -INT16_C( 31718),  INT16_C(     0),
       INT16_C(  2305), -INT16_C( 30399),  INT16_C(     0),  INT16_C( 17920),  INT16_C( 16417),  INT16_C(  2560),  INT16_C( 22529),  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( 16121),  INT16_C(  8320),  INT16_C(  8232),  INT16_C( 10624),  INT16_C(     0),
       INT16_C( 12320),  INT16_C(     0),  INT16_C(     0), -INT16_C(  6911),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 16977),
       INT16_C(  8976),  INT16_C(     0), -INT16_C( 24440),  INT16_C(  2624), -INT16_C( 32572),  INT16_C(     0),  INT16_C(  5122),  INT16_C(     0),
       INT16_C(     0),  INT16_C(  2084),  INT16_C(     0),  INT16_C( 18584),  INT16_C(   520), -INT16_C( 24492),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(  4736),  INT16_C(     0),  INT16_C(   177),  INT16_C(     0),  INT16_C( 17924),  INT16_C(     0),
       INT16_C(  2598),  INT16_C(     0),  INT16_C( 18560),  INT16_C(     0),  INT16_C(  2689),  INT16_C(     0),  INT16_C(   832),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  1152),  INT16_C( 28808),  INT16_C(     0),  INT16_C( 17970),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 20737),  INT16_C( 17448),  INT16_C(     0), -INT16_C( 23542),  INT16_C(     0),
       INT16_C(     0),  INT16_C( 25601),  INT16_C(     0),  INT16_C(     0),  INT16_C( 12288),  INT16_C( 29184),  INT16_C(  2233),  INT16_C(  2112),
       INT16_C(     0),  INT16_C(     0),  INT16_C(  9728),  INT16_C( 19586), -INT16_C( 32758),  INT16_C(     0), -INT16_C( 32224),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 32228),  INT16_C(  2592),  INT16_C( 24760),  INT16_C(  5845),  INT16_C(     0),
      -INT16_C( 28408), -INT16_C( 32749), -INT16_C( 19430),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(   401),  INT16_C( 18435),
       INT16_C(     0), -INT16_C( 14551),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  2176),  INT16_C(  1606),  INT16_C(     0),
       INT16_C(  2569),  INT16_C( 16928),  INT16_C(     0),  INT16_C( 24581),  INT16_C(  4100),  INT16_C(     0),  INT16_C(  8211),  INT16_C(     0),
       INT16_C(  4468),  INT16_C(   256), -INT16_C( 23420),  INT16_C(     0),  INT16_C(     0),  INT16_C(  1152),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(  6008), -INT16_C( 31069),  INT16_C( 23015),  INT16_C(     0),  INT16_C(   128), -INT16_C( 20415),  INT16_C(     0),
       INT16_C(     0),  INT16_C(  4404),  INT16_C(     0),  INT16_C(  1161),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(  4258), -INT16_C( 32352),  INT16_C(  4238),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 15486),
      -INT16_C( 29680),  INT16_C(    64),  INT16_C( 16388), -INT16_C( 32255),  INT16_C(     0),  INT16_C(     0),  INT16_C( 12296),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0), -INT16_C( 16335),  INT16_C(     0),  INT16_C(     2),  INT16_C(     0), -INT16_C( 26109),  INT16_C(     0),
       INT16_C(     0), -INT16_C( 32766),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C( 28993),  INT16_C( 26945),  INT16_C( 18053),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0), -INT16_C( 31488),  INT16_C( 11632),  INT16_C(     0),  INT16_C( 28684),  INT16_C( 10880),  INT16_C(  2434),  INT16_C(     0),
       INT16_C(     0),  INT16_C( 29760),  INT16_C( 18865),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  2080), -INT16_C( 24544),
       INT16_C(     0),  INT16_C( 21505),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0), -INT16_C( 29679),  INT16_C( 22848),  INT16_C(  1280),
       INT16_C(     0),  INT16_C(     3), -INT16_C( 32596),  INT16_C( 25682),  INT16_C(     0), -INT16_C( 31568),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(  8309),  INT16_C(     0),  INT16_C(   512),  INT16_C(   557),  INT16_C(     0),  INT16_C(     0),
       INT16_C( 20641),  INT16_C(   264),  INT16_C( 16792),  INT16_C(  3584),  INT16_C(  4792),  INT16_C( 16418),  INT16_C(     0),  INT16_C(  1093),
       INT16_C(  8402),  INT16_C( 17026),  INT16_C(     0),  INT16_C( 10627),  INT16_C(     0), -INT16_C( 15800),  INT16_C(  1610),  INT16_C(  8965),
       INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C(  5186),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),  INT16_C( 18957),
      -INT16_C( 32625),  INT16_C(     0),  INT16_C(    29), -INT16_C( 25536),  INT16_C(  1409),  INT16_C(     0), -INT16_C( 32349),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0),  INT16_C(  3776), -INT16_C( 32479),  INT16_C(     0), -INT16_C( 26416),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0), -INT16_C( 32764),  INT16_C(     0),  INT16_C(     0),  INT16_C(  4338),  INT16_C(     0), -INT16_C( 16208), -INT16_C( 29660),
       INT16_C(  6017), -INT16_C( 32766),  INT16_C(     0),  INT16_C(     0),  INT16_C( 25696),  INT16_C(     0),  INT16_C(     0),  INT16_C(     0),
       INT16_C(     0),  INT16_C(     0), -INT16_C( 31584),  INT16_C(     0), -INT16_C( 18767),  INT16_C(     0),  INT16_C(     0),  INT16_C( 16648),
       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_svint16_t
      rv,
      av = simde_svld1_s16(pg, &(a[i])),
      bv = simde_svld1_s16(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(INT16_C(0)));
    rv = simde_svand_s16_z(pv, av, bv);

    simde_svst1_s16(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s16_z(pv, av, bv);

    simde_svst1_s16(pg, &(e[i]), ev);
    simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~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_svand_s16_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int16_t p[] =
    { -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(     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(     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),
      -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(     0),  INT16_C(     0),  INT16_C(     0), -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(     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(     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(     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(     1),  INT16_C(     0), -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(     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(     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(     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(     1),  INT16_C(     0), -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(     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(     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(     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(     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(     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(     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(     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(     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(     1),  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(     1), -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(     1), -INT16_C(     1), -INT16_C(     1), -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(     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(     1), -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(     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(     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(     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(     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(     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(     1),
      -INT16_C(     1), -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(     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(     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(     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(     1),  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(     1),  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(     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(     0), -INT16_C(     1),  INT16_C(     0), -INT16_C(     1) };
  static const int16_t a[] =
    {  INT16_C( 28645), -INT16_C( 29907),  INT16_C( 10953),  INT16_C( 26254), -INT16_C( 15667),  INT16_C( 15755),  INT16_C( 12450),  INT16_C( 21144),
      -INT16_C(  2468),  INT16_C( 31196), -INT16_C(  7477),  INT16_C( 21434),  INT16_C( 23780),  INT16_C(  3964), -INT16_C(  8975), -INT16_C( 10733),
       INT16_C( 16459),  INT16_C(  5218), -INT16_C(  3989),  INT16_C( 14458),  INT16_C(  1459),  INT16_C( 21877),  INT16_C(  3381), -INT16_C( 27993),
      -INT16_C( 31997), -INT16_C( 12533), -INT16_C( 15003),  INT16_C( 18722), -INT16_C( 25055),  INT16_C(  4697),  INT16_C( 27770), -INT16_C( 14871),
       INT16_C( 19372),  INT16_C(  6105),  INT16_C( 21307), -INT16_C(  4529), -INT16_C( 15271), -INT16_C( 29116), -INT16_C(  5167), -INT16_C( 10976),
       INT16_C( 11119), -INT16_C( 11100), -INT16_C( 14608),  INT16_C(  4382),  INT16_C( 30565), -INT16_C(  8412),  INT16_C(  3555), -INT16_C( 28763),
       INT16_C( 32344), -INT16_C( 27737), -INT16_C(  2350),  INT16_C( 11138), -INT16_C( 14661), -INT16_C( 29511), -INT16_C(  9551),  INT16_C(  8289),
       INT16_C(  1285), -INT16_C(  2315),  INT16_C(  5068),  INT16_C( 12551),  INT16_C( 11146),  INT16_C( 27920), -INT16_C( 19144), -INT16_C( 28420),
      -INT16_C( 23756),  INT16_C(  1572), -INT16_C( 22886),  INT16_C( 21809), -INT16_C(  5524),  INT16_C(  7649),  INT16_C( 17348), -INT16_C( 13762),
       INT16_C( 13128),  INT16_C(  5312), -INT16_C( 14522), -INT16_C( 12219),  INT16_C( 22259),  INT16_C( 11069),  INT16_C( 14603),  INT16_C( 16316),
      -INT16_C(  7971),  INT16_C( 30533),  INT16_C( 30342), -INT16_C(  3380), -INT16_C( 21151),  INT16_C(  9487),  INT16_C( 19952),  INT16_C( 14831),
      -INT16_C( 20608), -INT16_C( 14771), -INT16_C( 27785),  INT16_C( 27286), -INT16_C( 11287), -INT16_C(  2923),  INT16_C( 20749), -INT16_C(  5580),
       INT16_C( 31025), -INT16_C( 18591),  INT16_C( 11760),  INT16_C( 20905), -INT16_C( 17958), -INT16_C( 13450),  INT16_C( 26118), -INT16_C( 30972),
       INT16_C( 20757), -INT16_C( 29619), -INT16_C(  6940), -INT16_C( 12810), -INT16_C( 29513), -INT16_C( 15166), -INT16_C(  2339),  INT16_C(  4014),
       INT16_C(  3951),  INT16_C( 24518),  INT16_C( 28732),  INT16_C(  6064),  INT16_C( 10025),  INT16_C( 12258), -INT16_C(  6515), -INT16_C( 23882),
       INT16_C(  1079),  INT16_C(  7215),  INT16_C(  9704), -INT16_C( 24599), -INT16_C( 21583), -INT16_C( 28828),  INT16_C(  4769),  INT16_C(  4510),
       INT16_C( 25634),  INT16_C( 24176),  INT16_C(  8660), -INT16_C(   651),  INT16_C( 22344), -INT16_C( 10963), -INT16_C(  7363),  INT16_C( 30071),
      -INT16_C( 22809), -INT16_C( 12399),  INT16_C( 31436),  INT16_C( 32111), -INT16_C( 11482), -INT16_C( 14580), -INT16_C( 21787),  INT16_C(  2008),
       INT16_C( 18703), -INT16_C(  7322), -INT16_C(  9366), -INT16_C( 19743),  INT16_C(  3635),  INT16_C( 28807), -INT16_C(   271), -INT16_C(  9755),
       INT16_C( 30373),  INT16_C( 29096),  INT16_C(  6129),  INT16_C(  6126), -INT16_C(  1046), -INT16_C( 12066), -INT16_C( 18523), -INT16_C( 19241),
       INT16_C( 15616),  INT16_C( 27288),  INT16_C( 31001),  INT16_C( 19484), -INT16_C( 23673),  INT16_C( 30908), -INT16_C( 23903),  INT16_C( 18001),
      -INT16_C(  1512),  INT16_C(  2487), -INT16_C( 23023), -INT16_C(   992), -INT16_C(    95),  INT16_C( 18124), -INT16_C( 23626), -INT16_C( 18693),
      -INT16_C( 27679), -INT16_C(  1504),  INT16_C( 15372), -INT16_C( 27834),  INT16_C(   735), -INT16_C( 32757),  INT16_C( 23972), -INT16_C( 16953),
       INT16_C( 32343),  INT16_C( 26822), -INT16_C(  6364), -INT16_C( 15004),  INT16_C( 12518), -INT16_C( 25588),  INT16_C(  2004), -INT16_C( 19118),
       INT16_C( 29338), -INT16_C( 22865), -INT16_C(  2642), -INT16_C( 29383),  INT16_C( 17655), -INT16_C( 25587), -INT16_C( 11103), -INT16_C(  1959),
       INT16_C(  8019),  INT16_C( 30561), -INT16_C( 15098), -INT16_C(  5059),  INT16_C( 18934), -INT16_C( 13688), -INT16_C(  9648), -INT16_C(  5505),
       INT16_C( 11852), -INT16_C(  1392), -INT16_C( 14045),  INT16_C(  6791), -INT16_C( 27379), -INT16_C( 20554),  INT16_C(  3945), -INT16_C( 17241),
       INT16_C(  2095),  INT16_C( 13620),  INT16_C( 29134), -INT16_C( 15326), -INT16_C( 21830),  INT16_C(  2702),  INT16_C(  3461), -INT16_C( 11788),
      -INT16_C( 31685),  INT16_C( 24268),  INT16_C( 21325),  INT16_C( 23160),  INT16_C( 12264),  INT16_C( 21001), -INT16_C( 20162),  INT16_C( 27918),
       INT16_C( 17081), -INT16_C( 30813), -INT16_C( 14925),  INT16_C( 27979), -INT16_C(  9873), -INT16_C(  2953),  INT16_C( 27622),  INT16_C(  8646),
      -INT16_C( 27921),  INT16_C( 15487), -INT16_C(  1819), -INT16_C( 12649), -INT16_C( 24537),  INT16_C( 25888),  INT16_C( 11857),  INT16_C(  3027),
       INT16_C( 30321),  INT16_C(  9362), -INT16_C(  8645), -INT16_C( 21870),  INT16_C(  2487), -INT16_C( 24929),  INT16_C( 25973),  INT16_C( 25791),
       INT16_C( 16375), -INT16_C(  9055),  INT16_C( 14391),  INT16_C( 24234), -INT16_C( 13608),  INT16_C( 10947), -INT16_C( 26887),  INT16_C( 27189),
      -INT16_C( 14580),  INT16_C( 18318),  INT16_C(  8357),  INT16_C( 24050), -INT16_C( 28374), -INT16_C( 24581), -INT16_C( 17674), -INT16_C(  4861),
      -INT16_C( 23303),  INT16_C( 12489),  INT16_C( 29916), -INT16_C( 19058),  INT16_C( 21054),  INT16_C( 14303),  INT16_C(  5352), -INT16_C(  2655),
       INT16_C( 12507), -INT16_C( 32452),  INT16_C( 11856),  INT16_C( 31454), -INT16_C(  9793), -INT16_C( 19175),  INT16_C(  7571), -INT16_C( 29278),
       INT16_C( 27841), -INT16_C( 24899),  INT16_C( 19680),  INT16_C(  7763),  INT16_C( 12958), -INT16_C( 31146), -INT16_C(  2234),  INT16_C(  8571),
      -INT16_C( 18393),  INT16_C( 30882), -INT16_C( 32538), -INT16_C( 22798),  INT16_C(  3161), -INT16_C(  4773), -INT16_C(   471), -INT16_C(  5510),
       INT16_C( 14186),  INT16_C( 19080), -INT16_C(  9341),  INT16_C(  8552), -INT16_C( 16883),  INT16_C( 21416),  INT16_C(  9142), -INT16_C(  8843),
       INT16_C(  6107), -INT16_C( 15787),  INT16_C( 18584), -INT16_C(  3736), -INT16_C( 15532),  INT16_C( 32222),  INT16_C( 22721),  INT16_C( 11111),
      -INT16_C(  3952),  INT16_C(  4981), -INT16_C(  8501), -INT16_C(  9931), -INT16_C(  8804),  INT16_C( 21036), -INT16_C( 24320), -INT16_C(  9168),
      -INT16_C( 31303),  INT16_C( 20894),  INT16_C(  1741),  INT16_C(  8514),  INT16_C(  8649), -INT16_C( 29794),  INT16_C(  1657),  INT16_C(  2486),
       INT16_C( 11510), -INT16_C( 16099),  INT16_C( 21002), -INT16_C( 22886), -INT16_C( 14545),  INT16_C( 12281),  INT16_C( 10600),  INT16_C(  8459),
      -INT16_C( 22098),  INT16_C( 31858), -INT16_C( 19025),  INT16_C( 31133),  INT16_C( 15574),  INT16_C( 20228), -INT16_C( 17854),  INT16_C( 14425),
       INT16_C( 30438), -INT16_C(  3847), -INT16_C( 27448), -INT16_C(  2153), -INT16_C( 28581), -INT16_C( 15578),  INT16_C( 12985),  INT16_C( 26597),
       INT16_C( 22491), -INT16_C( 29725), -INT16_C( 32500), -INT16_C(  7676),  INT16_C(  2237), -INT16_C(   206), -INT16_C( 29758), -INT16_C( 22217),
       INT16_C( 12289), -INT16_C( 13927),  INT16_C( 12484),  INT16_C(  8128), -INT16_C(  6464),  INT16_C( 31203), -INT16_C( 14312), -INT16_C(  2847),
      -INT16_C( 15329),  INT16_C( 11391), -INT16_C( 31931),  INT16_C(   526),  INT16_C( 16523),  INT16_C( 19713),  INT16_C( 14539), -INT16_C( 13066),
      -INT16_C( 28567),  INT16_C( 11669),  INT16_C( 21952), -INT16_C( 32435),  INT16_C( 12348),  INT16_C( 21754), -INT16_C(  9224),  INT16_C(  5960),
      -INT16_C( 14432), -INT16_C(  6845),  INT16_C( 21066), -INT16_C( 10776) };
  static const int16_t b[] =
    {  INT16_C(  2086), -INT16_C( 13873), -INT16_C( 23959),  INT16_C(  2461),  INT16_C(  1967), -INT16_C( 17131),  INT16_C( 31057), -INT16_C( 31288),
      -INT16_C( 27762), -INT16_C( 30599),  INT16_C( 10524), -INT16_C( 18520), -INT16_C( 11759), -INT16_C( 19389),  INT16_C(  4462), -INT16_C( 27292),
       INT16_C( 13081), -INT16_C( 32162), -INT16_C(   810), -INT16_C( 31348), -INT16_C( 24317),  INT16_C( 21570),  INT16_C(  2587), -INT16_C( 22055),
       INT16_C( 21149), -INT16_C( 18127), -INT16_C(  9860), -INT16_C( 29328), -INT16_C( 19284),  INT16_C(  6721), -INT16_C( 22843), -INT16_C(  8529),
       INT16_C(  3801), -INT16_C( 20639), -INT16_C(  4854),  INT16_C(  3380),  INT16_C( 30350), -INT16_C( 22175),  INT16_C( 14976),  INT16_C(  7506),
      -INT16_C( 31604),  INT16_C(  2263),  INT16_C( 18269),  INT16_C(  2453), -INT16_C( 10245), -INT16_C( 16348), -INT16_C( 11395),  INT16_C( 22175),
       INT16_C(   225), -INT16_C(  5370),  INT16_C( 15085),  INT16_C( 31736),  INT16_C( 22961),  INT16_C( 12581),  INT16_C( 30611),  INT16_C(  8271),
       INT16_C(  9979),  INT16_C( 22824), -INT16_C( 16787),  INT16_C( 26978), -INT16_C( 31083),  INT16_C(  4649), -INT16_C( 14246),  INT16_C( 15208),
       INT16_C( 28360), -INT16_C( 19161),  INT16_C(  8105),  INT16_C( 23089),  INT16_C( 22137),  INT16_C(  3211), -INT16_C(  9523), -INT16_C( 14036),
       INT16_C( 21760),  INT16_C( 28194), -INT16_C( 31725), -INT16_C( 22313),  INT16_C(    11),  INT16_C( 26042),  INT16_C(  8905), -INT16_C( 28256),
      -INT16_C( 14447),  INT16_C( 14919),  INT16_C( 30951),  INT16_C( 24724),  INT16_C(  8142), -INT16_C( 25748), -INT16_C( 26118), -INT16_C(  1436),
      -INT16_C( 30994),  INT16_C(   360),  INT16_C( 16139),  INT16_C(  5801),  INT16_C( 25408),  INT16_C(  2427),  INT16_C(  7045),  INT16_C(  5786),
      -INT16_C(  7709), -INT16_C( 13744), -INT16_C(  7079),  INT16_C( 10026), -INT16_C( 27132), -INT16_C(   317),  INT16_C( 10031),  INT16_C(  7672),
       INT16_C( 25006), -INT16_C( 18146), -INT16_C( 14432), -INT16_C(  7985),  INT16_C( 18986), -INT16_C( 20247), -INT16_C( 31643),  INT16_C( 18630),
       INT16_C(  5989), -INT16_C( 16622),  INT16_C( 15611), -INT16_C(    26), -INT16_C( 22061),  INT16_C(   765), -INT16_C(  2351),  INT16_C( 32544),
       INT16_C( 15959), -INT16_C(  2248),  INT16_C(  1798),  INT16_C( 12504), -INT16_C( 16047), -INT16_C( 18720), -INT16_C( 22715), -INT16_C( 21505),
       INT16_C(  4542), -INT16_C( 18070),  INT16_C( 20558),  INT16_C(  8633), -INT16_C( 18694), -INT16_C( 13533),  INT16_C( 17324),  INT16_C(   842),
      -INT16_C( 32126), -INT16_C( 30469), -INT16_C( 11383), -INT16_C(  9544), -INT16_C( 26220), -INT16_C(  9584), -INT16_C( 28864), -INT16_C(   379),
      -INT16_C(  4191), -INT16_C(  4169),  INT16_C( 28735),  INT16_C( 14608),  INT16_C( 13095), -INT16_C( 11516),  INT16_C( 20087), -INT16_C(  1577),
      -INT16_C( 11568),  INT16_C( 22913),  INT16_C( 14757),  INT16_C( 14643), -INT16_C( 15150),  INT16_C(  4627), -INT16_C( 26541), -INT16_C(  3056),
      -INT16_C( 14201), -INT16_C( 14365), -INT16_C(  3272),  INT16_C( 24320),  INT16_C(  1319), -INT16_C( 25037),  INT16_C(  2643),  INT16_C(  9367),
       INT16_C(  6364), -INT16_C( 32387), -INT16_C( 20143),  INT16_C(  9402), -INT16_C( 12683), -INT16_C( 14282),  INT16_C( 18278), -INT16_C(  4419),
      -INT16_C( 24561),  INT16_C( 18357), -INT16_C( 19052), -INT16_C( 17497), -INT16_C(  9542),  INT16_C(  3673), -INT16_C(  3868), -INT16_C( 16334),
      -INT16_C( 20728),  INT16_C( 22849), -INT16_C(  1184), -INT16_C( 10883), -INT16_C( 19255),  INT16_C( 12446),  INT16_C( 23547),  INT16_C(  2590),
      -INT16_C( 11269), -INT16_C( 28847), -INT16_C(  1912),  INT16_C( 17226), -INT16_C( 23598), -INT16_C( 18863), -INT16_C( 31853), -INT16_C( 25738),
      -INT16_C( 18638), -INT16_C( 27659),  INT16_C( 29363),  INT16_C( 31848),  INT16_C(  1574),  INT16_C(  8620), -INT16_C( 13727),  INT16_C( 23851),
       INT16_C( 32157),  INT16_C(  9964),  INT16_C( 14197),  INT16_C( 18537), -INT16_C( 17702),  INT16_C( 28414),  INT16_C( 30013),  INT16_C( 28425),
      -INT16_C(   468), -INT16_C(  8446),  INT16_C( 27505), -INT16_C( 26788),  INT16_C(  2161), -INT16_C( 11335), -INT16_C(  6957),  INT16_C( 28720),
       INT16_C(  7265), -INT16_C( 10346), -INT16_C(   173),  INT16_C( 11807),  INT16_C(  7609), -INT16_C(  2404), -INT16_C( 23150), -INT16_C( 16538),
       INT16_C( 26788),  INT16_C(  5534), -INT16_C(  1325),  INT16_C( 17836),  INT16_C( 25859), -INT16_C( 10728),  INT16_C( 18506), -INT16_C( 21690),
      -INT16_C(  8860), -INT16_C( 18302), -INT16_C( 24100), -INT16_C( 26906), -INT16_C( 32065),  INT16_C( 20876), -INT16_C(  3545), -INT16_C( 13552),
      -INT16_C( 20645),  INT16_C( 12000), -INT16_C( 29271), -INT16_C( 21389), -INT16_C( 29710),  INT16_C( 15490), -INT16_C( 13869),  INT16_C( 14568),
       INT16_C( 27302), -INT16_C( 32016), -INT16_C( 10740), -INT16_C( 13544), -INT16_C( 23208),  INT16_C( 32540),  INT16_C( 11671), -INT16_C(  3509),
       INT16_C( 11228), -INT16_C( 31455), -INT16_C( 27464), -INT16_C( 21710), -INT16_C( 19424), -INT16_C(  3097), -INT16_C( 12419),  INT16_C(  9003),
       INT16_C(  6970),  INT16_C( 18086), -INT16_C( 16655),  INT16_C( 18705),  INT16_C( 11619), -INT16_C(  1079),  INT16_C(  5210),  INT16_C( 14061),
       INT16_C(  3647), -INT16_C(  1860), -INT16_C(  4445), -INT16_C( 15453), -INT16_C( 30046),  INT16_C(  8374), -INT16_C(  7590), -INT16_C( 27581),
      -INT16_C(  5635), -INT16_C(  4134), -INT16_C(  5208),  INT16_C(  2872),  INT16_C(   280),  INT16_C( 29446), -INT16_C(  3051),  INT16_C( 21929),
       INT16_C( 25858), -INT16_C( 23219), -INT16_C(  4013), -INT16_C(  2456),  INT16_C(  8058), -INT16_C( 11242),  INT16_C( 22785), -INT16_C(   408),
       INT16_C( 16963), -INT16_C(  5139),  INT16_C(  9773),  INT16_C( 18166), -INT16_C(   729),  INT16_C( 15801),  INT16_C( 25329), -INT16_C(  3182),
      -INT16_C(  8248),  INT16_C(  7065),  INT16_C(   463),  INT16_C( 18705),  INT16_C( 10016),  INT16_C(  8478), -INT16_C( 31103), -INT16_C( 15328),
       INT16_C(  3529), -INT16_C(  2385), -INT16_C( 23245),  INT16_C( 23356), -INT16_C(  2654), -INT16_C( 27752),  INT16_C( 10840),  INT16_C(  8327),
       INT16_C(  8201), -INT16_C( 10181),  INT16_C( 19745),  INT16_C( 16929),  INT16_C( 16244), -INT16_C(  2717), -INT16_C( 31802), -INT16_C( 28743),
       INT16_C( 26769), -INT16_C( 15227), -INT16_C( 15858), -INT16_C( 20449), -INT16_C( 18505),  INT16_C(  3908), -INT16_C( 13343), -INT16_C(  5585),
       INT16_C( 27627),  INT16_C(  3266), -INT16_C(  6984),  INT16_C( 11342), -INT16_C( 19933), -INT16_C(  5854), -INT16_C(  9419), -INT16_C( 14728),
      -INT16_C(   444),  INT16_C( 21131), -INT16_C( 21824),  INT16_C( 30466),  INT16_C( 18018),  INT16_C( 17287), -INT16_C( 18927), -INT16_C(   978),
      -INT16_C(  4063), -INT16_C(  9975),  INT16_C( 22484), -INT16_C(  2042),  INT16_C( 10249),  INT16_C( 16353),  INT16_C( 23043),  INT16_C( 18181),
      -INT16_C( 28584),  INT16_C(  6297), -INT16_C( 25541), -INT16_C( 25201),  INT16_C(  5858), -INT16_C(  2848),  INT16_C(  3789), -INT16_C(  4368),
      -INT16_C(  1537), -INT16_C( 11320), -INT16_C( 12719),  INT16_C( 23243), -INT16_C( 21002), -INT16_C(  1639), -INT16_C( 24825),  INT16_C( 24385),
      -INT16_C(  9681),  INT16_C( 27255),  INT16_C(  1654),  INT16_C( 22791), -INT16_C(  6115), -INT16_C(  5555),  INT16_C( 15862), -INT16_C(  2600),
      -INT16_C( 24521), -INT16_C( 30519), -INT16_C( 27538),  INT16_C( 25826) };
  static const int16_t e[] =
    {  INT16_C(  2084), -INT16_C( 30451),  INT16_C(  8777),  INT16_C( 26254), -INT16_C( 15667),  INT16_C( 15755),  INT16_C( 12450),  INT16_C(   136),
      -INT16_C(  2468),  INT16_C( 31196), -INT16_C(  7477),  INT16_C( 21434),  INT16_C( 20480),  INT16_C(  3964),  INT16_C(  4192), -INT16_C( 10733),
       INT16_C( 16459),  INT16_C(    66), -INT16_C(  4030),  INT16_C(     8),  INT16_C(  1459),  INT16_C( 21877),  INT16_C(  2065), -INT16_C( 32639),
      -INT16_C( 31997), -INT16_C( 30463), -INT16_C( 16028),  INT16_C(  2336), -INT16_C( 25055),  INT16_C(  4697),  INT16_C(  9280), -INT16_C( 15191),
       INT16_C(  2696),  INT16_C(  1857),  INT16_C( 21307),  INT16_C(  3076),  INT16_C( 17416), -INT16_C( 30656), -INT16_C(  5167), -INT16_C( 10976),
       INT16_C( 11119),  INT16_C(   132), -INT16_C( 14608),  INT16_C(  4382),  INT16_C( 30565), -INT16_C( 16348),  INT16_C(   353),  INT16_C(  1669),
       INT16_C(    64), -INT16_C( 31994), -INT16_C(  2350),  INT16_C( 11136), -INT16_C( 14661),  INT16_C(    33),  INT16_C( 21137),  INT16_C(  8289),
       INT16_C(  1285),  INT16_C( 20512),  INT16_C(  4684),  INT16_C( 12551),  INT16_C( 11146),  INT16_C(     0), -INT16_C( 32744), -INT16_C( 28420),
      -INT16_C( 23756),  INT16_C(  1060),  INT16_C(  1672),  INT16_C( 20529),  INT16_C( 17000),  INT16_C(  7649),  INT16_C( 17092), -INT16_C( 13762),
       INT16_C(  4352),  INT16_C(  1024), -INT16_C( 14522), -INT16_C( 12219),  INT16_C( 22259),  INT16_C( 11069),  INT16_C( 14603),  INT16_C( 16316),
      -INT16_C( 16239),  INT16_C( 30533),  INT16_C( 30342),  INT16_C( 24708), -INT16_C( 21151),  INT16_C(   268),  INT16_C(  2544),  INT16_C( 14436),
      -INT16_C( 20608),  INT16_C(    72),  INT16_C(  4867),  INT16_C(   640),  INT16_C( 17216),  INT16_C(    17),  INT16_C(  4357),  INT16_C(   528),
       INT16_C( 31025), -INT16_C( 18591),  INT16_C( 11760),  INT16_C( 20905), -INT16_C( 28672), -INT16_C( 13450),  INT16_C(  9734),  INT16_C(  1280),
       INT16_C( 16644), -INT16_C( 30708), -INT16_C(  6940), -INT16_C( 12810), -INT16_C( 29513), -INT16_C( 32576), -INT16_C(  2339),  INT16_C(  4014),
       INT16_C(  3951),  INT16_C(  7938),  INT16_C( 28732),  INT16_C(  6064),  INT16_C( 10025),  INT16_C( 12258), -INT16_C(  6515), -INT16_C( 23882),
       INT16_C(  1047),  INT16_C(  7215),  INT16_C(  9704), -INT16_C( 24599), -INT16_C( 32495), -INT16_C( 31136),  INT16_C(  4769),  INT16_C(   414),
       INT16_C(    34),  INT16_C(  6240),  INT16_C(  8660),  INT16_C(  8497),  INT16_C(  5704), -INT16_C( 16095), -INT16_C(  7363),  INT16_C( 30071),
      -INT16_C( 32126), -INT16_C( 30575),  INT16_C( 31436),  INT16_C( 22568), -INT16_C( 28412), -INT16_C( 15872), -INT16_C( 21787),  INT16_C(  2008),
       INT16_C( 18689), -INT16_C(  7322),  INT16_C( 20522), -INT16_C( 19743),  INT16_C(  3635),  INT16_C( 28807),  INT16_C( 20081), -INT16_C(  9787),
       INT16_C( 21120),  INT16_C( 29096),  INT16_C(  4513),  INT16_C(  4386), -INT16_C(  1046),  INT16_C(  4114), -INT16_C( 28671), -INT16_C( 19241),
       INT16_C(  2048),  INT16_C( 27288),  INT16_C( 28952),  INT16_C( 19484),  INT16_C(   263),  INT16_C(  6192), -INT16_C( 23903),  INT16_C(  1041),
      -INT16_C(  1512),  INT16_C(  2487), -INT16_C( 24559), -INT16_C(   992), -INT16_C( 12767),  INT16_C( 18124), -INT16_C( 23626), -INT16_C( 22855),
      -INT16_C( 32767),  INT16_C( 16928),  INT16_C( 15372), -INT16_C( 27898),  INT16_C(   735),  INT16_C(     9),  INT16_C( 23972), -INT16_C( 16953),
       INT16_C( 32343),  INT16_C( 18496), -INT16_C(  6364), -INT16_C( 15004),  INT16_C( 12480),  INT16_C(  4108),  INT16_C(  2004), -INT16_C( 19118),
       INT16_C( 29338), -INT16_C( 22865), -INT16_C(  3960), -INT16_C( 29383),  INT16_C(   210), -INT16_C( 27647), -INT16_C( 11103), -INT16_C(  1959),
       INT16_C(  5906),  INT16_C(  4961),  INT16_C( 16386),  INT16_C( 27688),  INT16_C(    38),  INT16_C(   136), -INT16_C( 13760),  INT16_C( 18475),
       INT16_C( 11852), -INT16_C(  1392), -INT16_C( 14045),  INT16_C(  6791), -INT16_C( 27379), -INT16_C( 20554),  INT16_C(  3945), -INT16_C( 17241),
       INT16_C(  2095),  INT16_C(  5376),  INT16_C( 24896), -INT16_C( 15326),  INT16_C(  2096),  INT16_C(  2702),  INT16_C(  3461),  INT16_C( 20528),
       INT16_C(  1057),  INT16_C( 24268),  INT16_C( 21325),  INT16_C( 23160),  INT16_C(  3496),  INT16_C( 21000), -INT16_C( 24302),  INT16_C( 27918),
       INT16_C( 16544), -INT16_C( 30813), -INT16_C( 14925),  INT16_C( 17672), -INT16_C(  9873), -INT16_C( 11248),  INT16_C( 18498),  INT16_C(  8646),
      -INT16_C( 27921),  INT16_C( 14338), -INT16_C(  1819), -INT16_C( 31098), -INT16_C( 32729),  INT16_C( 16640),  INT16_C(  8705),  INT16_C(  3027),
       INT16_C( 30321),  INT16_C(  9344), -INT16_C( 29655), -INT16_C( 22510),  INT16_C(  2487),  INT16_C(  7298),  INT16_C( 25973),  INT16_C(  8360),
       INT16_C( 16375), -INT16_C( 32608),  INT16_C(  4100),  INT16_C( 24234), -INT16_C( 32680),  INT16_C( 10752), -INT16_C( 26887),  INT16_C( 25089),
      -INT16_C( 14580),  INT16_C( 18318),  INT16_C(   160),  INT16_C(  2354), -INT16_C( 28640), -INT16_C( 24581), -INT16_C( 17674), -INT16_C(  4861),
       INT16_C(    56),  INT16_C( 12489),  INT16_C( 13520),  INT16_C(   256),  INT16_C( 21054),  INT16_C( 13257),  INT16_C(  5192), -INT16_C(  2655),
       INT16_C(    27), -INT16_C( 32708),  INT16_C( 11776),  INT16_C( 17026), -INT16_C( 30558), -INT16_C( 19175),  INT16_C(  7571), -INT16_C( 31742),
       INT16_C( 26817), -INT16_C( 24899),  INT16_C( 18592),  INT16_C(  2576),  INT16_C(    24), -INT16_C( 31146), -INT16_C(  3068),  INT16_C(  8571),
      -INT16_C( 18393),  INT16_C( 30882), -INT16_C( 32538), -INT16_C( 22798),  INT16_C(  3160), -INT16_C(  4773), -INT16_C(   471), -INT16_C(  5510),
       INT16_C( 14186),  INT16_C( 19080), -INT16_C(  9341),  INT16_C(    96), -INT16_C( 17403),  INT16_C( 21416),  INT16_C(  9142), -INT16_C( 12016),
       INT16_C(  6107), -INT16_C( 15787),  INT16_C( 18584), -INT16_C(  3736), -INT16_C( 15532),  INT16_C( 32222),  INT16_C(   129),  INT16_C(    32),
       INT16_C(   128),  INT16_C(  4981), -INT16_C(  8501),  INT16_C( 22836), -INT16_C( 10880),  INT16_C( 21036),  INT16_C(  8192),  INT16_C(     0),
       INT16_C(     9),  INT16_C( 20506),  INT16_C(  1025),  INT16_C(     0),  INT16_C(  8512), -INT16_C( 29794),  INT16_C(   576),  INT16_C(  2480),
       INT16_C( 10384), -INT16_C( 16099),  INT16_C( 16906), -INT16_C( 24550), -INT16_C( 30937),  INT16_C(  3904),  INT16_C( 10600),  INT16_C(  8203),
      -INT16_C( 22098),  INT16_C( 31858), -INT16_C( 23384),  INT16_C( 10252),  INT16_C( 12290),  INT16_C( 18688), -INT16_C( 26112),  INT16_C( 14425),
       INT16_C( 30438),  INT16_C( 20617), -INT16_C( 27448),  INT16_C( 30466), -INT16_C( 28581),  INT16_C( 17158),  INT16_C( 12985),  INT16_C( 25636),
       INT16_C( 22491), -INT16_C( 29725),  INT16_C(   260), -INT16_C(  8188),  INT16_C(  2057),  INT16_C( 16160), -INT16_C( 29758), -INT16_C( 22217),
       INT16_C( 12289), -INT16_C( 13927),  INT16_C(  4096),  INT16_C(  7552), -INT16_C(  6464),  INT16_C( 31203),  INT16_C(  2056), -INT16_C(  2847),
      -INT16_C( 16353),  INT16_C(    72), -INT16_C( 31931),  INT16_C(   522),  INT16_C(   130),  INT16_C( 19713),  INT16_C( 14539),  INT16_C( 19520),
      -INT16_C( 28631),  INT16_C( 10261),  INT16_C( 21952),  INT16_C(   261),  INT16_C(  8220),  INT16_C( 16456), -INT16_C(  9224),  INT16_C(  5960),
      -INT16_C( 14432), -INT16_C( 32703),  INT16_C( 21066),  INT16_C( 17632) };

  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_svint16_t
      rv,
      av = simde_svld1_s16(pg, &(a[i])),
      bv = simde_svld1_s16(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(INT16_C(0)));
    rv = simde_svand_s16_m(pv, av, bv);

    simde_svst1_s16(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s16_m(pv, av, bv);

    simde_svst1_s16(pg, &(e[i]), ev);
    simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~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_svand_s32_z (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(           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(           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(           1),  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(           1),
       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(           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(           1), -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(           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(           1), -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(           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(           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(           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(           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(           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(           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(           1), -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(           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(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(           1), -INT32_C(           1),  INT32_C(           0), -INT32_C(           1) };
  static const int32_t a[] =
    { -INT32_C(   583110466), -INT32_C(   665809308),  INT32_C(  1652463429),  INT32_C(  1860658741), -INT32_C(  1137767689), -INT32_C(     3210331), -INT32_C(  1770792667),  INT32_C(  1917274804),
       INT32_C(   508593850),  INT32_C(  1509400596),  INT32_C(  1841001784), -INT32_C(   740514852),  INT32_C(  1385106349),  INT32_C(   860970766), -INT32_C(   322321096), -INT32_C(   916516593),
      -INT32_C(  1410814057), -INT32_C(  2029723825),  INT32_C(   821411924),  INT32_C(   268751203), -INT32_C(   345795620),  INT32_C(   723432690), -INT32_C(  2011699079), -INT32_C(  1873643783),
       INT32_C(  1966815781),  INT32_C(  1845247769),  INT32_C(  1654583807), -INT32_C(  1619811646),  INT32_C(   680187445),  INT32_C(    72591498), -INT32_C(  1987286384),  INT32_C(   102358753),
       INT32_C(   830166040), -INT32_C(  1818265452),  INT32_C(   754335081),  INT32_C(   348875231), -INT32_C(   918792897), -INT32_C(  1899130883), -INT32_C(   619226374),  INT32_C(  1373712696),
       INT32_C(   427974021),  INT32_C(  1051533781),  INT32_C(  1030398814),  INT32_C(  1263678732), -INT32_C(  2011918710),  INT32_C(   404152862),  INT32_C(  1962093884), -INT32_C(   456797090),
       INT32_C(   117262385), -INT32_C(   934958487),  INT32_C(  1493544781),  INT32_C(  1873041381),  INT32_C(    83343846), -INT32_C(   686027365), -INT32_C(  1723134149),  INT32_C(   360518115),
      -INT32_C(  1038386343),  INT32_C(  1938448421), -INT32_C(   171143152), -INT32_C(   849055257), -INT32_C(   976135126), -INT32_C(  1533219479), -INT32_C(   532748292),  INT32_C(  1375058936),
       INT32_C(  1544818742), -INT32_C(  2117099919),  INT32_C(   376871726),  INT32_C(   920902156), -INT32_C(  1594116810), -INT32_C(  1622894686),  INT32_C(  2004845183),  INT32_C(  1959359550),
      -INT32_C(   170861180), -INT32_C(  1435066501),  INT32_C(  1203825723), -INT32_C(    42032185), -INT32_C(    73565864), -INT32_C(  1868897775), -INT32_C(  1576593052),  INT32_C(   286773389),
       INT32_C(   688383917), -INT32_C(  1026327161),  INT32_C(   822711146), -INT32_C(  1892776138),  INT32_C(   311086081),  INT32_C(   312616110), -INT32_C(   894064323),  INT32_C(   668716154),
       INT32_C(   978379443), -INT32_C(   889445536), -INT32_C(   302315850), -INT32_C(  1904465523), -INT32_C(  1549793547),  INT32_C(  1739997738),  INT32_C(  1714514924), -INT32_C(   359855049),
       INT32_C(  1327881967), -INT32_C(  1206312703), -INT32_C(  1247472601),  INT32_C(   860037437),  INT32_C(  1373037607),  INT32_C(   314084390),  INT32_C(   779676151), -INT32_C(   468121867),
      -INT32_C(   449626396), -INT32_C(  2019734433), -INT32_C(  1640218016), -INT32_C(  1965981853), -INT32_C(  1965316253),  INT32_C(   731681588),  INT32_C(  1918506364), -INT32_C(    11111653),
       INT32_C(   283413169),  INT32_C(   932676310),  INT32_C(   685102020), -INT32_C(  1229805997), -INT32_C(  2126475699), -INT32_C(  1632772831),  INT32_C(   219154418),  INT32_C(   722232954),
      -INT32_C(   952373008),  INT32_C(   939447154), -INT32_C(   111160410), -INT32_C(   961539719), -INT32_C(  1052184417), -INT32_C(  1084230195),  INT32_C(  1993109500), -INT32_C(   962471723),
       INT32_C(   999152841),  INT32_C(  1450347439), -INT32_C(   682634914), -INT32_C(  2103574557), -INT32_C(  1119623696), -INT32_C(   696409382), -INT32_C(   414430959), -INT32_C(   340923102),
       INT32_C(  2032548554),  INT32_C(   600807877),  INT32_C(  1308237674),  INT32_C(   248551198),  INT32_C(  1472992125), -INT32_C(   953267786), -INT32_C(  1263633774),  INT32_C(   849304424),
       INT32_C(  1521206933), -INT32_C(   914523297), -INT32_C(  1206421606), -INT32_C(  1933056241), -INT32_C(  1327262726),  INT32_C(  1853362652), -INT32_C(   199022964),  INT32_C(   388416130),
      -INT32_C(   411905656), -INT32_C(   424546484),  INT32_C(  1990183015), -INT32_C(  1459460433), -INT32_C(   715463175), -INT32_C(  2092707081),  INT32_C(  2054645496), -INT32_C(  1315791575),
      -INT32_C(  1147599762),  INT32_C(  1520519923), -INT32_C(  1043316718), -INT32_C(  1620389210), -INT32_C(  1351301960), -INT32_C(  1892501354),  INT32_C(  1191815454), -INT32_C(  1258710202),
      -INT32_C(  1821404513), -INT32_C(   286453284), -INT32_C(   122700207),  INT32_C(  1217862032),  INT32_C(  1962347742), -INT32_C(   503109180),  INT32_C(   405409234) };
  static const int32_t b[] =
    {  INT32_C(  1692387797),  INT32_C(   773953457), -INT32_C(   437454366), -INT32_C(   758012738), -INT32_C(  1267088709),  INT32_C(    70285288), -INT32_C(  1667705572), -INT32_C(  2018037582),
      -INT32_C(  1410558215),  INT32_C(   265882925), -INT32_C(   973748730),  INT32_C(   630703722),  INT32_C(  1910050953), -INT32_C(  1535833465), -INT32_C(  1858073121),  INT32_C(   924383293),
      -INT32_C(  1126038386),  INT32_C(   416004882), -INT32_C(   337788799),  INT32_C(   269513863),  INT32_C(   209840773), -INT32_C(   743377164),  INT32_C(  1097134339),  INT32_C(  2004385001),
      -INT32_C(  1825351039), -INT32_C(  1750335723),  INT32_C(  1182960063), -INT32_C(  2108255235),  INT32_C(  1905252221), -INT32_C(   784056371),  INT32_C(   420653104), -INT32_C(  1517188572),
      -INT32_C(   113720092), -INT32_C(  2087656253),  INT32_C(  1791562605),  INT32_C(   602742950), -INT32_C(   980124425), -INT32_C(   325658437), -INT32_C(  1543133056),  INT32_C(   373986866),
       INT32_C(   504332891), -INT32_C(   744382362),  INT32_C(  1497263027), -INT32_C(  2105791605),  INT32_C(  1648824487),  INT32_C(  1749999080), -INT32_C(  1223928699),  INT32_C(  1171085034),
       INT32_C(  1063575001),  INT32_C(   806552957), -INT32_C(    74886800),  INT32_C(   595461500), -INT32_C(    41564907),  INT32_C(   677762211),  INT32_C(   316698920), -INT32_C(  1588023864),
       INT32_C(   132168842),  INT32_C(   842527681), -INT32_C(  1070743484), -INT32_C(   622613563),  INT32_C(   349661553),  INT32_C(  1698446397),  INT32_C(  1987517614),  INT32_C(  1410846666),
       INT32_C(  1297938315),  INT32_C(   796890091),  INT32_C(   435203156), -INT32_C(   906701992),  INT32_C(  2044578620), -INT32_C(  1226958584),  INT32_C(     2905654), -INT32_C(  1319877851),
       INT32_C(   637448250), -INT32_C(  1739227836), -INT32_C(  2119088855),  INT32_C(  1430955288),  INT32_C(  2043553649),  INT32_C(  1999613249),  INT32_C(   678910723), -INT32_C(   656815202),
      -INT32_C(  1057040516),  INT32_C(  2119717716), -INT32_C(  1325463144),  INT32_C(   537217711), -INT32_C(  1298541455), -INT32_C(  2077636479), -INT32_C(  1045651421), -INT32_C(   392591764),
      -INT32_C(  1297574051), -INT32_C(  2110783254), -INT32_C(  1204605175), -INT32_C(   338151303), -INT32_C(  1919061748),  INT32_C(  1544668985), -INT32_C(   753025433), -INT32_C(  1581533372),
       INT32_C(   961766222),  INT32_C(  1841005411),  INT32_C(   740683443),  INT32_C(   857210407), -INT32_C(  1446922897), -INT32_C(   486157700), -INT32_C(   726195312),  INT32_C(   678851290),
       INT32_C(   962709974),  INT32_C(    10886477),  INT32_C(   841796619),  INT32_C(   963003594),  INT32_C(  1977755641), -INT32_C(  1973884679), -INT32_C(   446820597),  INT32_C(  1477301378),
      -INT32_C(   342790242), -INT32_C(  1746192244), -INT32_C(   825616636),  INT32_C(  1409757275),  INT32_C(  1355410007), -INT32_C(   572906798), -INT32_C(  1279117007), -INT32_C(  1425289459),
      -INT32_C(   896099010), -INT32_C(   647855659), -INT32_C(   190370663), -INT32_C(  1287016868),  INT32_C(  1778586264),  INT32_C(  1715985972),  INT32_C(   605620503),  INT32_C(   399517145),
      -INT32_C(  1746770238), -INT32_C(  2123348760), -INT32_C(   864741520),  INT32_C(  1585430213),  INT32_C(    97026769),  INT32_C(  2003505248), -INT32_C(   224623335),  INT32_C(  1812622506),
      -INT32_C(  1174147886), -INT32_C(  1606716624),  INT32_C(  1332523402),  INT32_C(  1085139823), -INT32_C(   834242963), -INT32_C(  1622822522), -INT32_C(   527245002),  INT32_C(   541891661),
      -INT32_C(  1193652344),  INT32_C(  1280841410),  INT32_C(   916243655),  INT32_C(   477579695),  INT32_C(  1173011903), -INT32_C(  1511706514),  INT32_C(  1602582289), -INT32_C(  1686121965),
      -INT32_C(   464299743),  INT32_C(   909159279),  INT32_C(   510512239), -INT32_C(   717560810),  INT32_C(   253437345),  INT32_C(  1723072597), -INT32_C(  1966785929),  INT32_C(   757416972),
       INT32_C(   219248798), -INT32_C(  1841020381),  INT32_C(   615559438),  INT32_C(   922413717),  INT32_C(  1682248975), -INT32_C(  1932789227),  INT32_C(  1075220532),  INT32_C(  1936538581),
      -INT32_C(   696221773), -INT32_C(   815217471),  INT32_C(   183769205),  INT32_C(   306245122),  INT32_C(   410420739), -INT32_C(  1264303744), -INT32_C(  1477133614) };
  static const int32_t e[] =
    {  INT32_C(  1142833300),  INT32_C(           0),  INT32_C(  1617727808),  INT32_C(           0), -INT32_C(  1272380749),  INT32_C(           0), -INT32_C(  1810837244),  INT32_C(           0),
       INT32_C(   172000952),  INT32_C(   164691972),  INT32_C(  1169245184),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(  2143288040),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(   550879232),  INT32_C(   268455939),  INT32_C(   134316676),  INT32_C(           0),  INT32_C(      319489),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(  1115849151), -INT32_C(  2108521792),  INT32_C(   545969717),  INT32_C(     4204680),  INT32_C(   151005200),  INT32_C(    68258336),
       INT32_C(           0), -INT32_C(  2087690112),  INT32_C(           0),  INT32_C(    13181062), -INT32_C(  1055632329),  INT32_C(           0), -INT32_C(  2147153792),  INT32_C(           0),
       INT32_C(   402784257),  INT32_C(   312549444),  INT32_C(           0),  INT32_C(    38805768),  INT32_C(      262274),  INT32_C(           0),  INT32_C(   872416260),  INT32_C(  1153782858),
       INT32_C(   107235345),  INT32_C(       65641),  INT32_C(  1493238080),  INT32_C(   589563236),  INT32_C(           0),  INT32_C(      263299),  INT32_C(   272630056),  INT32_C(    22544832),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(    80824352),  INT32_C(   605826089),  INT32_C(  1614152876),  INT32_C(           0),
       INT32_C(  1276383234),  INT32_C(           0),  INT32_C(   275810308),  INT32_C(           0),  INT32_C(   551125300),  INT32_C(           0),  INT32_C(           0),  INT32_C(   809517092),
       INT32_C(   634425344),  INT32_C(           0),  INT32_C(    25183273),  INT32_C(  1430954240),  INT32_C(  2039226704),  INT32_C(           0),  INT32_C(   537336064),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(     2097280),  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(  1601633276),
       INT32_C(   151077454),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(    33587236),  INT32_C(           0),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(   169377840),  INT32_C(           0),  INT32_C(  1476677634),
       INT32_C(     8391312),  INT32_C(   394461316),  INT32_C(           0),  INT32_C(           0),  INT32_C(     4229701),  INT32_C(           0),  INT32_C(    16777520),  INT32_C(   721962504),
      -INT32_C(  1038970832),  INT32_C(           0), -INT32_C(   267976576), -INT32_C(  2113929128),  INT32_C(  1073746072),  INT32_C(   642241540),  INT32_C(           0),  INT32_C(           0),
       INT32_C(   327173312),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(    88113360),  INT32_C(  1449721920),  INT32_C(           0),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(  2029780602),  INT32_C(           0),  INT32_C(   537663560),
       INT32_C(   411715200),  INT32_C(  1213731394),  INT32_C(   806634626),  INT32_C(   205996303),  INT32_C(    14848442),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0), -INT32_C(  2130549754),  INT32_C(           0),  INT32_C(    33554517),  INT32_C(           0),  INT32_C(   553649160),
       INT32_C(   152109070),  INT32_C(           0),  INT32_C(     9437186),  INT32_C(   376095364),  INT32_C(   608437256),  INT32_C(           0),  INT32_C(           0),  INT32_C(           0),
       INT32_C(           0),  INT32_C(           0),  INT32_C(           0),  INT32_C(        2048),  INT32_C(   276169730),  INT32_C(           0),  INT32_C(     2099410) };

  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_svint32_t
      rv,
      av = simde_svld1_s32(pg, &(a[i])),
      bv = simde_svld1_s32(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(INT32_C(0)));
    rv = simde_svand_s32_z(pv, av, bv);

    simde_svst1_s32(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s32_z(pv, av, bv);

    simde_svst1_s32(pg, &(e[i]), ev);
    simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~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_svand_s32_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int32_t p[] =
    { -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(           1),  INT32_C(           0), -INT32_C(           1), -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(           1),  INT32_C(           0), -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(           1),  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(           0),
       INT32_C(           0), -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(           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(           1), -INT32_C(           1), -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(           0), -INT32_C(           1),
       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(           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(           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(           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(           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(           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(           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(           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(           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(           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(           0), -INT32_C(           1),  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(           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) };
  static const int32_t a[] =
    { -INT32_C(  1738970873),  INT32_C(  1774500896),  INT32_C(  1272809465),  INT32_C(   964019990),  INT32_C(  1329775430),  INT32_C(   285005747), -INT32_C(   169145567),  INT32_C(    48207611),
       INT32_C(   547043328), -INT32_C(   309698572), -INT32_C(    63412250),  INT32_C(  1949675054),  INT32_C(   616855665),  INT32_C(  1882505295), -INT32_C(   966385717), -INT32_C(  1228323402),
       INT32_C(  1909875837), -INT32_C(  1436655421), -INT32_C(   156854328), -INT32_C(  1234445243), -INT32_C(  1545982124), -INT32_C(  1173090321), -INT32_C(   461342162),  INT32_C(  1016744383),
       INT32_C(  1907192237), -INT32_C(  1726280751), -INT32_C(   409943646), -INT32_C(   241304675),  INT32_C(   429226026), -INT32_C(  1244419705), -INT32_C(   493202653),  INT32_C(  1243493533),
       INT32_C(  2008796069),  INT32_C(  2031146710),  INT32_C(   895525016), -INT32_C(   987234661), -INT32_C(    35734410), -INT32_C(  2001555099), -INT32_C(  1570092027),  INT32_C(   653035649),
       INT32_C(   698198099),  INT32_C(   379760254), -INT32_C(   364117170),  INT32_C(  2007986945), -INT32_C(  1804300753),  INT32_C(  1142695487), -INT32_C(   186218893),  INT32_C(  1629147918),
      -INT32_C(   108349317), -INT32_C(  1274008218),  INT32_C(   832461872), -INT32_C(    22524209),  INT32_C(   462560476), -INT32_C(  1251955134),  INT32_C(  1118389812), -INT32_C(  1801206759),
      -INT32_C(   493998724), -INT32_C(  1969840550), -INT32_C(   910477830),  INT32_C(  1606902659), -INT32_C(  1032169089),  INT32_C(   997710343),  INT32_C(   981279009),  INT32_C(  1640964325),
      -INT32_C(  1471980211), -INT32_C(   181216773), -INT32_C(  1849758194), -INT32_C(   772766383), -INT32_C(   443323426),  INT32_C(  1713375813),  INT32_C(   279026987),  INT32_C(   175206589),
      -INT32_C(   927812403), -INT32_C(  1665276530),  INT32_C(   607026131), -INT32_C(   554361344), -INT32_C(   809269111), -INT32_C(  1103764589),  INT32_C(  1037031040),  INT32_C(   323436614),
      -INT32_C(  2082735371), -INT32_C(  1306552097),  INT32_C(   332811539), -INT32_C(   168702868), -INT32_C(   406539180),  INT32_C(   396819095),  INT32_C(   391411152), -INT32_C(  1440047947),
       INT32_C(  1965885078), -INT32_C(  1306047074),  INT32_C(   113638810),  INT32_C(   519878601),  INT32_C(    50708587), -INT32_C(  1961186374), -INT32_C(   693997792), -INT32_C(  1585394677),
       INT32_C(  1897311954), -INT32_C(  1792852485),  INT32_C(    77391930),  INT32_C(   186816671),  INT32_C(   319694680), -INT32_C(   207738669), -INT32_C(  1563869033), -INT32_C(   549238260),
      -INT32_C(   212837896), -INT32_C(   779586666), -INT32_C(    69917605),  INT32_C(   352778172), -INT32_C(   249031650), -INT32_C(   723139012),  INT32_C(   309767686), -INT32_C(   252593416),
      -INT32_C(  1427947245),  INT32_C(   276524212),  INT32_C(  1292587152),  INT32_C(  1700925767),  INT32_C(  1633126949),  INT32_C(  1446329424), -INT32_C(   479679254),  INT32_C(  2043894374),
       INT32_C(  1344518043), -INT32_C(  1285513693),  INT32_C(   889220078), -INT32_C(  1583652228),  INT32_C(  1006826220),  INT32_C(   412235822),  INT32_C(  1258028004), -INT32_C(   255602859),
      -INT32_C(  1455364218),  INT32_C(  1952227461), -INT32_C(  2018943733), -INT32_C(  1406647105),  INT32_C(  1692937014),  INT32_C(  1199405923), -INT32_C(   879658890), -INT32_C(   843361209),
      -INT32_C(  1049166789), -INT32_C(  1472867428), -INT32_C(   282075600),  INT32_C(  1503352867), -INT32_C(   423721853),  INT32_C(  1965898751), -INT32_C(    79642957),  INT32_C(  1321794322),
      -INT32_C(  1810939913),  INT32_C(  1111245842),  INT32_C(  1160866594),  INT32_C(  1184878019),  INT32_C(  1345084753),  INT32_C(  1271224728),  INT32_C(   709231895), -INT32_C(   126349568),
       INT32_C(  1619822414), -INT32_C(   308098869), -INT32_C(   147598541), -INT32_C(   247606624), -INT32_C(   952014289), -INT32_C(   619575613),  INT32_C(   201677067), -INT32_C(  1241219736),
      -INT32_C(   820604924), -INT32_C(  1950566312),  INT32_C(   746778507), -INT32_C(   266485567), -INT32_C(   306749654),  INT32_C(  1908984421), -INT32_C(  1954689757),  INT32_C(  1312915786),
       INT32_C(  1763530513), -INT32_C(  1695229425), -INT32_C(  1949927479),  INT32_C(  1635509303), -INT32_C(  1471270077),  INT32_C(   538515453),  INT32_C(   799774436),  INT32_C(   679341079),
       INT32_C(  1385274179),  INT32_C(  1055688309),  INT32_C(   885634045), -INT32_C(   627751529),  INT32_C(  1971512184), -INT32_C(   543843078),  INT32_C(  1242447922),  INT32_C(  1869777708),
      -INT32_C(  1681849306), -INT32_C(  2015711862), -INT32_C(   138697888),  INT32_C(  1624330472),  INT32_C(   785732659),  INT32_C(   571304688), -INT32_C(   697558102), -INT32_C(   851058778),
       INT32_C(  1835534051),  INT32_C(   351552180), -INT32_C(   838029338),  INT32_C(   841997823),  INT32_C(   559940657) };
  static const int32_t b[] =
    {  INT32_C(   256831322), -INT32_C(  1972811937), -INT32_C(   697430285),  INT32_C(  1129907126), -INT32_C(  1187916817),  INT32_C(   397717721), -INT32_C(   138532155),  INT32_C(  2128641828),
      -INT32_C(   846385554),  INT32_C(  1750595189), -INT32_C(  1170291196), -INT32_C(  1191339831),  INT32_C(  1165111147), -INT32_C(  1537464609),  INT32_C(  1956321872),  INT32_C(   150109082),
       INT32_C(   534151082),  INT32_C(  2038967669), -INT32_C(  1120614669), -INT32_C(   898289314),  INT32_C(  1058006880),  INT32_C(  1591962381),  INT32_C(   533888645), -INT32_C(  1540831750),
      -INT32_C(  1161560508),  INT32_C(   523455275),  INT32_C(  1893492498), -INT32_C(   113618535),  INT32_C(  1178159417),  INT32_C(   983833780), -INT32_C(  1789298789), -INT32_C(  2143715012),
      -INT32_C(  1422197633),  INT32_C(  1523215944),  INT32_C(  1858774741),  INT32_C(   812123639),  INT32_C(    58171726),  INT32_C(  1480399805), -INT32_C(   823290222), -INT32_C(  1756420584),
       INT32_C(  1799522595), -INT32_C(   842724105), -INT32_C(  1438937166), -INT32_C(   472210540),  INT32_C(    48648516), -INT32_C(    10869907), -INT32_C(   775010119), -INT32_C(  1855382162),
      -INT32_C(  1627608154),  INT32_C(  1785446840), -INT32_C(   451631535), -INT32_C(  1899434166), -INT32_C(  1383027136), -INT32_C(  1951536175), -INT32_C(  1587774669),  INT32_C(  1043580312),
       INT32_C(   702295921),  INT32_C(  1116948465),  INT32_C(   942123246), -INT32_C(   674828137),  INT32_C(  1887786910),  INT32_C(  1979396674),  INT32_C(  1159092141), -INT32_C(  1903998691),
       INT32_C(  1790402681), -INT32_C(  1783870809), -INT32_C(  1982999566),  INT32_C(  1650562243),  INT32_C(   768796395), -INT32_C(   979186408),  INT32_C(  1091221540),  INT32_C(  2077199618),
      -INT32_C(  1780119827), -INT32_C(  1020620335),  INT32_C(   676198500),  INT32_C(  2005577356), -INT32_C(  1398514540),  INT32_C(  1299269161),  INT32_C(     9403390), -INT32_C(   159687160),
      -INT32_C(  1232379675),  INT32_C(  1450817009),  INT32_C(   964609709),  INT32_C(   145754228), -INT32_C(  1917561756), -INT32_C(  1713756774), -INT32_C(  1449563744), -INT32_C(  1382083128),
       INT32_C(  1734552181), -INT32_C(  1916936993),  INT32_C(   398867363), -INT32_C(  1491044541),  INT32_C(  1714738379), -INT32_C(  1694560518),  INT32_C(  1078171768),  INT32_C(   602792621),
      -INT32_C(   326479860), -INT32_C(   814135508), -INT32_C(   974700670), -INT32_C(  2106849354), -INT32_C(   706174757),  INT32_C(   644933550),  INT32_C(   761705343), -INT32_C(  1571794026),
      -INT32_C(   795944285), -INT32_C(  1549859039), -INT32_C(    43481529),  INT32_C(  1769985165),  INT32_C(   574515060), -INT32_C(   834032050), -INT32_C(   117723294), -INT32_C(  1499837693),
       INT32_C(  1182148901),  INT32_C(  2011764272),  INT32_C(   712331676), -INT32_C(  1718356955), -INT32_C(  1430531748), -INT32_C(   495451008), -INT32_C(  1210420300), -INT32_C(   480414530),
      -INT32_C(   836119395), -INT32_C(  2042293526), -INT32_C(  2001683869),  INT32_C(   186729391), -INT32_C(  1783243499), -INT32_C(  1787351327),  INT32_C(  1615614369),  INT32_C(  1665379013),
       INT32_C(  1748069758), -INT32_C(   470911361), -INT32_C(   529817807), -INT32_C(   135557662),  INT32_C(  1267507306),  INT32_C(  1893794766),  INT32_C(   449850708),  INT32_C(  1434260439),
       INT32_C(    12430976),  INT32_C(  1440984100),  INT32_C(   758468171),  INT32_C(  1160061147), -INT32_C(  1886277183),  INT32_C(   167735989),  INT32_C(  1998835615),  INT32_C(  1674354915),
       INT32_C(  1935903310), -INT32_C(  2117581258),  INT32_C(  1890516629), -INT32_C(   541666530),  INT32_C(   980371333),  INT32_C(  1480814265),  INT32_C(   567240510),  INT32_C(  1451531271),
       INT32_C(  1556736038), -INT32_C(  1008889554), -INT32_C(  1372288113), -INT32_C(   460461473), -INT32_C(   367068111), -INT32_C(  1455267477), -INT32_C(   792063288), -INT32_C(   735686994),
       INT32_C(  1697705782),  INT32_C(   271060352), -INT32_C(   138519400),  INT32_C(  2010860358), -INT32_C(  1285424824),  INT32_C(   593273947),  INT32_C(  1693656758), -INT32_C(  1422386828),
      -INT32_C(  1995413496),  INT32_C(   228145269), -INT32_C(   620406891), -INT32_C(   363601758),  INT32_C(   899527898),  INT32_C(   240712024), -INT32_C(  1804448737),  INT32_C(  1849666149),
      -INT32_C(  2013835502),  INT32_C(   479563911), -INT32_C(  1980196121),  INT32_C(  1416907642),  INT32_C(  1485378047),  INT32_C(   711385611), -INT32_C(  1816209106), -INT32_C(  1778254461),
      -INT32_C(   736233396),  INT32_C(  1878045320), -INT32_C(   939923380),  INT32_C(   857435443), -INT32_C(  1987336834), -INT32_C(  1246432889),  INT32_C(  1313370826), -INT32_C(  1125889424),
      -INT32_C(   879754942),  INT32_C(     3834292), -INT32_C(  1647889559),  INT32_C(   533783456),  INT32_C(   262691720) };
  static const int32_t e[] =
    {  INT32_C(   138963202),  INT32_C(  1774500896),  INT32_C(  1272809465),  INT32_C(    22086422),  INT32_C(  1329775430),  INT32_C(   285005747), -INT32_C(   169145567),  INT32_C(    48207611),
       INT32_C(     8988672),  INT32_C(  1744983668), -INT32_C(    63412250),  INT32_C(   808814600),  INT32_C(    71313505),  INT32_C(   538181711), -INT32_C(   966385717),  INT32_C(    12599698),
       INT32_C(  1909875837),  INT32_C(   671621185), -INT32_C(  1272674624), -INT32_C(  1234445243),  INT32_C(   587867968), -INT32_C(  1173090321),  INT32_C(    75528708),  INT32_C(  1016744383),
       INT32_C(  1907192237), -INT32_C(  1726280751),  INT32_C(  1620066562), -INT32_C(   250064487),  INT32_C(   429226026), -INT32_C(  1244419705), -INT32_C(  2145889533),  INT32_C(  1243493533),
       INT32_C(  2008796069),  INT32_C(  1476412992),  INT32_C(   895525016), -INT32_C(   987234661), -INT32_C(    35734410),  INT32_C(   137367845), -INT32_C(  2107112448),  INT32_C(   653035649),
       INT32_C(   698198099),  INT32_C(    75500662), -INT32_C(  1442315518),  INT32_C(  1669997312), -INT32_C(  1804300753),  INT32_C(  1142432301), -INT32_C(   186218893),  INT32_C(  1629147918),
      -INT32_C(  1735874526),  INT32_C(   536871200),  INT32_C(   832461872), -INT32_C(    22524209),  INT32_C(   462560476), -INT32_C(  1251955134),  INT32_C(      541232), -INT32_C(  1801206759),
      -INT32_C(   493998724),  INT32_C(    43124304), -INT32_C(   910477830),  INT32_C(  1606902659),  INT32_C(  1073762590),  INT32_C(   829624834),  INT32_C(     1311009),  INT32_C(  1640964325),
      -INT32_C(  1471980211), -INT32_C(  1793046365), -INT32_C(  2121481726),  INT32_C(  1080067137), -INT32_C(   443323426),  INT32_C(  1713375813),  INT32_C(   279026987),  INT32_C(   172032000),
      -INT32_C(   927812403), -INT32_C(  1665276530),  INT32_C(   607026131),  INT32_C(  1451232768), -INT32_C(  1937766272), -INT32_C(  1103764589),  INT32_C(     9392768),  INT32_C(   323436614),
      -INT32_C(  2082735371),  INT32_C(   303665361),  INT32_C(   332811539), -INT32_C(   168702868), -INT32_C(   406539180),  INT32_C(   293740690),  INT32_C(   391411152), -INT32_C(  1440047947),
       INT32_C(  1965885078), -INT32_C(  1306047074),  INT32_C(   113638810),  INT32_C(   519878601),  INT32_C(    33865803), -INT32_C(  1978004806), -INT32_C(   693997792),  INT32_C(   562085897),
       INT32_C(  1897311954), -INT32_C(  2061433560),  INT32_C(    75769858),  INT32_C(    35651734),  INT32_C(   319694680), -INT32_C(   207738669), -INT32_C(  1563869033), -INT32_C(   549238260),
      -INT32_C(   212837896), -INT32_C(  2121792768), -INT32_C(   113245117),  INT32_C(    17224844), -INT32_C(   249031650), -INT32_C(   723139012),  INT32_C(   309767686), -INT32_C(  1601172992),
       INT32_C(    39977217),  INT32_C(   276524212),  INT32_C(   134303888),  INT32_C(    16912389),  INT32_C(   538148868),  INT32_C(  1110443008), -INT32_C(   479679254),  INT32_C(  1632718886),
       INT32_C(  1075942553), -INT32_C(  1285513693),  INT32_C(   889220078),  INT32_C(    16859692),  INT32_C(   335597572),  INT32_C(   269625376),  INT32_C(  1078481312),  INT32_C(  1615039045),
      -INT32_C(  1455364218),  INT32_C(  1615601669), -INT32_C(  2144789247), -INT32_C(  1540881246),  INT32_C(  1082662946),  INT32_C(  1080099650),  INT32_C(   177219668),  INT32_C(  1161367623),
      -INT32_C(  1049166789),  INT32_C(     2195460), -INT32_C(   282075600),  INT32_C(  1090584579), -INT32_C(   423721853),  INT32_C(    19739317), -INT32_C(    79642957),  INT32_C(  1321794322),
      -INT32_C(  1810939913),  INT32_C(      541714),  INT32_C(  1160866594),  INT32_C(  1184878019),  INT32_C(   271336705),  INT32_C(  1271224728),  INT32_C(   709231895), -INT32_C(   126349568),
       INT32_C(  1619822414), -INT32_C(   308098869), -INT32_C(  1506770173), -INT32_C(   247606624), -INT32_C(   952014289), -INT32_C(   619575613),  INT32_C(        4104), -INT32_C(  1241219736),
      -INT32_C(   820604924), -INT32_C(  1950566312),  INT32_C(   746778507), -INT32_C(   266485567), -INT32_C(   306749654),  INT32_C(  1908984421),  INT32_C(     7406626),  INT32_C(  1312915786),
       INT32_C(  1763530513), -INT32_C(  1695229425), -INT32_C(  1962649727),  INT32_C(  1616109602), -INT32_C(  1471270077),  INT32_C(   538515453),  INT32_C(   799774436),  INT32_C(   675129349),
       INT32_C(    43059970),  INT32_C(  1055688309),  INT32_C(    13144805), -INT32_C(   627751529),  INT32_C(  1350566264),  INT32_C(   168067082),  INT32_C(  1242447922),  INT32_C(  1869777708),
      -INT32_C(  1878982652), -INT32_C(  2015711862), -INT32_C(   944136128),  INT32_C(   538001440),  INT32_C(   142672946),  INT32_C(   537157760), -INT32_C(   697558102), -INT32_C(  1941681632),
       INT32_C(  1835534051),  INT32_C(   351552180), -INT32_C(  1945885856),  INT32_C(   841997823),  INT32_C(   559940657) };

  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_svint32_t
      rv,
      av = simde_svld1_s32(pg, &(a[i])),
      bv = simde_svld1_s32(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(INT32_C(0)));
    rv = simde_svand_s32_m(pv, av, bv);

    simde_svst1_s32(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s32_m(pv, av, bv);

    simde_svst1_s32(pg, &(e[i]), ev);
    simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~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_svand_s64_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int64_t p[] =
    { -INT64_C(                   1),  INT64_C(                   0), -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),  INT64_C(                   0),
      -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(                   1),  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(                   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(                   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(                   1), -INT64_C(                   1),
      -INT64_C(                   1),  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(                   0), -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(                   0),
       INT64_C(                   0),  INT64_C(                   0), -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(                   1), -INT64_C(                   1),
      -INT64_C(                   1), -INT64_C(                   1), -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) };
  static const int64_t a[] =
    { -INT64_C( 8925838419461294379), -INT64_C( 5271654991467789110), -INT64_C( 7383068697981566709),  INT64_C( 6604975831066228343),
      -INT64_C(  427804377009348020), -INT64_C( 7974739665893640730),  INT64_C( 6810855405602395337),  INT64_C( 2745814621816243002),
       INT64_C( 2622151881865108538),  INT64_C( 7426179176232818167), -INT64_C( 4021477463122867733), -INT64_C( 1145422049518772453),
      -INT64_C( 8925363093939499840), -INT64_C( 1848989348251114158), -INT64_C( 7138230143432480358), -INT64_C( 2580655923662915448),
      -INT64_C( 7383092736437876361),  INT64_C( 3946244662842985441), -INT64_C( 1322284344225727351),  INT64_C( 6466424570460714949),
       INT64_C( 8485879642641504227), -INT64_C( 5385437450458739599), -INT64_C( 5484426744679063151),  INT64_C( 5609322849443778461),
      -INT64_C( 8146947831908321560), -INT64_C( 1628087168224509306),  INT64_C( 3107980234375309184), -INT64_C( 1258330558062414382),
      -INT64_C( 4583439312004513607),  INT64_C( 6836140836002135964),  INT64_C( 6105453385573252609), -INT64_C( 6731164101712517726),
      -INT64_C(  714985635316236263),  INT64_C( 6852729716721026524),  INT64_C( 8456820924148016519),  INT64_C( 2205272905265114126),
      -INT64_C( 3817498946852285772),  INT64_C( 4667874057952555017),  INT64_C( 7911880474287978116),  INT64_C( 6032008336837569169),
      -INT64_C( 5347066148428830959),  INT64_C( 8309393027917238615), -INT64_C( 3501663892817667942), -INT64_C( 2561391728831050623),
      -INT64_C( 7736154750938393022),  INT64_C( 4565793111378542841),  INT64_C( 4582869737611470732),  INT64_C( 6706937479131365227),
      -INT64_C( 7891451581553708886), -INT64_C( 6948536272067813458), -INT64_C( 3027542196343944450), -INT64_C( 2704096909281502207),
       INT64_C( 6933639839329928206), -INT64_C( 8499061556129909669),  INT64_C( 8884549254354728718), -INT64_C( 8815778168119535458),
       INT64_C(   64851006238517716), -INT64_C( 1572181932812363751),  INT64_C( 6262165909702604275),  INT64_C( 7062433177538952710),
      -INT64_C( 5990686269847884234), -INT64_C( 5030943239921710233),  INT64_C( 4972271125915930868),  INT64_C( 2989762276065683084),
      -INT64_C( 7263776008773998862), -INT64_C(  815700184748031699),  INT64_C( 8007578133184173213), -INT64_C( 7429805072578846009),
      -INT64_C(  559204142218876563), -INT64_C( 4123720379398349616), -INT64_C( 3548623173972761233), -INT64_C( 4619448217064944987),
       INT64_C( 2313336525114376534),  INT64_C( 1201253432576444091), -INT64_C( 5337009580735902438),  INT64_C( 4215057972356740972),
       INT64_C( 4203676487135256550),  INT64_C( 1598156626955552380),  INT64_C( 2151918734983794200), -INT64_C( 6288052287762080354),
       INT64_C(  716411599008438073), -INT64_C(  896968548731711366), -INT64_C( 8525321878936763167),  INT64_C( 2107622935233268437),
      -INT64_C( 3714125739670102562), -INT64_C( 3484431591889790250), -INT64_C( 8284353134245855340), -INT64_C( 5144407259758718054),
       INT64_C(  909613010990166145),  INT64_C( 5039355020948988211), -INT64_C(  331352806222704606),  INT64_C( 8102281323969350623),
       INT64_C( 7045848832382571909),  INT64_C(  773055529265235396),  INT64_C( 2962605812153024193),  INT64_C( 3473493209817192149),
       INT64_C( 2195702017872853225) };
  static const int64_t b[] =
    {  INT64_C( 2270105711361824402),  INT64_C( 6333938230282089181),  INT64_C( 4062945124733054997), -INT64_C( 8699262378023919177),
       INT64_C( 8923030122260829592), -INT64_C( 3493271886630940694),  INT64_C( 6206161084413649879), -INT64_C( 5686690521799780713),
       INT64_C( 7962429579403430758),  INT64_C( 4671113973445951818),  INT64_C( 8446862698241075012), -INT64_C(  276665066608999330),
       INT64_C( 1627069174398423201), -INT64_C( 7697234152485408637), -INT64_C(  330536706170596075),  INT64_C( 2452663550170327927),
       INT64_C( 1156823181601278764),  INT64_C( 3166639763549399052), -INT64_C( 7703538974691726465),  INT64_C( 5951132139270605555),
      -INT64_C( 4155600098651611466), -INT64_C(  377996173683502721),  INT64_C( 6571927683609321601),  INT64_C( 4049129152741103288),
       INT64_C( 5964402886153370436), -INT64_C( 9180964978840573919), -INT64_C( 7977189019943457656), -INT64_C( 4258820298588022230),
       INT64_C( 5926885758148436252),  INT64_C( 6480262944581888112), -INT64_C( 8314888038714372560), -INT64_C( 3966793121907799121),
      -INT64_C( 5979945510864767361), -INT64_C( 6609020955822067681), -INT64_C( 3024369290356878824), -INT64_C( 2465728084561215405),
      -INT64_C( 7738715273023357265), -INT64_C( 2767518312609630593), -INT64_C( 2280128122947615650),  INT64_C(  780995598871454107),
       INT64_C( 8155617545894191909), -INT64_C( 2529902046910041528),  INT64_C( 3291494241357870911),  INT64_C( 6522333987663678750),
       INT64_C( 6179540178822265695),  INT64_C( 6930831062446581461),  INT64_C( 7654107586856063097), -INT64_C( 5047014168538685849),
      -INT64_C( 2142363162504402206),  INT64_C( 6805894396919522290), -INT64_C( 2185475647719497484), -INT64_C( 2949168407880298753),
      -INT64_C( 2717064857353053092), -INT64_C( 2814079182774107986), -INT64_C(  189779016291886079), -INT64_C( 6260169176374650286),
      -INT64_C( 6969216032328915323), -INT64_C( 7450037250320812321), -INT64_C( 3784023720749386366), -INT64_C( 4520713265590578356),
      -INT64_C( 7806575764409723367), -INT64_C( 8800610901438243410), -INT64_C( 5698037161479834968),  INT64_C( 5499331872599703636),
      -INT64_C( 6400740997926059549),  INT64_C( 2118039232876151516),  INT64_C( 4526164810542246331), -INT64_C( 8455192021717607894),
      -INT64_C( 2648031920224338016), -INT64_C( 5665493188673327922), -INT64_C(  887031240005149048),  INT64_C( 4534274483016531643),
       INT64_C( 2942003235597585914),  INT64_C( 4029820819578064709),  INT64_C( 1812516735696944491),  INT64_C( 7905338466542254297),
      -INT64_C( 1443620667430367883), -INT64_C( 7228257402529356854), -INT64_C( 8194028263965762864), -INT64_C( 6895087806842551441),
      -INT64_C( 5054895926063155896), -INT64_C( 2191595977294282806), -INT64_C( 3927041727435611075), -INT64_C( 8581896885937404645),
      -INT64_C( 8766169003128891985), -INT64_C( 6106576055944836274), -INT64_C( 4279230356183428743), -INT64_C(  978141745155192668),
       INT64_C( 9190134010860397127), -INT64_C( 7526043709757060747), -INT64_C( 1162483634684679056),  INT64_C( 2415406983169698128),
       INT64_C( 8561814587792693025),  INT64_C( 4570001126704394166),  INT64_C( 3264608203817211412), -INT64_C( 9143355761131249376),
      -INT64_C( 6569444612726636451) };
  static const int64_t e[] =
    {  INT64_C(  288521873976235664),  INT64_C(                   0),  INT64_C( 1729965000228880385),  INT64_C(  216175548353093687),
       INT64_C( 8795565318920470536), -INT64_C( 9150187984362863134),  INT64_C( 6196958068942569665),  INT64_C(                   0),
       INT64_C( 2594074502075844642),  INT64_C( 4612530482087723330),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C(  288371702654599296),  INT64_C(                   0), -INT64_C( 7464258430887788272),  INT64_C(                   0),
       INT64_C( 1155696689207052580),  INT64_C( 2504599614612113408),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C(                   0), -INT64_C( 5746289487432761231),  INT64_C(                   0),  INT64_C(  581035821772310168),
       INT64_C(  198176046564258368),  INT64_C(                   0),  INT64_C(   72410023484990592), -INT64_C( 4287003532539719678),
       INT64_C( 4629702825444638744),  INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),
      -INT64_C( 6628502501720063975),  INT64_C(                   0),  INT64_C(                   0),  INT64_C( 2054397915405107202),
       INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C(                   0),  INT64_C( 5782868684595007552),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C( 1477778869025264194),  INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C(                   0),  INT64_C(                   0), -INT64_C( 4492340181618556684), -INT64_C( 3310125728346338303),
       INT64_C( 4614228777071805452),  INT64_C(                   0),  INT64_C( 8740431867200689152), -INT64_C( 9149062349735962606),
       INT64_C(   18089856890593412), -INT64_C( 8643493364607348711),  INT64_C(                   0),  INT64_C(                   0),
      -INT64_C( 9185011656572795376),  INT64_C(                   0),  INT64_C(        155172769952),  INT64_C(  599405580267945988),
      -INT64_C( 8997661882491600670),  INT64_C( 1451294879094964236),  INT64_C( 3314685481234481305),  INT64_C(                   0),
      -INT64_C( 2882219324607436512),  INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C(                   0),  INT64_C(                   0),  INT64_C( 1235958891018194186),  INT64_C( 2897050824691707976),
       INT64_C(                   0),  INT64_C(                   0),  INT64_C(  884999864805952016), -INT64_C( 6914124928870399730),
       INT64_C(                   0), -INT64_C( 2196275501064908726), -INT64_C( 8538727816193096671),  INT64_C(  587370381653540881),
      -INT64_C( 8912546627842730610), -INT64_C( 8430732540737713594), -INT64_C( 8932871575821086448), -INT64_C( 5762249884958719872),
       INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0),
       INT64_C( 6972029620308677889),  INT64_C(                   0),  INT64_C( 2957741563574310400),  INT64_C(                   0),
       INT64_C(  310924614358483017) };

  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_svint64_t
      rv,
      av = simde_svld1_s64(pg, &(a[i])),
      bv = simde_svld1_s64(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(INT64_C(0)));
    rv = simde_svand_s64_z(pv, av, bv);

    simde_svst1_s64(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s64_z(pv, av, bv);

    simde_svst1_s64(pg, &(e[i]), ev);
    simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~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_svand_s64_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int64_t p[] =
    {  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(                   0),  INT64_C(                   0), -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(                   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(                   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(                   1), -INT64_C(                   1), -INT64_C(                   1),  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(                   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(                   1), -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(                   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(                   1), -INT64_C(                   1), -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(                   0), -INT64_C(                   1), -INT64_C(                   1),
       INT64_C(                   0), -INT64_C(                   1) };
  static const int64_t a[] =
    {  INT64_C( 6093789237184769891),  INT64_C( 2709494545875294264), -INT64_C( 2162311783373907966), -INT64_C( 1383435725859522296),
       INT64_C(  186301019377781819),  INT64_C( 7443240056172140343), -INT64_C( 7219526853040953589), -INT64_C( 6447492846489805297),
      -INT64_C( 1513071262767262668), -INT64_C( 2765107035198383404), -INT64_C( 2291602338222720508),  INT64_C( 7495676655721598197),
       INT64_C( 4499490110427295186), -INT64_C( 2078666455146593664),  INT64_C( 8827809009067814609), -INT64_C( 3704808857133188103),
      -INT64_C( 2128861897253782580), -INT64_C( 3168186666834662587),  INT64_C( 2974337492380451654), -INT64_C( 3694661435338055437),
       INT64_C( 1381610913584516072), -INT64_C(  415947772530238110), -INT64_C( 7197582705372516156),  INT64_C( 5329801669125960748),
      -INT64_C( 3229151915286463923),  INT64_C( 7839486745270380316), -INT64_C( 3933473583327571677), -INT64_C( 9035087038626008334),
       INT64_C(  804963386266628070), -INT64_C(  411612245834046412),  INT64_C( 1918586393236843065),  INT64_C( 7555362879796319522),
       INT64_C( 8733864259663984698), -INT64_C(  999622400203681457),  INT64_C( 4218863599881938762),  INT64_C( 4605611240332589823),
      -INT64_C( 1971841522392847645), -INT64_C( 2136629714175199059), -INT64_C( 8330566893600234990),  INT64_C( 4908914114305062363),
      -INT64_C( 3379373021693442143),  INT64_C( 7026338139811095559), -INT64_C( 7796594384055904589),  INT64_C( 8252727369168837091),
       INT64_C(  653236360377398298), -INT64_C( 8315848499997882136), -INT64_C(  915189426658991615),  INT64_C( 7905433981443096434),
       INT64_C(  774261943705493170), -INT64_C( 7752426058757871869),  INT64_C( 4683631247737304571), -INT64_C( 6406307842138884520),
      -INT64_C( 9024338992935681129), -INT64_C( 2834513638581140350), -INT64_C( 1798092319952144643),  INT64_C( 6825111532239752730),
      -INT64_C( 5661066311500360850), -INT64_C( 7740720641333604642),  INT64_C( 8564557163356190821), -INT64_C( 8782515046807343367),
      -INT64_C( 1355333832136247984), -INT64_C( 3829119177463368015), -INT64_C( 6879642442237330508), -INT64_C( 7303009793682174969),
      -INT64_C( 5858820285966771532),  INT64_C( 5363455750699375167), -INT64_C( 3651046258151642098), -INT64_C( 1670673609285323283),
       INT64_C( 8167662970917939629),  INT64_C( 3501692893642706872), -INT64_C( 4665102687918558545),  INT64_C( 8073483819127549934),
      -INT64_C( 3651166860065720400), -INT64_C( 7199650594949469757),  INT64_C( 2321415609143916965), -INT64_C( 6650323567508312702),
       INT64_C(  497324790596947716),  INT64_C( 6470829013516091715), -INT64_C( 5454977136570867975), -INT64_C( 2248511328337948876),
       INT64_C( 8054651837606351230), -INT64_C( 6058066409489976608), -INT64_C(  490570453768225461),  INT64_C( 6300515922379615155),
       INT64_C( 2871571735241058366),  INT64_C( 3526222735891724433), -INT64_C( 7123323613273536923),  INT64_C( 8159004317797074185),
      -INT64_C( 4291450841810119933),  INT64_C( 4197907718365195308), -INT64_C( 3006846759341855043),  INT64_C( 1184996513659056590),
       INT64_C( 3259986007694199879), -INT64_C(  574349433131612679), -INT64_C( 4462251443635590034),  INT64_C(  465054658143177558),
      -INT64_C( 7733035034558279807), -INT64_C( 2650815412741935870),  INT64_C( 1336489075948377813),  INT64_C(  412899072030363636),
      -INT64_C(  366984028944450888), -INT64_C( 8544894521694467550) };
  static const int64_t b[] =
    { -INT64_C( 7777766858709836516),  INT64_C( 5645537935132901577), -INT64_C( 2169124669388867888),  INT64_C( 5253262240227263107),
       INT64_C( 5586556479585956531), -INT64_C( 1777273585971094225),  INT64_C( 1913708336167444241),  INT64_C( 5715821762793850590),
       INT64_C( 5923017611641271136), -INT64_C( 6780821730465565466), -INT64_C( 7692469533867647859),  INT64_C( 1229186593539949602),
       INT64_C(    7080969906835621), -INT64_C( 5976870302532078884),  INT64_C( 6344744176647756480),  INT64_C( 4888134709887282195),
      -INT64_C( 3346415365322453899),  INT64_C( 3631390531105164951),  INT64_C( 6427400033643607716), -INT64_C( 2142036199225800349),
       INT64_C(  830634257061859521), -INT64_C( 5606093070521875313), -INT64_C(  648870655452914594), -INT64_C( 3217755888048202744),
       INT64_C( 6488579627224255116),  INT64_C( 6238768579120713684), -INT64_C( 1588652594019294870), -INT64_C( 5406087399394514155),
       INT64_C( 7397093747092456066), -INT64_C(  369614506566352239), -INT64_C( 1816661688028964354),  INT64_C( 7111754324976150742),
      -INT64_C( 5079402699457337463), -INT64_C( 6421252738171876776), -INT64_C( 7083794123152040967),  INT64_C( 5672932190600281719),
       INT64_C( 1771862716981012916), -INT64_C( 1007710136237434698),  INT64_C( 5630184356107356607), -INT64_C( 4737681207856808659),
       INT64_C( 5449973017400289737),  INT64_C( 5112619697844036361),  INT64_C( 5502253186889265205),  INT64_C( 3059209005025853867),
       INT64_C( 5262269525649526567), -INT64_C( 7942592325810933511),  INT64_C( 3124082516124602863),  INT64_C( 4433042962718497017),
      -INT64_C( 8579637048640915099),  INT64_C( 7466632247236901553),  INT64_C( 3317691901506042975), -INT64_C( 6504590666171356313),
       INT64_C( 7520231509715563846), -INT64_C( 7830611638847445644),  INT64_C(   50239544648452432), -INT64_C( 8120771568868639897),
       INT64_C( 5047623492332460270), -INT64_C( 1806358420195737049),  INT64_C( 4893475304760827984), -INT64_C( 8201275233384372392),
       INT64_C( 9072289615665403087), -INT64_C( 1135533139056649535),  INT64_C( 2109307251416737830),  INT64_C( 3988479975068872746),
      -INT64_C( 8262767430290862975),  INT64_C( 1903653696628403674),  INT64_C( 3651401182495917258), -INT64_C( 2868698026778727790),
      -INT64_C( 6684463582153864733),  INT64_C( 1026407591332094256),  INT64_C( 5622263359700097741),  INT64_C( 4459540384158581684),
      -INT64_C( 4112586258752171391),  INT64_C( 6961483738230950730),  INT64_C( 4147317750331947651), -INT64_C( 3398484550760409537),
       INT64_C( 3753478616912675515), -INT64_C( 5978705343520046573), -INT64_C( 5307356409305940839), -INT64_C( 9192086783728313007),
      -INT64_C( 6555295390779733273), -INT64_C( 4484650471821424149),  INT64_C( 8988120713774805134),  INT64_C( 1809192720474508501),
      -INT64_C( 4590028020249793515),  INT64_C( 8693242414839011258), -INT64_C( 7930773263205104567), -INT64_C( 6084004009525703865),
       INT64_C( 2939054427259173939), -INT64_C( 9108337590766166218), -INT64_C( 7385651244511717581),  INT64_C( 2680384990282361840),
       INT64_C( 6464624947689784607), -INT64_C( 6679380921650921067),  INT64_C( 1807089315563586345), -INT64_C( 1669477802465811011),
      -INT64_C( 8154844679037975977), -INT64_C( 8502890240609136916),  INT64_C( 7002843034312544749), -INT64_C(  437159634054099139),
       INT64_C( 8893844621893067751),  INT64_C( 6953513242745948566) };
  static const int64_t e[] =
    {  INT64_C( 6093789237184769891),  INT64_C( 2709494545875294264), -INT64_C( 2162311783373907966),  INT64_C( 5243601774296170496),
       INT64_C(  186301019377781819),  INT64_C( 7440389709177558311), -INT64_C( 7219526853040953589), -INT64_C( 6447492846489805297),
      -INT64_C( 1513071262767262668), -INT64_C( 2765107035198383404), -INT64_C( 2291602338222720508),  INT64_C( 7495676655721598197),
       INT64_C( 4499490110427295186), -INT64_C( 2078666455146593664),  INT64_C( 8827809009067814609),  INT64_C( 4653349365947213841),
      -INT64_C( 4610559706102839228),  INT64_C( 1152994081588152837),  INT64_C( 2974337492380451654), -INT64_C( 3694661435338055437),
       INT64_C(  217300073623584960), -INT64_C(  415947772530238110), -INT64_C( 7774325105797853116),  INT64_C( 4706261615476020232),
       INT64_C( 5912118282214820364),  INT64_C( 4935948081038968596), -INT64_C( 3935732100470144734), -INT64_C( 9035087038626008334),
       INT64_C(  154179577517965954), -INT64_C(  411612245834046412),  INT64_C(  180179173086627896),  INT64_C( 7555362879796319522),
       INT64_C( 8733864259663984698), -INT64_C(  999622400203681457),  INT64_C( 1765492444675294024),  INT64_C( 4605611240332589823),
       INT64_C(   36741830450620576), -INT64_C( 2161410507813103452),  INT64_C(  874367397733335058),  INT64_C( 4908914114305062363),
      -INT64_C( 3379373021693442143),  INT64_C( 4648418532972306433),  INT64_C(   20527980883906609),  INT64_C( 8252727369168837091),
       INT64_C(  648590915125904386), -INT64_C( 9187296682389733144),  INT64_C( 2542449184280936449),  INT64_C( 7905433981443096434),
       INT64_C(  774261943705493170), -INT64_C( 7752426058757871869),  INT64_C( 4683631247737304571), -INT64_C( 6550476586343194048),
       INT64_C(   18324695154196742), -INT64_C( 2834513638581140350),  INT64_C(     673491680542800),  INT64_C( 1010257946876185090),
       INT64_C(    3591016317980782), -INT64_C( 7740720641333604642),  INT64_C( 4812387971326697536), -INT64_C( 8782515046807343367),
      -INT64_C( 1355333832136247984), -INT64_C( 3829119177463368015), -INT64_C( 6879642442237330508), -INT64_C( 7303009793682174969),
      -INT64_C( 5858820285966771532),  INT64_C(  750415114550904858),  INT64_C(    1231476714112010), -INT64_C( 4030701788567101312),
       INT64_C( 8167662970917939629),  INT64_C( 3501692893642706872), -INT64_C( 4665102687918558545),  INT64_C( 8073483819127549934),
      -INT64_C( 4304280072480058752), -INT64_C( 7199650594949469757),  INT64_C( 2321415609143916965), -INT64_C( 9181704660719762430),
       INT64_C(  497324790596947716),  INT64_C(  649925859213443075), -INT64_C( 5456107435062190951), -INT64_C( 9202220989230248688),
       INT64_C( 8054651837606351230), -INT64_C( 9096919265792261920),  INT64_C( 8660457272180256778),  INT64_C( 6300515922379615155),
       INT64_C(   20496293177092116),  INT64_C( 3505076906772009104), -INT64_C( 7989356429558643647),  INT64_C( 2382406480824893697),
       INT64_C(   18458747375603715),  INT64_C(     182587649887268), -INT64_C( 8070309517073316303),  INT64_C( 1184996513659056590),
       INT64_C( 3259986007694199879), -INT64_C(  574349433131612679),  INT64_C(    4503738064584744),  INT64_C(  465054658143177558),
      -INT64_C( 8897941230948711935), -INT64_C( 2650815412741935870),  INT64_C(    3387195927072965),  INT64_C(  120156280018980660),
      -INT64_C(  366984028944450888),  INT64_C(   29914621265070082) };

  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_svint64_t
      rv,
      av = simde_svld1_s64(pg, &(a[i])),
      bv = simde_svld1_s64(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(INT64_C(0)));
    rv = simde_svand_s64_m(pv, av, bv);

    simde_svst1_s64(pg, &(r[i]), rv);

    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_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_s64_m(pv, av, bv);

    simde_svst1_s64(pg, &(e[i]), ev);
    simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~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_svand_u8_z (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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1), -INT8_C(   1),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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) };
  static const uint8_t a[] =
    { UINT8_C(186), UINT8_C( 92), UINT8_C( 76), UINT8_C( 16), UINT8_C( 87), UINT8_C(175), UINT8_C(167), UINT8_C(110),
      UINT8_C(  4), UINT8_C( 73), UINT8_C(168), UINT8_C(201), UINT8_C(130), UINT8_C( 72), UINT8_C(200), UINT8_C(240),
      UINT8_C(243), UINT8_C( 16), UINT8_C(251), UINT8_C( 64), UINT8_C(109), UINT8_C( 27), UINT8_C(131), UINT8_C(122),
      UINT8_C(167), UINT8_C(191), UINT8_C( 22), UINT8_C( 66), UINT8_C(109), UINT8_C( 80), UINT8_C(221), UINT8_C( 40),
      UINT8_C(173), UINT8_C( 41), UINT8_C( 56), UINT8_C(  4), UINT8_C(216), UINT8_C(223), UINT8_C(115), UINT8_C(220),
      UINT8_C( 40), UINT8_C( 27), UINT8_C(165), UINT8_C(170), UINT8_C( 99), UINT8_C(109), UINT8_C(154), UINT8_C( 86),
      UINT8_C(125), UINT8_C(149), UINT8_C(150), UINT8_C(235), UINT8_C(177), UINT8_C( 25), UINT8_C(101), UINT8_C( 88),
      UINT8_C(217), UINT8_C(123), UINT8_C(154), UINT8_C( 70), UINT8_C(204), UINT8_C(119), UINT8_C(110), UINT8_C(121),
      UINT8_C(160), UINT8_C(166), UINT8_C(125), UINT8_C(121), UINT8_C(133), UINT8_C(240), UINT8_C( 85), UINT8_C(174),
      UINT8_C( 11), UINT8_C(251), UINT8_C( 88), UINT8_C(110), UINT8_C(104), UINT8_C(243), UINT8_C(196), UINT8_C(230),
      UINT8_C(136), UINT8_C( 90), UINT8_C(209), UINT8_C( 57), UINT8_C(116), UINT8_C( 54), UINT8_C(146), UINT8_C( 77),
      UINT8_C(178), UINT8_C( 44), UINT8_C(147), UINT8_C(126), UINT8_C(164), UINT8_C(  2), UINT8_C(247), UINT8_C( 68),
      UINT8_C(168), UINT8_C(116), UINT8_C(189), UINT8_C( 46), UINT8_C(101), UINT8_C( 19), UINT8_C(220), UINT8_C(112),
      UINT8_C( 14), UINT8_C( 52), UINT8_C(223), UINT8_C(118), UINT8_C( 39), UINT8_C(163), UINT8_C( 92), UINT8_C(176),
      UINT8_C(254), UINT8_C( 45), UINT8_C(233), UINT8_C(114), UINT8_C(100), UINT8_C(123), UINT8_C(191), UINT8_C( 22),
      UINT8_C(168), UINT8_C( 82), UINT8_C(148), UINT8_C( 76), UINT8_C( 84), UINT8_C(139), UINT8_C(144), UINT8_C(253),
         UINT8_MAX, UINT8_C( 78), UINT8_C( 43), UINT8_C(100), UINT8_C( 97), UINT8_C(  7), UINT8_C(213), UINT8_C(111),
      UINT8_C( 59), UINT8_C(180), UINT8_C(229), UINT8_C( 99), UINT8_C( 87), UINT8_C( 66), UINT8_C( 19), UINT8_C( 85),
      UINT8_C(111), UINT8_C(252), UINT8_C(199), UINT8_C(211), UINT8_C(120), UINT8_C(134), UINT8_C(233), UINT8_C( 32),
      UINT8_C(217), UINT8_C(125), UINT8_C(108), UINT8_C( 45), UINT8_C(  8), UINT8_C(252), UINT8_C( 42), UINT8_C(  8),
      UINT8_C( 74), UINT8_C( 85), UINT8_C(108), UINT8_C(171), UINT8_C( 92), UINT8_C( 65), UINT8_C( 26), UINT8_C(152),
      UINT8_C(245), UINT8_C(  0), UINT8_C(251), UINT8_C( 77), UINT8_C( 66), UINT8_C( 14), UINT8_C(162), UINT8_C(177),
      UINT8_C( 10), UINT8_C(106), UINT8_C(133), UINT8_C(130), UINT8_C(240), UINT8_C(110), UINT8_C(162), UINT8_C(201),
      UINT8_C(236), UINT8_C( 14), UINT8_C(247), UINT8_C(244), UINT8_C( 11), UINT8_C( 33), UINT8_C(252), UINT8_C( 85),
      UINT8_C(119), UINT8_C(105), UINT8_C(  1), UINT8_C(211), UINT8_C(170), UINT8_C( 27), UINT8_C(107), UINT8_C(160),
      UINT8_C( 27), UINT8_C(102), UINT8_C(237), UINT8_C( 93), UINT8_C(116), UINT8_C(143), UINT8_C( 15), UINT8_C(127),
      UINT8_C(249), UINT8_C(148), UINT8_C(  1), UINT8_C(234), UINT8_C(  2), UINT8_C(164), UINT8_C(179), UINT8_C(238),
      UINT8_C(178), UINT8_C(170), UINT8_C(227), UINT8_C(189), UINT8_C(204), UINT8_C(223), UINT8_C( 19), UINT8_C( 67),
      UINT8_C( 72), UINT8_C( 20), UINT8_C( 22), UINT8_C(243), UINT8_C( 47), UINT8_C(130), UINT8_C(147), UINT8_C( 75),
      UINT8_C(232), UINT8_C(128), UINT8_C(168), UINT8_C( 93), UINT8_C( 15), UINT8_C(183), UINT8_C(220), UINT8_C(  9),
      UINT8_C( 75), UINT8_C(221), UINT8_C(243), UINT8_C( 78), UINT8_C(129), UINT8_C(166), UINT8_C( 60), UINT8_C( 52),
      UINT8_C( 81), UINT8_C( 31), UINT8_C(241), UINT8_C( 29),    UINT8_MAX, UINT8_C(  4), UINT8_C( 96), UINT8_C( 71),
      UINT8_C( 24), UINT8_C(118), UINT8_C( 58), UINT8_C( 72), UINT8_C(248), UINT8_C(205), UINT8_C(147), UINT8_C(225),
      UINT8_C( 77), UINT8_C( 59), UINT8_C( 62), UINT8_C( 93), UINT8_C(243), UINT8_C( 26), UINT8_C(102), UINT8_C( 62),
      UINT8_C(247), UINT8_C( 89), UINT8_C(140), UINT8_C(121),    UINT8_MAX, UINT8_C(201), UINT8_C(173), UINT8_C( 80),
      UINT8_C(232), UINT8_C(158), UINT8_C(109), UINT8_C(231), UINT8_C(163), UINT8_C(205), UINT8_C( 47), UINT8_C(187),
      UINT8_C( 68), UINT8_C(105), UINT8_C(  3), UINT8_C( 60), UINT8_C( 55), UINT8_C(150), UINT8_C( 29), UINT8_C(132),
      UINT8_C(210), UINT8_C( 91), UINT8_C(225), UINT8_C(197), UINT8_C(117), UINT8_C( 71), UINT8_C(  3), UINT8_C(109),
      UINT8_C(160), UINT8_C(144), UINT8_C(230), UINT8_C(160), UINT8_C( 89), UINT8_C(147), UINT8_C(240), UINT8_C( 65),
      UINT8_C( 49), UINT8_C( 94), UINT8_C( 41) };
  static const uint8_t b[] =
    { UINT8_C(170), UINT8_C( 86), UINT8_C(170), UINT8_C( 85), UINT8_C(250), UINT8_C(186), UINT8_C(189), UINT8_C( 36),
      UINT8_C(133), UINT8_C(224), UINT8_C(165), UINT8_C(236), UINT8_C(138), UINT8_C(201), UINT8_C(110), UINT8_C( 16),
      UINT8_C(167), UINT8_C( 40), UINT8_C(  0), UINT8_C(124), UINT8_C( 67), UINT8_C( 29), UINT8_C( 17), UINT8_C( 17),
      UINT8_C( 42), UINT8_C(212), UINT8_C(125), UINT8_C(200), UINT8_C(155), UINT8_C(233), UINT8_C(248), UINT8_C( 69),
      UINT8_C( 63), UINT8_C(162), UINT8_C(155), UINT8_C( 57), UINT8_C( 93), UINT8_C( 88), UINT8_C( 93), UINT8_C(226),
      UINT8_C( 57), UINT8_C(  2), UINT8_C(206), UINT8_C(195), UINT8_C(203), UINT8_C( 60), UINT8_C(211), UINT8_C(115),
      UINT8_C(101), UINT8_C(212), UINT8_C(239), UINT8_C(168), UINT8_C(241), UINT8_C(  1), UINT8_C(185), UINT8_C( 27),
      UINT8_C(213), UINT8_C( 54), UINT8_C(227), UINT8_C(112), UINT8_C( 31), UINT8_C(219), UINT8_C(182), UINT8_C( 94),
      UINT8_C(125), UINT8_C( 81), UINT8_C(152), UINT8_C(218), UINT8_C(169), UINT8_C(245), UINT8_C(189), UINT8_C(226),
      UINT8_C(248), UINT8_C(139), UINT8_C(166), UINT8_C(195), UINT8_C(200), UINT8_C(121), UINT8_C( 54), UINT8_C( 45),
      UINT8_C( 77), UINT8_C( 38), UINT8_C(213), UINT8_C( 62), UINT8_C( 39), UINT8_C(142), UINT8_C( 89), UINT8_C(252),
      UINT8_C(196), UINT8_C( 60), UINT8_C(108), UINT8_C(227), UINT8_C( 23), UINT8_C( 34), UINT8_C( 65), UINT8_C(149),
      UINT8_C(115), UINT8_C(217), UINT8_C(111), UINT8_C( 29), UINT8_C(207), UINT8_C( 44),    UINT8_MAX, UINT8_C(199),
      UINT8_C(184), UINT8_C(165), UINT8_C(138), UINT8_C(128), UINT8_C( 31), UINT8_C(193), UINT8_C(173), UINT8_C(108),
      UINT8_C(231), UINT8_C(130), UINT8_C(171), UINT8_C( 14), UINT8_C( 16), UINT8_C(  4), UINT8_C( 10), UINT8_C(212),
      UINT8_C( 65), UINT8_C(118), UINT8_C(183), UINT8_C( 88), UINT8_C(153), UINT8_C(248), UINT8_C(237), UINT8_C( 12),
      UINT8_C(210), UINT8_C( 93), UINT8_C( 41), UINT8_C(161), UINT8_C(137), UINT8_C( 41), UINT8_C(104), UINT8_C( 65),
      UINT8_C(206), UINT8_C(242), UINT8_C(193), UINT8_C(237), UINT8_C(179), UINT8_C(110), UINT8_C( 90), UINT8_C(154),
      UINT8_C(240), UINT8_C(  5), UINT8_C(168), UINT8_C(  0), UINT8_C(  9), UINT8_C(178), UINT8_C(212), UINT8_C( 74),
      UINT8_C( 41), UINT8_C(139), UINT8_C(163), UINT8_C(194), UINT8_C(132), UINT8_C(144), UINT8_C(206), UINT8_C( 86),
      UINT8_C(237), UINT8_C(248), UINT8_C(247), UINT8_C(119), UINT8_C( 33), UINT8_C( 95), UINT8_C(184), UINT8_C(239),
      UINT8_C( 81), UINT8_C(122), UINT8_C(221), UINT8_C(  5), UINT8_C(232), UINT8_C( 55), UINT8_C(159), UINT8_C(217),
      UINT8_C( 60), UINT8_C( 72), UINT8_C(217), UINT8_C( 69), UINT8_C(250), UINT8_C(174), UINT8_C(144), UINT8_C( 35),
      UINT8_C( 57), UINT8_C( 51), UINT8_C(229), UINT8_C(189), UINT8_C(195), UINT8_C(180), UINT8_C( 19), UINT8_C(177),
      UINT8_C(172), UINT8_C( 10), UINT8_C( 40), UINT8_C(205), UINT8_C(105), UINT8_C(224), UINT8_C(188), UINT8_C(187),
      UINT8_C( 90), UINT8_C(153), UINT8_C(192), UINT8_C( 67), UINT8_C(208), UINT8_C( 95), UINT8_C( 28), UINT8_C( 12),
      UINT8_C(167), UINT8_C(245), UINT8_C( 82), UINT8_C(162), UINT8_C(163), UINT8_C(226), UINT8_C(197), UINT8_C(221),
      UINT8_C( 21), UINT8_C(171), UINT8_C(154), UINT8_C(216), UINT8_C( 95), UINT8_C(174), UINT8_C(137), UINT8_C( 11),
      UINT8_C(184), UINT8_C(177), UINT8_C(216), UINT8_C( 34), UINT8_C(146), UINT8_C(148), UINT8_C(221), UINT8_C(236),
      UINT8_C( 46), UINT8_C(157), UINT8_C( 47), UINT8_C(254), UINT8_C(252), UINT8_C( 75), UINT8_C( 11), UINT8_C(164),
      UINT8_C( 65), UINT8_C( 93), UINT8_C( 70), UINT8_C(228), UINT8_C( 63), UINT8_C( 11), UINT8_C(193), UINT8_C( 84),
      UINT8_C(182), UINT8_C( 92), UINT8_C( 44), UINT8_C( 21), UINT8_C( 10), UINT8_C(182), UINT8_C( 32), UINT8_C(194),
      UINT8_C(103), UINT8_C(248), UINT8_C(228), UINT8_C(249), UINT8_C(141), UINT8_C(193), UINT8_C(230), UINT8_C(187),
      UINT8_C( 94), UINT8_C( 21), UINT8_C(185), UINT8_C( 91), UINT8_C( 97), UINT8_C(196),    UINT8_MAX, UINT8_C(162),
      UINT8_C( 33), UINT8_C( 69), UINT8_C(134), UINT8_C( 96), UINT8_C( 80), UINT8_C( 72), UINT8_C(180), UINT8_C(  7),
      UINT8_C(164), UINT8_C(225), UINT8_C( 28), UINT8_C(174), UINT8_C(151), UINT8_C( 61), UINT8_C(112), UINT8_C(254),
      UINT8_C( 53), UINT8_C( 85), UINT8_C(248), UINT8_C(194), UINT8_C( 22), UINT8_C(222), UINT8_C(125), UINT8_C(117),
      UINT8_C(243), UINT8_C( 55), UINT8_C(208), UINT8_C( 84), UINT8_C(251), UINT8_C(207), UINT8_C(246), UINT8_C( 29),
      UINT8_C( 20), UINT8_C(125), UINT8_C(125), UINT8_C(100), UINT8_C(197), UINT8_C( 50), UINT8_C(107), UINT8_C(105),
      UINT8_C( 19), UINT8_C(136), UINT8_C( 23) };
  static const uint8_t e[] =
    { UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(170), UINT8_C(165), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(130), UINT8_C(  0), UINT8_C( 72), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  1), UINT8_C(  0),
      UINT8_C( 34), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C( 24), UINT8_C(  0), UINT8_C( 88), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(146), UINT8_C( 82),
      UINT8_C(101), UINT8_C(148), UINT8_C(134), UINT8_C(168), UINT8_C(  0), UINT8_C(  1), UINT8_C(  0), UINT8_C( 24),
      UINT8_C(209), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C( 38), UINT8_C( 88),
      UINT8_C(  0), UINT8_C(  0), UINT8_C( 24), UINT8_C(  0), UINT8_C(129), UINT8_C(240), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  8), UINT8_C(139), UINT8_C(  0), UINT8_C(  0), UINT8_C( 72), UINT8_C(  0), UINT8_C(  4), UINT8_C( 36),
      UINT8_C(  8), UINT8_C(  2), UINT8_C(209), UINT8_C(  0), UINT8_C(  0), UINT8_C(  6), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(128), UINT8_C( 44), UINT8_C(  0), UINT8_C(  0), UINT8_C(  4), UINT8_C(  0), UINT8_C( 65), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C( 45), UINT8_C( 12), UINT8_C( 69), UINT8_C(  0), UINT8_C(  0), UINT8_C( 64),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(138), UINT8_C(  0), UINT8_C(  0), UINT8_C(129), UINT8_C( 12), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(169), UINT8_C(  2), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  0), UINT8_C( 82), UINT8_C(  0), UINT8_C( 72), UINT8_C( 16), UINT8_C(  0), UINT8_C(  0), UINT8_C( 12),
      UINT8_C(210), UINT8_C( 76), UINT8_C( 41), UINT8_C( 32), UINT8_C(  0), UINT8_C(  1), UINT8_C(  0), UINT8_C( 65),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C( 97), UINT8_C( 19), UINT8_C( 66), UINT8_C(  0), UINT8_C(  0),
      UINT8_C( 96), UINT8_C(  4), UINT8_C(128), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  9), UINT8_C(  9), UINT8_C( 32), UINT8_C(  0), UINT8_C(  0), UINT8_C(144), UINT8_C( 10), UINT8_C(  0),
      UINT8_C(  0), UINT8_C( 80), UINT8_C(100), UINT8_C( 35), UINT8_C(  0), UINT8_C(  0), UINT8_C( 24), UINT8_C(136),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  5), UINT8_C(  0), UINT8_C(  6), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  8), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(128), UINT8_C(  1),
      UINT8_C( 40), UINT8_C(  0), UINT8_C(229), UINT8_C(180), UINT8_C(  3), UINT8_C( 32), UINT8_C( 16), UINT8_C(  0),
      UINT8_C( 36), UINT8_C(  8), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C( 40), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C( 65), UINT8_C( 80), UINT8_C(  0), UINT8_C(  0), UINT8_C( 12),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  2), UINT8_C(  0), UINT8_C(  0), UINT8_C(204),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  3),
      UINT8_C(  0), UINT8_C(  0), UINT8_C( 16), UINT8_C(  0), UINT8_C(  0), UINT8_C(128), UINT8_C(  0), UINT8_C( 72),
      UINT8_C( 40), UINT8_C(  0), UINT8_C(  0), UINT8_C( 92), UINT8_C( 12), UINT8_C(  3), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  0), UINT8_C( 93), UINT8_C(  0), UINT8_C( 68), UINT8_C(  1), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C( 16), UINT8_C( 28), UINT8_C(  0), UINT8_C( 21), UINT8_C( 10), UINT8_C(  4), UINT8_C(  0), UINT8_C( 66),
      UINT8_C(  0), UINT8_C(112), UINT8_C( 32), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C( 76), UINT8_C( 17), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(102), UINT8_C( 34),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(132), UINT8_C(  0), UINT8_C( 80), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(160), UINT8_C(  0), UINT8_C( 12), UINT8_C(166), UINT8_C(  0), UINT8_C(  0), UINT8_C( 32), UINT8_C(186),
      UINT8_C(  4), UINT8_C( 65), UINT8_C(  0), UINT8_C(  0), UINT8_C( 22), UINT8_C(  0), UINT8_C( 29), UINT8_C(  0),
      UINT8_C(210), UINT8_C( 19), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  0), UINT8_C(  2), UINT8_C( 13),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(100), UINT8_C(  0), UINT8_C(  0), UINT8_C( 18), UINT8_C(  0), UINT8_C(  0),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  1) };

  static uint8_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_svuint8_t
      rv,
      av = simde_svld1_u8(pg, &(a[i])),
      bv = simde_svld1_u8(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(INT8_C(0)));
    rv = simde_svand_u8_z(pv, av, bv);

    simde_svst1_u8(pg, &(r[i]), rv);

    i += simde_svcntb();
    pg = simde_svwhilelt_b8_s32(i, len);
  }

  simde_assert_equal_vu8(len, e, r);

  return 0;
#else
  int8_t p[1024];
  uint8_t a[1024], b[1024], e[1024];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u8_z(pv, av, bv);

    simde_svst1_u8(pg, &(e[i]), ev);
    simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~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_1vu8(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u8_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int8_t p[] =
    {  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(   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(   1), -INT8_C(   1),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),  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(   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), -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(   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(   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(   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(   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(   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(   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(   1),  INT8_C(   0),  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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   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(   1),  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(   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(   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(   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(   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(   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(   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) };
  static const uint8_t a[] =
    { UINT8_C( 53), UINT8_C(128), UINT8_C(218), UINT8_C(105), UINT8_C( 64), UINT8_C( 21), UINT8_C( 96), UINT8_C(155),
      UINT8_C(163), UINT8_C( 30), UINT8_C(200), UINT8_C(105), UINT8_C(130), UINT8_C(106), UINT8_C( 69), UINT8_C( 14),
      UINT8_C( 49), UINT8_C( 22), UINT8_C(128), UINT8_C(  9), UINT8_C( 20), UINT8_C( 97), UINT8_C(148), UINT8_C( 16),
      UINT8_C(111), UINT8_C( 80),    UINT8_MAX, UINT8_C( 88), UINT8_C(183), UINT8_C(184), UINT8_C(222), UINT8_C(236),
      UINT8_C( 56), UINT8_C(184), UINT8_C( 85), UINT8_C(120), UINT8_C(205), UINT8_C(181), UINT8_C( 19), UINT8_C(112),
      UINT8_C(211), UINT8_C(219), UINT8_C(217), UINT8_C( 85), UINT8_C( 69), UINT8_C( 30), UINT8_C( 99), UINT8_C(119),
      UINT8_C( 52), UINT8_C(228), UINT8_C(128), UINT8_C( 72), UINT8_C( 69), UINT8_C( 20), UINT8_C( 88), UINT8_C(180),
      UINT8_C(100), UINT8_C( 87), UINT8_C( 12), UINT8_C( 27), UINT8_C( 15), UINT8_C(234), UINT8_C(  7), UINT8_C( 71),
      UINT8_C(162), UINT8_C( 92), UINT8_C(191), UINT8_C(111), UINT8_C( 17), UINT8_C(210), UINT8_C(223), UINT8_C(228),
      UINT8_C(173), UINT8_C(185), UINT8_C( 57), UINT8_C(243), UINT8_C(215), UINT8_C(156), UINT8_C(106), UINT8_C( 12),
      UINT8_C(128), UINT8_C(234), UINT8_C( 84), UINT8_C(198), UINT8_C(254), UINT8_C(173), UINT8_C(122), UINT8_C( 98),
      UINT8_C(  4), UINT8_C(135), UINT8_C(125), UINT8_C( 20), UINT8_C(113), UINT8_C(132), UINT8_C( 91), UINT8_C( 20),
      UINT8_C(224), UINT8_C( 27), UINT8_C(131), UINT8_C(241), UINT8_C(237), UINT8_C( 99), UINT8_C(213), UINT8_C(155),
      UINT8_C( 28), UINT8_C( 14), UINT8_C(142), UINT8_C(243), UINT8_C(170), UINT8_C(248),    UINT8_MAX, UINT8_C( 43),
      UINT8_C(226), UINT8_C( 84), UINT8_C(241), UINT8_C(224), UINT8_C(  1), UINT8_C(107), UINT8_C( 66), UINT8_C(  5),
      UINT8_C(242), UINT8_C(191), UINT8_C( 25), UINT8_C(100), UINT8_C( 67), UINT8_C(117), UINT8_C(120), UINT8_C( 35),
      UINT8_C(144), UINT8_C(251), UINT8_C( 20), UINT8_C(125), UINT8_C( 94), UINT8_C(233), UINT8_C( 24), UINT8_C(122),
      UINT8_C(247), UINT8_C(166), UINT8_C(110), UINT8_C(161), UINT8_C(158), UINT8_C(109), UINT8_C(204), UINT8_C(128),
      UINT8_C(193), UINT8_C(189), UINT8_C( 96), UINT8_C(194), UINT8_C( 41), UINT8_C(162), UINT8_C(200), UINT8_C( 27),
      UINT8_C( 97), UINT8_C(225), UINT8_C(127), UINT8_C(164), UINT8_C( 86), UINT8_C(247), UINT8_C(199), UINT8_C(230),
      UINT8_C(243), UINT8_C(219), UINT8_C(100), UINT8_C( 81), UINT8_C(196), UINT8_C(124), UINT8_C(204), UINT8_C(187),
      UINT8_C( 35), UINT8_C( 58), UINT8_C( 93), UINT8_C(193), UINT8_C(167), UINT8_C( 41), UINT8_C( 66), UINT8_C(105),
      UINT8_C(231), UINT8_C(162), UINT8_C( 43), UINT8_C( 16), UINT8_C( 69), UINT8_C(243), UINT8_C( 43), UINT8_C(166),
      UINT8_C(213), UINT8_C(171), UINT8_C( 75), UINT8_C( 43), UINT8_C(162), UINT8_C( 18), UINT8_C( 18), UINT8_C(149),
      UINT8_C(238), UINT8_C(118), UINT8_C(231), UINT8_C(178), UINT8_C(242), UINT8_C(179), UINT8_C(110), UINT8_C( 21),
      UINT8_C(237), UINT8_C(203), UINT8_C(215), UINT8_C(148), UINT8_C(244), UINT8_C( 25), UINT8_C(253), UINT8_C(219),
      UINT8_C(187), UINT8_C( 41), UINT8_C(235), UINT8_C(  0), UINT8_C( 28), UINT8_C( 23), UINT8_C(167), UINT8_C(241),
      UINT8_C(194), UINT8_C(242), UINT8_C( 29), UINT8_C(100), UINT8_C(  4), UINT8_C( 47), UINT8_C(250), UINT8_C(242),
      UINT8_C(165), UINT8_C(225), UINT8_C(165), UINT8_C(151), UINT8_C(148), UINT8_C( 19), UINT8_C(173), UINT8_C(129),
      UINT8_C(222), UINT8_C(132), UINT8_C( 21), UINT8_C(210), UINT8_C(157), UINT8_C( 19), UINT8_C(174), UINT8_C( 88),
      UINT8_C( 60), UINT8_C(153), UINT8_C( 89), UINT8_C( 88), UINT8_C(176), UINT8_C(  0), UINT8_C( 74), UINT8_C(114),
      UINT8_C(242), UINT8_C(103), UINT8_C(215), UINT8_C(246), UINT8_C(150), UINT8_C(209), UINT8_C(233), UINT8_C( 59),
      UINT8_C(178), UINT8_C(142), UINT8_C(210), UINT8_C( 70), UINT8_C(161), UINT8_C(127), UINT8_C(199), UINT8_C(127),
      UINT8_C(  3), UINT8_C(220), UINT8_C( 81), UINT8_C(160), UINT8_C(239),    UINT8_MAX, UINT8_C(249), UINT8_C( 43),
      UINT8_C(153), UINT8_C( 82), UINT8_C(132), UINT8_C( 73), UINT8_C( 82), UINT8_C(206), UINT8_C(188), UINT8_C( 68),
      UINT8_C( 53), UINT8_C(147), UINT8_C( 58), UINT8_C(203), UINT8_C(100), UINT8_C( 35), UINT8_C(  6), UINT8_C( 22),
      UINT8_C(177), UINT8_C(216), UINT8_C( 92), UINT8_C( 82), UINT8_C( 88), UINT8_C( 35), UINT8_C(209), UINT8_C( 91),
         UINT8_MAX, UINT8_C( 35), UINT8_C(252), UINT8_C(239), UINT8_C( 34), UINT8_C(245), UINT8_C( 26), UINT8_C(187),
      UINT8_C( 71), UINT8_C(158), UINT8_C(  5), UINT8_C(153), UINT8_C(108), UINT8_C(193), UINT8_C(221), UINT8_C(161),
      UINT8_C( 84), UINT8_C( 23), UINT8_C(108), UINT8_C(184), UINT8_C( 59), UINT8_C(114), UINT8_C(206), UINT8_C(236),
      UINT8_C( 75), UINT8_C( 42), UINT8_C( 63), UINT8_C(163), UINT8_C( 77), UINT8_C( 16), UINT8_C(254), UINT8_C( 76),
      UINT8_C( 51), UINT8_C(250), UINT8_C( 59), UINT8_C( 86), UINT8_C(239), UINT8_C( 86), UINT8_C( 17), UINT8_C( 54),
      UINT8_C(244), UINT8_C( 22), UINT8_C(207), UINT8_C( 97), UINT8_C(215), UINT8_C(172), UINT8_C(  2), UINT8_C( 43),
      UINT8_C(196), UINT8_C(111), UINT8_C(227),    UINT8_MAX, UINT8_C(225), UINT8_C(177), UINT8_C(235), UINT8_C( 44),
      UINT8_C(219), UINT8_C( 42), UINT8_C(207), UINT8_C( 40), UINT8_C( 59), UINT8_C(206), UINT8_C(117), UINT8_C(110),
      UINT8_C(200), UINT8_C(176), UINT8_C(196), UINT8_C(184), UINT8_C(  6), UINT8_C(214), UINT8_C(238), UINT8_C(251),
      UINT8_C(236), UINT8_C(190), UINT8_C( 92), UINT8_C(196), UINT8_C(106), UINT8_C( 94), UINT8_C(239), UINT8_C( 46),
      UINT8_C(205), UINT8_C(211), UINT8_C( 45), UINT8_C(175), UINT8_C(132), UINT8_C( 25), UINT8_C(219), UINT8_C( 96),
      UINT8_C( 67), UINT8_C(171), UINT8_C(136), UINT8_C(126), UINT8_C(121), UINT8_C(253), UINT8_C(237), UINT8_C( 65),
      UINT8_C(174), UINT8_C(177), UINT8_C(249), UINT8_C(180), UINT8_C(135), UINT8_C(232), UINT8_C(175), UINT8_C(116),
      UINT8_C(166), UINT8_C( 11), UINT8_C( 56), UINT8_C( 16), UINT8_C(106), UINT8_C( 39), UINT8_C( 63), UINT8_C( 55),
      UINT8_C(250), UINT8_C(108), UINT8_C(230), UINT8_C(127), UINT8_C(133), UINT8_C(194), UINT8_C(223), UINT8_C(201),
      UINT8_C(109), UINT8_C(103), UINT8_C( 71), UINT8_C(230), UINT8_C(101), UINT8_C( 52), UINT8_C( 39), UINT8_C( 19),
      UINT8_C(230), UINT8_C( 33), UINT8_C(199), UINT8_C(109), UINT8_C(  9), UINT8_C(119), UINT8_C(225), UINT8_C(175),
      UINT8_C(130), UINT8_C( 25), UINT8_C(191), UINT8_C(236), UINT8_C( 65), UINT8_C(254), UINT8_C( 36), UINT8_C( 59),
      UINT8_C(107), UINT8_C( 10), UINT8_C(186), UINT8_C(240), UINT8_C(204), UINT8_C(153), UINT8_C(185), UINT8_C( 57),
      UINT8_C(  1), UINT8_C(  1), UINT8_C( 31), UINT8_C(102), UINT8_C( 53), UINT8_C( 71), UINT8_C(121), UINT8_C( 27),
      UINT8_C(104), UINT8_C( 64), UINT8_C(137), UINT8_C(113), UINT8_C(183), UINT8_C(106), UINT8_C( 32), UINT8_C( 58),
      UINT8_C(132), UINT8_C(223), UINT8_C( 38), UINT8_C(197), UINT8_C(222), UINT8_C( 74), UINT8_C(  0), UINT8_C( 73),
      UINT8_C( 85), UINT8_C(187), UINT8_C( 57), UINT8_C( 33), UINT8_C( 84), UINT8_C(243), UINT8_C( 91), UINT8_C( 85),
      UINT8_C(244), UINT8_C(122), UINT8_C(187), UINT8_C( 41), UINT8_C(193), UINT8_C( 52), UINT8_C( 69), UINT8_C( 41),
      UINT8_C(117), UINT8_C(206), UINT8_C(154), UINT8_C( 44), UINT8_C( 56), UINT8_C(186), UINT8_C(102), UINT8_C(188),
      UINT8_C(154), UINT8_C(141), UINT8_C(129), UINT8_C(120), UINT8_C(215), UINT8_C(130), UINT8_C(193), UINT8_C( 44),
      UINT8_C( 61), UINT8_C(250), UINT8_C( 78), UINT8_C(145), UINT8_C(237), UINT8_C(169), UINT8_C(231), UINT8_C(225),
      UINT8_C( 35), UINT8_C(162), UINT8_C( 11) };
  static const uint8_t b[] =
    { UINT8_C(180), UINT8_C( 46), UINT8_C(174), UINT8_C(  3), UINT8_C(122), UINT8_C(244), UINT8_C( 87), UINT8_C(253),
      UINT8_C(176), UINT8_C( 97), UINT8_C( 29), UINT8_C( 75), UINT8_C(168), UINT8_C(243), UINT8_C(140), UINT8_C( 62),
      UINT8_C( 61), UINT8_C(181), UINT8_C(130), UINT8_C( 53), UINT8_C(218), UINT8_C(237), UINT8_C(  6), UINT8_C(132),
      UINT8_C(233), UINT8_C( 77), UINT8_C(241), UINT8_C(114), UINT8_C( 41), UINT8_C(218), UINT8_C( 32), UINT8_C(221),
      UINT8_C(  8), UINT8_C(206), UINT8_C(225), UINT8_C(130), UINT8_C(194), UINT8_C( 56), UINT8_C(128), UINT8_C(114),
      UINT8_C(154), UINT8_C(157), UINT8_C(190), UINT8_C( 66), UINT8_C(144), UINT8_C( 74), UINT8_C(128), UINT8_C(206),
         UINT8_MAX, UINT8_C(  3), UINT8_C(  3), UINT8_C(218), UINT8_C(240), UINT8_C(  9), UINT8_C( 94), UINT8_C(218),
      UINT8_C( 86), UINT8_C( 79), UINT8_C( 76), UINT8_C(128), UINT8_C( 41), UINT8_C(108), UINT8_C( 93), UINT8_C( 50),
      UINT8_C( 59), UINT8_C( 62), UINT8_C(180), UINT8_C(253), UINT8_C(119), UINT8_C( 52), UINT8_C(112), UINT8_C( 17),
      UINT8_C(209), UINT8_C( 46), UINT8_C( 83), UINT8_C( 98), UINT8_C(120), UINT8_C(211), UINT8_C( 48), UINT8_C(119),
      UINT8_C(214), UINT8_C( 51), UINT8_C( 81), UINT8_C(199), UINT8_C( 60), UINT8_C(175), UINT8_C(161), UINT8_C(147),
         UINT8_MAX, UINT8_C(237), UINT8_C( 19), UINT8_C( 40), UINT8_C( 89), UINT8_C(112), UINT8_C( 90), UINT8_C(148),
      UINT8_C(175), UINT8_C( 15), UINT8_C(146), UINT8_C( 38), UINT8_C( 67), UINT8_C(  2), UINT8_C( 55), UINT8_C( 21),
      UINT8_C( 48), UINT8_C(138), UINT8_C(119), UINT8_C(168), UINT8_C( 93), UINT8_C(167), UINT8_C( 31), UINT8_C( 52),
      UINT8_C(218), UINT8_C(113), UINT8_C(251), UINT8_C( 22), UINT8_C( 32), UINT8_C(156), UINT8_C(169), UINT8_C( 31),
      UINT8_C(137), UINT8_C(188), UINT8_C( 72), UINT8_C(226), UINT8_C( 45), UINT8_C(162), UINT8_C(119), UINT8_C(220),
      UINT8_C(177), UINT8_C(  9), UINT8_C(  2), UINT8_C(245), UINT8_C( 11), UINT8_C( 57), UINT8_C( 10), UINT8_C( 59),
      UINT8_C(195), UINT8_C(129), UINT8_C(227), UINT8_C( 32), UINT8_C( 40), UINT8_C(  2), UINT8_C( 84), UINT8_C(  2),
      UINT8_C(115), UINT8_C( 79), UINT8_C( 24), UINT8_C(148), UINT8_C(235), UINT8_C(194), UINT8_C(179), UINT8_C(116),
      UINT8_C(126), UINT8_C(251), UINT8_C( 87), UINT8_C(171), UINT8_C(158), UINT8_C(206), UINT8_C(135), UINT8_C( 79),
      UINT8_C(215), UINT8_C(137), UINT8_C( 68), UINT8_C(226), UINT8_C(194), UINT8_C( 78), UINT8_C( 29), UINT8_C(133),
      UINT8_C(207), UINT8_C(  0), UINT8_C(166), UINT8_C(247), UINT8_C(  2), UINT8_C(250), UINT8_C(249), UINT8_C(118),
      UINT8_C( 74), UINT8_C( 18), UINT8_C( 10), UINT8_C( 53), UINT8_C(212), UINT8_C(189), UINT8_C(170), UINT8_C( 82),
      UINT8_C(185), UINT8_C(  1), UINT8_C(254), UINT8_C( 87), UINT8_C(207), UINT8_C(133), UINT8_C(166), UINT8_C(166),
      UINT8_C( 15), UINT8_C(235), UINT8_C(136), UINT8_C(209), UINT8_C( 57), UINT8_C(165), UINT8_C( 87), UINT8_C(  9),
      UINT8_C(165), UINT8_C(253), UINT8_C(  0), UINT8_C(167), UINT8_C(247), UINT8_C(250), UINT8_C( 29), UINT8_C( 65),
      UINT8_C( 12), UINT8_C( 39), UINT8_C(119), UINT8_C(224), UINT8_C(229), UINT8_C( 33), UINT8_C( 50), UINT8_C(158),
      UINT8_C( 34), UINT8_C( 48), UINT8_C(245), UINT8_C(241), UINT8_C(182), UINT8_C(155), UINT8_C(151), UINT8_C(197),
      UINT8_C(134), UINT8_C( 31), UINT8_C(150), UINT8_C(192), UINT8_C(196), UINT8_C(237), UINT8_C(201), UINT8_C(105),
      UINT8_C(234), UINT8_C(201), UINT8_C( 16), UINT8_C(226), UINT8_C(195), UINT8_C( 46), UINT8_C( 35), UINT8_C(207),
      UINT8_C( 85), UINT8_C(154), UINT8_C(175), UINT8_C( 58), UINT8_C(187), UINT8_C(226), UINT8_C(216), UINT8_C(221),
      UINT8_C( 18), UINT8_C(205), UINT8_C(206), UINT8_C(200), UINT8_C(105), UINT8_C(101), UINT8_C(141), UINT8_C(239),
      UINT8_C(132), UINT8_C( 36), UINT8_C(175), UINT8_C( 72), UINT8_C( 17), UINT8_C(120), UINT8_C(177), UINT8_C(252),
      UINT8_C( 66), UINT8_C(194), UINT8_C(222), UINT8_C(  5), UINT8_C(240), UINT8_C(  1), UINT8_C(213), UINT8_C( 69),
      UINT8_C(156), UINT8_C(132), UINT8_C(128), UINT8_C( 87), UINT8_C(102), UINT8_C( 88), UINT8_C( 53), UINT8_C(121),
      UINT8_C( 38), UINT8_C(  3), UINT8_C( 65), UINT8_C(143), UINT8_C(105), UINT8_C(207), UINT8_C(126), UINT8_C(237),
      UINT8_C(243), UINT8_C( 46), UINT8_C( 54), UINT8_C(  4), UINT8_C(166), UINT8_C(231), UINT8_C(  0), UINT8_C(232),
      UINT8_C(169), UINT8_C(222), UINT8_C(238), UINT8_C(153), UINT8_C(224), UINT8_C(195), UINT8_C(223), UINT8_C(124),
      UINT8_C( 71), UINT8_C( 95), UINT8_C(211), UINT8_C(174), UINT8_C(183), UINT8_C(  8), UINT8_C( 39), UINT8_C(221),
      UINT8_C( 12), UINT8_C(104), UINT8_C(108), UINT8_C(117), UINT8_C( 55), UINT8_C(235), UINT8_C( 98), UINT8_C( 42),
      UINT8_C( 25), UINT8_C(152), UINT8_C( 47), UINT8_C(191), UINT8_C(128), UINT8_C( 47), UINT8_C(168), UINT8_C( 41),
      UINT8_C( 14), UINT8_C(150), UINT8_C(195), UINT8_C(238), UINT8_C( 89), UINT8_C(162), UINT8_C(106), UINT8_C(160),
      UINT8_C(  1), UINT8_C( 61), UINT8_C( 78), UINT8_C(184), UINT8_C( 70), UINT8_C(117), UINT8_C(150), UINT8_C( 82),
      UINT8_C(222), UINT8_C(  2), UINT8_C(199), UINT8_C( 21), UINT8_C(237), UINT8_C( 41), UINT8_C( 64), UINT8_C(  6),
      UINT8_C(194), UINT8_C(111), UINT8_C(198), UINT8_C( 66), UINT8_C(158), UINT8_C(110), UINT8_C(107), UINT8_C(172),
      UINT8_C(  4), UINT8_C( 46), UINT8_C(154), UINT8_C( 93), UINT8_C(208), UINT8_C(  4), UINT8_C(253), UINT8_C(209),
      UINT8_C( 66), UINT8_C( 76), UINT8_C(138), UINT8_C(136), UINT8_C(193), UINT8_C( 32), UINT8_C(218), UINT8_C(159),
      UINT8_C( 34), UINT8_C(161), UINT8_C(181), UINT8_C( 16), UINT8_C(202), UINT8_C(245), UINT8_C( 22), UINT8_C(140),
      UINT8_C(100), UINT8_C(220), UINT8_C(206), UINT8_C(  2), UINT8_C( 74), UINT8_C( 58), UINT8_C(175), UINT8_C( 78),
      UINT8_C(104), UINT8_C( 73), UINT8_C(171), UINT8_C( 57), UINT8_C( 78), UINT8_C(169), UINT8_C( 10), UINT8_C(144),
      UINT8_C(245), UINT8_C(148), UINT8_C( 24), UINT8_C(182), UINT8_C(180), UINT8_C(242), UINT8_C( 86), UINT8_C(215),
      UINT8_C(147), UINT8_C( 11), UINT8_C(231), UINT8_C( 93), UINT8_C(  0), UINT8_C(253), UINT8_C(234), UINT8_C(100),
      UINT8_C(218), UINT8_C(184), UINT8_C(102), UINT8_C( 36), UINT8_C(242), UINT8_C( 21), UINT8_C(115), UINT8_C( 91),
      UINT8_C( 95), UINT8_C( 30), UINT8_C(148), UINT8_C(173), UINT8_C(199), UINT8_C(158), UINT8_C( 61), UINT8_C(188),
      UINT8_C( 51), UINT8_C( 85), UINT8_C(115), UINT8_C(231), UINT8_C( 71), UINT8_C(201), UINT8_C(190), UINT8_C(218),
      UINT8_C(212), UINT8_C(165), UINT8_C( 55), UINT8_C(212), UINT8_C(163), UINT8_C( 33), UINT8_C( 56), UINT8_C(125),
      UINT8_C(218), UINT8_C(158), UINT8_C(161), UINT8_C(204), UINT8_C(180), UINT8_C( 20), UINT8_C( 39), UINT8_C( 19),
      UINT8_C( 51), UINT8_C(187), UINT8_C(192), UINT8_C(250), UINT8_C( 90), UINT8_C(253), UINT8_C(183), UINT8_C(141),
      UINT8_C( 82), UINT8_C( 42), UINT8_C(116), UINT8_C(153), UINT8_C(243), UINT8_C( 51), UINT8_C(115), UINT8_C(199),
      UINT8_C(216), UINT8_C(170), UINT8_C(155), UINT8_C(123), UINT8_C(204), UINT8_C(211), UINT8_C(248), UINT8_C(166),
      UINT8_C(113), UINT8_C(154), UINT8_C(114), UINT8_C( 37), UINT8_C(174), UINT8_C(154), UINT8_C( 56), UINT8_C(225),
      UINT8_C( 85), UINT8_C(248), UINT8_C(220), UINT8_C(175), UINT8_C(245), UINT8_C(147), UINT8_C( 60), UINT8_C( 71),
      UINT8_C(189), UINT8_C(177), UINT8_C(224), UINT8_C(176), UINT8_C(228), UINT8_C( 83), UINT8_C(119), UINT8_C(188),
      UINT8_C(254), UINT8_C( 18), UINT8_C( 56), UINT8_C(202), UINT8_C(229), UINT8_C( 48), UINT8_C(112), UINT8_C( 86),
      UINT8_C(202), UINT8_C(226), UINT8_C(124) };
  static const uint8_t e[] =
    { UINT8_C( 53), UINT8_C(128), UINT8_C(138), UINT8_C(  1), UINT8_C( 64), UINT8_C( 21), UINT8_C( 96), UINT8_C(153),
      UINT8_C(160), UINT8_C( 30), UINT8_C(200), UINT8_C(105), UINT8_C(128), UINT8_C(106), UINT8_C( 69), UINT8_C( 14),
      UINT8_C( 49), UINT8_C( 20), UINT8_C(128), UINT8_C(  1), UINT8_C( 20), UINT8_C( 97), UINT8_C(148), UINT8_C(  0),
      UINT8_C(105), UINT8_C( 80), UINT8_C(241), UINT8_C( 80), UINT8_C(183), UINT8_C(152), UINT8_C(222), UINT8_C(204),
      UINT8_C( 56), UINT8_C(184), UINT8_C( 85), UINT8_C(120), UINT8_C(192), UINT8_C(181), UINT8_C(  0), UINT8_C(112),
      UINT8_C(146), UINT8_C(219), UINT8_C(152), UINT8_C( 64), UINT8_C( 69), UINT8_C( 30), UINT8_C( 99), UINT8_C( 70),
      UINT8_C( 52), UINT8_C(  0), UINT8_C(  0), UINT8_C( 72), UINT8_C( 69), UINT8_C( 20), UINT8_C( 88), UINT8_C(144),
      UINT8_C(100), UINT8_C( 71), UINT8_C( 12), UINT8_C(  0), UINT8_C( 15), UINT8_C(104), UINT8_C(  5), UINT8_C( 71),
      UINT8_C( 34), UINT8_C( 28), UINT8_C(191), UINT8_C(111), UINT8_C( 17), UINT8_C(210), UINT8_C( 80), UINT8_C(  0),
      UINT8_C(173), UINT8_C(185), UINT8_C( 57), UINT8_C(243), UINT8_C( 80), UINT8_C(144), UINT8_C(106), UINT8_C( 12),
      UINT8_C(128), UINT8_C( 34), UINT8_C( 84), UINT8_C(198), UINT8_C(254), UINT8_C(173), UINT8_C(122), UINT8_C(  2),
      UINT8_C(  4), UINT8_C(133), UINT8_C(125), UINT8_C( 20), UINT8_C(113), UINT8_C(132), UINT8_C( 91), UINT8_C( 20),
      UINT8_C(160), UINT8_C( 11), UINT8_C(131), UINT8_C( 32), UINT8_C( 65), UINT8_C( 99), UINT8_C( 21), UINT8_C(155),
      UINT8_C( 16), UINT8_C( 14), UINT8_C(142), UINT8_C(243), UINT8_C(170), UINT8_C(160),    UINT8_MAX, UINT8_C( 32),
      UINT8_C(194), UINT8_C( 80), UINT8_C(241), UINT8_C(  0), UINT8_C(  0), UINT8_C(107), UINT8_C( 66), UINT8_C(  5),
      UINT8_C(128), UINT8_C(188), UINT8_C(  8), UINT8_C( 96), UINT8_C(  1), UINT8_C(117), UINT8_C(112), UINT8_C(  0),
      UINT8_C(144), UINT8_C(  9), UINT8_C(  0), UINT8_C(117), UINT8_C( 10), UINT8_C( 41), UINT8_C( 24), UINT8_C(122),
      UINT8_C(195), UINT8_C(128), UINT8_C( 98), UINT8_C(161), UINT8_C(158), UINT8_C(109), UINT8_C(204), UINT8_C(  0),
      UINT8_C( 65), UINT8_C( 13), UINT8_C(  0), UINT8_C(194), UINT8_C( 41), UINT8_C(162), UINT8_C(200), UINT8_C( 16),
      UINT8_C( 97), UINT8_C(225), UINT8_C(127), UINT8_C(164), UINT8_C( 86), UINT8_C(198), UINT8_C(135), UINT8_C(230),
      UINT8_C(211), UINT8_C(137), UINT8_C( 68), UINT8_C( 64), UINT8_C(196), UINT8_C(124), UINT8_C(204), UINT8_C(187),
      UINT8_C(  3), UINT8_C(  0), UINT8_C( 93), UINT8_C(193), UINT8_C(  2), UINT8_C( 41), UINT8_C( 64), UINT8_C(105),
      UINT8_C( 66), UINT8_C(  2), UINT8_C( 10), UINT8_C( 16), UINT8_C( 68), UINT8_C(177), UINT8_C( 43), UINT8_C(  2),
      UINT8_C(145), UINT8_C(  1), UINT8_C( 74), UINT8_C(  3), UINT8_C(162), UINT8_C(  0), UINT8_C(  2), UINT8_C(132),
      UINT8_C(238), UINT8_C( 98), UINT8_C(231), UINT8_C(178), UINT8_C( 48), UINT8_C(179), UINT8_C( 70), UINT8_C(  1),
      UINT8_C(237), UINT8_C(201), UINT8_C(215), UINT8_C(132), UINT8_C(244), UINT8_C( 25), UINT8_C(253), UINT8_C( 65),
      UINT8_C(187), UINT8_C( 41), UINT8_C( 99), UINT8_C(  0), UINT8_C(  4), UINT8_C(  1), UINT8_C( 34), UINT8_C(144),
      UINT8_C(194), UINT8_C( 48), UINT8_C( 29), UINT8_C( 96), UINT8_C(  4), UINT8_C( 47), UINT8_C(146), UINT8_C(192),
      UINT8_C(132), UINT8_C(225), UINT8_C(165), UINT8_C(128), UINT8_C(132), UINT8_C(  1), UINT8_C(173), UINT8_C(  1),
      UINT8_C(202), UINT8_C(128), UINT8_C( 16), UINT8_C(194), UINT8_C(129), UINT8_C(  2), UINT8_C(174), UINT8_C( 72),
      UINT8_C( 20), UINT8_C(152), UINT8_C(  9), UINT8_C( 24), UINT8_C(176), UINT8_C(  0), UINT8_C( 74), UINT8_C(114),
      UINT8_C(242), UINT8_C( 69), UINT8_C(198), UINT8_C(192), UINT8_C(  0), UINT8_C( 65), UINT8_C(137), UINT8_C( 43),
      UINT8_C(128), UINT8_C(142), UINT8_C(210), UINT8_C( 70), UINT8_C(161), UINT8_C(127), UINT8_C(199), UINT8_C(124),
      UINT8_C(  2), UINT8_C(192), UINT8_C( 80), UINT8_C(  0), UINT8_C(239), UINT8_C(  1), UINT8_C(209), UINT8_C( 43),
      UINT8_C(152), UINT8_C(  0), UINT8_C(128), UINT8_C( 65), UINT8_C( 82), UINT8_C(206), UINT8_C( 52), UINT8_C( 64),
      UINT8_C( 36), UINT8_C(  3), UINT8_C(  0), UINT8_C(139), UINT8_C( 96), UINT8_C(  3), UINT8_C(  6), UINT8_C( 22),
      UINT8_C(177), UINT8_C(216), UINT8_C( 20), UINT8_C( 82), UINT8_C( 88), UINT8_C( 35), UINT8_C(209), UINT8_C( 91),
      UINT8_C(169), UINT8_C(  2), UINT8_C(252), UINT8_C(137), UINT8_C( 32), UINT8_C(245), UINT8_C( 26), UINT8_C( 56),
      UINT8_C( 71), UINT8_C( 30), UINT8_C(  5), UINT8_C(153), UINT8_C(108), UINT8_C(193), UINT8_C(  5), UINT8_C(129),
      UINT8_C( 84), UINT8_C(  0), UINT8_C(108), UINT8_C( 48), UINT8_C( 59), UINT8_C(114), UINT8_C( 66), UINT8_C( 40),
      UINT8_C( 75), UINT8_C(  8), UINT8_C( 63), UINT8_C(163), UINT8_C(  0), UINT8_C( 16), UINT8_C(254), UINT8_C( 76),
      UINT8_C(  2), UINT8_C(146), UINT8_C( 59), UINT8_C( 70), UINT8_C( 73), UINT8_C( 86), UINT8_C( 17), UINT8_C( 54),
      UINT8_C(244), UINT8_C( 22), UINT8_C( 78), UINT8_C( 97), UINT8_C(215), UINT8_C(172), UINT8_C(  2), UINT8_C(  2),
      UINT8_C(196), UINT8_C(111), UINT8_C(227),    UINT8_MAX, UINT8_C(225), UINT8_C(177), UINT8_C( 64), UINT8_C(  4),
      UINT8_C(194), UINT8_C( 42), UINT8_C(198), UINT8_C( 40), UINT8_C( 59), UINT8_C(206), UINT8_C( 97), UINT8_C(110),
      UINT8_C(  0), UINT8_C( 32), UINT8_C(128), UINT8_C(184), UINT8_C(  0), UINT8_C(  4), UINT8_C(236), UINT8_C(209),
      UINT8_C(236), UINT8_C(190), UINT8_C(  8), UINT8_C(128), UINT8_C( 64), UINT8_C(  0), UINT8_C(239), UINT8_C( 14),
      UINT8_C(  0), UINT8_C(211), UINT8_C( 37), UINT8_C(175), UINT8_C(128), UINT8_C( 17), UINT8_C(219), UINT8_C( 96),
      UINT8_C( 64), UINT8_C(171), UINT8_C(136), UINT8_C(126), UINT8_C(121), UINT8_C(253), UINT8_C(173), UINT8_C( 65),
      UINT8_C(174), UINT8_C(177), UINT8_C(169), UINT8_C( 48), UINT8_C(135), UINT8_C(168), UINT8_C( 10), UINT8_C(116),
      UINT8_C(166), UINT8_C(  0), UINT8_C( 56), UINT8_C( 16), UINT8_C( 32), UINT8_C( 39), UINT8_C( 22), UINT8_C( 23),
      UINT8_C(146), UINT8_C(  8), UINT8_C(230), UINT8_C(127), UINT8_C(  0), UINT8_C(194), UINT8_C(202), UINT8_C(201),
      UINT8_C(109), UINT8_C( 32), UINT8_C( 70), UINT8_C( 36), UINT8_C(101), UINT8_C( 52), UINT8_C( 35), UINT8_C( 19),
      UINT8_C( 70), UINT8_C( 33), UINT8_C(199), UINT8_C( 45), UINT8_C(  1), UINT8_C( 22), UINT8_C(225), UINT8_C(172),
      UINT8_C(  2), UINT8_C( 25), UINT8_C( 51), UINT8_C(236), UINT8_C( 65), UINT8_C(254), UINT8_C( 36), UINT8_C( 26),
      UINT8_C(107), UINT8_C(  0), UINT8_C(186), UINT8_C(208), UINT8_C(128), UINT8_C(  1), UINT8_C(185), UINT8_C( 57),
      UINT8_C(  0), UINT8_C(  0), UINT8_C(  1), UINT8_C( 68), UINT8_C( 53), UINT8_C( 71), UINT8_C( 33), UINT8_C( 19),
      UINT8_C( 32), UINT8_C(  0), UINT8_C(128), UINT8_C(113), UINT8_C( 18), UINT8_C(106), UINT8_C( 32), UINT8_C( 58),
      UINT8_C(  0), UINT8_C( 10), UINT8_C( 36), UINT8_C(197), UINT8_C(222), UINT8_C( 74), UINT8_C(  0), UINT8_C( 73),
      UINT8_C( 85), UINT8_C(187), UINT8_C( 57), UINT8_C( 33), UINT8_C( 84), UINT8_C(243), UINT8_C( 88), UINT8_C(  4),
      UINT8_C(244), UINT8_C( 26), UINT8_C( 50), UINT8_C( 41), UINT8_C(128), UINT8_C( 52), UINT8_C( 69), UINT8_C( 41),
      UINT8_C(117), UINT8_C(206), UINT8_C(152), UINT8_C( 44), UINT8_C( 56), UINT8_C(146), UINT8_C( 36), UINT8_C(  4),
      UINT8_C(152), UINT8_C(141), UINT8_C(129), UINT8_C(120), UINT8_C(196), UINT8_C(130), UINT8_C( 65), UINT8_C( 44),
      UINT8_C( 60), UINT8_C( 18), UINT8_C(  8), UINT8_C(128), UINT8_C(237), UINT8_C( 32), UINT8_C( 96), UINT8_C(225),
      UINT8_C(  2), UINT8_C(162), UINT8_C(  8) };

  static uint8_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_svuint8_t
      rv,
      av = simde_svld1_u8(pg, &(a[i])),
      bv = simde_svld1_u8(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s8(pg, simde_svld1_s8(pg, &(p[i])), simde_svdup_n_s8(INT8_C(0)));
    rv = simde_svand_u8_m(pv, av, bv);

    simde_svst1_u8(pg, &(r[i]), rv);

    i += simde_svcntb();
    pg = simde_svwhilelt_b8_s32(i, len);
  }

  simde_assert_equal_vu8(len, e, r);

  return 0;
#else
  int8_t p[1024];
  uint8_t a[1024], b[1024], e[1024];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u8_m(pv, av, bv);

    simde_svst1_u8(pg, &(e[i]), ev);
    simde_svst1_s8(pg, &(p[i]), simde_svdup_n_s8_z(pv, ~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_1vu8(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u16_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int16_t p[] =
    {  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(     1), -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(     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(     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(     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(     1),
      -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(     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(     1), -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(     0), -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(     1),
      -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(     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(     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(     1), -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(     1), -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(     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(     0), -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(     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(     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(     1), -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(     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(     1),  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(     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(     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(     1), -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(     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(     0), -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(     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(     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(     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(     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(     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(     1), -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(     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(     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(     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(     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(     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(     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(     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(     1),  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(     1),  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(     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(     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(     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(     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(     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(     1), -INT16_C(     1), -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(     0) };
  static const uint16_t a[] =
    { UINT16_C(48100), UINT16_C(51403), UINT16_C(42270), UINT16_C(15498), UINT16_C(29479), UINT16_C(48081), UINT16_C( 6594), UINT16_C(23381),
      UINT16_C(21916), UINT16_C( 6169), UINT16_C(36167), UINT16_C(20144), UINT16_C(57458), UINT16_C(19199), UINT16_C(25257), UINT16_C(36158),
      UINT16_C( 2333), UINT16_C(15189), UINT16_C(57519), UINT16_C(54904), UINT16_C(18771), UINT16_C( 5521), UINT16_C(59235), UINT16_C(65392),
      UINT16_C(35132), UINT16_C(33559), UINT16_C(50966), UINT16_C(35025), UINT16_C(53415), UINT16_C(20690), UINT16_C( 4146), UINT16_C(20446),
      UINT16_C(13082), UINT16_C(51594), UINT16_C(  531), UINT16_C(26527), UINT16_C(12620), UINT16_C(44924), UINT16_C(60696), UINT16_C(21678),
      UINT16_C(50550), UINT16_C(36311), UINT16_C(43149), UINT16_C(13333), UINT16_C(59512), UINT16_C(43653), UINT16_C(25592), UINT16_C( 4857),
      UINT16_C(33686), UINT16_C(43739), UINT16_C(31622), UINT16_C(53777), UINT16_C(36268), UINT16_C(50305), UINT16_C(12154), UINT16_C(61720),
      UINT16_C(61428), UINT16_C(33150), UINT16_C(37783), UINT16_C( 4022), UINT16_C(15227), UINT16_C(29881), UINT16_C(45726), UINT16_C(13446),
      UINT16_C(25141), UINT16_C(48094), UINT16_C(61405), UINT16_C(35213), UINT16_C( 3709), UINT16_C(63309), UINT16_C(25917), UINT16_C(13032),
      UINT16_C(26196), UINT16_C(60339), UINT16_C(27130), UINT16_C(30202), UINT16_C(45988), UINT16_C(17129), UINT16_C(28773), UINT16_C(39543),
      UINT16_C(21970), UINT16_C(44886), UINT16_C(58181), UINT16_C(49720), UINT16_C(34290), UINT16_C(12217), UINT16_C(41706), UINT16_C(15969),
      UINT16_C( 5384), UINT16_C(  553), UINT16_C( 9086), UINT16_C( 9080), UINT16_C(25046), UINT16_C(15205), UINT16_C(56529), UINT16_C(41941),
      UINT16_C(11058), UINT16_C(30546), UINT16_C(35343), UINT16_C(  313), UINT16_C(61967), UINT16_C(63792), UINT16_C(37524), UINT16_C(40247),
      UINT16_C(24743), UINT16_C( 9631), UINT16_C( 6019), UINT16_C(22856), UINT16_C(44665), UINT16_C(19092), UINT16_C(27274), UINT16_C(48366),
      UINT16_C(16533), UINT16_C(42035), UINT16_C(27851), UINT16_C(55973), UINT16_C(54879), UINT16_C(62420), UINT16_C( 2920), UINT16_C( 3984),
      UINT16_C(12396), UINT16_C(61236), UINT16_C(32071), UINT16_C(49225), UINT16_C(56619), UINT16_C(46347), UINT16_C(63815), UINT16_C(56690),
      UINT16_C(42297), UINT16_C( 1153), UINT16_C(10002), UINT16_C(29151), UINT16_C(46077), UINT16_C(25956), UINT16_C(62910), UINT16_C(10868),
      UINT16_C(43045), UINT16_C(27674), UINT16_C(25381), UINT16_C(20525), UINT16_C(14400), UINT16_C(34822), UINT16_C(30769), UINT16_C(27237),
      UINT16_C(58909), UINT16_C(12143), UINT16_C(19981), UINT16_C( 2720), UINT16_C( 1281), UINT16_C(49007), UINT16_C(58362), UINT16_C( 8170),
      UINT16_C( 1164), UINT16_C(45451), UINT16_C(47207), UINT16_C(42754), UINT16_C( 2288), UINT16_C( 8495), UINT16_C(38016), UINT16_C(40332),
      UINT16_C(64379), UINT16_C(35021), UINT16_C(27977), UINT16_C(19091), UINT16_C(  626), UINT16_C(27657), UINT16_C(62438), UINT16_C(29323),
      UINT16_C( 6135), UINT16_C(24099), UINT16_C( 9679), UINT16_C(49158), UINT16_C(13613), UINT16_C(44513), UINT16_C(28106), UINT16_C(17739),
      UINT16_C( 6248), UINT16_C(45517), UINT16_C(24709), UINT16_C(63739), UINT16_C( 1379), UINT16_C(18788), UINT16_C(61688), UINT16_C(61627),
      UINT16_C(56839), UINT16_C(54862), UINT16_C(21508), UINT16_C(12694), UINT16_C(30858), UINT16_C(21727), UINT16_C(10981), UINT16_C(20121),
      UINT16_C(26178), UINT16_C(51199), UINT16_C(64455), UINT16_C(10943), UINT16_C( 9216), UINT16_C(63603), UINT16_C(11796), UINT16_C( 7144),
      UINT16_C(14092), UINT16_C( 4337), UINT16_C(34955), UINT16_C( 5442), UINT16_C( 8448), UINT16_C(58729), UINT16_C(  587), UINT16_C(36147),
      UINT16_C(13161), UINT16_C(12372), UINT16_C( 5166), UINT16_C(11866), UINT16_C(52536), UINT16_C(19494), UINT16_C( 4091), UINT16_C( 1895),
      UINT16_C(22598), UINT16_C(53528), UINT16_C(23264), UINT16_C(57575), UINT16_C(20603), UINT16_C(50886), UINT16_C(63827), UINT16_C(48211),
      UINT16_C(42796), UINT16_C(23276), UINT16_C(18107), UINT16_C(62344), UINT16_C(44819), UINT16_C( 3647), UINT16_C(42686), UINT16_C( 1045),
      UINT16_C(11775), UINT16_C(57301), UINT16_C(48263), UINT16_C(  704), UINT16_C(34317), UINT16_C(24776), UINT16_C( 7039), UINT16_C(44060),
      UINT16_C( 2243), UINT16_C(32262), UINT16_C(36686), UINT16_C(24946), UINT16_C(45374), UINT16_C(64623), UINT16_C(33880), UINT16_C(22272),
      UINT16_C(54706), UINT16_C(14646), UINT16_C(63122), UINT16_C(40764), UINT16_C( 1148), UINT16_C(64767), UINT16_C( 6944), UINT16_C(58280),
      UINT16_C(44579), UINT16_C(29025), UINT16_C(54077), UINT16_C(31698), UINT16_C(16773), UINT16_C(56695), UINT16_C(30661), UINT16_C(30516),
      UINT16_C(27213), UINT16_C(57265), UINT16_C(60769), UINT16_C(56702), UINT16_C(32241), UINT16_C( 4569), UINT16_C(33176), UINT16_C(48116),
      UINT16_C(22064), UINT16_C(27948), UINT16_C(65065), UINT16_C(44777), UINT16_C(24639), UINT16_C( 1163), UINT16_C(49112), UINT16_C( 9596),
      UINT16_C(11562), UINT16_C(35588), UINT16_C(33306), UINT16_C( 2920), UINT16_C(17151), UINT16_C(38685), UINT16_C( 4547), UINT16_C(62290),
      UINT16_C(32359), UINT16_C(37217), UINT16_C(19068), UINT16_C(47935), UINT16_C(52138), UINT16_C(33471), UINT16_C(15242), UINT16_C(46247),
      UINT16_C(43880), UINT16_C(33343), UINT16_C(43053), UINT16_C(11406), UINT16_C(44010), UINT16_C(44483), UINT16_C( 5564), UINT16_C( 9377),
      UINT16_C(  659), UINT16_C( 4021), UINT16_C(62540), UINT16_C(63178), UINT16_C(35519), UINT16_C(19065), UINT16_C( 8389), UINT16_C(12030),
      UINT16_C(16076), UINT16_C(63920), UINT16_C(16102), UINT16_C(53286), UINT16_C(59881), UINT16_C(42621), UINT16_C( 7935), UINT16_C(37578),
      UINT16_C(32544), UINT16_C(27810), UINT16_C(27763), UINT16_C(13155), UINT16_C(56566), UINT16_C(48253), UINT16_C(31740), UINT16_C(51434),
      UINT16_C(39609), UINT16_C(40898), UINT16_C(59609), UINT16_C(49775), UINT16_C(60881), UINT16_C(53352), UINT16_C(12811), UINT16_C(11363),
      UINT16_C( 1457), UINT16_C( 9624), UINT16_C(64369), UINT16_C(26712), UINT16_C(54743), UINT16_C(54308), UINT16_C( 3664), UINT16_C( 2716),
      UINT16_C(24232), UINT16_C(33193), UINT16_C( 6470), UINT16_C( 6212), UINT16_C(44038), UINT16_C( 4584), UINT16_C(19423), UINT16_C(36925),
      UINT16_C(54864), UINT16_C(49845), UINT16_C( 3537), UINT16_C(43306), UINT16_C(20194), UINT16_C(13181), UINT16_C( 6492), UINT16_C( 1085),
      UINT16_C(59000), UINT16_C(48774), UINT16_C(51967), UINT16_C( 1494), UINT16_C(49014), UINT16_C(21783), UINT16_C(21514), UINT16_C(23526),
      UINT16_C(39722), UINT16_C(64541), UINT16_C(18345), UINT16_C(35749), UINT16_C( 8853), UINT16_C(61886), UINT16_C(64315), UINT16_C(46069),
      UINT16_C(31714), UINT16_C(57714), UINT16_C(18501), UINT16_C(48359), UINT16_C(65031), UINT16_C( 4625), UINT16_C(63314), UINT16_C(32109),
      UINT16_C(35475), UINT16_C(15481), UINT16_C( 7889), UINT16_C(26311), UINT16_C(34368), UINT16_C(31575), UINT16_C(19585), UINT16_C(25391),
      UINT16_C(41416), UINT16_C( 3397), UINT16_C(11497), UINT16_C(61897), UINT16_C(56106), UINT16_C(31747), UINT16_C(28882), UINT16_C(26105),
      UINT16_C(29434), UINT16_C(52129), UINT16_C(27024), UINT16_C(53297), UINT16_C(35055), UINT16_C(28748), UINT16_C(31700), UINT16_C(40148),
      UINT16_C( 6428), UINT16_C( 1450), UINT16_C(29509), UINT16_C(28662), UINT16_C(63822), UINT16_C( 8683), UINT16_C(58729), UINT16_C(25478),
      UINT16_C(10327), UINT16_C(59438), UINT16_C(24465), UINT16_C(32952), UINT16_C( 1255), UINT16_C(48368), UINT16_C(50303), UINT16_C(39768),
      UINT16_C(  733), UINT16_C( 8865), UINT16_C(38774), UINT16_C(50321), UINT16_C(32145), UINT16_C(64229), UINT16_C(27746), UINT16_C(47454),
      UINT16_C(35988), UINT16_C( 9633), UINT16_C(23276), UINT16_C(54181), UINT16_C(38238), UINT16_C(56975), UINT16_C(59482), UINT16_C(14201),
      UINT16_C( 6890), UINT16_C(24666), UINT16_C(60338), UINT16_C(17189), UINT16_C( 2664), UINT16_C(51773), UINT16_C(39798), UINT16_C( 2692),
      UINT16_C( 9512), UINT16_C( 5167), UINT16_C(54399), UINT16_C(57063), UINT16_C(30570), UINT16_C(50364), UINT16_C(13663), UINT16_C(18939),
      UINT16_C(21840), UINT16_C(  682), UINT16_C(53057), UINT16_C(43333), UINT16_C(33497), UINT16_C(20596), UINT16_C(63518), UINT16_C(18010),
      UINT16_C(35357), UINT16_C(40282), UINT16_C(16734), UINT16_C(51323), UINT16_C(14264), UINT16_C( 6028), UINT16_C(34924), UINT16_C(48225),
      UINT16_C( 3037), UINT16_C( 7870), UINT16_C(  986), UINT16_C(46024), UINT16_C(15494), UINT16_C(41987), UINT16_C(24116), UINT16_C(20970),
      UINT16_C(17640), UINT16_C(18158), UINT16_C(27013), UINT16_C(15887), UINT16_C(39840), UINT16_C( 3413), UINT16_C(46627), UINT16_C(  457),
      UINT16_C(35009), UINT16_C(39711), UINT16_C(59275), UINT16_C( 4431), UINT16_C(21027) };
  static const uint16_t b[] =
    { UINT16_C(55664), UINT16_C(28990), UINT16_C(58823), UINT16_C(20755), UINT16_C(49634), UINT16_C(38398), UINT16_C(44089), UINT16_C(14601),
      UINT16_C( 6521), UINT16_C(11973), UINT16_C(25208), UINT16_C(10759), UINT16_C(14260), UINT16_C(42636), UINT16_C(34320), UINT16_C(32892),
      UINT16_C(47712), UINT16_C(10226), UINT16_C( 1440), UINT16_C(33400), UINT16_C(30406), UINT16_C(   23), UINT16_C( 8226), UINT16_C(39993),
      UINT16_C(65082), UINT16_C(45770), UINT16_C(53600), UINT16_C( 5596), UINT16_C(26632), UINT16_C( 6331), UINT16_C(14319), UINT16_C(20377),
      UINT16_C(35826), UINT16_C(37494), UINT16_C(61328), UINT16_C(22036), UINT16_C(11109), UINT16_C(34902), UINT16_C(36939), UINT16_C(34084),
      UINT16_C(61070), UINT16_C(61240), UINT16_C( 5312), UINT16_C(51204), UINT16_C(49021), UINT16_C(27873), UINT16_C(31479), UINT16_C(59835),
      UINT16_C(12549), UINT16_C(38267), UINT16_C(36640), UINT16_C(34539), UINT16_C(17082), UINT16_C( 1294), UINT16_C(13010), UINT16_C(24715),
      UINT16_C(49952), UINT16_C(57423), UINT16_C(21463), UINT16_C(21673), UINT16_C(35347), UINT16_C( 2752), UINT16_C(31492), UINT16_C( 2547),
      UINT16_C(28333), UINT16_C(52638), UINT16_C(35325), UINT16_C(46931), UINT16_C(25035), UINT16_C(40380), UINT16_C(18323), UINT16_C(46334),
      UINT16_C(19722), UINT16_C(58004), UINT16_C(15777), UINT16_C(46134), UINT16_C(63431), UINT16_C(52158), UINT16_C(45426), UINT16_C( 8148),
      UINT16_C(29215), UINT16_C( 7405), UINT16_C(16636), UINT16_C(51155), UINT16_C(36770), UINT16_C(13669), UINT16_C(25559), UINT16_C(57833),
      UINT16_C(32432), UINT16_C(20931), UINT16_C(64187), UINT16_C(33541), UINT16_C(50161), UINT16_C(25422), UINT16_C( 9076), UINT16_C(37763),
      UINT16_C(28821), UINT16_C(37295), UINT16_C(33456), UINT16_C(21081), UINT16_C(48658), UINT16_C(59784), UINT16_C(28961), UINT16_C(53706),
      UINT16_C(36591), UINT16_C(43811), UINT16_C(10376), UINT16_C(31022), UINT16_C(31980), UINT16_C(24796), UINT16_C(24479), UINT16_C(13812),
      UINT16_C(41935), UINT16_C(32966), UINT16_C( 7974), UINT16_C(14546), UINT16_C(23261), UINT16_C(65057), UINT16_C(60364), UINT16_C(48080),
      UINT16_C(62329), UINT16_C(  358), UINT16_C(37915), UINT16_C( 1914), UINT16_C(22289), UINT16_C(45160), UINT16_C(23734), UINT16_C(34533),
      UINT16_C(44287), UINT16_C( 9478), UINT16_C(55499), UINT16_C(43357), UINT16_C(32307), UINT16_C(65447), UINT16_C(30570), UINT16_C(58298),
      UINT16_C( 8554), UINT16_C(34533), UINT16_C(24501), UINT16_C(50829), UINT16_C(62902), UINT16_C(28023), UINT16_C(23633), UINT16_C(20979),
      UINT16_C(63752), UINT16_C(54390), UINT16_C(54481), UINT16_C( 1149), UINT16_C( 9298), UINT16_C(48131), UINT16_C(48796), UINT16_C( 1696),
      UINT16_C(34271), UINT16_C(38028), UINT16_C( 6884), UINT16_C(39771), UINT16_C(53775), UINT16_C(24840), UINT16_C(64302), UINT16_C(14258),
      UINT16_C(10484), UINT16_C(50443), UINT16_C(35068), UINT16_C(20426), UINT16_C(52652), UINT16_C(18443), UINT16_C(43915), UINT16_C(27215),
      UINT16_C(56112), UINT16_C( 5631), UINT16_C(23285), UINT16_C( 1456), UINT16_C(47148), UINT16_C(23142), UINT16_C( 6323), UINT16_C(42897),
      UINT16_C(40000), UINT16_C(15724), UINT16_C(13860), UINT16_C(53644), UINT16_C(38660), UINT16_C(36633), UINT16_C(26691), UINT16_C(29690),
      UINT16_C(63812), UINT16_C(14728), UINT16_C(14419), UINT16_C(32574), UINT16_C(42224), UINT16_C(41945), UINT16_C(27580), UINT16_C(64842),
      UINT16_C(46855), UINT16_C(11322), UINT16_C(50925), UINT16_C(61949), UINT16_C( 5725), UINT16_C(41089), UINT16_C(31615), UINT16_C(49940),
      UINT16_C(40052), UINT16_C(51196), UINT16_C(15317), UINT16_C(50502), UINT16_C( 8159), UINT16_C(40041), UINT16_C(45962), UINT16_C(37529),
      UINT16_C(54122), UINT16_C(22718), UINT16_C(48025), UINT16_C(63049), UINT16_C(51921), UINT16_C(20631), UINT16_C(43845), UINT16_C(47379),
      UINT16_C( 4167), UINT16_C( 7296), UINT16_C(50763), UINT16_C(10978), UINT16_C(19430), UINT16_C(28870), UINT16_C(24574), UINT16_C(26882),
      UINT16_C(49202), UINT16_C(52161), UINT16_C( 2683), UINT16_C(19906), UINT16_C(22997), UINT16_C( 6813), UINT16_C(45316), UINT16_C(19412),
      UINT16_C(21697), UINT16_C( 3176), UINT16_C(18971), UINT16_C(  310), UINT16_C(64917), UINT16_C(37745), UINT16_C(29788), UINT16_C(36860),
      UINT16_C(48436), UINT16_C(45146), UINT16_C( 7368), UINT16_C(40445), UINT16_C(39541), UINT16_C(31159), UINT16_C(35659), UINT16_C( 3269),
      UINT16_C(11744), UINT16_C(64280), UINT16_C(20343), UINT16_C( 3324), UINT16_C(27980), UINT16_C(43167), UINT16_C(40161), UINT16_C( 5687),
      UINT16_C(37465), UINT16_C( 8646), UINT16_C(50094), UINT16_C( 9406), UINT16_C(30301), UINT16_C(43421), UINT16_C(25089), UINT16_C(57781),
      UINT16_C(52879), UINT16_C( 1756), UINT16_C(55325), UINT16_C(26898), UINT16_C(45638), UINT16_C(10001), UINT16_C(18766), UINT16_C(42813),
      UINT16_C(  987), UINT16_C(35273), UINT16_C(34758), UINT16_C( 9389), UINT16_C(19453), UINT16_C(65485), UINT16_C(33453), UINT16_C(15840),
      UINT16_C(48464), UINT16_C(27971), UINT16_C(22165), UINT16_C(56278), UINT16_C(59400), UINT16_C(22019), UINT16_C(16433), UINT16_C( 3325),
      UINT16_C(50756), UINT16_C( 2709), UINT16_C(17230), UINT16_C(19246), UINT16_C(64398), UINT16_C(15178), UINT16_C(11134), UINT16_C(52856),
      UINT16_C(48360), UINT16_C(32060), UINT16_C( 4626), UINT16_C( 6745), UINT16_C(23802), UINT16_C(11120), UINT16_C(28060), UINT16_C(57399),
      UINT16_C(52532), UINT16_C(33515), UINT16_C( 6416), UINT16_C(40653), UINT16_C( 6165), UINT16_C(37849), UINT16_C(21059), UINT16_C(11105),
      UINT16_C(40206), UINT16_C( 8360), UINT16_C(  432), UINT16_C(43578), UINT16_C(43613), UINT16_C(64214), UINT16_C( 3351), UINT16_C(19418),
      UINT16_C(50650), UINT16_C(60109), UINT16_C(39903), UINT16_C(62600), UINT16_C(25267), UINT16_C(63111), UINT16_C(59572), UINT16_C(49697),
      UINT16_C(51590), UINT16_C(14050), UINT16_C( 7371), UINT16_C(10464), UINT16_C(46790), UINT16_C(56610), UINT16_C(64964), UINT16_C(40489),
      UINT16_C(63170), UINT16_C(41353), UINT16_C( 4497), UINT16_C(17557), UINT16_C( 7283), UINT16_C(10042), UINT16_C(23301), UINT16_C(35817),
      UINT16_C(52005), UINT16_C(61633), UINT16_C(41447), UINT16_C(44312), UINT16_C(15192), UINT16_C( 7307), UINT16_C(46136), UINT16_C(64186),
      UINT16_C(17322), UINT16_C(15516), UINT16_C(12629), UINT16_C(51328), UINT16_C(47950), UINT16_C(21488), UINT16_C(55574), UINT16_C(15326),
      UINT16_C(40869), UINT16_C(35883), UINT16_C(17472), UINT16_C(38970), UINT16_C(50559), UINT16_C(47028), UINT16_C(28537), UINT16_C( 9137),
      UINT16_C(19890), UINT16_C( 1887), UINT16_C(57471), UINT16_C(52688), UINT16_C(49307), UINT16_C(45344), UINT16_C(65177), UINT16_C(16109),
      UINT16_C( 6301), UINT16_C(56779), UINT16_C( 1372), UINT16_C(56182), UINT16_C(10954), UINT16_C(17298), UINT16_C(17561), UINT16_C(19558),
      UINT16_C(50833), UINT16_C( 4179), UINT16_C( 9126), UINT16_C(16861), UINT16_C(64995), UINT16_C(32242), UINT16_C(57339), UINT16_C(39099),
      UINT16_C(34552), UINT16_C(21622), UINT16_C(60555), UINT16_C(21808), UINT16_C(49686), UINT16_C(45208), UINT16_C(65286), UINT16_C(39164),
      UINT16_C(20421), UINT16_C(27560), UINT16_C(34419), UINT16_C(22188), UINT16_C(40579), UINT16_C(32723), UINT16_C(36734), UINT16_C(30231),
      UINT16_C(36117), UINT16_C(41418), UINT16_C(64121), UINT16_C(37110), UINT16_C(36797), UINT16_C(49984), UINT16_C(15502), UINT16_C(21339),
      UINT16_C( 1163), UINT16_C(65214), UINT16_C(27274), UINT16_C( 3413), UINT16_C(10248), UINT16_C(34444), UINT16_C(42167), UINT16_C(52732),
      UINT16_C(50993), UINT16_C(43886), UINT16_C(25793), UINT16_C(32315), UINT16_C(31731), UINT16_C(33090), UINT16_C(40375), UINT16_C(17108),
      UINT16_C(37537), UINT16_C(11073), UINT16_C(38652), UINT16_C( 1337), UINT16_C(50622), UINT16_C(30347), UINT16_C(34921), UINT16_C(39747),
      UINT16_C(45391), UINT16_C( 4166), UINT16_C(33045), UINT16_C( 2447), UINT16_C(53756), UINT16_C(45962), UINT16_C(24430), UINT16_C( 4341),
      UINT16_C(14065), UINT16_C(60987), UINT16_C(29900), UINT16_C(35827), UINT16_C(32314), UINT16_C(41729), UINT16_C(17414), UINT16_C(21822),
      UINT16_C(34037), UINT16_C( 2662), UINT16_C(62725), UINT16_C(  275), UINT16_C(40646), UINT16_C(13492), UINT16_C(43773), UINT16_C(60996),
      UINT16_C(32992), UINT16_C(44508), UINT16_C(53236), UINT16_C(11832), UINT16_C(14670), UINT16_C(21714), UINT16_C( 4221), UINT16_C(29354),
      UINT16_C( 4245), UINT16_C(39548), UINT16_C(36869), UINT16_C(52124), UINT16_C(20526), UINT16_C(11263), UINT16_C(17658), UINT16_C(56089),
      UINT16_C(63172), UINT16_C(47240), UINT16_C(49349), UINT16_C( 5095), UINT16_C(47609), UINT16_C(30312), UINT16_C( 4809), UINT16_C(24296),
      UINT16_C(25634), UINT16_C(10233), UINT16_C(38388), UINT16_C( 8946), UINT16_C(61925) };
  static const uint16_t e[] =
    { UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C( 4098), UINT16_C(    0), UINT16_C(37328), UINT16_C( 2048), UINT16_C(    0),
      UINT16_C( 4376), UINT16_C(    0), UINT16_C(   64), UINT16_C( 2560), UINT16_C( 8240), UINT16_C(  652), UINT16_C(  512), UINT16_C(32828),
      UINT16_C(    0), UINT16_C( 9040), UINT16_C(  160), UINT16_C(33400), UINT16_C(16450), UINT16_C(   17), UINT16_C( 8226), UINT16_C(39984),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(  208), UINT16_C(16384), UINT16_C( 4242), UINT16_C( 4130), UINT16_C(20376),
      UINT16_C(    0), UINT16_C(32770), UINT16_C(  528), UINT16_C(17940), UINT16_C(    0), UINT16_C(34900), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(50182), UINT16_C(    0), UINT16_C(  128), UINT16_C(    4), UINT16_C(43128), UINT16_C(    0), UINT16_C(25328), UINT16_C(  185),
      UINT16_C(    0), UINT16_C(32859), UINT16_C( 2816), UINT16_C(33281), UINT16_C(    0), UINT16_C( 1024), UINT16_C(    0), UINT16_C(24584),
      UINT16_C(49952), UINT16_C(    0), UINT16_C(    0), UINT16_C( 1184), UINT16_C(    0), UINT16_C(  128), UINT16_C(12804), UINT16_C(  130),
      UINT16_C(    0), UINT16_C(35230), UINT16_C(    0), UINT16_C(    0), UINT16_C(   73), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(10656), UINT16_C(13362), UINT16_C(45956), UINT16_C(    0), UINT16_C(    0), UINT16_C( 6740),
      UINT16_C(20498), UINT16_C( 3140), UINT16_C(16452), UINT16_C(49680), UINT16_C(34210), UINT16_C( 9505), UINT16_C(    0), UINT16_C( 8289),
      UINT16_C( 5120), UINT16_C(    1), UINT16_C( 8762), UINT16_C(  768), UINT16_C(    0), UINT16_C( 9028), UINT16_C(    0), UINT16_C(33665),
      UINT16_C( 8208), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(45570), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(  167), UINT16_C(    0), UINT16_C(  128), UINT16_C(    0), UINT16_C(    0), UINT16_C(16532), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(32770), UINT16_C(    0), UINT16_C( 6272), UINT16_C(    0), UINT16_C(61952), UINT16_C( 2888), UINT16_C(    0),
      UINT16_C(12392), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(22534), UINT16_C(33888),
      UINT16_C(42041), UINT16_C(    0), UINT16_C(    2), UINT16_C( 8541), UINT16_C(    0), UINT16_C(25892), UINT16_C(    0), UINT16_C(    0),
      UINT16_C( 8224), UINT16_C( 1024), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(22545), UINT16_C(16481),
      UINT16_C(    0), UINT16_C( 1126), UINT16_C(17409), UINT16_C(    0), UINT16_C( 1024), UINT16_C(    0), UINT16_C(    0), UINT16_C( 1696),
      UINT16_C(    0), UINT16_C(    0), UINT16_C( 6244), UINT16_C(33538), UINT16_C(    0), UINT16_C(    0), UINT16_C(36864), UINT16_C(    0),
      UINT16_C(10352), UINT16_C(    0), UINT16_C( 2120), UINT16_C(19074), UINT16_C(   32), UINT16_C(18441), UINT16_C(41858), UINT16_C(25099),
      UINT16_C( 4912), UINT16_C(    0), UINT16_C(  197), UINT16_C(    0), UINT16_C(12332), UINT16_C(    0), UINT16_C( 2178), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(12620), UINT16_C( 8196), UINT16_C(53384), UINT16_C(    0), UINT16_C( 2304), UINT16_C(    0), UINT16_C(28858),
      UINT16_C(    0), UINT16_C( 4104), UINT16_C( 4096), UINT16_C(12566), UINT16_C( 8320), UINT16_C(    0), UINT16_C(10916), UINT16_C(19464),
      UINT16_C( 9730), UINT16_C(    0), UINT16_C(49861), UINT16_C( 8381), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(  768),
      UINT16_C(    0), UINT16_C(  240), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C( 9800), UINT16_C(    0), UINT16_C(16390), UINT16_C(    0), UINT16_C(  259),
      UINT16_C(    0), UINT16_C( 4096), UINT16_C(16960), UINT16_C( 8418), UINT16_C(16482), UINT16_C(    0), UINT16_C(22866), UINT16_C(10242),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(  571), UINT16_C(16768), UINT16_C( 2321), UINT16_C(    0), UINT16_C(    0), UINT16_C(   20),
      UINT16_C(    0), UINT16_C(    0), UINT16_C( 2051), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C( 4188), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(12290), UINT16_C( 3144), UINT16_C(    0), UINT16_C(    0), UINT16_C(30759), UINT16_C(32840), UINT16_C( 1024),
      UINT16_C(    0), UINT16_C(14608), UINT16_C(17938), UINT16_C(    0), UINT16_C( 1100), UINT16_C(    0), UINT16_C( 6176), UINT16_C(  544),
      UINT16_C(33281), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(16389), UINT16_C(35093), UINT16_C(25089), UINT16_C(    0),
      UINT16_C(    0), UINT16_C( 1680), UINT16_C(    0), UINT16_C(18706), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(  528), UINT16_C(    0), UINT16_C(34304), UINT16_C( 9385), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C( 2304), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    1), UINT16_C(   80),
      UINT16_C(17988), UINT16_C(    0), UINT16_C(16972), UINT16_C(    0), UINT16_C(    0), UINT16_C(  522), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(   60), UINT16_C(    0), UINT16_C( 2056), UINT16_C( 2282), UINT16_C(    0), UINT16_C(    0), UINT16_C( 8225),
      UINT16_C(    0), UINT16_C(  673), UINT16_C( 4096), UINT16_C(    0), UINT16_C( 2069), UINT16_C(  601), UINT16_C(    0), UINT16_C(10848),
      UINT16_C( 7180), UINT16_C(    0), UINT16_C(  160), UINT16_C(32802), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(  714),
      UINT16_C(    0), UINT16_C(    0), UINT16_C( 2131), UINT16_C(    0), UINT16_C(16562), UINT16_C(46085), UINT16_C(26804), UINT16_C(    0),
      UINT16_C(34944), UINT16_C( 5826), UINT16_C( 2249), UINT16_C(   96), UINT16_C(42176), UINT16_C(53280), UINT16_C(12288), UINT16_C( 3105),
      UINT16_C(    0), UINT16_C(    0), UINT16_C( 4369), UINT16_C(    0), UINT16_C( 5203), UINT16_C( 1056), UINT16_C( 2560), UINT16_C(    0),
      UINT16_C(18976), UINT16_C(    0), UINT16_C(    0), UINT16_C( 2048), UINT16_C(10240), UINT16_C( 4232), UINT16_C(   24), UINT16_C(36920),
      UINT16_C(16896), UINT16_C(    0), UINT16_C(  337), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(   28),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(16448), UINT16_C(    0), UINT16_C(34166), UINT16_C(    0), UINT16_C(17416), UINT16_C(    0),
      UINT16_C( 2338), UINT16_C( 1053), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(45344), UINT16_C(64025), UINT16_C(    0),
      UINT16_C( 6272), UINT16_C(49474), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(  528), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(33856), UINT16_C(31058), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(32968), UINT16_C( 1092), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(  248),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(   16), UINT16_C(    0), UINT16_C(34947), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(29249), UINT16_C(  246), UINT16_C(35084), UINT16_C(  320), UINT16_C(    0), UINT16_C(    0),
      UINT16_C(    3), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C(33920), UINT16_C(33847), UINT16_C(    0),
      UINT16_C(  529), UINT16_C( 8736), UINT16_C( 1088), UINT16_C(    0), UINT16_C(    0), UINT16_C(    0), UINT16_C( 3106), UINT16_C(   84),
      UINT16_C(    0), UINT16_C(    0), UINT16_C( 4844), UINT16_C(    0), UINT16_C(34078), UINT16_C(    0), UINT16_C(34888), UINT16_C( 4929),
      UINT16_C( 4170), UINT16_C(   66), UINT16_C(33040), UINT16_C(    0), UINT16_C(  104), UINT16_C(    0), UINT16_C(    0), UINT16_C(  132),
      UINT16_C(    0), UINT16_C( 1067), UINT16_C(    0), UINT16_C(35555), UINT16_C(30250), UINT16_C(    0), UINT16_C(    0), UINT16_C(16698),
      UINT16_C(    0), UINT16_C(  546), UINT16_C(    0), UINT16_C(    0), UINT16_C(33472), UINT16_C( 4148), UINT16_C(    0), UINT16_C(17984),
      UINT16_C(    0), UINT16_C(36184), UINT16_C(16724), UINT16_C(    0), UINT16_C(    0), UINT16_C( 5248), UINT16_C(  108), UINT16_C(    0),
      UINT16_C(  149), UINT16_C( 6716), UINT16_C(    0), UINT16_C(33672), UINT16_C(    0), UINT16_C( 8195), UINT16_C(17456), UINT16_C(    0),
      UINT16_C(    0), UINT16_C(  136), UINT16_C(16517), UINT16_C(    0), UINT16_C(39328), UINT16_C(    0), UINT16_C(    0), UINT16_C(  200),
      UINT16_C(    0), UINT16_C(    0), UINT16_C(34176), UINT16_C(   66), UINT16_C(    0) };

  static uint16_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_svuint16_t
      rv,
      av = simde_svld1_u16(pg, &(a[i])),
      bv = simde_svld1_u16(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(INT16_C(0)));
    rv = simde_svand_u16_z(pv, av, bv);

    simde_svst1_u16(pg, &(r[i]), rv);

    i += simde_svcnth();
    pg = simde_svwhilelt_b16_s32(i, len);
  }

  simde_assert_equal_vu16(len, e, r);

  return 0;
#else
  int16_t p[1024 / sizeof(int16_t)];
  uint16_t a[1024 / sizeof(int16_t)], b[1024 / sizeof(int16_t)], e[1024 / sizeof(int16_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u16_z(pv, av, bv);

    simde_svst1_u16(pg, &(e[i]), ev);
    simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~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_1vu16(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u16_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int16_t p[] =
    {  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(     0),  INT16_C(     0),  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(     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(     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(     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(     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(     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(     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(     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(     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(     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(     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(     1), -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(     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(     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), -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(     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(     0), -INT16_C(     1), -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(     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(     1), -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(     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(     1), -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(     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(     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(     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(     1),  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(     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(     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(     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(     1), -INT16_C(     1), -INT16_C(     1), -INT16_C(     1) };
  static const uint16_t a[] =
    { UINT16_C(56183), UINT16_C(58028), UINT16_C( 4969), UINT16_C(34416), UINT16_C( 3556), UINT16_C(21165), UINT16_C(32494), UINT16_C(63971),
      UINT16_C(61302), UINT16_C(42984), UINT16_C(60860), UINT16_C(58291), UINT16_C(27549), UINT16_C(25400), UINT16_C(52538), UINT16_C(45559),
      UINT16_C(41896), UINT16_C( 4499), UINT16_C(  950), UINT16_C(39831), UINT16_C(17681), UINT16_C(65517), UINT16_C(53443), UINT16_C(15096),
      UINT16_C(57792), UINT16_C(31969), UINT16_C(38094), UINT16_C(27488), UINT16_C(39167), UINT16_C(15054), UINT16_C(50533), UINT16_C( 3563),
      UINT16_C(32616), UINT16_C( 7711), UINT16_C(46722), UINT16_C(37817), UINT16_C(43003), UINT16_C(49042), UINT16_C(35703), UINT16_C(14329),
      UINT16_C(55916), UINT16_C(15028), UINT16_C( 5230), UINT16_C(28069), UINT16_C(29612), UINT16_C( 4519), UINT16_C(37688), UINT16_C(40990),
      UINT16_C(15634), UINT16_C(38078), UINT16_C(30964), UINT16_C(61224), UINT16_C(47647), UINT16_C(38574), UINT16_C(42821), UINT16_C(45518),
      UINT16_C(33409), UINT16_C(61419), UINT16_C(37014), UINT16_C(16989), UINT16_C( 1027), UINT16_C(15187), UINT16_C(29079), UINT16_C(43483),
      UINT16_C(39599), UINT16_C(41790), UINT16_C(26130), UINT16_C(12690), UINT16_C(16672), UINT16_C(26311), UINT16_C(38376), UINT16_C(27159),
      UINT16_C(  791), UINT16_C(44377), UINT16_C(46739), UINT16_C(38895), UINT16_C(17083), UINT16_C(21202), UINT16_C(44724), UINT16_C(25596),
      UINT16_C(14920), UINT16_C(23046), UINT16_C(39072), UINT16_C(49291), UINT16_C(21209), UINT16_C(49702), UINT16_C(16104), UINT16_C(65324),
      UINT16_C(34113), UINT16_C(54445), UINT16_C(39996), UINT16_C(63339), UINT16_C(16095), UINT16_C(37705), UINT16_C(17900), UINT16_C(13558),
      UINT16_C(64639), UINT16_C( 8078), UINT16_C( 6548), UINT16_C(28384), UINT16_C( 1643), UINT16_C(21296), UINT16_C(23620), UINT16_C(34131),
      UINT16_C(  225), UINT16_C( 7514), UINT16_C(50588), UINT16_C(31508), UINT16_C(24067), UINT16_C(61198), UINT16_C( 1187), UINT16_C( 8995),
      UINT16_C(45312), UINT16_C(38210), UINT16_C( 8906), UINT16_C(13827), UINT16_C(13097), UINT16_C(28041), UINT16_C(56463), UINT16_C(28915),
      UINT16_C(19932), UINT16_C(31118), UINT16_C(41490), UINT16_C( 5876), UINT16_C(  768), UINT16_C(41989), UINT16_C(10503), UINT16_C( 2247),
      UINT16_C( 2522), UINT16_C(42397), UINT16_C(41004), UINT16_C(21979), UINT16_C(25811), UINT16_C(25282), UINT16_C(46401), UINT16_C( 7634),
      UINT16_C(24578), UINT16_C( 5526), UINT16_C(35587), UINT16_C(  811), UINT16_C(12430), UINT16_C(38311), UINT16_C(28249), UINT16_C(13469),
      UINT16_C(14968), UINT16_C(42201), UINT16_C(46298), UINT16_C(44537), UINT16_C(47896), UINT16_C(22799), UINT16_C(57969), UINT16_C(29559),
      UINT16_C( 3394), UINT16_C(17800), UINT16_C(45976), UINT16_C( 9801), UINT16_C(61668), UINT16_C(15804), UINT16_C(22879), UINT16_C(55153),
      UINT16_C(19092), UINT16_C(28283), UINT16_C(29950), UINT16_C( 5916), UINT16_C(11055), UINT16_C(41072), UINT16_C(59149), UINT16_C(20500),
      UINT16_C(40181), UINT16_C(36245), UINT16_C(56912), UINT16_C(13492), UINT16_C(28879), UINT16_C(11889), UINT16_C(58313), UINT16_C(23813),
      UINT16_C(32813), UINT16_C(11468), UINT16_C(59636), UINT16_C( 9027), UINT16_C(45843), UINT16_C( 8644), UINT16_C(55451), UINT16_C(36977),
      UINT16_C( 1652), UINT16_C(50205), UINT16_C(53733), UINT16_C(46328), UINT16_C(27201), UINT16_C( 3042), UINT16_C(59213), UINT16_C(31336),
      UINT16_C(13415), UINT16_C(23462), UINT16_C(59676), UINT16_C(12414), UINT16_C(17053), UINT16_C(14417), UINT16_C(49690), UINT16_C(36808),
      UINT16_C(58824), UINT16_C(44371), UINT16_C(19639), UINT16_C(63585), UINT16_C(17334), UINT16_C(  771), UINT16_C(27690), UINT16_C(37245),
      UINT16_C( 9376), UINT16_C(48620), UINT16_C(27405), UINT16_C(43757), UINT16_C(16045), UINT16_C(51426), UINT16_C(43520), UINT16_C(51287),
      UINT16_C(43664), UINT16_C(18294), UINT16_C(55286), UINT16_C(44095), UINT16_C(17179), UINT16_C(17839), UINT16_C(11695), UINT16_C(20439),
      UINT16_C(50001), UINT16_C(24076), UINT16_C(63790), UINT16_C(56329), UINT16_C(60215), UINT16_C(14244), UINT16_C(64406), UINT16_C( 9728),
      UINT16_C(30373), UINT16_C(40045), UINT16_C(44109), UINT16_C(26696), UINT16_C(63727), UINT16_C(40622), UINT16_C(34085), UINT16_C(30446),
      UINT16_C(64072), UINT16_C(30676), UINT16_C(56820), UINT16_C(11091), UINT16_C(63433), UINT16_C(24419), UINT16_C(25586), UINT16_C(38789),
      UINT16_C(62169), UINT16_C( 9779), UINT16_C(31902), UINT16_C(36495), UINT16_C(15732), UINT16_C(39212), UINT16_C( 6850), UINT16_C( 2575),
      UINT16_C(58133), UINT16_C( 2433), UINT16_C(54465), UINT16_C(35380), UINT16_C(38859), UINT16_C(48617), UINT16_C(28410), UINT16_C(54101),
      UINT16_C(34912), UINT16_C(65274), UINT16_C(35076), UINT16_C(30860), UINT16_C(47558), UINT16_C(34833), UINT16_C( 8403), UINT16_C(59538),
      UINT16_C( 5124), UINT16_C(50673), UINT16_C( 9960), UINT16_C(46159), UINT16_C(14525), UINT16_C(47217), UINT16_C(50854), UINT16_C( 1675),
      UINT16_C(34127), UINT16_C(21252), UINT16_C(37134), UINT16_C(54476), UINT16_C(56650), UINT16_C( 7516), UINT16_C(61438), UINT16_C(  518),
      UINT16_C(63235), UINT16_C(60359), UINT16_C( 5661), UINT16_C(56223), UINT16_C( 4430), UINT16_C(62611), UINT16_C( 7895), UINT16_C( 9978),
      UINT16_C(65188), UINT16_C(45690), UINT16_C(18063), UINT16_C(55687), UINT16_C(58147), UINT16_C( 8695), UINT16_C(64978), UINT16_C(54563),
      UINT16_C(60148), UINT16_C( 4801), UINT16_C(24576), UINT16_C(20205), UINT16_C(32881), UINT16_C(18754), UINT16_C(15518), UINT16_C(17007),
      UINT16_C(59707), UINT16_C(51957), UINT16_C(31791), UINT16_C(21412) };
  static const uint16_t b[] =
    { UINT16_C( 5426), UINT16_C(22447), UINT16_C(32799), UINT16_C(18992), UINT16_C(20144), UINT16_C(18591), UINT16_C(65405), UINT16_C(58498),
      UINT16_C(38201), UINT16_C(58462), UINT16_C(10658), UINT16_C(44069), UINT16_C(12140), UINT16_C( 6701), UINT16_C(57375), UINT16_C(20814),
      UINT16_C(65013), UINT16_C( 5289), UINT16_C(55677), UINT16_C(11615), UINT16_C(65064), UINT16_C(42357), UINT16_C(63485), UINT16_C(13961),
      UINT16_C(59533), UINT16_C(12059), UINT16_C(16401), UINT16_C(32219), UINT16_C( 2159), UINT16_C(36504), UINT16_C(59112), UINT16_C(57056),
      UINT16_C(35299), UINT16_C(24818), UINT16_C(20834), UINT16_C(35469), UINT16_C(  591), UINT16_C(19759), UINT16_C(47610), UINT16_C(34691),
      UINT16_C(40609), UINT16_C(45750), UINT16_C(37342), UINT16_C(19760), UINT16_C(51353), UINT16_C(33500), UINT16_C(48302), UINT16_C(37216),
      UINT16_C(21061), UINT16_C(42993), UINT16_C(32420), UINT16_C(62258), UINT16_C(24960), UINT16_C(31296), UINT16_C(50202), UINT16_C(47873),
      UINT16_C(46946), UINT16_C(16750), UINT16_C(40520), UINT16_C(57998), UINT16_C(27238), UINT16_C( 5220), UINT16_C(50214), UINT16_C(27557),
      UINT16_C(38422), UINT16_C(47635), UINT16_C(17684), UINT16_C(38062), UINT16_C(61094), UINT16_C(49423), UINT16_C( 4274), UINT16_C( 5500),
      UINT16_C(60104), UINT16_C( 4182), UINT16_C(58504), UINT16_C(61170), UINT16_C(22095), UINT16_C(29954), UINT16_C(42778), UINT16_C(12769),
      UINT16_C(62525), UINT16_C(20971), UINT16_C(39225), UINT16_C(57318), UINT16_C(62856), UINT16_C(15008), UINT16_C( 7429), UINT16_C(52559),
      UINT16_C(42247), UINT16_C(37086), UINT16_C(53386), UINT16_C(55678), UINT16_C(33063), UINT16_C(16718), UINT16_C(12072), UINT16_C(26226),
      UINT16_C(24099), UINT16_C(23735), UINT16_C(40439), UINT16_C(32572), UINT16_C(56466), UINT16_C(39098), UINT16_C( 2553), UINT16_C(  357),
      UINT16_C(17327), UINT16_C(14737), UINT16_C( 3860), UINT16_C(15122), UINT16_C(24720), UINT16_C(47484), UINT16_C(61328), UINT16_C(45855),
      UINT16_C(54861), UINT16_C(17424), UINT16_C(19572), UINT16_C( 1732), UINT16_C(32296), UINT16_C( 8862), UINT16_C( 1159), UINT16_C(13859),
      UINT16_C(46151), UINT16_C(23407), UINT16_C(33219), UINT16_C(21654), UINT16_C( 5090), UINT16_C(29197), UINT16_C(11266), UINT16_C(20261),
      UINT16_C(13570), UINT16_C(30355), UINT16_C(22401), UINT16_C(43645), UINT16_C( 7125), UINT16_C(24012), UINT16_C(61215), UINT16_C(26515),
      UINT16_C(  931), UINT16_C(26306), UINT16_C(22916), UINT16_C(26298), UINT16_C(51052), UINT16_C(28376), UINT16_C(65267), UINT16_C(63165),
      UINT16_C(20531), UINT16_C(46444), UINT16_C(59816), UINT16_C(32095), UINT16_C(11013), UINT16_C( 9434), UINT16_C(28186), UINT16_C(48523),
      UINT16_C(20081), UINT16_C(62755), UINT16_C(56999), UINT16_C( 4956), UINT16_C(13477), UINT16_C(39297), UINT16_C(15922), UINT16_C(26255),
      UINT16_C(64398), UINT16_C(13851), UINT16_C(31461), UINT16_C(60084), UINT16_C(36517), UINT16_C(48910), UINT16_C(39676), UINT16_C(28028),
      UINT16_C(40936), UINT16_C(36707), UINT16_C(49021), UINT16_C( 9122), UINT16_C( 9203), UINT16_C( 9916), UINT16_C(19297), UINT16_C(61324),
      UINT16_C(42822), UINT16_C(11046), UINT16_C(55841), UINT16_C(50709), UINT16_C( 9320), UINT16_C(25989), UINT16_C(  446), UINT16_C(42706),
      UINT16_C(13728), UINT16_C( 7733), UINT16_C(55284), UINT16_C(59457), UINT16_C(65018), UINT16_C(23310), UINT16_C(39496), UINT16_C(36426),
      UINT16_C(28737), UINT16_C(25274), UINT16_C(53066), UINT16_C(45864), UINT16_C(44531), UINT16_C(45336), UINT16_C(60078), UINT16_C(20055),
      UINT16_C(35872), UINT16_C( 5228), UINT16_C(44387), UINT16_C(24060), UINT16_C( 2730), UINT16_C(62136), UINT16_C(  932), UINT16_C(58753),
      UINT16_C(15219), UINT16_C(48711), UINT16_C(28426), UINT16_C(65137), UINT16_C(35100), UINT16_C(51887), UINT16_C( 1907), UINT16_C(37657),
      UINT16_C(34195), UINT16_C(63400), UINT16_C(42035), UINT16_C(56660), UINT16_C( 3503), UINT16_C(21456), UINT16_C(20752), UINT16_C(33593),
      UINT16_C(32908), UINT16_C(38465), UINT16_C(45808), UINT16_C( 3220), UINT16_C(17467), UINT16_C(45015), UINT16_C(61515), UINT16_C(56898),
      UINT16_C(60021), UINT16_C(43221), UINT16_C(10895), UINT16_C(16006), UINT16_C(22071), UINT16_C(18321), UINT16_C(51879), UINT16_C(13258),
      UINT16_C( 3147), UINT16_C(15305), UINT16_C(24254), UINT16_C(64071), UINT16_C( 7842), UINT16_C(60841), UINT16_C(60174), UINT16_C(33995),
      UINT16_C(41430), UINT16_C(25900), UINT16_C(45771), UINT16_C(  675), UINT16_C(13320), UINT16_C(44873), UINT16_C( 5119), UINT16_C(19170),
      UINT16_C(44063), UINT16_C(56965), UINT16_C(52234), UINT16_C(44248), UINT16_C(33259), UINT16_C(63897), UINT16_C(25708), UINT16_C(17021),
      UINT16_C(43525), UINT16_C(53415), UINT16_C(19036), UINT16_C(26066), UINT16_C( 7039), UINT16_C(32276), UINT16_C(63279), UINT16_C(20168),
      UINT16_C(19875), UINT16_C(44332), UINT16_C( 1049), UINT16_C( 1113), UINT16_C(62085), UINT16_C(62206), UINT16_C(31574), UINT16_C(23604),
      UINT16_C(56357), UINT16_C(33324), UINT16_C(65318), UINT16_C(42471), UINT16_C(64282), UINT16_C(18723), UINT16_C(60402), UINT16_C(38296),
      UINT16_C(50232), UINT16_C(21058), UINT16_C(39881), UINT16_C(20054), UINT16_C(21645), UINT16_C(58432), UINT16_C(30160), UINT16_C(62784),
      UINT16_C(27729), UINT16_C(30583), UINT16_C(24171), UINT16_C(34333), UINT16_C(16474), UINT16_C(19663), UINT16_C(26412), UINT16_C(25826),
      UINT16_C( 9260), UINT16_C(62902), UINT16_C( 3520), UINT16_C(19779), UINT16_C(33889), UINT16_C(12593), UINT16_C(29177), UINT16_C(18983),
      UINT16_C(40670), UINT16_C(18881), UINT16_C(57085), UINT16_C(22479) };
  static const uint16_t e[] =
    { UINT16_C(56183), UINT16_C(17068), UINT16_C(    9), UINT16_C(  560), UINT16_C( 3556), UINT16_C(16525), UINT16_C(32494), UINT16_C(63971),
      UINT16_C(61302), UINT16_C(42984), UINT16_C(60860), UINT16_C(40993), UINT16_C(11020), UINT16_C(  552), UINT16_C(52538), UINT16_C( 4422),
      UINT16_C(41896), UINT16_C( 4225), UINT16_C(  950), UINT16_C(39831), UINT16_C(17408), UINT16_C(65517), UINT16_C(53443), UINT16_C(12936),
      UINT16_C(57792), UINT16_C(11265), UINT16_C(38094), UINT16_C(27488), UINT16_C(39167), UINT16_C(15054), UINT16_C(50533), UINT16_C( 3296),
      UINT16_C(32616), UINT16_C(   18), UINT16_C( 4098), UINT16_C(33417), UINT16_C(43003), UINT16_C(49042), UINT16_C(35186), UINT16_C(14329),
      UINT16_C(55916), UINT16_C(12980), UINT16_C( 4174), UINT16_C(19744), UINT16_C(29612), UINT16_C( 4519), UINT16_C(37688), UINT16_C(32768),
      UINT16_C(15634), UINT16_C(33968), UINT16_C(30964), UINT16_C(58144), UINT16_C(47647), UINT16_C( 4608), UINT16_C(42821), UINT16_C(45518),
      UINT16_C(33280), UINT16_C(61419), UINT16_C(37014), UINT16_C(16989), UINT16_C( 1027), UINT16_C(15187), UINT16_C(16390), UINT16_C(43483),
      UINT16_C(39599), UINT16_C(41790), UINT16_C(17424), UINT16_C( 4226), UINT16_C(16672), UINT16_C(16391), UINT16_C( 4256), UINT16_C(27159),
      UINT16_C(  512), UINT16_C(44377), UINT16_C(42112), UINT16_C(34530), UINT16_C(16907), UINT16_C(20482), UINT16_C(44724), UINT16_C( 8672),
      UINT16_C(14920), UINT16_C(23046), UINT16_C(38944), UINT16_C(49291), UINT16_C(21209), UINT16_C(  544), UINT16_C(16104), UINT16_C(52492),
      UINT16_C(34049), UINT16_C(37004), UINT16_C(39996), UINT16_C(53610), UINT16_C(16095), UINT16_C(37705), UINT16_C( 1320), UINT16_C( 9330),
      UINT16_C(64639), UINT16_C( 7302), UINT16_C( 6548), UINT16_C(28192), UINT16_C( 1643), UINT16_C( 4144), UINT16_C( 2112), UINT16_C(34131),
      UINT16_C(  225), UINT16_C( 7514), UINT16_C( 1300), UINT16_C(15120), UINT16_C(24067), UINT16_C(43276), UINT16_C( 1187), UINT16_C( 8995),
      UINT16_C(45312), UINT16_C(38210), UINT16_C(   64), UINT16_C(13827), UINT16_C(13097), UINT16_C( 8328), UINT16_C( 1159), UINT16_C(28915),
      UINT16_C(19932), UINT16_C(22798), UINT16_C(41490), UINT16_C( 5876), UINT16_C(  768), UINT16_C(41989), UINT16_C(10503), UINT16_C( 2053),
      UINT16_C( 2522), UINT16_C( 9361), UINT16_C(    0), UINT16_C(21979), UINT16_C(  209), UINT16_C(25282), UINT16_C(46401), UINT16_C( 7634),
      UINT16_C(24578), UINT16_C( 5526), UINT16_C(35587), UINT16_C(  811), UINT16_C(12430), UINT16_C(38311), UINT16_C(28241), UINT16_C(13469),
      UINT16_C(14968), UINT16_C(42056), UINT16_C(46298), UINT16_C(11609), UINT16_C(11008), UINT16_C(   10), UINT16_C(25104), UINT16_C(12547),
      UINT16_C( 3394), UINT16_C(17800), UINT16_C(45976), UINT16_C( 9801), UINT16_C(61668), UINT16_C( 6528), UINT16_C( 6162), UINT16_C(55153),
      UINT16_C(19092), UINT16_C(28283), UINT16_C(29950), UINT16_C(  532), UINT16_C(11055), UINT16_C(40960), UINT16_C(33292), UINT16_C(20500),
      UINT16_C(40181), UINT16_C(36097), UINT16_C(56912), UINT16_C( 8352), UINT16_C(28879), UINT16_C(11889), UINT16_C(58313), UINT16_C(23813),
      UINT16_C(32772), UINT16_C(10244), UINT16_C(51232), UINT16_C( 9027), UINT16_C(45843), UINT16_C( 8644), UINT16_C(  154), UINT16_C(32848),
      UINT16_C( 1056), UINT16_C( 1045), UINT16_C(53733), UINT16_C(41024), UINT16_C(27201), UINT16_C( 3042), UINT16_C(33352), UINT16_C( 2632),
      UINT16_C(13415), UINT16_C(17058), UINT16_C(51464), UINT16_C(12414), UINT16_C(  145), UINT16_C(14417), UINT16_C(49674), UINT16_C( 3648),
      UINT16_C(33792), UINT16_C( 1088), UINT16_C( 3107), UINT16_C(63585), UINT16_C(  674), UINT16_C(  512), UINT16_C(   32), UINT16_C(37245),
      UINT16_C( 8224), UINT16_C(48620), UINT16_C(27405), UINT16_C(43617), UINT16_C(16045), UINT16_C(51362), UINT16_C(43520), UINT16_C(32785),
      UINT16_C(32912), UINT16_C(18208), UINT16_C(33842), UINT16_C(35860), UINT16_C(  267), UINT16_C(17839), UINT16_C(11695), UINT16_C(  785),
      UINT16_C(32768), UINT16_C( 5632), UINT16_C(45088), UINT16_C( 3072), UINT16_C(16435), UINT16_C(14244), UINT16_C(61442), UINT16_C( 1536),
      UINT16_C(30373), UINT16_C(40045), UINT16_C(44109), UINT16_C(26696), UINT16_C(20519), UINT16_C( 1664), UINT16_C(34085), UINT16_C(13002),
      UINT16_C(64072), UINT16_C(13248), UINT16_C(56820), UINT16_C(10819), UINT16_C(63433), UINT16_C(24419), UINT16_C(25586), UINT16_C(33921),
      UINT16_C(41168), UINT16_C( 9779), UINT16_C(31902), UINT16_C(  643), UINT16_C(13312), UINT16_C(39212), UINT16_C( 6850), UINT16_C( 2575),
      UINT16_C(40981), UINT16_C( 2177), UINT16_C(54465), UINT16_C(35380), UINT16_C(38859), UINT16_C(47497), UINT16_C(28410), UINT16_C(16981),
      UINT16_C(34816), UINT16_C(53410), UINT16_C(35076), UINT16_C(24704), UINT16_C( 6470), UINT16_C(34833), UINT16_C( 8403), UINT16_C(59538),
      UINT16_C( 5124), UINT16_C(34080), UINT16_C( 9960), UINT16_C(46159), UINT16_C(12421), UINT16_C(47217), UINT16_C(16902), UINT16_C( 1024),
      UINT16_C(33797), UINT16_C(  516), UINT16_C(37126), UINT16_C(33988), UINT16_C(55562), UINT16_C( 7516), UINT16_C(60402), UINT16_C(  518),
      UINT16_C(63235), UINT16_C(16962), UINT16_C( 4617), UINT16_C(56223), UINT16_C( 4430), UINT16_C(58368), UINT16_C( 5328), UINT16_C( 9978),
      UINT16_C(27648), UINT16_C(45690), UINT16_C(17931), UINT16_C(32773), UINT16_C(16386), UINT16_C( 8695), UINT16_C(64978), UINT16_C(54563),
      UINT16_C( 8228), UINT16_C( 4801), UINT16_C(24576), UINT16_C(19521), UINT16_C(32865), UINT16_C(18754), UINT16_C(15518), UINT16_C(17007),
      UINT16_C(34842), UINT16_C(18625), UINT16_C(23597), UINT16_C(21380) };

  static uint16_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_svuint16_t
      rv,
      av = simde_svld1_u16(pg, &(a[i])),
      bv = simde_svld1_u16(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s16(pg, simde_svld1_s16(pg, &(p[i])), simde_svdup_n_s16(INT16_C(0)));
    rv = simde_svand_u16_m(pv, av, bv);

    simde_svst1_u16(pg, &(r[i]), rv);

    i += simde_svcnth();
    pg = simde_svwhilelt_b16_s32(i, len);
  }

  simde_assert_equal_vu16(len, e, r);

  return 0;
#else
  int16_t p[1024 / sizeof(int16_t)];
  uint16_t a[1024 / sizeof(int16_t)], b[1024 / sizeof(int16_t)], e[1024 / sizeof(int16_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u16_m(pv, av, bv);

    simde_svst1_u16(pg, &(e[i]), ev);
    simde_svst1_s16(pg, &(p[i]), simde_svdup_n_s16_z(pv, ~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_1vu16(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u32_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int32_t p[] =
    {  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(           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(           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(           1),
       INT32_C(           0), -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(           1),  INT32_C(           0), -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(           1), -INT32_C(           1), -INT32_C(           1),
       INT32_C(           0), -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(           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(           0), -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(           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(           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(           1), -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(           1),
       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(           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(           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(           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(           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(           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(           0), -INT32_C(           1), -INT32_C(           1),
       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(           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(           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(           1) };
  static const uint32_t a[] =
    { UINT32_C(1681095269), UINT32_C(1339152432), UINT32_C(1600031812), UINT32_C(3132162968), UINT32_C(2564636943), UINT32_C(4216327160), UINT32_C(4281498254), UINT32_C(3039581775),
      UINT32_C(  18440144), UINT32_C(2085677879), UINT32_C( 266055287), UINT32_C(3234434225), UINT32_C(3327698638), UINT32_C(1086433458), UINT32_C(1916793634), UINT32_C( 422013769),
      UINT32_C(  35274954), UINT32_C(2726193707), UINT32_C(3383843096), UINT32_C(3028974310), UINT32_C(3548045857), UINT32_C(2903718795), UINT32_C(1998541614), UINT32_C(2307933886),
      UINT32_C(2995497863), UINT32_C( 777324821), UINT32_C(1224148578), UINT32_C(2734457217), UINT32_C(4017452644), UINT32_C(3751577777), UINT32_C(2589375707), UINT32_C(2300831490),
      UINT32_C(2805771922), UINT32_C( 433426871), UINT32_C( 409128343), UINT32_C(2998558286), UINT32_C(2258710485), UINT32_C(2472951480), UINT32_C(4230855930), UINT32_C( 897994915),
      UINT32_C(3051209470), UINT32_C(3939480147), UINT32_C(3456315775), UINT32_C(1686158735), UINT32_C(2783650541), UINT32_C(1513640288), UINT32_C(2975229453), UINT32_C(3051805878),
      UINT32_C(4050305950), UINT32_C(4124850550), UINT32_C(4207140714), UINT32_C(2304656540), UINT32_C(3324922214), UINT32_C(2820695962), UINT32_C(2203678413), UINT32_C(4046995283),
      UINT32_C(2044961539), UINT32_C(1198440412), UINT32_C( 977351326), UINT32_C(3703873398), UINT32_C(2208494313), UINT32_C( 640402009), UINT32_C(2343207992), UINT32_C(3346916036),
      UINT32_C(1648386181), UINT32_C(3182013983), UINT32_C(1459088096), UINT32_C(1915927433), UINT32_C( 133616814), UINT32_C(3475906966), UINT32_C(1784338598), UINT32_C(1077008314),
      UINT32_C(1453486391), UINT32_C(   1264415), UINT32_C(3193310005), UINT32_C(1949403590), UINT32_C(4101777245), UINT32_C(4005800520), UINT32_C(1012407682), UINT32_C( 746359285),
      UINT32_C( 444800762), UINT32_C(2652542569), UINT32_C(1750954145), UINT32_C(1474072313), UINT32_C(4249573557), UINT32_C(2230062594), UINT32_C( 549536811), UINT32_C(3360505294),
      UINT32_C(3319976028), UINT32_C( 140835942), UINT32_C(1718665581), UINT32_C(  79514703), UINT32_C(2801862821), UINT32_C(1110240534), UINT32_C(   6483250), UINT32_C(2261298986),
      UINT32_C(3863784319), UINT32_C( 351187111), UINT32_C(3229310577), UINT32_C(1338259626), UINT32_C(1475855681), UINT32_C(3852018611), UINT32_C( 988150800), UINT32_C( 734113195),
      UINT32_C(   1117528), UINT32_C( 773128125), UINT32_C( 133074781), UINT32_C( 156742344), UINT32_C( 710954615), UINT32_C(2165308017), UINT32_C(2713449718), UINT32_C(4207705250),
      UINT32_C(1190845833), UINT32_C( 963907548), UINT32_C(1715561118), UINT32_C(2356123668), UINT32_C(1471598822), UINT32_C(3235432138), UINT32_C(1549898682), UINT32_C(2572627472),
      UINT32_C(3907014923), UINT32_C(4280374368), UINT32_C(3412419255), UINT32_C(3763852794), UINT32_C(1865879205), UINT32_C(2385448916), UINT32_C(3018559651), UINT32_C(3393995454),
      UINT32_C(4105317523), UINT32_C( 955503489), UINT32_C( 805525558), UINT32_C(3524352813), UINT32_C(1027688553), UINT32_C(4224413784), UINT32_C(3215898113), UINT32_C(2357852920),
      UINT32_C(2826976039), UINT32_C(1172337423), UINT32_C(4185252811), UINT32_C(2815133246), UINT32_C( 669257167), UINT32_C(2116202621), UINT32_C(1597952102), UINT32_C(4058761162),
      UINT32_C( 312044291), UINT32_C(2841082334), UINT32_C(2611137629), UINT32_C( 574844499), UINT32_C(4165543803), UINT32_C(1048013783), UINT32_C(  94221627), UINT32_C(2146928764),
      UINT32_C(3515977971), UINT32_C(1736108042), UINT32_C( 134356405), UINT32_C( 103433611), UINT32_C(1157526381), UINT32_C( 427980254), UINT32_C(2803769130), UINT32_C(2586187175),
      UINT32_C(2959849638), UINT32_C(1427629728), UINT32_C(2388465923), UINT32_C(3432286047), UINT32_C(3624964858), UINT32_C( 854692616), UINT32_C(1524175026), UINT32_C(3421765669),
      UINT32_C(1484480696), UINT32_C(1236177478), UINT32_C( 198642604), UINT32_C(2379705235), UINT32_C(  90630141), UINT32_C( 758667130), UINT32_C(2374439271), UINT32_C(3378019089),
      UINT32_C( 555930843), UINT32_C( 308990054), UINT32_C(1847411163), UINT32_C(2868704428), UINT32_C(1454334684), UINT32_C( 562292665), UINT32_C( 179178233), UINT32_C(1641285254),
      UINT32_C(1099167450), UINT32_C(2706632134), UINT32_C(3675287855), UINT32_C(1099238501), UINT32_C( 664286574), UINT32_C( 357047068), UINT32_C(2887841318), UINT32_C(3608016125),
      UINT32_C(2954399978), UINT32_C(2907794558), UINT32_C(1116234205), UINT32_C(3682864749), UINT32_C(1594039363), UINT32_C(1567968055), UINT32_C(1057592642), UINT32_C(1930827657),
      UINT32_C( 623062951), UINT32_C(2027058331), UINT32_C(1136286678), UINT32_C(2887728745), UINT32_C(2450203226), UINT32_C(2951708781), UINT32_C(2666461461), UINT32_C(3071345936),
      UINT32_C(3487380532), UINT32_C(2135404457), UINT32_C(1942094090), UINT32_C(2585780544) };
  static const uint32_t b[] =
    { UINT32_C(1091653393), UINT32_C( 320325188), UINT32_C(3778122021), UINT32_C(2245500465), UINT32_C(1471655660), UINT32_C(3991687637), UINT32_C(4242734545), UINT32_C(3097250727),
      UINT32_C(3740970394), UINT32_C(2582778227), UINT32_C(3564774306), UINT32_C(2908312001), UINT32_C(3557036287), UINT32_C( 868348258), UINT32_C(2502927342), UINT32_C(2303642606),
      UINT32_C(3949414520), UINT32_C(4236532057), UINT32_C(1053884029), UINT32_C(1340877135), UINT32_C(2602823737), UINT32_C(3503220193), UINT32_C(2003172744), UINT32_C(1073787848),
      UINT32_C(1428973563), UINT32_C(1045541057), UINT32_C(4269547951), UINT32_C(2202888266), UINT32_C( 975139161), UINT32_C(3725258070), UINT32_C(3008721131), UINT32_C( 536106275),
      UINT32_C(2121539773), UINT32_C(2143077840), UINT32_C( 813578470), UINT32_C(4206087073), UINT32_C(2452935228), UINT32_C(2876325824), UINT32_C(3529426607), UINT32_C(3656471068),
      UINT32_C(1129801074), UINT32_C( 281154346), UINT32_C(3963633739), UINT32_C(1223095308), UINT32_C(2262506438), UINT32_C( 154225754), UINT32_C( 786141202), UINT32_C(1426574818),
      UINT32_C(1570266674), UINT32_C(3178060401), UINT32_C(2812915355), UINT32_C(1760530594), UINT32_C(  99601067), UINT32_C( 688791574), UINT32_C(2472012208), UINT32_C(3924320182),
      UINT32_C( 793149629), UINT32_C(1978446810), UINT32_C(  52204897), UINT32_C(3496741925), UINT32_C(3990182870), UINT32_C( 739697531), UINT32_C(2210360781), UINT32_C(2322376652),
      UINT32_C(  28946983), UINT32_C(3346507110), UINT32_C(1623954234), UINT32_C(1982871455), UINT32_C( 224593554), UINT32_C(3057220073), UINT32_C(3006986470), UINT32_C(3325929119),
      UINT32_C(3217618521), UINT32_C(3582345115), UINT32_C(1916096978), UINT32_C( 451438216), UINT32_C(1428704108), UINT32_C(2852938180), UINT32_C(4183639642), UINT32_C(1170250476),
      UINT32_C( 721717392), UINT32_C(2567015367), UINT32_C(1695233756), UINT32_C( 142603164), UINT32_C(  39757630), UINT32_C(1672309257), UINT32_C(2623277744), UINT32_C( 904010917),
      UINT32_C(1801578148), UINT32_C(1308975729), UINT32_C( 900927640), UINT32_C(1111306756), UINT32_C(3812989914), UINT32_C(3041325573), UINT32_C(2706547452), UINT32_C(1675048127),
      UINT32_C(2362390554), UINT32_C( 853202074), UINT32_C(3899100644), UINT32_C(2569774527), UINT32_C(1182560320), UINT32_C(1593557602), UINT32_C( 603999589), UINT32_C(2626148225),
      UINT32_C(2837992975), UINT32_C( 266011178), UINT32_C(1324827535), UINT32_C( 686301928), UINT32_C(4100875410), UINT32_C(2354276903), UINT32_C( 967857079), UINT32_C( 970274602),
      UINT32_C(3101883790), UINT32_C(2395454975), UINT32_C(3906780928), UINT32_C(1947321569), UINT32_C(1349025577), UINT32_C(2715597801), UINT32_C( 953846798), UINT32_C(1366405059),
      UINT32_C(2869580716), UINT32_C( 289001745), UINT32_C(1928992144), UINT32_C(  65407962), UINT32_C(1951616650), UINT32_C( 404041482), UINT32_C(2119299003), UINT32_C(1255195294),
      UINT32_C( 670423574), UINT32_C(1010314923), UINT32_C( 497955395), UINT32_C(3357578301), UINT32_C(3963384802), UINT32_C(1560629666), UINT32_C(3738981952), UINT32_C( 774417432),
      UINT32_C( 827661702), UINT32_C(2389544523), UINT32_C(4272692160), UINT32_C(2462502063), UINT32_C(3799908928), UINT32_C(2470478675), UINT32_C(4067499225), UINT32_C(1310759368),
      UINT32_C(  25130678), UINT32_C(3297766660), UINT32_C(3099736840), UINT32_C(1212844040), UINT32_C(3710568586), UINT32_C( 628124236), UINT32_C(1310187910), UINT32_C( 815544442),
      UINT32_C(2989563054), UINT32_C( 292995337), UINT32_C(  80296444), UINT32_C(1280054209), UINT32_C( 673806300), UINT32_C(1749916385), UINT32_C(4139148667), UINT32_C(1260802973),
      UINT32_C(2029869167), UINT32_C( 361329433), UINT32_C(1847219116), UINT32_C(1119512166), UINT32_C(3211453405), UINT32_C(4180129917), UINT32_C(3136281885), UINT32_C(2667910448),
      UINT32_C(2249654893), UINT32_C( 580690293), UINT32_C(1519433460), UINT32_C(4204612124), UINT32_C(2881029933), UINT32_C(3701792959), UINT32_C(4002845629), UINT32_C( 378379176),
      UINT32_C( 329033117), UINT32_C( 976566342), UINT32_C( 194299374), UINT32_C(1006973199), UINT32_C(4175937081), UINT32_C(1540721566), UINT32_C(3343477534), UINT32_C(2766001927),
      UINT32_C(3266804092), UINT32_C(2700930226), UINT32_C(3232469169), UINT32_C(4227707074), UINT32_C( 217310318), UINT32_C(2389231728), UINT32_C( 995471668), UINT32_C(  81736328),
      UINT32_C(1590073260), UINT32_C( 905888387), UINT32_C( 368421459), UINT32_C(3373331034), UINT32_C(1205142487), UINT32_C(  13974988), UINT32_C(2000366575), UINT32_C( 159128157),
      UINT32_C( 895959729), UINT32_C(1483367941), UINT32_C(1785552656), UINT32_C( 691240274), UINT32_C(1282410880), UINT32_C( 894190918), UINT32_C(3467478896), UINT32_C(1406609826),
      UINT32_C(1887977323), UINT32_C(3049845413), UINT32_C(2753508690), UINT32_C( 869094322) };
  static const uint32_t e[] =
    { UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(2156986896), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(   1576336), UINT32_C( 407896371), UINT32_C(         0), UINT32_C(2152267905), UINT32_C(         0), UINT32_C(  12689442), UINT32_C( 271557410), UINT32_C(         0),
      UINT32_C(  33701960), UINT32_C(         0), UINT32_C( 143677464), UINT32_C(  76032070), UINT32_C(         0), UINT32_C(2147623297), UINT32_C(1996837128), UINT32_C(       648),
      UINT32_C( 268968835), UINT32_C( 777060353), UINT32_C(1215561762), UINT32_C(         0), UINT32_C( 706048064), UINT32_C(3725101072), UINT32_C(2454991051), UINT32_C( 153109762),
      UINT32_C(         0), UINT32_C( 429162896), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(2204122752), UINT32_C(         0), UINT32_C( 293621760),
      UINT32_C(         0), UINT32_C(         0), UINT32_C(3422552139), UINT32_C(1082176524), UINT32_C(         0), UINT32_C( 137379904), UINT32_C( 542244864), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(3041663088), UINT32_C(2726399498), UINT32_C( 139329664), UINT32_C(  70141986), UINT32_C( 671096850), UINT32_C(2203148416), UINT32_C(3777502994),
      UINT32_C(         0), UINT32_C(1164751832), UINT32_C(  33558528), UINT32_C(         0), UINT32_C(         0), UINT32_C( 604160601), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(         0), UINT32_C(1086554656), UINT32_C(1915761545), UINT32_C(  90309762), UINT32_C(2250776960), UINT32_C( 572184742), UINT32_C(1076987546),
      UINT32_C(         0), UINT32_C(         0), UINT32_C( 840171792), UINT32_C(         0), UINT32_C(1411908428), UINT32_C(2852134976), UINT32_C( 945292290), UINT32_C(  71338212),
      UINT32_C( 167774352), UINT32_C(         0), UINT32_C(         0), UINT32_C(   6062744), UINT32_C(   4849716), UINT32_C(         0), UINT32_C(   4194336), UINT32_C(         0),
      UINT32_C(1096859652), UINT32_C(         0), UINT32_C(         0), UINT32_C(   3997700), UINT32_C(2734753920), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(1182023744), UINT32_C(         0), UINT32_C( 536890368), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C( 138420936), UINT32_C(         0), UINT32_C(2147707425), UINT32_C( 565203126), UINT32_C( 952382498),
      UINT32_C(         0), UINT32_C( 138677724), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(2161672904), UINT32_C(         0), UINT32_C( 290532864),
      UINT32_C(         0), UINT32_C( 287395840), UINT32_C(         0), UINT32_C(   4587994), UINT32_C(1678970496), UINT32_C(         0), UINT32_C( 843153571), UINT32_C(         0),
      UINT32_C(         0), UINT32_C( 942670465), UINT32_C( 268570626), UINT32_C(3221229613), UINT32_C(         0), UINT32_C(1493258240), UINT32_C(2659980800), UINT32_C( 201893912),
      UINT32_C( 536877318), UINT32_C(  73400843), UINT32_C(4163109824), UINT32_C(2193785902), UINT32_C( 576979008), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(   1663490), UINT32_C(2147969284), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C( 611347012), UINT32_C(  68526338), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(  24297480), UINT32_C(         0), UINT32_C(  67633537), UINT32_C(         0), UINT32_C( 134222016), UINT32_C(2786460970), UINT32_C( 170267013),
      UINT32_C(         0), UINT32_C( 352412160), UINT32_C(         0), UINT32_C(         0), UINT32_C(2550170328), UINT32_C( 807505928), UINT32_C( 449384464), UINT32_C(2332295200),
      UINT32_C(   1245224), UINT32_C(         0), UINT32_C( 177210020), UINT32_C(2291485200), UINT32_C(  18876205), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(         0), UINT32_C( 304091206), UINT32_C( 169099722), UINT32_C( 671363084), UINT32_C(         0), UINT32_C(         0), UINT32_C(  34081304), UINT32_C( 550766086),
      UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(  76555374), UINT32_C(  71829520), UINT32_C(         0), UINT32_C(         0),
      UINT32_C( 268472488), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0),
      UINT32_C(         0), UINT32_C(1480745985), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C(         0), UINT32_C( 319881472),
      UINT32_C(1082668064), UINT32_C(         0), UINT32_C(         0), UINT32_C( 302858496) };

  static uint32_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_svuint32_t
      rv,
      av = simde_svld1_u32(pg, &(a[i])),
      bv = simde_svld1_u32(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(INT32_C(0)));
    rv = simde_svand_u32_z(pv, av, bv);

    simde_svst1_u32(pg, &(r[i]), rv);

    i += simde_svcntw();
    pg = simde_svwhilelt_b32_s32(i, len);
  }

  simde_assert_equal_vu32(len, e, r);

  return 0;
#else
  int32_t p[1024 / sizeof(int32_t)];
  uint32_t a[1024 / sizeof(int32_t)], b[1024 / sizeof(int32_t)], e[1024 / sizeof(int32_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u32_z(pv, av, bv);

    simde_svst1_u32(pg, &(e[i]), ev);
    simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~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_1vu32(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u32_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int32_t p[] =
    {  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(           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(           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(           1), -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(           1), -INT32_C(           1),  INT32_C(           0),
      -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(           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(           1), -INT32_C(           1),  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(           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(           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(           1),  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(           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(           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(           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(           1), -INT32_C(           1),  INT32_C(           0),  INT32_C(           0), -INT32_C(           1), -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(           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(           0), -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(           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(           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(           1), -INT32_C(           1),  INT32_C(           0),
      -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) };
  static const uint32_t a[] =
    { UINT32_C(1626678061), UINT32_C(1762783989), UINT32_C(1194811130), UINT32_C(1559250464), UINT32_C(2711552421), UINT32_C(4197561146), UINT32_C(2145765871), UINT32_C(1895296066),
      UINT32_C(  97578000), UINT32_C(3647922911), UINT32_C(1612752192), UINT32_C(2445021420), UINT32_C(1261591313), UINT32_C(4265960207), UINT32_C(1853696556), UINT32_C( 668890391),
      UINT32_C(1076670305), UINT32_C(3508116369), UINT32_C( 741488960), UINT32_C(1522396745), UINT32_C(1504046922), UINT32_C(2119691090), UINT32_C( 753783829), UINT32_C(2874395465),
      UINT32_C( 199983226), UINT32_C(1541211419), UINT32_C(2290618174), UINT32_C(1206011389), UINT32_C(2275444789), UINT32_C(2282157939), UINT32_C( 364245964), UINT32_C( 968886462),
      UINT32_C(2739186824), UINT32_C(4026474929), UINT32_C( 779585328), UINT32_C(  24468172), UINT32_C(1435047650), UINT32_C(3655175949), UINT32_C(1089442434), UINT32_C( 595177371),
      UINT32_C( 214416987), UINT32_C( 285001439), UINT32_C( 423523149), UINT32_C(2937828301), UINT32_C(3607405769), UINT32_C(3048268339), UINT32_C( 267755380), UINT32_C(2855497551),
      UINT32_C( 213383725), UINT32_C( 219984832), UINT32_C(4096154150), UINT32_C(3617800462), UINT32_C( 414099685), UINT32_C(4274872202), UINT32_C(1292813310), UINT32_C(1610105138),
      UINT32_C(4218138427), UINT32_C(2282260578), UINT32_C(4034670306), UINT32_C(1439178864), UINT32_C(1382971080), UINT32_C(3562027989), UINT32_C( 807493374), UINT32_C(3666811295),
      UINT32_C( 718666696), UINT32_C(1706286467), UINT32_C(2086022924), UINT32_C( 399580751), UINT32_C(1785282452), UINT32_C(2034154107), UINT32_C(3098173208), UINT32_C(1100102009),
      UINT32_C(3077335092), UINT32_C(1360863045), UINT32_C(2664264526), UINT32_C( 632659857), UINT32_C(1502552030), UINT32_C(4057189849), UINT32_C(2796125485), UINT32_C(3957800118),
      UINT32_C(3919729572), UINT32_C(3241918322), UINT32_C(3277785138), UINT32_C(2263422119), UINT32_C( 215971891), UINT32_C(1946071622), UINT32_C(3860440879), UINT32_C(2278621411),
      UINT32_C(3329323860), UINT32_C(1703390259), UINT32_C(1546249908), UINT32_C( 786567931), UINT32_C(3493577098), UINT32_C(2739091828), UINT32_C(3297336544), UINT32_C(2974505565),
      UINT32_C(  24624334), UINT32_C( 493289320), UINT32_C(3766063077), UINT32_C( 739204001), UINT32_C(2432453148), UINT32_C(1664368771), UINT32_C(4180131228), UINT32_C(3869930264),
      UINT32_C(2565284399), UINT32_C( 112545057), UINT32_C(2129080029), UINT32_C(2779444873), UINT32_C(3275138880), UINT32_C(2200333031), UINT32_C(1065176615), UINT32_C(4028966849),
      UINT32_C(1787300937), UINT32_C( 930168154), UINT32_C(4105525355), UINT32_C(2392481870), UINT32_C(3998339079), UINT32_C(1634826042), UINT32_C(2258759365), UINT32_C(1601685014),
      UINT32_C( 768278483), UINT32_C(2825141053), UINT32_C(3785169299), UINT32_C(2154772345), UINT32_C(1097777159), UINT32_C(4255309879), UINT32_C(3833807822), UINT32_C(3712285194),
      UINT32_C( 923406074), UINT32_C(3705630281), UINT32_C(  29195399), UINT32_C(3129027763), UINT32_C( 603713772), UINT32_C(2652937936), UINT32_C(3951273185), UINT32_C(2563295134),
      UINT32_C( 516936405), UINT32_C(3371872064), UINT32_C(3754538795), UINT32_C(3482929891), UINT32_C( 183670074), UINT32_C( 346624819), UINT32_C(1426074807), UINT32_C(3371092211),
      UINT32_C(3689332123), UINT32_C(2560876652), UINT32_C(2054646935), UINT32_C(4048097463), UINT32_C(3640408997), UINT32_C(  99460430), UINT32_C(3294358993), UINT32_C(1351371189),
      UINT32_C(1932292614), UINT32_C(3909865298), UINT32_C(4083384892), UINT32_C( 954510482), UINT32_C( 907075815), UINT32_C(1446772101), UINT32_C(2686097130), UINT32_C(3874531039),
      UINT32_C(1784224792), UINT32_C( 676553964), UINT32_C(2015082214), UINT32_C(1253113698), UINT32_C(1702937056), UINT32_C(2847718334), UINT32_C( 826922578), UINT32_C(2501327229),
      UINT32_C(1107325014), UINT32_C(3127530452), UINT32_C(1815315722), UINT32_C(1689707396), UINT32_C(1674196644), UINT32_C(1141671666), UINT32_C(3648345436), UINT32_C(3832515982),
      UINT32_C(3525734397), UINT32_C(3431764162), UINT32_C(2587475733), UINT32_C(1207889827), UINT32_C( 413845542), UINT32_C(2874979918), UINT32_C(2592395531), UINT32_C(1551823710),
      UINT32_C( 623813986), UINT32_C(1274133045), UINT32_C( 501557882), UINT32_C(1080353562), UINT32_C(4200075180), UINT32_C(3517297861), UINT32_C(3832228485), UINT32_C(2151737629),
      UINT32_C(3299176078), UINT32_C(2718930472), UINT32_C(3686790337), UINT32_C(2199594199), UINT32_C(4169036595), UINT32_C(2898862887), UINT32_C(1804612685), UINT32_C(2901135390),
      UINT32_C(1735430206), UINT32_C(3876159270), UINT32_C(1271056755), UINT32_C( 550428141), UINT32_C(1998081104), UINT32_C(3173311088), UINT32_C( 875082774), UINT32_C(3286307717),
      UINT32_C(3391771043), UINT32_C(1152464081), UINT32_C(3935270141), UINT32_C(2718588497), UINT32_C( 437854890), UINT32_C( 467156228), UINT32_C(2001666290), UINT32_C(3074043924),
      UINT32_C(1400989058) };
  static const uint32_t b[] =
    { UINT32_C( 918159404), UINT32_C(1069252434), UINT32_C(1024031592), UINT32_C(1968559048), UINT32_C( 247227070), UINT32_C(3512768145), UINT32_C(2275711056), UINT32_C(2109422929),
      UINT32_C(2427745854), UINT32_C(1573875701), UINT32_C(2996558314), UINT32_C(1797779628), UINT32_C(3833193554), UINT32_C(3400915578), UINT32_C(3276888434), UINT32_C(3577810327),
      UINT32_C(2019947907), UINT32_C(1322595684), UINT32_C(3120590862), UINT32_C(3005556576), UINT32_C(2241306379), UINT32_C(3947842681), UINT32_C(1034920358), UINT32_C( 823324846),
      UINT32_C(1235843045), UINT32_C(3130490540), UINT32_C(1333106671), UINT32_C(3389168318), UINT32_C(2991561017), UINT32_C(2359205862), UINT32_C(4006169920), UINT32_C( 572513085),
      UINT32_C(4285253714), UINT32_C( 901317190), UINT32_C(1468346009), UINT32_C(  35751881), UINT32_C( 129331489), UINT32_C(1351832336), UINT32_C(3711851680), UINT32_C(2315214135),
      UINT32_C(1804102181), UINT32_C(  94454380), UINT32_C( 962340464), UINT32_C(3460071085), UINT32_C(4292211183), UINT32_C(3830409284), UINT32_C(4223765956), UINT32_C( 260423914),
      UINT32_C(2524581162), UINT32_C(3231390543), UINT32_C(4026136385), UINT32_C(1690121589), UINT32_C(1784910630), UINT32_C(3226383099), UINT32_C( 700124991), UINT32_C(4181213391),
      UINT32_C(2643440462), UINT32_C( 274541262), UINT32_C(2550093602), UINT32_C(3019685004), UINT32_C(1260216143), UINT32_C(1359703058), UINT32_C(1266402939), UINT32_C(1430565639),
      UINT32_C( 905106534), UINT32_C( 541413630), UINT32_C( 867714215), UINT32_C(1357296640), UINT32_C( 630916115), UINT32_C(3950487152), UINT32_C(1932980844), UINT32_C( 214465445),
      UINT32_C(1296153423), UINT32_C(2993587723), UINT32_C(3404015306), UINT32_C(3977956570), UINT32_C(1075033552), UINT32_C(3358296667), UINT32_C( 557539964), UINT32_C( 741147869),
      UINT32_C(3396955839), UINT32_C(3195856884), UINT32_C(3884540173), UINT32_C(4258636589), UINT32_C(3023956057), UINT32_C(4001130866), UINT32_C(2819602635), UINT32_C(2077507004),
      UINT32_C(2688896427), UINT32_C(1113506101), UINT32_C(1344988962), UINT32_C(3830316939), UINT32_C(1503169511), UINT32_C(3209106932), UINT32_C(2305251021), UINT32_C(1057242003),
      UINT32_C(3185527176), UINT32_C( 738213130), UINT32_C(2960927269), UINT32_C( 278186537), UINT32_C(1231629397), UINT32_C( 235450433), UINT32_C(2593615622), UINT32_C( 853121962),
      UINT32_C(4008753380), UINT32_C( 438038773), UINT32_C(1137350426), UINT32_C(3058916961), UINT32_C(3439312011), UINT32_C(1926956908), UINT32_C( 537686646), UINT32_C(4065584398),
      UINT32_C(2481013661), UINT32_C(1303247923), UINT32_C(4119885971), UINT32_C(1638654934), UINT32_C( 187607967), UINT32_C( 696060338), UINT32_C(2303298171), UINT32_C( 226270319),
      UINT32_C( 312499679), UINT32_C(3965668697), UINT32_C(2632052677), UINT32_C(1912442322), UINT32_C(3934006072), UINT32_C(2954099252), UINT32_C(4080622980), UINT32_C(3640702457),
      UINT32_C(1810604050), UINT32_C(3008908270), UINT32_C( 223295802), UINT32_C(4269690310), UINT32_C(2917792632), UINT32_C(2036202741), UINT32_C(1399625305), UINT32_C(1579969868),
      UINT32_C(4224325389), UINT32_C(2645500514), UINT32_C( 581631579), UINT32_C(3290441803), UINT32_C( 410061091), UINT32_C(1603390982), UINT32_C(2964520548), UINT32_C(2014305899),
      UINT32_C(1484052982), UINT32_C(1458906107), UINT32_C(1836621601), UINT32_C(3945896392), UINT32_C(2818876066), UINT32_C(3557332336), UINT32_C(4270176915), UINT32_C(2406978713),
      UINT32_C(1760029549), UINT32_C( 801037582), UINT32_C(1151088508), UINT32_C(1915801040), UINT32_C(3743102063), UINT32_C(1572086729), UINT32_C(1985690077), UINT32_C( 973460173),
      UINT32_C(3416452541), UINT32_C(1190879434), UINT32_C(1737201559), UINT32_C(3571104613), UINT32_C(3098867183), UINT32_C(4111820824), UINT32_C(1852600737), UINT32_C(  27816259),
      UINT32_C( 684477022), UINT32_C(1114621866), UINT32_C(3299474015), UINT32_C(2761458613), UINT32_C(2421967992), UINT32_C(1434874548), UINT32_C( 650375907), UINT32_C(3257363299),
      UINT32_C(1626010805), UINT32_C( 446847419), UINT32_C( 148786003), UINT32_C(1202485199), UINT32_C(2027424195), UINT32_C(1590517371), UINT32_C(3011809616), UINT32_C(2994056444),
      UINT32_C(1527931040), UINT32_C( 225883321), UINT32_C(3457504511), UINT32_C(2400633547), UINT32_C(1174925003), UINT32_C(2628047948), UINT32_C(1649354853), UINT32_C(1947518420),
      UINT32_C(3738183205), UINT32_C(3656074970), UINT32_C(1722286490), UINT32_C(2398469827), UINT32_C(4174707884), UINT32_C( 915699920), UINT32_C(1972954016), UINT32_C(3454643368),
      UINT32_C(2897000914), UINT32_C(2592446463), UINT32_C(1526738328), UINT32_C(2548692459), UINT32_C(3247422961), UINT32_C(3606520629), UINT32_C(2940964615), UINT32_C( 226309179),
      UINT32_C(3988335086), UINT32_C(1502035904), UINT32_C(1488226156), UINT32_C(1844420220), UINT32_C(2435809115), UINT32_C(2842109602), UINT32_C(4049187510), UINT32_C(3573536486),
      UINT32_C(3217209599) };
  static const uint32_t e[] =
    { UINT32_C(1626678061), UINT32_C( 689009232), UINT32_C(1194811130), UINT32_C(1414545920), UINT32_C(  10223780), UINT32_C(3491795472), UINT32_C( 128223296), UINT32_C(1890790464),
      UINT32_C(   9462800), UINT32_C(1498309333), UINT32_C(1612752192), UINT32_C(2445021420), UINT32_C(1261591313), UINT32_C(4265960207), UINT32_C(1112606752), UINT32_C(  88081687),
      UINT32_C(1076670305), UINT32_C(1074860288), UINT32_C( 741488960), UINT32_C( 304424512), UINT32_C(  25530122), UINT32_C(1783056464), UINT32_C( 753783829), UINT32_C(2874395465),
      UINT32_C( 162070624), UINT32_C(1541211419), UINT32_C(2290618174), UINT32_C(1206011389), UINT32_C(2181072945), UINT32_C(2282157939), UINT32_C( 364245964), UINT32_C( 536873020),
      UINT32_C(2739186824), UINT32_C(4026474929), UINT32_C( 100992528), UINT32_C(   2163400), UINT32_C(1435047650), UINT32_C(1351680768), UINT32_C(1089442434), UINT32_C(  24710419),
      UINT32_C( 142617089), UINT32_C( 285001439), UINT32_C( 421274176), UINT32_C(2383950477), UINT32_C(3607404745), UINT32_C(2751488000), UINT32_C( 197233988), UINT32_C(2855497551),
      UINT32_C(  70387752), UINT32_C(   1577792), UINT32_C(3827323392), UINT32_C(3617800462), UINT32_C( 136478756), UINT32_C(4274872202), UINT32_C(1292813310), UINT32_C(1496858626),
      UINT32_C(2567676682), UINT32_C(    526402), UINT32_C(2424047138), UINT32_C(1439178864), UINT32_C(1108104776), UINT32_C(1342187536), UINT32_C( 807493374), UINT32_C(1342443783),
      UINT32_C( 718666696), UINT32_C(1706286467), UINT32_C(2086022924), UINT32_C( 281023488), UINT32_C( 537461776), UINT32_C(2034154107), UINT32_C(3098173208), UINT32_C(1100102009),
      UINT32_C(  88090628), UINT32_C(1360863045), UINT32_C(2328175178), UINT32_C( 621841552), UINT32_C(1073944016), UINT32_C(4057189849), UINT32_C(2796125485), UINT32_C( 673514644),
      UINT32_C(3919729572), UINT32_C(3241918322), UINT32_C(3272146944), UINT32_C(2263422119), UINT32_C( 215971891), UINT32_C(1652301890), UINT32_C(3860440879), UINT32_C(2278621411),
      UINT32_C(2151760128), UINT32_C(1074167857), UINT32_C(1546249908), UINT32_C( 786567931), UINT32_C(1343783298), UINT32_C(2739091828), UINT32_C(2147570880), UINT32_C(2974505565),
      UINT32_C(  22481032), UINT32_C( 201342216), UINT32_C(2692221477), UINT32_C( 739204001), UINT32_C(   6817812), UINT32_C(  33554433), UINT32_C(2550607108), UINT32_C( 579343112),
      UINT32_C(2565284399), UINT32_C(  34684961), UINT32_C(2129080029), UINT32_C(2751616513), UINT32_C(3224806400), UINT32_C(2200333031), UINT32_C(1065176615), UINT32_C(4026606848),
      UINT32_C(1787300937), UINT32_C(  86064146), UINT32_C(4105525355), UINT32_C(2392481870), UINT32_C(3998339079), UINT32_C( 561054002), UINT32_C(2258759365), UINT32_C( 225739782),
      UINT32_C( 768278483), UINT32_C(2823031065), UINT32_C(2155940225), UINT32_C(   7144784), UINT32_C(1080819712), UINT32_C(4255309879), UINT32_C(3758178692), UINT32_C(3640700936),
      UINT32_C( 587857938), UINT32_C(2421705288), UINT32_C(  17643522), UINT32_C(3120565378), UINT32_C( 603713772), UINT32_C(2652937936), UINT32_C(3951273185), UINT32_C( 403195148),
      UINT32_C( 449450501), UINT32_C(2292851264), UINT32_C(  42513931), UINT32_C(3288336451), UINT32_C( 183670074), UINT32_C( 343998978), UINT32_C( 268446756), UINT32_C(1208928355),
      UINT32_C(1482987922), UINT32_C(2560876652), UINT32_C(1752173569), UINT32_C(3774943360), UINT32_C(2281972384), UINT32_C(  99460430), UINT32_C(3294358993), UINT32_C(    262289),
      UINT32_C(1612997124), UINT32_C( 688573698), UINT32_C(4083384892), UINT32_C( 954510482), UINT32_C( 370155623), UINT32_C(1412440449), UINT32_C( 538579144), UINT32_C(3874531039),
      UINT32_C(1241517080), UINT32_C( 676553964), UINT32_C(1611372166), UINT32_C(1083226976), UINT32_C( 545309152), UINT32_C(2702452760), UINT32_C( 541609984), UINT32_C(  16789825),
      UINT32_C(     16470), UINT32_C(3127530452), UINT32_C(1143046154), UINT32_C(1689707396), UINT32_C(1674196644), UINT32_C(1141113520), UINT32_C(3648345436), UINT32_C(3832515982),
      UINT32_C(3525734397), UINT32_C( 142610562), UINT32_C(2587475733), UINT32_C(1202481027), UINT32_C( 413845542), UINT32_C(2874979918), UINT32_C(2592395531), UINT32_C( 276078684),
      UINT32_C( 623813986), UINT32_C( 158380081), UINT32_C( 501557882), UINT32_C(1080353562), UINT32_C(1107299976), UINT32_C(3517297861), UINT32_C(1615538181), UINT32_C(     49428),
      UINT32_C(3299176078), UINT32_C(2148206088), UINT32_C(1118306432), UINT32_C(2199594199), UINT32_C(4166283296), UINT32_C(2898862887), UINT32_C(1636835328), UINT32_C(2364112904),
      UINT32_C(1735430206), UINT32_C(2181109542), UINT32_C(1258293520), UINT32_C( 550428141), UINT32_C(1091046480), UINT32_C(2485396016), UINT32_C( 604537862), UINT32_C(3286307717),
      UINT32_C(3358065058), UINT32_C(1152464081), UINT32_C(3935270141), UINT32_C(2718588497), UINT32_C( 269033994), UINT32_C( 155198464), UINT32_C(2001666290), UINT32_C(3074043924),
      UINT32_C(1400989058) };

  static uint32_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_svuint32_t
      rv,
      av = simde_svld1_u32(pg, &(a[i])),
      bv = simde_svld1_u32(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s32(pg, simde_svld1_s32(pg, &(p[i])), simde_svdup_n_s32(INT32_C(0)));
    rv = simde_svand_u32_m(pv, av, bv);

    simde_svst1_u32(pg, &(r[i]), rv);

    i += simde_svcntw();
    pg = simde_svwhilelt_b32_s32(i, len);
  }

  simde_assert_equal_vu32(len, e, r);

  return 0;
#else
  int32_t p[1024 / sizeof(int32_t)];
  uint32_t a[1024 / sizeof(int32_t)], b[1024 / sizeof(int32_t)], e[1024 / sizeof(int32_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u32_m(pv, av, bv);

    simde_svst1_u32(pg, &(e[i]), ev);
    simde_svst1_s32(pg, &(p[i]), simde_svdup_n_s32_z(pv, ~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_1vu32(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u64_z (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int64_t p[] =
    {  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(                   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(                   0), -INT64_C(                   1), -INT64_C(                   1), -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(                   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(                   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(                   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(                   1),
       INT64_C(                   0), -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(                   1),  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(                   1),
       INT64_C(                   0),  INT64_C(                   0),  INT64_C(                   0), -INT64_C(                   1) };
  static const uint64_t a[] =
    { UINT64_C(11897122862462087975), UINT64_C( 2296171473860360793), UINT64_C( 8865473458257458354), UINT64_C(10066392223984415985),
      UINT64_C( 6417445852343627317), UINT64_C( 4124287387801740115), UINT64_C(13978003158988640861), UINT64_C( 9960339864598172491),
      UINT64_C( 2631232279211702314), UINT64_C(15467470505233158375), UINT64_C(10980147859861960400), UINT64_C( 5874243293399214757),
      UINT64_C( 7273313938488195834), UINT64_C( 9250247053992407312), UINT64_C(12526060910497806064), UINT64_C(10944924248739159148),
      UINT64_C( 8181443345481162920), UINT64_C(14318168991375973508), UINT64_C(14106919272089637904), UINT64_C( 4911521312768683764),
      UINT64_C( 7236145369605311642), UINT64_C(15054773517534389840), UINT64_C(13635401902629384224), UINT64_C( 7276543534512967707),
      UINT64_C(12126445954825872645), UINT64_C( 5602684841948602672), UINT64_C( 8157142993099597996), UINT64_C(  125015551593972366),
      UINT64_C( 1552105685966527369), UINT64_C(13946175891114907920), UINT64_C(15867142794359820141), UINT64_C(  714367551868787948),
      UINT64_C( 1010623804720467724), UINT64_C( 4441910225620634573), UINT64_C( 3552833529417030436), UINT64_C( 9158072535455728271),
      UINT64_C( 4962252621385564881), UINT64_C( 2490151937126115457), UINT64_C( 5772738144891080358), UINT64_C(  745476824361809509),
      UINT64_C(13850177714299455609), UINT64_C(14771982870848363743), UINT64_C(15870637223464965166), UINT64_C(10325922806100172298),
      UINT64_C(13678756829855688405), UINT64_C(13043720326315959824), UINT64_C(11205770137068485679), UINT64_C( 1740407350329489027),
      UINT64_C( 7848648642233411410), UINT64_C( 5774644008762705895), UINT64_C( 3499711073994852452), UINT64_C(17080729089339846575),
      UINT64_C( 2116139006505531031), UINT64_C( 1009562414142390928), UINT64_C( 2329651220425537655), UINT64_C(11856882763788590340),
      UINT64_C( 4802796199781771602), UINT64_C( 6390596741400572407), UINT64_C( 5584412171732562926), UINT64_C(18419574789131506158),
      UINT64_C( 2384142714716763426), UINT64_C(17120278949084137823), UINT64_C(15257012348906116133), UINT64_C( 4758172990687848284),
      UINT64_C( 2084652871220367266), UINT64_C( 5197984252483580214), UINT64_C(10790467725801451015), UINT64_C(11276071160667606297),
      UINT64_C(17658148770395296309), UINT64_C( 7238494464147876361), UINT64_C(13080722284469038010), UINT64_C(   86249869323216540),
      UINT64_C(18280395612638977277), UINT64_C(16225797826690014060), UINT64_C( 2889723868985195976), UINT64_C( 8237349200300214658),
      UINT64_C(12934021773274268813), UINT64_C(  992105030779447227), UINT64_C( 8708990766349981991), UINT64_C( 1836367538792340374),
      UINT64_C( 5067702468689439578), UINT64_C(11678096041578188991), UINT64_C(11958237952667452039), UINT64_C( 3202671562678320077),
      UINT64_C(16404398082857176279), UINT64_C( 5120302232199746289), UINT64_C( 7218910209417372794), UINT64_C(16172479078253583731) };
  static const uint64_t b[] =
    { UINT64_C(10565150879178933830), UINT64_C( 7429560120294616974), UINT64_C(11679900081139746720), UINT64_C(14157597032599743031),
      UINT64_C(15707115463907694249), UINT64_C( 5010488391150111889), UINT64_C( 8915457396507864539), UINT64_C( 9420869450647532923),
      UINT64_C( 8295883273648406780), UINT64_C( 9825761116277823857), UINT64_C(16413749716675745290), UINT64_C(11001055410762085967),
      UINT64_C(17144922836798838425), UINT64_C(12397953075346965721), UINT64_C( 6341565289472962231), UINT64_C( 1220241811298115002),
      UINT64_C(12189691471452753857), UINT64_C( 4993997819127737856), UINT64_C(14433303495713245676), UINT64_C(13459305427088952643),
      UINT64_C(15083999711381116381), UINT64_C(12620143627817157967), UINT64_C( 3522362384220194571), UINT64_C(16965819622071271615),
      UINT64_C(15828725025253911048), UINT64_C(16926177625779019122), UINT64_C( 4215901944486791524), UINT64_C( 2801067573057317605),
      UINT64_C(15507488239920314318), UINT64_C( 3355447575062572743), UINT64_C( 6714867563941041019), UINT64_C( 6173924394030604907),
      UINT64_C( 2297649826716692134), UINT64_C( 6614476000426651346), UINT64_C(13168385996226644714), UINT64_C(16536915737281695651),
      UINT64_C(16362371370739314075), UINT64_C( 1872454213024405697), UINT64_C( 8184794032996306325), UINT64_C( 6732346816271668553),
      UINT64_C(17454652744879070790), UINT64_C(11278015149586496315), UINT64_C( 9303050589363306204), UINT64_C( 1515312628644885992),
      UINT64_C(17652325727102392278), UINT64_C(17800162085093411940), UINT64_C( 9122529873043227615), UINT64_C(17389857330248065906),
      UINT64_C(14930825207088792198), UINT64_C( 6021946521295622783), UINT64_C( 7122166766048588739), UINT64_C(13021023827375882151),
      UINT64_C( 2230451279945247930), UINT64_C( 3567214216944823994), UINT64_C(10939351180157578366), UINT64_C( 2684723079172158048),
      UINT64_C( 1690608380269966777), UINT64_C(17801821653760814957), UINT64_C( 6285677042640197299), UINT64_C( 6572765753930781864),
      UINT64_C( 3373243132433105500), UINT64_C(10361117930880046425), UINT64_C( 1006956274974338987), UINT64_C( 7061176947486744066),
      UINT64_C( 3875606812063150809), UINT64_C(10478981222465261825), UINT64_C( 1041224370618605057), UINT64_C(14010892955786777098),
      UINT64_C( 8679321001439038306), UINT64_C( 5579046574246689525), UINT64_C(15382368657387790175), UINT64_C( 4423755135803730872),
      UINT64_C(15839141083267973600), UINT64_C( 4972294933080056936), UINT64_C(10620379464454943938), UINT64_C( 9038048927600166997),
      UINT64_C( 4475351894840436826), UINT64_C(13255207460025913801), UINT64_C( 2528393845734220969), UINT64_C( 4542936741284367344),
      UINT64_C( 5601521930390724776), UINT64_C( 5555172154665643884), UINT64_C(17691519246520048787), UINT64_C( 4564273526949009202),
      UINT64_C(15942877310713976430), UINT64_C(13770412457254009897), UINT64_C(  336826396563270577), UINT64_C( 3121966222621290364) };
  static const uint64_t e[] =
    { UINT64_C(                   0), UINT64_C(  511441682262174216), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C(   74380333852164113), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C( 9224528899281588321), UINT64_C( 9241758366647211520), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C( 2380806887982514304), UINT64_C( 4901071457853508608), UINT64_C(13854550223457632256), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C( 9232731904565838912), UINT64_C( 3467949598031511552), UINT64_C( 6949671096963104795),
      UINT64_C( 9802304528896778240), UINT64_C( 5242361546722050352), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0), UINT64_C(  119382226047598696),
      UINT64_C( 1009479595632266756), UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C( 5770275234356661380), UINT64_C(                   0),
      UINT64_C(13848887924337166400), UINT64_C(                   0), UINT64_C( 9230989662426272780), UINT64_C(  361704158379676680),
      UINT64_C(                   0), UINT64_C(13043691171717219328), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C( 5765170610596577895), UINT64_C( 2346657569396883520), UINT64_C(11818272301177139111),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0), UINT64_C( 2594086616248094720),
      UINT64_C(  154869580160966928), UINT64_C(                   0), UINT64_C(                   0), UINT64_C( 6563751957606207656),
      UINT64_C(                   0), UINT64_C(10196731043701064025), UINT64_C(  124211163440350241), UINT64_C(                   0),
      UINT64_C( 1497491528863613568), UINT64_C(                   0), UINT64_C(  302620820376784385), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C( 4928134587546102273), UINT64_C(                   0), UINT64_C(   81137122737922712),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C(     572330238555328), UINT64_C(                   0),
      UINT64_C(                   0), UINT64_C(  414507382361588105), UINT64_C(                   0), UINT64_C(                   0),
      UINT64_C( 4905572832686809096), UINT64_C(                   0), UINT64_C(                   0), UINT64_C( 3193628902962729728),
      UINT64_C(                   0), UINT64_C(                   0), UINT64_C(                   0), UINT64_C( 2328413822632332656) };

  static uint64_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_svuint64_t
      rv,
      av = simde_svld1_u64(pg, &(a[i])),
      bv = simde_svld1_u64(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(INT64_C(0)));
    rv = simde_svand_u64_z(pv, av, bv);

    simde_svst1_u64(pg, &(r[i]), rv);

    i += simde_svcntd();
    pg = simde_svwhilelt_b64_s32(i, len);
  }

  simde_assert_equal_vu64(len, e, r);

  return 0;
#else
  int64_t p[1024 / sizeof(int64_t)];
  uint64_t a[1024 / sizeof(int64_t)], b[1024 / sizeof(int64_t)], e[1024 / sizeof(int64_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u64_z(pv, av, bv);

    simde_svst1_u64(pg, &(e[i]), ev);
    simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~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_1vu64(1, HEDLEY_STATIC_CAST(size_t, len), e);

  return 1;
#endif
}

static int
test_simde_svand_u64_m (SIMDE_MUNIT_TEST_ARGS) {
#if 1
  static const int64_t p[] =
    {  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(                   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(                   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(                   0),  INT64_C(                   0),
      -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), -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(                   1), -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(                   1),  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(                   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(                   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(                   1),
      -INT64_C(                   1) };
  static const uint64_t a[] =
    { UINT64_C( 4120469612070481998), UINT64_C(  650191952202805669), UINT64_C(15301226378054953940), UINT64_C( 7627278196972780319),
      UINT64_C(10933200521000393017), UINT64_C( 6801376109697079096), UINT64_C( 3596688425298244035), UINT64_C( 5800907998597385980),
      UINT64_C(10924197086342797328), UINT64_C(  507311661480340514), UINT64_C(12738720393710056326), UINT64_C(17220999571841738645),
      UINT64_C( 8869430832179301919), UINT64_C(16484073344059508856), UINT64_C( 8883427121691418852), UINT64_C( 8572924417144262444),
      UINT64_C(17277791098155428595), UINT64_C(  384617003340263188), UINT64_C( 5022048051147952975), UINT64_C(17420566565661694453),
      UINT64_C(15463114554686158643), UINT64_C(  151327653981865203), UINT64_C(10578929808748033650), UINT64_C(11146585445203058625),
      UINT64_C(16568985961460198743), UINT64_C( 5320179252991703072), UINT64_C(13256244302559055305), UINT64_C(14754961663349675458),
      UINT64_C(  426952343844947988), UINT64_C(13920537357273654542), UINT64_C( 7595354477140771771), UINT64_C( 1888512399021170419),
      UINT64_C(   21124853639682912), UINT64_C(10280334570031555826), UINT64_C(16368798968819208473), UINT64_C( 8477323803126185349),
      UINT64_C(14163265379534357917), UINT64_C(11784329828447974442), UINT64_C(17797535715545041194), UINT64_C( 7481647531580016969),
      UINT64_C(13799456511911956459), UINT64_C(12909082934043684857), UINT64_C( 6878907674559088911), UINT64_C(  596042083156752147),
      UINT64_C(13291327288991169312), UINT64_C( 9633869716615016567), UINT64_C( 6656174327740071914), UINT64_C(14886788955977161842),
      UINT64_C( 2031959771489525434), UINT64_C(13341015387284466984), UINT64_C( 1726031656683907406), UINT64_C( 7471823272865639989),
      UINT64_C( 6223713199949100445), UINT64_C(10882976302205598592), UINT64_C( 1152679452718645826), UINT64_C( 9396097505310189137),
      UINT64_C(15590937820997633497), UINT64_C(12573820829439579038), UINT64_C( 2511765945502314225), UINT64_C( 5450065224283508283),
      UINT64_C( 2953149187527763659), UINT64_C( 4836461729289347588), UINT64_C( 9525933761364997182), UINT64_C(11778679769676403640),
      UINT64_C( 9106209702232377773), UINT64_C( 4501361022601162979), UINT64_C( 3066812193766803393), UINT64_C( 2832986793842062292),
      UINT64_C(13514103842490160787), UINT64_C( 5146603399683275053), UINT64_C( 1120235477972138735), UINT64_C( 4446474133776949012),
      UINT64_C(18354093524435800866), UINT64_C(18310957754231793232), UINT64_C( 7178151008493596242), UINT64_C( 9777779220681939402),
      UINT64_C( 2560077394379734201), UINT64_C(11307437275496428510), UINT64_C(   15418687027301252), UINT64_C( 9659136865440376608),
      UINT64_C(11896425296469986850), UINT64_C(12335779562822701386), UINT64_C( 4756000364145105866), UINT64_C(13488796115411629277),
      UINT64_C( 2580220467267780962), UINT64_C(12226404232403116249), UINT64_C(13666922800486099781), UINT64_C(12137932470408999197),
      UINT64_C(14183418436139426522) };
  static const uint64_t b[] =
    { UINT64_C(13214734057245219122), UINT64_C(  183551915486387027), UINT64_C(10332596207607161146), UINT64_C( 9133392729081233441),
      UINT64_C(10971373722350459886), UINT64_C(   18794803734620865), UINT64_C( 2231258726325631975), UINT64_C( 4579802728422374853),
      UINT64_C( 4013565394312384725), UINT64_C(10987861362825751734), UINT64_C(16650080651361394165), UINT64_C(11062677712244574965),
      UINT64_C( 1334305035730047190), UINT64_C(12293995429884853075), UINT64_C( 9958492958264958249), UINT64_C( 9805840183467256759),
      UINT64_C( 9445552756725434791), UINT64_C(15686922265554297940), UINT64_C(12889961820498186178), UINT64_C(12807185151439057794),
      UINT64_C( 4449496960448368652), UINT64_C( 3312390289419028078), UINT64_C(17723466028803169096), UINT64_C( 8346548240558662681),
      UINT64_C(13879089451720738934), UINT64_C( 2543643026666742452), UINT64_C( 5861817782960050672), UINT64_C(16022199339232559744),
      UINT64_C( 3234668063097686481), UINT64_C( 9780015838345806267), UINT64_C(18226423369499811689), UINT64_C( 9226818658702223046),
      UINT64_C(15991023485222930760), UINT64_C( 4063984985067173705), UINT64_C( 6540575299205615947), UINT64_C( 3341553167845861424),
      UINT64_C(15338373626234536925), UINT64_C(14345964257348374288), UINT64_C(16886900715884048491), UINT64_C( 6057104519190930170),
      UINT64_C(16684482947576036652), UINT64_C(14106081456640441984), UINT64_C(11417220593549005262), UINT64_C(10433589523869809663),
      UINT64_C(14936982352537526156), UINT64_C(13703483829888160016), UINT64_C(  873901791086374878), UINT64_C(13396323423760850933),
      UINT64_C( 1336274975889043564), UINT64_C(13990336466408658552), UINT64_C( 2067262350385507991), UINT64_C(17071561242179875331),
      UINT64_C(16619184699405240206), UINT64_C( 6787336708050329226), UINT64_C(15936183931007825380), UINT64_C( 9967022312753372644),
      UINT64_C(13282450303352568064), UINT64_C(18230948534195495900), UINT64_C(11062021240990008269), UINT64_C(10112076004450014158),
      UINT64_C(  733609750779555912), UINT64_C( 8721694207333192946), UINT64_C( 1225159708027916977), UINT64_C(10758872244879687223),
      UINT64_C(10005091375651703201), UINT64_C(16695862195045894030), UINT64_C(12611571509099353008), UINT64_C(12911470566840656203),
      UINT64_C(   84824520212494603), UINT64_C( 1369074912529728482), UINT64_C(16566221411786771649), UINT64_C( 2859975003892243179),
      UINT64_C( 8095775095433933541), UINT64_C( 4841237117357561019), UINT64_C( 3049890496747680980), UINT64_C( 7134221319757418941),
      UINT64_C( 9225929245782166539), UINT64_C(17109117917898576553), UINT64_C(  894720230886730496), UINT64_C( 8458296021907575424),
      UINT64_C(15850164014283627699), UINT64_C( 7039537850517787818), UINT64_C( 4376666214129208418), UINT64_C( 4430587150554801052),
      UINT64_C( 5603793656356375479), UINT64_C(11746163265754942273), UINT64_C( 5387733065761334222), UINT64_C( 5944133145586696117),
      UINT64_C( 2326390544994611800) };
  static const uint64_t e[] =
    { UINT64_C( 4120469612070481998), UINT64_C(    1145839834140929), UINT64_C( 9529827917778460944), UINT64_C( 7627278196972780319),
      UINT64_C(10376863365514402088), UINT64_C( 6801376109697079096), UINT64_C( 3596688425298244035), UINT64_C( 1189146087980174532),
      UINT64_C( 1698429174978465808), UINT64_C(  507311661480340514), UINT64_C(12738720393710056326), UINT64_C(17220999571841738645),
      UINT64_C( 1298167369879797782), UINT64_C(16484073344059508856), UINT64_C( 8883427121691418852), UINT64_C( 8572924417144262444),
      UINT64_C(17277791098155428595), UINT64_C(   77163863484900372), UINT64_C( 5022048051147952975), UINT64_C(17420566565661694453),
      UINT64_C(15463114554686158643), UINT64_C(  151327653981865203), UINT64_C(10578929808748033650), UINT64_C( 1337745454158840833),
      UINT64_C(16568985961460198743), UINT64_C( 5320179252991703072), UINT64_C(13256244302559055305), UINT64_C(14754961663349675458),
      UINT64_C(  351509903181088784), UINT64_C(13920537357273654542), UINT64_C( 7521013734037390121), UINT64_C(    1152310340241090),
      UINT64_C(   21124853639682912), UINT64_C(10280334570031555826), UINT64_C( 4755944713173356809), UINT64_C( 8477323803126185349),
      UINT64_C(14163265379534357917), UINT64_C( 9440134203852342272), UINT64_C(16309786257117069354), UINT64_C( 7481647531580016969),
      UINT64_C(13799456511911956459), UINT64_C( 9440184771302076032), UINT64_C( 2193824771030974734), UINT64_C(  596042083156752147),
      UINT64_C( 9817919820417866496), UINT64_C( 9633869716615016567), UINT64_C(  864753834978013130), UINT64_C( 9838198237515881584),
      UINT64_C( 2031959771489525434), UINT64_C(13341015387284466984), UINT64_C( 1490691637788026886), UINT64_C( 7471823272865639989),
      UINT64_C( 6223713199949100445), UINT64_C(10882976302205598592), UINT64_C(  948046041310183488), UINT64_C( 9385960001207698496),
      UINT64_C(10976435609664504064), UINT64_C(12394195383128294300), UINT64_C( 2511765945502314225), UINT64_C(  576466249863692810),
      UINT64_C(  588282744850767944), UINT64_C( 4836461729289347588), UINT64_C(     176201033322544), UINT64_C( 9315133188542321200),
      UINT64_C(  745628416014961057), UINT64_C( 4501361022601162979), UINT64_C( 3066812193766803393), UINT64_C( 2832986793842062292),
      UINT64_C(13514103842490160787), UINT64_C(  174628834907275552), UINT64_C(  397161304344824001), UINT64_C( 4446474133776949012),
      UINT64_C( 8075183381531005472), UINT64_C(18310957754231793232), UINT64_C( 7178151008493596242), UINT64_C(  216595429714841992),
      UINT64_C(     299894103526409), UINT64_C(11307437275496428510), UINT64_C(   15418687027301252), UINT64_C( 9659136865440376608),
      UINT64_C( 9299950824669056034), UINT64_C( 2391822759085871114), UINT64_C(        146030987330), UINT64_C(13488796115411629277),
      UINT64_C( 2580220467267780962), UINT64_C(12226404232403116249), UINT64_C(13666922800486099781), UINT64_C(   31675830488822037),
      UINT64_C(   18190095724126808) };

  static uint64_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_svuint64_t
      rv,
      av = simde_svld1_u64(pg, &(a[i])),
      bv = simde_svld1_u64(pg, &(b[i]));
    simde_svbool_t pv;

    pv = simde_svcmplt_s64(pg, simde_svld1_s64(pg, &(p[i])), simde_svdup_n_s64(INT64_C(0)));
    rv = simde_svand_u64_m(pv, av, bv);

    simde_svst1_u64(pg, &(r[i]), rv);

    i += simde_svcntd();
    pg = simde_svwhilelt_b64_s32(i, len);
  }

  simde_assert_equal_vu64(len, e, r);

  return 0;
#else
  int64_t p[1024 / sizeof(int64_t)];
  uint64_t a[1024 / sizeof(int64_t)], b[1024 / sizeof(int64_t)], e[1024 / sizeof(int64_t)];
  int32_t len = simde_test_arm_sve_random_length(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_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, ev;
    simde_svbool_t pv;

    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_svand_u64_m(pv, av, bv);

    simde_svst1_u64(pg, &(e[i]), ev);
    simde_svst1_s64(pg, &(p[i]), simde_svdup_n_s64_z(pv, ~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_1vu64(1, HEDLEY_STATIC_CAST(size_t, len), e);
  printf("Length: %d\n", len);

  return 1;
#endif
}

SIMDE_TEST_FUNC_LIST_BEGIN
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s8_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s8_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s16_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s16_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s32_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s32_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s64_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_s64_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u8_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u8_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u16_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u16_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u32_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u32_m)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u64_z)
SIMDE_TEST_FUNC_LIST_ENTRY(svand_u64_m)
SIMDE_TEST_FUNC_LIST_END

#include "test-sve-footer.h"