master
   1const AddOneBit = math.AddOneBit;
   2const AsSignedness = math.AsSignedness;
   3const cast = math.cast;
   4const ChangeScalar = math.ChangeScalar;
   5const checkExpected = math.checkExpected;
   6const Compare = math.Compare;
   7const DoubleBits = math.DoubleBits;
   8const fmax = math.fmax;
   9const fmin = math.fmin;
  10const Gpr = math.Gpr;
  11const imax = math.imax;
  12const inf = math.inf;
  13const Log2Int = math.Log2Int;
  14const math = @import("math.zig");
  15const nan = math.nan;
  16const Scalar = math.Scalar;
  17const select = math.select;
  18const sign = math.sign;
  19const splat = math.splat;
  20const Sse = math.Sse;
  21const tmin = math.tmin;
  22
  23fn binary(comptime op: anytype, comptime opts: struct { compare: Compare = .relaxed }) type {
  24    return struct {
  25        // noinline so that `mem_lhs` and `mem_rhs` are on the stack
  26        noinline fn testArgKinds(
  27            _: Gpr,
  28            _: Gpr,
  29            _: Gpr,
  30            _: Gpr,
  31            _: Gpr,
  32            _: Gpr,
  33            _: Gpr,
  34            _: Gpr,
  35            _: Sse,
  36            _: Sse,
  37            _: Sse,
  38            _: Sse,
  39            _: Sse,
  40            _: Sse,
  41            _: Sse,
  42            _: Sse,
  43            comptime Type: type,
  44            comptime imm_lhs: Type,
  45            mem_lhs: Type,
  46            comptime imm_rhs: Type,
  47            mem_rhs: Type,
  48        ) !void {
  49            const expected = comptime op(Type, imm_lhs, imm_rhs);
  50            var reg_lhs = mem_lhs;
  51            var reg_rhs = mem_rhs;
  52            _ = .{ &reg_lhs, &reg_rhs };
  53            try checkExpected(expected, op(Type, reg_lhs, reg_rhs), opts.compare);
  54            try checkExpected(expected, op(Type, reg_lhs, mem_rhs), opts.compare);
  55            try checkExpected(expected, op(Type, reg_lhs, imm_rhs), opts.compare);
  56            try checkExpected(expected, op(Type, mem_lhs, reg_rhs), opts.compare);
  57            try checkExpected(expected, op(Type, mem_lhs, mem_rhs), opts.compare);
  58            try checkExpected(expected, op(Type, mem_lhs, imm_rhs), opts.compare);
  59            try checkExpected(expected, op(Type, imm_lhs, reg_rhs), opts.compare);
  60            try checkExpected(expected, op(Type, imm_lhs, mem_rhs), opts.compare);
  61        }
  62        // noinline for a more helpful stack trace
  63        noinline fn testArgs(comptime Type: type, comptime imm_lhs: Type, comptime imm_rhs: Type) !void {
  64            try testArgKinds(
  65                undefined,
  66                undefined,
  67                undefined,
  68                undefined,
  69                undefined,
  70                undefined,
  71                undefined,
  72                undefined,
  73                undefined,
  74                undefined,
  75                undefined,
  76                undefined,
  77                undefined,
  78                undefined,
  79                undefined,
  80                undefined,
  81                Type,
  82                imm_lhs,
  83                imm_lhs,
  84                imm_rhs,
  85                imm_rhs,
  86            );
  87        }
  88        fn testBools() !void {
  89            try testArgs(bool, false, false);
  90            try testArgs(bool, false, true);
  91            try testArgs(bool, true, false);
  92            try testArgs(bool, true, true);
  93        }
  94        fn testInts() !void {
  95            try testArgs(i1, 0x0, -0x1);
  96            try testArgs(u1, 0x1, 0x1);
  97            try testArgs(i2, 0x0, -0x2);
  98            try testArgs(u2, 0x2, 0x1);
  99            try testArgs(i3, 0x1, -0x3);
 100            try testArgs(u3, 0x6, 0x1);
 101            try testArgs(i4, 0x6, 0x3);
 102            try testArgs(u4, 0x8, 0x5);
 103            try testArgs(i5, -0x9, -0xd);
 104            try testArgs(u5, 0x5, 0x13);
 105            try testArgs(i7, 0x34, 0x1d);
 106            try testArgs(u7, 0x31, 0x56);
 107            try testArgs(i8, -0x57, -0x70);
 108            try testArgs(u8, 0x12, 0xd6);
 109            try testArgs(i9, -0x8a, -0xa0);
 110            try testArgs(u9, 0xf8, 0x95);
 111            try testArgs(i15, -0x790, 0x116f);
 112            try testArgs(u15, 0x548b, 0x4cd6);
 113            try testArgs(i16, -0x2d17, -0x5c17);
 114            try testArgs(u16, 0xadc0, 0xb223);
 115            try testArgs(i17, 0xe543, 0xaad5);
 116            try testArgs(u17, 0x9515, 0xa3c1);
 117            try testArgs(i31, -0x28858a2f, 0x369e917a);
 118            try testArgs(u31, 0x32bab794, 0x75464e7f);
 119            try testArgs(i32, 0x79e74e44, 0x61fe4ab1);
 120            try testArgs(u32, 0xc82f8e2, 0x5dde37e2);
 121            try testArgs(i33, -0xa4cbaa13, -0x4d20ee61);
 122            try testArgs(u33, 0x17461d437, 0x16cbc228f);
 123            try testArgs(i63, 0x333220e16b1e53fb, 0x121a0d970a5a4504);
 124            try testArgs(u63, 0x2dcd94e2ae4aa2af, 0x5f401e6e287a4dd7);
 125            try testArgs(i64, 0x17e6bb7d8d430410, 0x760d42736f4b445c);
 126            try testArgs(u64, 0x430970421452be50, 0xb4b5e96f4183b5fc);
 127            try testArgs(i65, 0xb4477484679a6576, 0x21c9a3100d35de49);
 128            try testArgs(u65, 0x1b7ffa914193a316, 0x6751268790308460);
 129            try testArgs(i95, 0xd573e2100686f5df03aa29f, 0x4f7c921eb980b43a554b763);
 130            try testArgs(u95, 0x62791162d2740f3ae84a9fcf, 0x1b6e66ae70bb9785a2118ecc);
 131            try testArgs(i96, -0x6dc72375264ab887ea6073d5, 0x357ca705a600e94f6dd114c9);
 132            try testArgs(u96, 0x77867877aae9bc90b2b57ce7, 0xd9a5352eb86061b67a61b212);
 133            try testArgs(i97, 0x76f421e0ccfc6e7531c03ad5, 0x6775cdacdfca5455771c0dae);
 134            try testArgs(u97, 0xaeb79499018e490b6aa2a5fc, 0x6cf53b08068cf25bdc307606);
 135            try testArgs(i127, -0xc6de705251f892f8ba6a4f10aee0c7, -0x1598d3c6fd635ec0796a584af7479027);
 136            try testArgs(u127, 0x5b3ec94f88a61621be2f745e90153390, 0x72456ad6a7ef886decf13195a50ca4d6);
 137            try testArgs(i128, -0x44570544f745b89beb111016359577d5, -0x48904e59a05caede0974f916efba61a0);
 138            try testArgs(u128, 0x3b14f670f6ac712d087a9ec7b15394d2, 0x19b69cb71a6763a9dc5baec5bb818450);
 139            try testArgs(i129, 0xd58a765abb324106d83362db47fc374d, 0x548642028e222abf2ee21a1999a8ac5f);
 140            try testArgs(u129, 0x1144fb18eba36e437bc45a73bbe25f10e, 0xdc7cb5f65f5127b00a842adf3f5a5231);
 141            try testArgs(i159, 0x3121c6ae74c46679386f2051ee0520d9264e01cf, -0x34fec2cf28ce549281a5dc79f7ed834483f418af);
 142            try testArgs(u159, 0x2e479684775f86a8ff1a9c6fab9022b18a6f6be4, 0x63c77ea3d97ad2c715fd13db972e678fefe3efba);
 143            try testArgs(i160, 0x1e55924219aa114ef8d2b3193d09ae7849a3e551, -0x13f1ff6a62e562f7b78559f032bb05b2e2d15748);
 144            try testArgs(u160, 0x8ed3d206fcc59350cf23dcd9e042eb36bcc63e52, 0xc88e1c5a42abf98aee0a3479e7f4fe88ab53b6f2);
 145            try testArgs(i161, -0xd3d6885c0df36bd513aca744561684d12a62f044, 0xa519d3c4a7ea2e4768d840ec8641995689de6116);
 146            try testArgs(u161, 0x10b4afdfa36471c77a2b629ef85e1289b798161b, 0x15e89da33c31ec01adf6921b8d13bc943f139fba2);
 147            try testArgs(i191, 0x2436122b85c017733d9d28347544298d148223e1d9cbf0a2, 0x46b80688a0e0b59e66628940772893fcce258d3da7c0193);
 148            try testArgs(u191, 0x3d00a8da821de44f98fa70d298bda9e25f99d8f54936d09f, 0x4ad4440686be966599985094f16e364c961503214ff86519);
 149            try testArgs(i192, 0x124d0580271a71745f842e3a81d8cb6154c7f6f4b8b0cf39, -0x5bae9d7d471e609f1570a3f9805b80c4d672a086d44107eb);
 150            try testArgs(u192, 0x3b882677dc62d5c76cc942bea0d2f72925ff0a9e234d7ce9, 0x5d7825e3f2254bf214257ebe84716dc88fde6c9563218ac4);
 151            try testArgs(i193, 0x9c143db83d19c8fff1c23f3c93b103eaf8be02910a1cbe5, 0xcfa1059ba12508d2ff3ef9763ce8224eb1d0a0f22def289d);
 152            try testArgs(u193, 0x635890f170da79117490445db595c1f2bb5a5cf640abc8e8, 0xdb5a2a6a3c6db7f43949123f0886cb93bbbed2d5dd7690e);
 153            try testArgs(i223, -0x25e4a8d454e5957a9906a66a0c02ad53e727e3e18ca4b8be98561306, 0x8d6d3977afce56a5dffc537de19d4c73f2e5603699373d010e51d10);
 154            try testArgs(u223, 0x5721636a3c6d271fe9eb08420d29454775666266801a7d23d61075be, 0x7e573fd8dcbd6dc780d13b61d5255cae790ea697d1c9a5479fa51ee);
 155            try testArgs(i224, 0x51f97aaa96493aaed2677294bfde0715d69d961fef97a557ae9dbc84, 0x306d9305e2d5162dd0ce0454d2daaa54879b11a77386bb03e779a23e);
 156            try testArgs(u224, 0xdc7eb2070c048b6fd22d6df97b3ef5e9fc5f28d8d229710333defecd, 0x475662887f29712bc927fae9de37cd842d883682a26e653d7b3f2ed9);
 157            try testArgs(i225, -0x9b3dba4fe2026e8d90d9be4b8b2334034d2ae23569c4e1a3a311925d, -0x2ae4c074cff2da1e7fcab269ce6da7f4a9f763062f97526c0b4abf34);
 158            try testArgs(u225, 0xb36dd536afb070e9be7fba5eaf548fe741182cabaf9f9510f86b3ffb, 0x1f35e5728f29e2566afd9a325beaf17ebf5f894e744825bdd56bb12d0);
 159            try testArgs(i255, 0x2db696171e4045e17cb2a96763ff2728b459e5bf9ade6e9cd118bbc4f91aca89, -0x1580d80086052560091fe42077ce66c45d7e93173f74327f44fec7b63ed9f2aa);
 160            try testArgs(u255, 0x392b3639141d03da49d576fd0ce498e1bafb8fc032604e68e91e589f6d2a05a3, 0x46f60e500f01bdbe18f71fb8dbef0395245a94f55421637ca50eb8922a751977);
 161            try testArgs(i256, -0x2f3c22cb1d12628b2eccd705f1526d8a91258183742d9521bdc97d943591d87c, -0x864d3ef8b592e041289dbb54def60ceee798673138aa750a5efdaffcd42b62d);
 162            try testArgs(u256, 0x25776f0ce5f3c6761eec99ace965f9162e9416e4d4e298674e5723b64e443528, 0xb1ee7fd2efaddd5d25eea49bde34e53c40d59221757f17d53d9a4c9ab7eca3f5);
 163            try testArgs(i257, 0xd599706e1a09217f1f698520993d2b62ee877a4150bd8db6e5546657900dc7ce, 0x51d0faef82bb0878a4fd4331dcaec6ed57156acc2377c7e301eca6989e897346);
 164            try testArgs(u257, 0xb0d42105facc0db629c5a65d6e975d25163841051efb1e187b70015f8c9e22ba, 0xf0eb6d0529e15fac6e97e850f50b7bf5056c9010345884926bf056590ddf3187);
 165            try testArgs(i511, 0x23c07fa26fea1595de6e368cb42d05696562d8fb05a2aab6b304c443275071a31684a369f69f30fd53223017669dcf8157f7ff1bcda05ad28dcf46c92f7f2bd5, 0x44884ae45727d2c249b280cbb6795f237015f1082ade12167c52f0318422b3ae9c1753263011878e3fa4fce0db683efdd249e325188a40ccb959bd6bf050fbf);
 166            try testArgs(u511, 0x642d98a41a7cc71dab7845c2c568696d0d77733c266846019756937cc29382d46074c8eb86502f4855c35f6354e51d98c41674166a9a7385ab94b0c7a63f58c0, 0x3cc5230f530a12c8cae29654e55a6d7cd26fe7606beed5c9a8fef443b107bf18dd8cc034683b47a213a3a885abd7048188713e8e7b9157145cd24748e256f5b7);
 167            try testArgs(i512, -0x4b6d88a77e2a42d67daada905d16c6045b4dd57e608a0482f45531781d4994e2a6b71ad41a106b2dfc76e60aebd9e1d357b24b8d6889de3cf3e58ff3a48f54aa, -0x2e28e1b21ec33fd5dd9b1fbdc312e32884208b549ce0ca1661ca1150a6bd43363d4d186aa8ac70ad0595b44b5279ff070df8bd0b51095c62c8c499bfcaa7494c);
 168            try testArgs(u512, 0xf40ad922664478a7b71a5676fc49434a45ba86975cef377c8321159cd880b67cd543fcca70187d5912675c0bc1fa4129cb470f280cde56ac4ec848ca589f143f, 0xe20a8110780ff05718adc173677ff0579126576f1fc3857ac41d6b7d5334d93134181af15ce2d35224d2e5c63384f33e331b16ecbc6db44edbb4074134d23e97);
 169            try testArgs(i513, 0x55a556c6b6605897ffb7a791bdf309d5edb879f2841d1bba37006cdd0e7d00d971c85def024e28b7a17e53f3bcf5a5d5c43e780c6d13d67de1ca7b8f05deddfb, 0x53f475716443b38792e618ce109cec641aa351ce2e258a99153820c5522a4acc7f2b5b4ecd0000bcbe5a410bbee200576f6ff17ce7e8b7d1f0752390d1bb9b3f);
 170            try testArgs(u513, 0x1e4e15bc406c558c14f48b83090647d7f2254fa571eac7f8aad8edb76a90547f7854bd6315e50ad44ea93034db9fab450a584b53abf8537e31d39cd706a31eaa7, 0x1d348de8124b72ca1d0e382501024c9e1b0f6fc16c5cd4a86aef2731bd39c29173749afe94bb2992ea805148fe0d96abdc5980b2143bd81419c1e40bf81b2496f);
 171            try testArgs(i1023, -0x37781a6086d9310e4cdb24f5f374736e32af53c9545298aa53fe17854f73052cd808f658efacea622c59adb51af4d2dd636521ca2717acc43389c975505b7543da2c62f33c3152907f13b1ffa5b9881b33acec3cab1d8e33c2239ea6835277c474629a9157f8acd7c1d83076c2e75a48a8d3a94067e801c51057e47e09f0be14, 0x39ad04132dec8b795b98fd7cd085605ce8354655633068ee485d9dc78853feb922a54a3df6209989d1137e4ea8b0ad2cae48b21df2e0c04feeca56d2551f12782312a6ae483ffff466ff78446ebd4d47a61c1cba2603a62b44a72800060dda7eec8bc9060b8c5533afa7946bd38e93fddb863392500c22616dd4ae4932f20fe4);
 172            try testArgs(u1023, 0x6e14a9d998a9ef7ac77b6fe08225fcc176e687685736e0e32c9e6b8fe96e9a7b14b3318310e945f7f84128455075eedb4a7b7736185f58e5640688c5d3b47d785338a0b70e77f4d237fd85f7820f3ebe6eb30f5a71231e813a70d6c76963d66291f271cd6f462ce685a0270ec5f6e856340f91d7597cd2b779566fe3ff4d4a98, 0x211eafbd449691e390d14dd34cb9c4d32627ecbec485d4a0a7cca1b28bd81d2153a7a75c2f62c4c3c7f198740cfe65dfa3c86156aa0b6d22757fd07f4070ddd50e334782f045a58b96c5a8f04b4615968501e9b5e801c475bdc034919c9e9df6df3cbbd59bacfa9409b21c3365d10e132d75958774c6244446127b043d155ec4);
 173            try testArgs(i1024, 0xa6bd15fd4c529a24e4d727c5c0db9422ed7038ba23944b2b54ffc8d3731e2ffc19e12d885010fb10d208ea045e2a4cfec32d190f221bd453ec73fcecc03e37fd70be3fba3945c881cb9bce69f3f6ad9a6ee0d42a393b3669d1ca518d0b7b06a2c47978f22bc1db8802ef6ce29ea51b48256c6fed82e04355665f9d27ff485b, -0x69f258c2a86e97161ce2e683801591976a8e5a71b88605450961ee271637e6c2fee13459c29d42d4c5fb408f80236d3b2db34752e307fee6cbce2e5088adc817902a5adbbba72c8be84b9f8af5ce0fac464cae61cff9cbbe3a8dcdbec0af855b2e6c2c19fbe4f01baec9ca28b78bd7d383281c71d81da74fd0a2c8a5b754ee57);
 174            try testArgs(u1024, 0x111e0a4e0c61ab3c5229154539ddb010542cb528533b4ea13813d8dbbaca7de395aac3c22dae1bd9db8bf9005ea9ef3df253aefabdce060a93e60da6edc3b1b2d78aead4647e7a589b66aa53fb953742b71f823b539150918df0fe781ee4d00279e4da9995804391bb19504de2f108f7d6ba14d624fa175842bd429f638de8f9, 0xcf9160dcb7ed13a738f7c8b2a17ca2fe84f53620a50f6a948698c4efca88392dc104ef5d26f19c82c8f770f727585702cc8d1c4cc2bba9e691e61b055d98cd636347a7c50b3bd2b2f5dfa416dadbdd76c111d45598c93ef729588cf998a55260cfe94d376ec4e8dc132afa42b66b68bc826c50169f9f4fc798cf7e8f29df639a);
 175            try testArgs(i1025, 0xef2102c2cab6ad6bf2f2ba09c154440e65acc56cb14c5221a12b12404f7eafefeab4537f70cc10afb945e93c935223ffd3146911021666fd68fcaa494ded54ce66d2832b1d82b0654f24f1183bbc3ee45eb15c424a74ad41f22c7009b86cb404ac3b810445679417d7e0c5d5f4e88dec7c90352afa367004facbc1d668ab0a7, 0xc7743d3a52bad9bed0d24dbeaac4f27f4790ee14e984484f7ee077e6285394f046f2ba6d3a9c6e0aea1c07de98741a88669a035ec4d9755130fe96414223486e89d710a743ca2c2b53871fdb4851d90a595111d8d12e6732e4b580e235218edee3bc56fca3de99bc5f9a37c9dbc9a8ca5aaba710ec5e498b58b239a1be56915b);
 176            try testArgs(u1025, 0x1dea81169800bac2f3afcf3be5dbd2d8eefbace8a24a2da0a383a928d1109459f34028be4413119f1af00ad90ce4d63064016dc1cee5b783c79c1998a0a49de21c4db71d432273576503589fc966c7ec2d730fa9bc4c5ff3128a82653ab8149528de67804718e39722f89b91c75d012ea41c642c889f0db95c882a9790a5e922f, 0x156fe02946ab9069a644dcc1f2b1afa04ee88ab1de19575a2715abf4a52bf374d297fdf78455ccdb87a934d3d818d774b63865eaedfdad3c56a56b8fcc62703c391aedf16cf770af06d7d205f93778c012df54fe5290084e1cd2bbec86a2f295cdce69a2cd774e064580f3c9cfae60d17b12f610e86566e68d5183d706c8ad8af);
 177        }
 178        fn testFloats() !void {
 179            @setEvalBranchQuota(21_700);
 180
 181            try testArgs(f16, -nan(f16), -nan(f16));
 182            try testArgs(f16, -nan(f16), -inf(f16));
 183            try testArgs(f16, -nan(f16), -fmax(f16));
 184            try testArgs(f16, -nan(f16), -1e1);
 185            try testArgs(f16, -nan(f16), -1e0);
 186            try testArgs(f16, -nan(f16), -1e-1);
 187            try testArgs(f16, -nan(f16), -fmin(f16));
 188            try testArgs(f16, -nan(f16), -tmin(f16));
 189            try testArgs(f16, -nan(f16), -0.0);
 190            try testArgs(f16, -nan(f16), 0.0);
 191            try testArgs(f16, -nan(f16), tmin(f16));
 192            try testArgs(f16, -nan(f16), fmin(f16));
 193            try testArgs(f16, -nan(f16), 1e-1);
 194            try testArgs(f16, -nan(f16), 1e0);
 195            try testArgs(f16, -nan(f16), 1e1);
 196            try testArgs(f16, -nan(f16), fmax(f16));
 197            try testArgs(f16, -nan(f16), inf(f16));
 198            try testArgs(f16, -nan(f16), nan(f16));
 199
 200            try testArgs(f16, -inf(f16), -nan(f16));
 201            try testArgs(f16, -inf(f16), -inf(f16));
 202            try testArgs(f16, -inf(f16), -fmax(f16));
 203            try testArgs(f16, -inf(f16), -1e1);
 204            try testArgs(f16, -inf(f16), -1e0);
 205            try testArgs(f16, -inf(f16), -1e-1);
 206            try testArgs(f16, -inf(f16), -fmin(f16));
 207            try testArgs(f16, -inf(f16), -tmin(f16));
 208            try testArgs(f16, -inf(f16), -0.0);
 209            try testArgs(f16, -inf(f16), 0.0);
 210            try testArgs(f16, -inf(f16), tmin(f16));
 211            try testArgs(f16, -inf(f16), fmin(f16));
 212            try testArgs(f16, -inf(f16), 1e-1);
 213            try testArgs(f16, -inf(f16), 1e0);
 214            try testArgs(f16, -inf(f16), 1e1);
 215            try testArgs(f16, -inf(f16), fmax(f16));
 216            try testArgs(f16, -inf(f16), inf(f16));
 217            try testArgs(f16, -inf(f16), nan(f16));
 218
 219            try testArgs(f16, -fmax(f16), -nan(f16));
 220            try testArgs(f16, -fmax(f16), -inf(f16));
 221            try testArgs(f16, -fmax(f16), -fmax(f16));
 222            try testArgs(f16, -fmax(f16), -1e1);
 223            try testArgs(f16, -fmax(f16), -1e0);
 224            try testArgs(f16, -fmax(f16), -1e-1);
 225            try testArgs(f16, -fmax(f16), -fmin(f16));
 226            try testArgs(f16, -fmax(f16), -tmin(f16));
 227            try testArgs(f16, -fmax(f16), -0.0);
 228            try testArgs(f16, -fmax(f16), 0.0);
 229            try testArgs(f16, -fmax(f16), tmin(f16));
 230            try testArgs(f16, -fmax(f16), fmin(f16));
 231            try testArgs(f16, -fmax(f16), 1e-1);
 232            try testArgs(f16, -fmax(f16), 1e0);
 233            try testArgs(f16, -fmax(f16), 1e1);
 234            try testArgs(f16, -fmax(f16), fmax(f16));
 235            try testArgs(f16, -fmax(f16), inf(f16));
 236            try testArgs(f16, -fmax(f16), nan(f16));
 237
 238            try testArgs(f16, -1e1, -nan(f16));
 239            try testArgs(f16, -1e1, -inf(f16));
 240            try testArgs(f16, -1e1, -fmax(f16));
 241            try testArgs(f16, -1e1, -1e1);
 242            try testArgs(f16, -1e1, -1e0);
 243            try testArgs(f16, -1e1, -1e-1);
 244            try testArgs(f16, -1e1, -fmin(f16));
 245            try testArgs(f16, -1e1, -tmin(f16));
 246            try testArgs(f16, -1e1, -0.0);
 247            try testArgs(f16, -1e1, 0.0);
 248            try testArgs(f16, -1e1, tmin(f16));
 249            try testArgs(f16, -1e1, fmin(f16));
 250            try testArgs(f16, -1e1, 1e-1);
 251            try testArgs(f16, -1e1, 1e0);
 252            try testArgs(f16, -1e1, 1e1);
 253            try testArgs(f16, -1e1, fmax(f16));
 254            try testArgs(f16, -1e1, inf(f16));
 255            try testArgs(f16, -1e1, nan(f16));
 256
 257            try testArgs(f16, -1e0, -nan(f16));
 258            try testArgs(f16, -1e0, -inf(f16));
 259            try testArgs(f16, -1e0, -fmax(f16));
 260            try testArgs(f16, -1e0, -1e1);
 261            try testArgs(f16, -1e0, -1e0);
 262            try testArgs(f16, -1e0, -1e-1);
 263            try testArgs(f16, -1e0, -fmin(f16));
 264            try testArgs(f16, -1e0, -tmin(f16));
 265            try testArgs(f16, -1e0, -0.0);
 266            try testArgs(f16, -1e0, 0.0);
 267            try testArgs(f16, -1e0, tmin(f16));
 268            try testArgs(f16, -1e0, fmin(f16));
 269            try testArgs(f16, -1e0, 1e-1);
 270            try testArgs(f16, -1e0, 1e0);
 271            try testArgs(f16, -1e0, 1e1);
 272            try testArgs(f16, -1e0, fmax(f16));
 273            try testArgs(f16, -1e0, inf(f16));
 274            try testArgs(f16, -1e0, nan(f16));
 275
 276            try testArgs(f16, -1e-1, -nan(f16));
 277            try testArgs(f16, -1e-1, -inf(f16));
 278            try testArgs(f16, -1e-1, -fmax(f16));
 279            try testArgs(f16, -1e-1, -1e1);
 280            try testArgs(f16, -1e-1, -1e0);
 281            try testArgs(f16, -1e-1, -1e-1);
 282            try testArgs(f16, -1e-1, -fmin(f16));
 283            try testArgs(f16, -1e-1, -tmin(f16));
 284            try testArgs(f16, -1e-1, -0.0);
 285            try testArgs(f16, -1e-1, 0.0);
 286            try testArgs(f16, -1e-1, tmin(f16));
 287            try testArgs(f16, -1e-1, fmin(f16));
 288            try testArgs(f16, -1e-1, 1e-1);
 289            try testArgs(f16, -1e-1, 1e0);
 290            try testArgs(f16, -1e-1, 1e1);
 291            try testArgs(f16, -1e-1, fmax(f16));
 292            try testArgs(f16, -1e-1, inf(f16));
 293            try testArgs(f16, -1e-1, nan(f16));
 294
 295            try testArgs(f16, -fmin(f16), -nan(f16));
 296            try testArgs(f16, -fmin(f16), -inf(f16));
 297            try testArgs(f16, -fmin(f16), -fmax(f16));
 298            try testArgs(f16, -fmin(f16), -1e1);
 299            try testArgs(f16, -fmin(f16), -1e0);
 300            try testArgs(f16, -fmin(f16), -1e-1);
 301            try testArgs(f16, -fmin(f16), -fmin(f16));
 302            try testArgs(f16, -fmin(f16), -tmin(f16));
 303            try testArgs(f16, -fmin(f16), -0.0);
 304            try testArgs(f16, -fmin(f16), 0.0);
 305            try testArgs(f16, -fmin(f16), tmin(f16));
 306            try testArgs(f16, -fmin(f16), fmin(f16));
 307            try testArgs(f16, -fmin(f16), 1e-1);
 308            try testArgs(f16, -fmin(f16), 1e0);
 309            try testArgs(f16, -fmin(f16), 1e1);
 310            try testArgs(f16, -fmin(f16), fmax(f16));
 311            try testArgs(f16, -fmin(f16), inf(f16));
 312            try testArgs(f16, -fmin(f16), nan(f16));
 313
 314            try testArgs(f16, -tmin(f16), -nan(f16));
 315            try testArgs(f16, -tmin(f16), -inf(f16));
 316            try testArgs(f16, -tmin(f16), -fmax(f16));
 317            try testArgs(f16, -tmin(f16), -1e1);
 318            try testArgs(f16, -tmin(f16), -1e0);
 319            try testArgs(f16, -tmin(f16), -1e-1);
 320            try testArgs(f16, -tmin(f16), -fmin(f16));
 321            try testArgs(f16, -tmin(f16), -tmin(f16));
 322            try testArgs(f16, -tmin(f16), -0.0);
 323            try testArgs(f16, -tmin(f16), 0.0);
 324            try testArgs(f16, -tmin(f16), tmin(f16));
 325            try testArgs(f16, -tmin(f16), fmin(f16));
 326            try testArgs(f16, -tmin(f16), 1e-1);
 327            try testArgs(f16, -tmin(f16), 1e0);
 328            try testArgs(f16, -tmin(f16), 1e1);
 329            try testArgs(f16, -tmin(f16), fmax(f16));
 330            try testArgs(f16, -tmin(f16), inf(f16));
 331            try testArgs(f16, -tmin(f16), nan(f16));
 332
 333            try testArgs(f16, -0.0, -nan(f16));
 334            try testArgs(f16, -0.0, -inf(f16));
 335            try testArgs(f16, -0.0, -fmax(f16));
 336            try testArgs(f16, -0.0, -1e1);
 337            try testArgs(f16, -0.0, -1e0);
 338            try testArgs(f16, -0.0, -1e-1);
 339            try testArgs(f16, -0.0, -fmin(f16));
 340            try testArgs(f16, -0.0, -tmin(f16));
 341            try testArgs(f16, -0.0, -0.0);
 342            try testArgs(f16, -0.0, 0.0);
 343            try testArgs(f16, -0.0, tmin(f16));
 344            try testArgs(f16, -0.0, fmin(f16));
 345            try testArgs(f16, -0.0, 1e-1);
 346            try testArgs(f16, -0.0, 1e0);
 347            try testArgs(f16, -0.0, 1e1);
 348            try testArgs(f16, -0.0, fmax(f16));
 349            try testArgs(f16, -0.0, inf(f16));
 350            try testArgs(f16, -0.0, nan(f16));
 351
 352            try testArgs(f16, 0.0, -nan(f16));
 353            try testArgs(f16, 0.0, -inf(f16));
 354            try testArgs(f16, 0.0, -fmax(f16));
 355            try testArgs(f16, 0.0, -1e1);
 356            try testArgs(f16, 0.0, -1e0);
 357            try testArgs(f16, 0.0, -1e-1);
 358            try testArgs(f16, 0.0, -fmin(f16));
 359            try testArgs(f16, 0.0, -tmin(f16));
 360            try testArgs(f16, 0.0, -0.0);
 361            try testArgs(f16, 0.0, 0.0);
 362            try testArgs(f16, 0.0, tmin(f16));
 363            try testArgs(f16, 0.0, fmin(f16));
 364            try testArgs(f16, 0.0, 1e-1);
 365            try testArgs(f16, 0.0, 1e0);
 366            try testArgs(f16, 0.0, 1e1);
 367            try testArgs(f16, 0.0, fmax(f16));
 368            try testArgs(f16, 0.0, inf(f16));
 369            try testArgs(f16, 0.0, nan(f16));
 370
 371            try testArgs(f16, tmin(f16), -nan(f16));
 372            try testArgs(f16, tmin(f16), -inf(f16));
 373            try testArgs(f16, tmin(f16), -fmax(f16));
 374            try testArgs(f16, tmin(f16), -1e1);
 375            try testArgs(f16, tmin(f16), -1e0);
 376            try testArgs(f16, tmin(f16), -1e-1);
 377            try testArgs(f16, tmin(f16), -fmin(f16));
 378            try testArgs(f16, tmin(f16), -tmin(f16));
 379            try testArgs(f16, tmin(f16), -0.0);
 380            try testArgs(f16, tmin(f16), 0.0);
 381            try testArgs(f16, tmin(f16), tmin(f16));
 382            try testArgs(f16, tmin(f16), fmin(f16));
 383            try testArgs(f16, tmin(f16), 1e-1);
 384            try testArgs(f16, tmin(f16), 1e0);
 385            try testArgs(f16, tmin(f16), 1e1);
 386            try testArgs(f16, tmin(f16), fmax(f16));
 387            try testArgs(f16, tmin(f16), inf(f16));
 388            try testArgs(f16, tmin(f16), nan(f16));
 389
 390            try testArgs(f16, fmin(f16), -nan(f16));
 391            try testArgs(f16, fmin(f16), -inf(f16));
 392            try testArgs(f16, fmin(f16), -fmax(f16));
 393            try testArgs(f16, fmin(f16), -1e1);
 394            try testArgs(f16, fmin(f16), -1e0);
 395            try testArgs(f16, fmin(f16), -1e-1);
 396            try testArgs(f16, fmin(f16), -fmin(f16));
 397            try testArgs(f16, fmin(f16), -tmin(f16));
 398            try testArgs(f16, fmin(f16), -0.0);
 399            try testArgs(f16, fmin(f16), 0.0);
 400            try testArgs(f16, fmin(f16), tmin(f16));
 401            try testArgs(f16, fmin(f16), fmin(f16));
 402            try testArgs(f16, fmin(f16), 1e-1);
 403            try testArgs(f16, fmin(f16), 1e0);
 404            try testArgs(f16, fmin(f16), 1e1);
 405            try testArgs(f16, fmin(f16), fmax(f16));
 406            try testArgs(f16, fmin(f16), inf(f16));
 407            try testArgs(f16, fmin(f16), nan(f16));
 408
 409            try testArgs(f16, 1e-1, -nan(f16));
 410            try testArgs(f16, 1e-1, -inf(f16));
 411            try testArgs(f16, 1e-1, -fmax(f16));
 412            try testArgs(f16, 1e-1, -1e1);
 413            try testArgs(f16, 1e-1, -1e0);
 414            try testArgs(f16, 1e-1, -1e-1);
 415            try testArgs(f16, 1e-1, -fmin(f16));
 416            try testArgs(f16, 1e-1, -tmin(f16));
 417            try testArgs(f16, 1e-1, -0.0);
 418            try testArgs(f16, 1e-1, 0.0);
 419            try testArgs(f16, 1e-1, tmin(f16));
 420            try testArgs(f16, 1e-1, fmin(f16));
 421            try testArgs(f16, 1e-1, 1e-1);
 422            try testArgs(f16, 1e-1, 1e0);
 423            try testArgs(f16, 1e-1, 1e1);
 424            try testArgs(f16, 1e-1, fmax(f16));
 425            try testArgs(f16, 1e-1, inf(f16));
 426            try testArgs(f16, 1e-1, nan(f16));
 427
 428            try testArgs(f16, 1e0, -nan(f16));
 429            try testArgs(f16, 1e0, -inf(f16));
 430            try testArgs(f16, 1e0, -fmax(f16));
 431            try testArgs(f16, 1e0, -1e1);
 432            try testArgs(f16, 1e0, -1e0);
 433            try testArgs(f16, 1e0, -1e-1);
 434            try testArgs(f16, 1e0, -fmin(f16));
 435            try testArgs(f16, 1e0, -tmin(f16));
 436            try testArgs(f16, 1e0, -0.0);
 437            try testArgs(f16, 1e0, 0.0);
 438            try testArgs(f16, 1e0, tmin(f16));
 439            try testArgs(f16, 1e0, fmin(f16));
 440            try testArgs(f16, 1e0, 1e-1);
 441            try testArgs(f16, 1e0, 1e0);
 442            try testArgs(f16, 1e0, 1e1);
 443            try testArgs(f16, 1e0, fmax(f16));
 444            try testArgs(f16, 1e0, inf(f16));
 445            try testArgs(f16, 1e0, nan(f16));
 446
 447            try testArgs(f16, 1e1, -nan(f16));
 448            try testArgs(f16, 1e1, -inf(f16));
 449            try testArgs(f16, 1e1, -fmax(f16));
 450            try testArgs(f16, 1e1, -1e1);
 451            try testArgs(f16, 1e1, -1e0);
 452            try testArgs(f16, 1e1, -1e-1);
 453            try testArgs(f16, 1e1, -fmin(f16));
 454            try testArgs(f16, 1e1, -tmin(f16));
 455            try testArgs(f16, 1e1, -0.0);
 456            try testArgs(f16, 1e1, 0.0);
 457            try testArgs(f16, 1e1, tmin(f16));
 458            try testArgs(f16, 1e1, fmin(f16));
 459            try testArgs(f16, 1e1, 1e-1);
 460            try testArgs(f16, 1e1, 1e0);
 461            try testArgs(f16, 1e1, 1e1);
 462            try testArgs(f16, 1e1, fmax(f16));
 463            try testArgs(f16, 1e1, inf(f16));
 464            try testArgs(f16, 1e1, nan(f16));
 465
 466            try testArgs(f16, fmax(f16), -nan(f16));
 467            try testArgs(f16, fmax(f16), -inf(f16));
 468            try testArgs(f16, fmax(f16), -fmax(f16));
 469            try testArgs(f16, fmax(f16), -1e1);
 470            try testArgs(f16, fmax(f16), -1e0);
 471            try testArgs(f16, fmax(f16), -1e-1);
 472            try testArgs(f16, fmax(f16), -fmin(f16));
 473            try testArgs(f16, fmax(f16), -tmin(f16));
 474            try testArgs(f16, fmax(f16), -0.0);
 475            try testArgs(f16, fmax(f16), 0.0);
 476            try testArgs(f16, fmax(f16), tmin(f16));
 477            try testArgs(f16, fmax(f16), fmin(f16));
 478            try testArgs(f16, fmax(f16), 1e-1);
 479            try testArgs(f16, fmax(f16), 1e0);
 480            try testArgs(f16, fmax(f16), 1e1);
 481            try testArgs(f16, fmax(f16), fmax(f16));
 482            try testArgs(f16, fmax(f16), inf(f16));
 483            try testArgs(f16, fmax(f16), nan(f16));
 484
 485            try testArgs(f16, inf(f16), -nan(f16));
 486            try testArgs(f16, inf(f16), -inf(f16));
 487            try testArgs(f16, inf(f16), -fmax(f16));
 488            try testArgs(f16, inf(f16), -1e1);
 489            try testArgs(f16, inf(f16), -1e0);
 490            try testArgs(f16, inf(f16), -1e-1);
 491            try testArgs(f16, inf(f16), -fmin(f16));
 492            try testArgs(f16, inf(f16), -tmin(f16));
 493            try testArgs(f16, inf(f16), -0.0);
 494            try testArgs(f16, inf(f16), 0.0);
 495            try testArgs(f16, inf(f16), tmin(f16));
 496            try testArgs(f16, inf(f16), fmin(f16));
 497            try testArgs(f16, inf(f16), 1e-1);
 498            try testArgs(f16, inf(f16), 1e0);
 499            try testArgs(f16, inf(f16), 1e1);
 500            try testArgs(f16, inf(f16), fmax(f16));
 501            try testArgs(f16, inf(f16), inf(f16));
 502            try testArgs(f16, inf(f16), nan(f16));
 503
 504            try testArgs(f16, nan(f16), -nan(f16));
 505            try testArgs(f16, nan(f16), -inf(f16));
 506            try testArgs(f16, nan(f16), -fmax(f16));
 507            try testArgs(f16, nan(f16), -1e1);
 508            try testArgs(f16, nan(f16), -1e0);
 509            try testArgs(f16, nan(f16), -1e-1);
 510            try testArgs(f16, nan(f16), -fmin(f16));
 511            try testArgs(f16, nan(f16), -tmin(f16));
 512            try testArgs(f16, nan(f16), -0.0);
 513            try testArgs(f16, nan(f16), 0.0);
 514            try testArgs(f16, nan(f16), tmin(f16));
 515            try testArgs(f16, nan(f16), fmin(f16));
 516            try testArgs(f16, nan(f16), 1e-1);
 517            try testArgs(f16, nan(f16), 1e0);
 518            try testArgs(f16, nan(f16), 1e1);
 519            try testArgs(f16, nan(f16), fmax(f16));
 520            try testArgs(f16, nan(f16), inf(f16));
 521            try testArgs(f16, nan(f16), nan(f16));
 522
 523            try testArgs(f32, -nan(f32), -nan(f32));
 524            try testArgs(f32, -nan(f32), -inf(f32));
 525            try testArgs(f32, -nan(f32), -fmax(f32));
 526            try testArgs(f32, -nan(f32), -1e1);
 527            try testArgs(f32, -nan(f32), -1e0);
 528            try testArgs(f32, -nan(f32), -1e-1);
 529            try testArgs(f32, -nan(f32), -fmin(f32));
 530            try testArgs(f32, -nan(f32), -tmin(f32));
 531            try testArgs(f32, -nan(f32), -0.0);
 532            try testArgs(f32, -nan(f32), 0.0);
 533            try testArgs(f32, -nan(f32), tmin(f32));
 534            try testArgs(f32, -nan(f32), fmin(f32));
 535            try testArgs(f32, -nan(f32), 1e-1);
 536            try testArgs(f32, -nan(f32), 1e0);
 537            try testArgs(f32, -nan(f32), 1e1);
 538            try testArgs(f32, -nan(f32), fmax(f32));
 539            try testArgs(f32, -nan(f32), inf(f32));
 540            try testArgs(f32, -nan(f32), nan(f32));
 541
 542            try testArgs(f32, -inf(f32), -nan(f32));
 543            try testArgs(f32, -inf(f32), -inf(f32));
 544            try testArgs(f32, -inf(f32), -fmax(f32));
 545            try testArgs(f32, -inf(f32), -1e1);
 546            try testArgs(f32, -inf(f32), -1e0);
 547            try testArgs(f32, -inf(f32), -1e-1);
 548            try testArgs(f32, -inf(f32), -fmin(f32));
 549            try testArgs(f32, -inf(f32), -tmin(f32));
 550            try testArgs(f32, -inf(f32), -0.0);
 551            try testArgs(f32, -inf(f32), 0.0);
 552            try testArgs(f32, -inf(f32), tmin(f32));
 553            try testArgs(f32, -inf(f32), fmin(f32));
 554            try testArgs(f32, -inf(f32), 1e-1);
 555            try testArgs(f32, -inf(f32), 1e0);
 556            try testArgs(f32, -inf(f32), 1e1);
 557            try testArgs(f32, -inf(f32), fmax(f32));
 558            try testArgs(f32, -inf(f32), inf(f32));
 559            try testArgs(f32, -inf(f32), nan(f32));
 560
 561            try testArgs(f32, -fmax(f32), -nan(f32));
 562            try testArgs(f32, -fmax(f32), -inf(f32));
 563            try testArgs(f32, -fmax(f32), -fmax(f32));
 564            try testArgs(f32, -fmax(f32), -1e1);
 565            try testArgs(f32, -fmax(f32), -1e0);
 566            try testArgs(f32, -fmax(f32), -1e-1);
 567            try testArgs(f32, -fmax(f32), -fmin(f32));
 568            try testArgs(f32, -fmax(f32), -tmin(f32));
 569            try testArgs(f32, -fmax(f32), -0.0);
 570            try testArgs(f32, -fmax(f32), 0.0);
 571            try testArgs(f32, -fmax(f32), tmin(f32));
 572            try testArgs(f32, -fmax(f32), fmin(f32));
 573            try testArgs(f32, -fmax(f32), 1e-1);
 574            try testArgs(f32, -fmax(f32), 1e0);
 575            try testArgs(f32, -fmax(f32), 1e1);
 576            try testArgs(f32, -fmax(f32), fmax(f32));
 577            try testArgs(f32, -fmax(f32), inf(f32));
 578            try testArgs(f32, -fmax(f32), nan(f32));
 579
 580            try testArgs(f32, -1e1, -nan(f32));
 581            try testArgs(f32, -1e1, -inf(f32));
 582            try testArgs(f32, -1e1, -fmax(f32));
 583            try testArgs(f32, -1e1, -1e1);
 584            try testArgs(f32, -1e1, -1e0);
 585            try testArgs(f32, -1e1, -1e-1);
 586            try testArgs(f32, -1e1, -fmin(f32));
 587            try testArgs(f32, -1e1, -tmin(f32));
 588            try testArgs(f32, -1e1, -0.0);
 589            try testArgs(f32, -1e1, 0.0);
 590            try testArgs(f32, -1e1, tmin(f32));
 591            try testArgs(f32, -1e1, fmin(f32));
 592            try testArgs(f32, -1e1, 1e-1);
 593            try testArgs(f32, -1e1, 1e0);
 594            try testArgs(f32, -1e1, 1e1);
 595            try testArgs(f32, -1e1, fmax(f32));
 596            try testArgs(f32, -1e1, inf(f32));
 597            try testArgs(f32, -1e1, nan(f32));
 598
 599            try testArgs(f32, -1e0, -nan(f32));
 600            try testArgs(f32, -1e0, -inf(f32));
 601            try testArgs(f32, -1e0, -fmax(f32));
 602            try testArgs(f32, -1e0, -1e1);
 603            try testArgs(f32, -1e0, -1e0);
 604            try testArgs(f32, -1e0, -1e-1);
 605            try testArgs(f32, -1e0, -fmin(f32));
 606            try testArgs(f32, -1e0, -tmin(f32));
 607            try testArgs(f32, -1e0, -0.0);
 608            try testArgs(f32, -1e0, 0.0);
 609            try testArgs(f32, -1e0, tmin(f32));
 610            try testArgs(f32, -1e0, fmin(f32));
 611            try testArgs(f32, -1e0, 1e-1);
 612            try testArgs(f32, -1e0, 1e0);
 613            try testArgs(f32, -1e0, 1e1);
 614            try testArgs(f32, -1e0, fmax(f32));
 615            try testArgs(f32, -1e0, inf(f32));
 616            try testArgs(f32, -1e0, nan(f32));
 617
 618            try testArgs(f32, -1e-1, -nan(f32));
 619            try testArgs(f32, -1e-1, -inf(f32));
 620            try testArgs(f32, -1e-1, -fmax(f32));
 621            try testArgs(f32, -1e-1, -1e1);
 622            try testArgs(f32, -1e-1, -1e0);
 623            try testArgs(f32, -1e-1, -1e-1);
 624            try testArgs(f32, -1e-1, -fmin(f32));
 625            try testArgs(f32, -1e-1, -tmin(f32));
 626            try testArgs(f32, -1e-1, -0.0);
 627            try testArgs(f32, -1e-1, 0.0);
 628            try testArgs(f32, -1e-1, tmin(f32));
 629            try testArgs(f32, -1e-1, fmin(f32));
 630            try testArgs(f32, -1e-1, 1e-1);
 631            try testArgs(f32, -1e-1, 1e0);
 632            try testArgs(f32, -1e-1, 1e1);
 633            try testArgs(f32, -1e-1, fmax(f32));
 634            try testArgs(f32, -1e-1, inf(f32));
 635            try testArgs(f32, -1e-1, nan(f32));
 636
 637            try testArgs(f32, -fmin(f32), -nan(f32));
 638            try testArgs(f32, -fmin(f32), -inf(f32));
 639            try testArgs(f32, -fmin(f32), -fmax(f32));
 640            try testArgs(f32, -fmin(f32), -1e1);
 641            try testArgs(f32, -fmin(f32), -1e0);
 642            try testArgs(f32, -fmin(f32), -1e-1);
 643            try testArgs(f32, -fmin(f32), -fmin(f32));
 644            try testArgs(f32, -fmin(f32), -tmin(f32));
 645            try testArgs(f32, -fmin(f32), -0.0);
 646            try testArgs(f32, -fmin(f32), 0.0);
 647            try testArgs(f32, -fmin(f32), tmin(f32));
 648            try testArgs(f32, -fmin(f32), fmin(f32));
 649            try testArgs(f32, -fmin(f32), 1e-1);
 650            try testArgs(f32, -fmin(f32), 1e0);
 651            try testArgs(f32, -fmin(f32), 1e1);
 652            try testArgs(f32, -fmin(f32), fmax(f32));
 653            try testArgs(f32, -fmin(f32), inf(f32));
 654            try testArgs(f32, -fmin(f32), nan(f32));
 655
 656            try testArgs(f32, -tmin(f32), -nan(f32));
 657            try testArgs(f32, -tmin(f32), -inf(f32));
 658            try testArgs(f32, -tmin(f32), -fmax(f32));
 659            try testArgs(f32, -tmin(f32), -1e1);
 660            try testArgs(f32, -tmin(f32), -1e0);
 661            try testArgs(f32, -tmin(f32), -1e-1);
 662            try testArgs(f32, -tmin(f32), -fmin(f32));
 663            try testArgs(f32, -tmin(f32), -tmin(f32));
 664            try testArgs(f32, -tmin(f32), -0.0);
 665            try testArgs(f32, -tmin(f32), 0.0);
 666            try testArgs(f32, -tmin(f32), tmin(f32));
 667            try testArgs(f32, -tmin(f32), fmin(f32));
 668            try testArgs(f32, -tmin(f32), 1e-1);
 669            try testArgs(f32, -tmin(f32), 1e0);
 670            try testArgs(f32, -tmin(f32), 1e1);
 671            try testArgs(f32, -tmin(f32), fmax(f32));
 672            try testArgs(f32, -tmin(f32), inf(f32));
 673            try testArgs(f32, -tmin(f32), nan(f32));
 674
 675            try testArgs(f32, -0.0, -nan(f32));
 676            try testArgs(f32, -0.0, -inf(f32));
 677            try testArgs(f32, -0.0, -fmax(f32));
 678            try testArgs(f32, -0.0, -1e1);
 679            try testArgs(f32, -0.0, -1e0);
 680            try testArgs(f32, -0.0, -1e-1);
 681            try testArgs(f32, -0.0, -fmin(f32));
 682            try testArgs(f32, -0.0, -tmin(f32));
 683            try testArgs(f32, -0.0, -0.0);
 684            try testArgs(f32, -0.0, 0.0);
 685            try testArgs(f32, -0.0, tmin(f32));
 686            try testArgs(f32, -0.0, fmin(f32));
 687            try testArgs(f32, -0.0, 1e-1);
 688            try testArgs(f32, -0.0, 1e0);
 689            try testArgs(f32, -0.0, 1e1);
 690            try testArgs(f32, -0.0, fmax(f32));
 691            try testArgs(f32, -0.0, inf(f32));
 692            try testArgs(f32, -0.0, nan(f32));
 693
 694            try testArgs(f32, 0.0, -nan(f32));
 695            try testArgs(f32, 0.0, -inf(f32));
 696            try testArgs(f32, 0.0, -fmax(f32));
 697            try testArgs(f32, 0.0, -1e1);
 698            try testArgs(f32, 0.0, -1e0);
 699            try testArgs(f32, 0.0, -1e-1);
 700            try testArgs(f32, 0.0, -fmin(f32));
 701            try testArgs(f32, 0.0, -tmin(f32));
 702            try testArgs(f32, 0.0, -0.0);
 703            try testArgs(f32, 0.0, 0.0);
 704            try testArgs(f32, 0.0, tmin(f32));
 705            try testArgs(f32, 0.0, fmin(f32));
 706            try testArgs(f32, 0.0, 1e-1);
 707            try testArgs(f32, 0.0, 1e0);
 708            try testArgs(f32, 0.0, 1e1);
 709            try testArgs(f32, 0.0, fmax(f32));
 710            try testArgs(f32, 0.0, inf(f32));
 711            try testArgs(f32, 0.0, nan(f32));
 712
 713            try testArgs(f32, tmin(f32), -nan(f32));
 714            try testArgs(f32, tmin(f32), -inf(f32));
 715            try testArgs(f32, tmin(f32), -fmax(f32));
 716            try testArgs(f32, tmin(f32), -1e1);
 717            try testArgs(f32, tmin(f32), -1e0);
 718            try testArgs(f32, tmin(f32), -1e-1);
 719            try testArgs(f32, tmin(f32), -fmin(f32));
 720            try testArgs(f32, tmin(f32), -tmin(f32));
 721            try testArgs(f32, tmin(f32), -0.0);
 722            try testArgs(f32, tmin(f32), 0.0);
 723            try testArgs(f32, tmin(f32), tmin(f32));
 724            try testArgs(f32, tmin(f32), fmin(f32));
 725            try testArgs(f32, tmin(f32), 1e-1);
 726            try testArgs(f32, tmin(f32), 1e0);
 727            try testArgs(f32, tmin(f32), 1e1);
 728            try testArgs(f32, tmin(f32), fmax(f32));
 729            try testArgs(f32, tmin(f32), inf(f32));
 730            try testArgs(f32, tmin(f32), nan(f32));
 731
 732            try testArgs(f32, fmin(f32), -nan(f32));
 733            try testArgs(f32, fmin(f32), -inf(f32));
 734            try testArgs(f32, fmin(f32), -fmax(f32));
 735            try testArgs(f32, fmin(f32), -1e1);
 736            try testArgs(f32, fmin(f32), -1e0);
 737            try testArgs(f32, fmin(f32), -1e-1);
 738            try testArgs(f32, fmin(f32), -fmin(f32));
 739            try testArgs(f32, fmin(f32), -tmin(f32));
 740            try testArgs(f32, fmin(f32), -0.0);
 741            try testArgs(f32, fmin(f32), 0.0);
 742            try testArgs(f32, fmin(f32), tmin(f32));
 743            try testArgs(f32, fmin(f32), fmin(f32));
 744            try testArgs(f32, fmin(f32), 1e-1);
 745            try testArgs(f32, fmin(f32), 1e0);
 746            try testArgs(f32, fmin(f32), 1e1);
 747            try testArgs(f32, fmin(f32), fmax(f32));
 748            try testArgs(f32, fmin(f32), inf(f32));
 749            try testArgs(f32, fmin(f32), nan(f32));
 750
 751            try testArgs(f32, 1e-1, -nan(f32));
 752            try testArgs(f32, 1e-1, -inf(f32));
 753            try testArgs(f32, 1e-1, -fmax(f32));
 754            try testArgs(f32, 1e-1, -1e1);
 755            try testArgs(f32, 1e-1, -1e0);
 756            try testArgs(f32, 1e-1, -1e-1);
 757            try testArgs(f32, 1e-1, -fmin(f32));
 758            try testArgs(f32, 1e-1, -tmin(f32));
 759            try testArgs(f32, 1e-1, -0.0);
 760            try testArgs(f32, 1e-1, 0.0);
 761            try testArgs(f32, 1e-1, tmin(f32));
 762            try testArgs(f32, 1e-1, fmin(f32));
 763            try testArgs(f32, 1e-1, 1e-1);
 764            try testArgs(f32, 1e-1, 1e0);
 765            try testArgs(f32, 1e-1, 1e1);
 766            try testArgs(f32, 1e-1, fmax(f32));
 767            try testArgs(f32, 1e-1, inf(f32));
 768            try testArgs(f32, 1e-1, nan(f32));
 769
 770            try testArgs(f32, 1e0, -nan(f32));
 771            try testArgs(f32, 1e0, -inf(f32));
 772            try testArgs(f32, 1e0, -fmax(f32));
 773            try testArgs(f32, 1e0, -1e1);
 774            try testArgs(f32, 1e0, -1e0);
 775            try testArgs(f32, 1e0, -1e-1);
 776            try testArgs(f32, 1e0, -fmin(f32));
 777            try testArgs(f32, 1e0, -tmin(f32));
 778            try testArgs(f32, 1e0, -0.0);
 779            try testArgs(f32, 1e0, 0.0);
 780            try testArgs(f32, 1e0, tmin(f32));
 781            try testArgs(f32, 1e0, fmin(f32));
 782            try testArgs(f32, 1e0, 1e-1);
 783            try testArgs(f32, 1e0, 1e0);
 784            try testArgs(f32, 1e0, 1e1);
 785            try testArgs(f32, 1e0, fmax(f32));
 786            try testArgs(f32, 1e0, inf(f32));
 787            try testArgs(f32, 1e0, nan(f32));
 788
 789            try testArgs(f32, 1e1, -nan(f32));
 790            try testArgs(f32, 1e1, -inf(f32));
 791            try testArgs(f32, 1e1, -fmax(f32));
 792            try testArgs(f32, 1e1, -1e1);
 793            try testArgs(f32, 1e1, -1e0);
 794            try testArgs(f32, 1e1, -1e-1);
 795            try testArgs(f32, 1e1, -fmin(f32));
 796            try testArgs(f32, 1e1, -tmin(f32));
 797            try testArgs(f32, 1e1, -0.0);
 798            try testArgs(f32, 1e1, 0.0);
 799            try testArgs(f32, 1e1, tmin(f32));
 800            try testArgs(f32, 1e1, fmin(f32));
 801            try testArgs(f32, 1e1, 1e-1);
 802            try testArgs(f32, 1e1, 1e0);
 803            try testArgs(f32, 1e1, 1e1);
 804            try testArgs(f32, 1e1, fmax(f32));
 805            try testArgs(f32, 1e1, inf(f32));
 806            try testArgs(f32, 1e1, nan(f32));
 807
 808            try testArgs(f32, fmax(f32), -nan(f32));
 809            try testArgs(f32, fmax(f32), -inf(f32));
 810            try testArgs(f32, fmax(f32), -fmax(f32));
 811            try testArgs(f32, fmax(f32), -1e1);
 812            try testArgs(f32, fmax(f32), -1e0);
 813            try testArgs(f32, fmax(f32), -1e-1);
 814            try testArgs(f32, fmax(f32), -fmin(f32));
 815            try testArgs(f32, fmax(f32), -tmin(f32));
 816            try testArgs(f32, fmax(f32), -0.0);
 817            try testArgs(f32, fmax(f32), 0.0);
 818            try testArgs(f32, fmax(f32), tmin(f32));
 819            try testArgs(f32, fmax(f32), fmin(f32));
 820            try testArgs(f32, fmax(f32), 1e-1);
 821            try testArgs(f32, fmax(f32), 1e0);
 822            try testArgs(f32, fmax(f32), 1e1);
 823            try testArgs(f32, fmax(f32), fmax(f32));
 824            try testArgs(f32, fmax(f32), inf(f32));
 825            try testArgs(f32, fmax(f32), nan(f32));
 826
 827            try testArgs(f32, inf(f32), -nan(f32));
 828            try testArgs(f32, inf(f32), -inf(f32));
 829            try testArgs(f32, inf(f32), -fmax(f32));
 830            try testArgs(f32, inf(f32), -1e1);
 831            try testArgs(f32, inf(f32), -1e0);
 832            try testArgs(f32, inf(f32), -1e-1);
 833            try testArgs(f32, inf(f32), -fmin(f32));
 834            try testArgs(f32, inf(f32), -tmin(f32));
 835            try testArgs(f32, inf(f32), -0.0);
 836            try testArgs(f32, inf(f32), 0.0);
 837            try testArgs(f32, inf(f32), tmin(f32));
 838            try testArgs(f32, inf(f32), fmin(f32));
 839            try testArgs(f32, inf(f32), 1e-1);
 840            try testArgs(f32, inf(f32), 1e0);
 841            try testArgs(f32, inf(f32), 1e1);
 842            try testArgs(f32, inf(f32), fmax(f32));
 843            try testArgs(f32, inf(f32), inf(f32));
 844            try testArgs(f32, inf(f32), nan(f32));
 845
 846            try testArgs(f32, nan(f32), -nan(f32));
 847            try testArgs(f32, nan(f32), -inf(f32));
 848            try testArgs(f32, nan(f32), -fmax(f32));
 849            try testArgs(f32, nan(f32), -1e1);
 850            try testArgs(f32, nan(f32), -1e0);
 851            try testArgs(f32, nan(f32), -1e-1);
 852            try testArgs(f32, nan(f32), -fmin(f32));
 853            try testArgs(f32, nan(f32), -tmin(f32));
 854            try testArgs(f32, nan(f32), -0.0);
 855            try testArgs(f32, nan(f32), 0.0);
 856            try testArgs(f32, nan(f32), tmin(f32));
 857            try testArgs(f32, nan(f32), fmin(f32));
 858            try testArgs(f32, nan(f32), 1e-1);
 859            try testArgs(f32, nan(f32), 1e0);
 860            try testArgs(f32, nan(f32), 1e1);
 861            try testArgs(f32, nan(f32), fmax(f32));
 862            try testArgs(f32, nan(f32), inf(f32));
 863            try testArgs(f32, nan(f32), nan(f32));
 864
 865            try testArgs(f64, -nan(f64), -nan(f64));
 866            try testArgs(f64, -nan(f64), -inf(f64));
 867            try testArgs(f64, -nan(f64), -fmax(f64));
 868            try testArgs(f64, -nan(f64), -1e1);
 869            try testArgs(f64, -nan(f64), -1e0);
 870            try testArgs(f64, -nan(f64), -1e-1);
 871            try testArgs(f64, -nan(f64), -fmin(f64));
 872            try testArgs(f64, -nan(f64), -tmin(f64));
 873            try testArgs(f64, -nan(f64), -0.0);
 874            try testArgs(f64, -nan(f64), 0.0);
 875            try testArgs(f64, -nan(f64), tmin(f64));
 876            try testArgs(f64, -nan(f64), fmin(f64));
 877            try testArgs(f64, -nan(f64), 1e-1);
 878            try testArgs(f64, -nan(f64), 1e0);
 879            try testArgs(f64, -nan(f64), 1e1);
 880            try testArgs(f64, -nan(f64), fmax(f64));
 881            try testArgs(f64, -nan(f64), inf(f64));
 882            try testArgs(f64, -nan(f64), nan(f64));
 883
 884            try testArgs(f64, -inf(f64), -nan(f64));
 885            try testArgs(f64, -inf(f64), -inf(f64));
 886            try testArgs(f64, -inf(f64), -fmax(f64));
 887            try testArgs(f64, -inf(f64), -1e1);
 888            try testArgs(f64, -inf(f64), -1e0);
 889            try testArgs(f64, -inf(f64), -1e-1);
 890            try testArgs(f64, -inf(f64), -fmin(f64));
 891            try testArgs(f64, -inf(f64), -tmin(f64));
 892            try testArgs(f64, -inf(f64), -0.0);
 893            try testArgs(f64, -inf(f64), 0.0);
 894            try testArgs(f64, -inf(f64), tmin(f64));
 895            try testArgs(f64, -inf(f64), fmin(f64));
 896            try testArgs(f64, -inf(f64), 1e-1);
 897            try testArgs(f64, -inf(f64), 1e0);
 898            try testArgs(f64, -inf(f64), 1e1);
 899            try testArgs(f64, -inf(f64), fmax(f64));
 900            try testArgs(f64, -inf(f64), inf(f64));
 901            try testArgs(f64, -inf(f64), nan(f64));
 902
 903            try testArgs(f64, -fmax(f64), -nan(f64));
 904            try testArgs(f64, -fmax(f64), -inf(f64));
 905            try testArgs(f64, -fmax(f64), -fmax(f64));
 906            try testArgs(f64, -fmax(f64), -1e1);
 907            try testArgs(f64, -fmax(f64), -1e0);
 908            try testArgs(f64, -fmax(f64), -1e-1);
 909            try testArgs(f64, -fmax(f64), -fmin(f64));
 910            try testArgs(f64, -fmax(f64), -tmin(f64));
 911            try testArgs(f64, -fmax(f64), -0.0);
 912            try testArgs(f64, -fmax(f64), 0.0);
 913            try testArgs(f64, -fmax(f64), tmin(f64));
 914            try testArgs(f64, -fmax(f64), fmin(f64));
 915            try testArgs(f64, -fmax(f64), 1e-1);
 916            try testArgs(f64, -fmax(f64), 1e0);
 917            try testArgs(f64, -fmax(f64), 1e1);
 918            try testArgs(f64, -fmax(f64), fmax(f64));
 919            try testArgs(f64, -fmax(f64), inf(f64));
 920            try testArgs(f64, -fmax(f64), nan(f64));
 921
 922            try testArgs(f64, -1e1, -nan(f64));
 923            try testArgs(f64, -1e1, -inf(f64));
 924            try testArgs(f64, -1e1, -fmax(f64));
 925            try testArgs(f64, -1e1, -1e1);
 926            try testArgs(f64, -1e1, -1e0);
 927            try testArgs(f64, -1e1, -1e-1);
 928            try testArgs(f64, -1e1, -fmin(f64));
 929            try testArgs(f64, -1e1, -tmin(f64));
 930            try testArgs(f64, -1e1, -0.0);
 931            try testArgs(f64, -1e1, 0.0);
 932            try testArgs(f64, -1e1, tmin(f64));
 933            try testArgs(f64, -1e1, fmin(f64));
 934            try testArgs(f64, -1e1, 1e-1);
 935            try testArgs(f64, -1e1, 1e0);
 936            try testArgs(f64, -1e1, 1e1);
 937            try testArgs(f64, -1e1, fmax(f64));
 938            try testArgs(f64, -1e1, inf(f64));
 939            try testArgs(f64, -1e1, nan(f64));
 940
 941            try testArgs(f64, -1e0, -nan(f64));
 942            try testArgs(f64, -1e0, -inf(f64));
 943            try testArgs(f64, -1e0, -fmax(f64));
 944            try testArgs(f64, -1e0, -1e1);
 945            try testArgs(f64, -1e0, -1e0);
 946            try testArgs(f64, -1e0, -1e-1);
 947            try testArgs(f64, -1e0, -fmin(f64));
 948            try testArgs(f64, -1e0, -tmin(f64));
 949            try testArgs(f64, -1e0, -0.0);
 950            try testArgs(f64, -1e0, 0.0);
 951            try testArgs(f64, -1e0, tmin(f64));
 952            try testArgs(f64, -1e0, fmin(f64));
 953            try testArgs(f64, -1e0, 1e-1);
 954            try testArgs(f64, -1e0, 1e0);
 955            try testArgs(f64, -1e0, 1e1);
 956            try testArgs(f64, -1e0, fmax(f64));
 957            try testArgs(f64, -1e0, inf(f64));
 958            try testArgs(f64, -1e0, nan(f64));
 959
 960            try testArgs(f64, -1e-1, -nan(f64));
 961            try testArgs(f64, -1e-1, -inf(f64));
 962            try testArgs(f64, -1e-1, -fmax(f64));
 963            try testArgs(f64, -1e-1, -1e1);
 964            try testArgs(f64, -1e-1, -1e0);
 965            try testArgs(f64, -1e-1, -1e-1);
 966            try testArgs(f64, -1e-1, -fmin(f64));
 967            try testArgs(f64, -1e-1, -tmin(f64));
 968            try testArgs(f64, -1e-1, -0.0);
 969            try testArgs(f64, -1e-1, 0.0);
 970            try testArgs(f64, -1e-1, tmin(f64));
 971            try testArgs(f64, -1e-1, fmin(f64));
 972            try testArgs(f64, -1e-1, 1e-1);
 973            try testArgs(f64, -1e-1, 1e0);
 974            try testArgs(f64, -1e-1, 1e1);
 975            try testArgs(f64, -1e-1, fmax(f64));
 976            try testArgs(f64, -1e-1, inf(f64));
 977            try testArgs(f64, -1e-1, nan(f64));
 978
 979            try testArgs(f64, -fmin(f64), -nan(f64));
 980            try testArgs(f64, -fmin(f64), -inf(f64));
 981            try testArgs(f64, -fmin(f64), -fmax(f64));
 982            try testArgs(f64, -fmin(f64), -1e1);
 983            try testArgs(f64, -fmin(f64), -1e0);
 984            try testArgs(f64, -fmin(f64), -1e-1);
 985            try testArgs(f64, -fmin(f64), -fmin(f64));
 986            try testArgs(f64, -fmin(f64), -tmin(f64));
 987            try testArgs(f64, -fmin(f64), -0.0);
 988            try testArgs(f64, -fmin(f64), 0.0);
 989            try testArgs(f64, -fmin(f64), tmin(f64));
 990            try testArgs(f64, -fmin(f64), fmin(f64));
 991            try testArgs(f64, -fmin(f64), 1e-1);
 992            try testArgs(f64, -fmin(f64), 1e0);
 993            try testArgs(f64, -fmin(f64), 1e1);
 994            try testArgs(f64, -fmin(f64), fmax(f64));
 995            try testArgs(f64, -fmin(f64), inf(f64));
 996            try testArgs(f64, -fmin(f64), nan(f64));
 997
 998            try testArgs(f64, -tmin(f64), -nan(f64));
 999            try testArgs(f64, -tmin(f64), -inf(f64));
1000            try testArgs(f64, -tmin(f64), -fmax(f64));
1001            try testArgs(f64, -tmin(f64), -1e1);
1002            try testArgs(f64, -tmin(f64), -1e0);
1003            try testArgs(f64, -tmin(f64), -1e-1);
1004            try testArgs(f64, -tmin(f64), -fmin(f64));
1005            try testArgs(f64, -tmin(f64), -tmin(f64));
1006            try testArgs(f64, -tmin(f64), -0.0);
1007            try testArgs(f64, -tmin(f64), 0.0);
1008            try testArgs(f64, -tmin(f64), tmin(f64));
1009            try testArgs(f64, -tmin(f64), fmin(f64));
1010            try testArgs(f64, -tmin(f64), 1e-1);
1011            try testArgs(f64, -tmin(f64), 1e0);
1012            try testArgs(f64, -tmin(f64), 1e1);
1013            try testArgs(f64, -tmin(f64), fmax(f64));
1014            try testArgs(f64, -tmin(f64), inf(f64));
1015            try testArgs(f64, -tmin(f64), nan(f64));
1016
1017            try testArgs(f64, -0.0, -nan(f64));
1018            try testArgs(f64, -0.0, -inf(f64));
1019            try testArgs(f64, -0.0, -fmax(f64));
1020            try testArgs(f64, -0.0, -1e1);
1021            try testArgs(f64, -0.0, -1e0);
1022            try testArgs(f64, -0.0, -1e-1);
1023            try testArgs(f64, -0.0, -fmin(f64));
1024            try testArgs(f64, -0.0, -tmin(f64));
1025            try testArgs(f64, -0.0, -0.0);
1026            try testArgs(f64, -0.0, 0.0);
1027            try testArgs(f64, -0.0, tmin(f64));
1028            try testArgs(f64, -0.0, fmin(f64));
1029            try testArgs(f64, -0.0, 1e-1);
1030            try testArgs(f64, -0.0, 1e0);
1031            try testArgs(f64, -0.0, 1e1);
1032            try testArgs(f64, -0.0, fmax(f64));
1033            try testArgs(f64, -0.0, inf(f64));
1034            try testArgs(f64, -0.0, nan(f64));
1035
1036            try testArgs(f64, 0.0, -nan(f64));
1037            try testArgs(f64, 0.0, -inf(f64));
1038            try testArgs(f64, 0.0, -fmax(f64));
1039            try testArgs(f64, 0.0, -1e1);
1040            try testArgs(f64, 0.0, -1e0);
1041            try testArgs(f64, 0.0, -1e-1);
1042            try testArgs(f64, 0.0, -fmin(f64));
1043            try testArgs(f64, 0.0, -tmin(f64));
1044            try testArgs(f64, 0.0, -0.0);
1045            try testArgs(f64, 0.0, 0.0);
1046            try testArgs(f64, 0.0, tmin(f64));
1047            try testArgs(f64, 0.0, fmin(f64));
1048            try testArgs(f64, 0.0, 1e-1);
1049            try testArgs(f64, 0.0, 1e0);
1050            try testArgs(f64, 0.0, 1e1);
1051            try testArgs(f64, 0.0, fmax(f64));
1052            try testArgs(f64, 0.0, inf(f64));
1053            try testArgs(f64, 0.0, nan(f64));
1054
1055            try testArgs(f64, tmin(f64), -nan(f64));
1056            try testArgs(f64, tmin(f64), -inf(f64));
1057            try testArgs(f64, tmin(f64), -fmax(f64));
1058            try testArgs(f64, tmin(f64), -1e1);
1059            try testArgs(f64, tmin(f64), -1e0);
1060            try testArgs(f64, tmin(f64), -1e-1);
1061            try testArgs(f64, tmin(f64), -fmin(f64));
1062            try testArgs(f64, tmin(f64), -tmin(f64));
1063            try testArgs(f64, tmin(f64), -0.0);
1064            try testArgs(f64, tmin(f64), 0.0);
1065            try testArgs(f64, tmin(f64), tmin(f64));
1066            try testArgs(f64, tmin(f64), fmin(f64));
1067            try testArgs(f64, tmin(f64), 1e-1);
1068            try testArgs(f64, tmin(f64), 1e0);
1069            try testArgs(f64, tmin(f64), 1e1);
1070            try testArgs(f64, tmin(f64), fmax(f64));
1071            try testArgs(f64, tmin(f64), inf(f64));
1072            try testArgs(f64, tmin(f64), nan(f64));
1073
1074            try testArgs(f64, fmin(f64), -nan(f64));
1075            try testArgs(f64, fmin(f64), -inf(f64));
1076            try testArgs(f64, fmin(f64), -fmax(f64));
1077            try testArgs(f64, fmin(f64), -1e1);
1078            try testArgs(f64, fmin(f64), -1e0);
1079            try testArgs(f64, fmin(f64), -1e-1);
1080            try testArgs(f64, fmin(f64), -fmin(f64));
1081            try testArgs(f64, fmin(f64), -tmin(f64));
1082            try testArgs(f64, fmin(f64), -0.0);
1083            try testArgs(f64, fmin(f64), 0.0);
1084            try testArgs(f64, fmin(f64), tmin(f64));
1085            try testArgs(f64, fmin(f64), fmin(f64));
1086            try testArgs(f64, fmin(f64), 1e-1);
1087            try testArgs(f64, fmin(f64), 1e0);
1088            try testArgs(f64, fmin(f64), 1e1);
1089            try testArgs(f64, fmin(f64), fmax(f64));
1090            try testArgs(f64, fmin(f64), inf(f64));
1091            try testArgs(f64, fmin(f64), nan(f64));
1092
1093            try testArgs(f64, 1e-1, -nan(f64));
1094            try testArgs(f64, 1e-1, -inf(f64));
1095            try testArgs(f64, 1e-1, -fmax(f64));
1096            try testArgs(f64, 1e-1, -1e1);
1097            try testArgs(f64, 1e-1, -1e0);
1098            try testArgs(f64, 1e-1, -1e-1);
1099            try testArgs(f64, 1e-1, -fmin(f64));
1100            try testArgs(f64, 1e-1, -tmin(f64));
1101            try testArgs(f64, 1e-1, -0.0);
1102            try testArgs(f64, 1e-1, 0.0);
1103            try testArgs(f64, 1e-1, tmin(f64));
1104            try testArgs(f64, 1e-1, fmin(f64));
1105            try testArgs(f64, 1e-1, 1e-1);
1106            try testArgs(f64, 1e-1, 1e0);
1107            try testArgs(f64, 1e-1, 1e1);
1108            try testArgs(f64, 1e-1, fmax(f64));
1109            try testArgs(f64, 1e-1, inf(f64));
1110            try testArgs(f64, 1e-1, nan(f64));
1111
1112            try testArgs(f64, 1e0, -nan(f64));
1113            try testArgs(f64, 1e0, -inf(f64));
1114            try testArgs(f64, 1e0, -fmax(f64));
1115            try testArgs(f64, 1e0, -1e1);
1116            try testArgs(f64, 1e0, -1e0);
1117            try testArgs(f64, 1e0, -1e-1);
1118            try testArgs(f64, 1e0, -fmin(f64));
1119            try testArgs(f64, 1e0, -tmin(f64));
1120            try testArgs(f64, 1e0, -0.0);
1121            try testArgs(f64, 1e0, 0.0);
1122            try testArgs(f64, 1e0, tmin(f64));
1123            try testArgs(f64, 1e0, fmin(f64));
1124            try testArgs(f64, 1e0, 1e-1);
1125            try testArgs(f64, 1e0, 1e0);
1126            try testArgs(f64, 1e0, 1e1);
1127            try testArgs(f64, 1e0, fmax(f64));
1128            try testArgs(f64, 1e0, inf(f64));
1129            try testArgs(f64, 1e0, nan(f64));
1130
1131            try testArgs(f64, 1e1, -nan(f64));
1132            try testArgs(f64, 1e1, -inf(f64));
1133            try testArgs(f64, 1e1, -fmax(f64));
1134            try testArgs(f64, 1e1, -1e1);
1135            try testArgs(f64, 1e1, -1e0);
1136            try testArgs(f64, 1e1, -1e-1);
1137            try testArgs(f64, 1e1, -fmin(f64));
1138            try testArgs(f64, 1e1, -tmin(f64));
1139            try testArgs(f64, 1e1, -0.0);
1140            try testArgs(f64, 1e1, 0.0);
1141            try testArgs(f64, 1e1, tmin(f64));
1142            try testArgs(f64, 1e1, fmin(f64));
1143            try testArgs(f64, 1e1, 1e-1);
1144            try testArgs(f64, 1e1, 1e0);
1145            try testArgs(f64, 1e1, 1e1);
1146            try testArgs(f64, 1e1, fmax(f64));
1147            try testArgs(f64, 1e1, inf(f64));
1148            try testArgs(f64, 1e1, nan(f64));
1149
1150            try testArgs(f64, fmax(f64), -nan(f64));
1151            try testArgs(f64, fmax(f64), -inf(f64));
1152            try testArgs(f64, fmax(f64), -fmax(f64));
1153            try testArgs(f64, fmax(f64), -1e1);
1154            try testArgs(f64, fmax(f64), -1e0);
1155            try testArgs(f64, fmax(f64), -1e-1);
1156            try testArgs(f64, fmax(f64), -fmin(f64));
1157            try testArgs(f64, fmax(f64), -tmin(f64));
1158            try testArgs(f64, fmax(f64), -0.0);
1159            try testArgs(f64, fmax(f64), 0.0);
1160            try testArgs(f64, fmax(f64), tmin(f64));
1161            try testArgs(f64, fmax(f64), fmin(f64));
1162            try testArgs(f64, fmax(f64), 1e-1);
1163            try testArgs(f64, fmax(f64), 1e0);
1164            try testArgs(f64, fmax(f64), 1e1);
1165            try testArgs(f64, fmax(f64), fmax(f64));
1166            try testArgs(f64, fmax(f64), inf(f64));
1167            try testArgs(f64, fmax(f64), nan(f64));
1168
1169            try testArgs(f64, inf(f64), -nan(f64));
1170            try testArgs(f64, inf(f64), -inf(f64));
1171            try testArgs(f64, inf(f64), -fmax(f64));
1172            try testArgs(f64, inf(f64), -1e1);
1173            try testArgs(f64, inf(f64), -1e0);
1174            try testArgs(f64, inf(f64), -1e-1);
1175            try testArgs(f64, inf(f64), -fmin(f64));
1176            try testArgs(f64, inf(f64), -tmin(f64));
1177            try testArgs(f64, inf(f64), -0.0);
1178            try testArgs(f64, inf(f64), 0.0);
1179            try testArgs(f64, inf(f64), tmin(f64));
1180            try testArgs(f64, inf(f64), fmin(f64));
1181            try testArgs(f64, inf(f64), 1e-1);
1182            try testArgs(f64, inf(f64), 1e0);
1183            try testArgs(f64, inf(f64), 1e1);
1184            try testArgs(f64, inf(f64), fmax(f64));
1185            try testArgs(f64, inf(f64), inf(f64));
1186            try testArgs(f64, inf(f64), nan(f64));
1187
1188            try testArgs(f64, nan(f64), -nan(f64));
1189            try testArgs(f64, nan(f64), -inf(f64));
1190            try testArgs(f64, nan(f64), -fmax(f64));
1191            try testArgs(f64, nan(f64), -1e1);
1192            try testArgs(f64, nan(f64), -1e0);
1193            try testArgs(f64, nan(f64), -1e-1);
1194            try testArgs(f64, nan(f64), -fmin(f64));
1195            try testArgs(f64, nan(f64), -tmin(f64));
1196            try testArgs(f64, nan(f64), -0.0);
1197            try testArgs(f64, nan(f64), 0.0);
1198            try testArgs(f64, nan(f64), tmin(f64));
1199            try testArgs(f64, nan(f64), fmin(f64));
1200            try testArgs(f64, nan(f64), 1e-1);
1201            try testArgs(f64, nan(f64), 1e0);
1202            try testArgs(f64, nan(f64), 1e1);
1203            try testArgs(f64, nan(f64), fmax(f64));
1204            try testArgs(f64, nan(f64), inf(f64));
1205            try testArgs(f64, nan(f64), nan(f64));
1206
1207            try testArgs(f80, -nan(f80), -nan(f80));
1208            try testArgs(f80, -nan(f80), -inf(f80));
1209            try testArgs(f80, -nan(f80), -fmax(f80));
1210            try testArgs(f80, -nan(f80), -1e1);
1211            try testArgs(f80, -nan(f80), -1e0);
1212            try testArgs(f80, -nan(f80), -1e-1);
1213            try testArgs(f80, -nan(f80), -fmin(f80));
1214            try testArgs(f80, -nan(f80), -tmin(f80));
1215            try testArgs(f80, -nan(f80), -0.0);
1216            try testArgs(f80, -nan(f80), 0.0);
1217            try testArgs(f80, -nan(f80), tmin(f80));
1218            try testArgs(f80, -nan(f80), fmin(f80));
1219            try testArgs(f80, -nan(f80), 1e-1);
1220            try testArgs(f80, -nan(f80), 1e0);
1221            try testArgs(f80, -nan(f80), 1e1);
1222            try testArgs(f80, -nan(f80), fmax(f80));
1223            try testArgs(f80, -nan(f80), inf(f80));
1224            try testArgs(f80, -nan(f80), nan(f80));
1225
1226            try testArgs(f80, -inf(f80), -nan(f80));
1227            try testArgs(f80, -inf(f80), -inf(f80));
1228            try testArgs(f80, -inf(f80), -fmax(f80));
1229            try testArgs(f80, -inf(f80), -1e1);
1230            try testArgs(f80, -inf(f80), -1e0);
1231            try testArgs(f80, -inf(f80), -1e-1);
1232            try testArgs(f80, -inf(f80), -fmin(f80));
1233            try testArgs(f80, -inf(f80), -tmin(f80));
1234            try testArgs(f80, -inf(f80), -0.0);
1235            try testArgs(f80, -inf(f80), 0.0);
1236            try testArgs(f80, -inf(f80), tmin(f80));
1237            try testArgs(f80, -inf(f80), fmin(f80));
1238            try testArgs(f80, -inf(f80), 1e-1);
1239            try testArgs(f80, -inf(f80), 1e0);
1240            try testArgs(f80, -inf(f80), 1e1);
1241            try testArgs(f80, -inf(f80), fmax(f80));
1242            try testArgs(f80, -inf(f80), inf(f80));
1243            try testArgs(f80, -inf(f80), nan(f80));
1244
1245            try testArgs(f80, -fmax(f80), -nan(f80));
1246            try testArgs(f80, -fmax(f80), -inf(f80));
1247            try testArgs(f80, -fmax(f80), -fmax(f80));
1248            try testArgs(f80, -fmax(f80), -1e1);
1249            try testArgs(f80, -fmax(f80), -1e0);
1250            try testArgs(f80, -fmax(f80), -1e-1);
1251            try testArgs(f80, -fmax(f80), -fmin(f80));
1252            try testArgs(f80, -fmax(f80), -tmin(f80));
1253            try testArgs(f80, -fmax(f80), -0.0);
1254            try testArgs(f80, -fmax(f80), 0.0);
1255            try testArgs(f80, -fmax(f80), tmin(f80));
1256            try testArgs(f80, -fmax(f80), fmin(f80));
1257            try testArgs(f80, -fmax(f80), 1e-1);
1258            try testArgs(f80, -fmax(f80), 1e0);
1259            try testArgs(f80, -fmax(f80), 1e1);
1260            try testArgs(f80, -fmax(f80), fmax(f80));
1261            try testArgs(f80, -fmax(f80), inf(f80));
1262            try testArgs(f80, -fmax(f80), nan(f80));
1263
1264            try testArgs(f80, -1e1, -nan(f80));
1265            try testArgs(f80, -1e1, -inf(f80));
1266            try testArgs(f80, -1e1, -fmax(f80));
1267            try testArgs(f80, -1e1, -1e1);
1268            try testArgs(f80, -1e1, -1e0);
1269            try testArgs(f80, -1e1, -1e-1);
1270            try testArgs(f80, -1e1, -fmin(f80));
1271            try testArgs(f80, -1e1, -tmin(f80));
1272            try testArgs(f80, -1e1, -0.0);
1273            try testArgs(f80, -1e1, 0.0);
1274            try testArgs(f80, -1e1, tmin(f80));
1275            try testArgs(f80, -1e1, fmin(f80));
1276            try testArgs(f80, -1e1, 1e-1);
1277            try testArgs(f80, -1e1, 1e0);
1278            try testArgs(f80, -1e1, 1e1);
1279            try testArgs(f80, -1e1, fmax(f80));
1280            try testArgs(f80, -1e1, inf(f80));
1281            try testArgs(f80, -1e1, nan(f80));
1282
1283            try testArgs(f80, -1e0, -nan(f80));
1284            try testArgs(f80, -1e0, -inf(f80));
1285            try testArgs(f80, -1e0, -fmax(f80));
1286            try testArgs(f80, -1e0, -1e1);
1287            try testArgs(f80, -1e0, -1e0);
1288            try testArgs(f80, -1e0, -1e-1);
1289            try testArgs(f80, -1e0, -fmin(f80));
1290            try testArgs(f80, -1e0, -tmin(f80));
1291            try testArgs(f80, -1e0, -0.0);
1292            try testArgs(f80, -1e0, 0.0);
1293            try testArgs(f80, -1e0, tmin(f80));
1294            try testArgs(f80, -1e0, fmin(f80));
1295            try testArgs(f80, -1e0, 1e-1);
1296            try testArgs(f80, -1e0, 1e0);
1297            try testArgs(f80, -1e0, 1e1);
1298            try testArgs(f80, -1e0, fmax(f80));
1299            try testArgs(f80, -1e0, inf(f80));
1300            try testArgs(f80, -1e0, nan(f80));
1301
1302            try testArgs(f80, -1e-1, -nan(f80));
1303            try testArgs(f80, -1e-1, -inf(f80));
1304            try testArgs(f80, -1e-1, -fmax(f80));
1305            try testArgs(f80, -1e-1, -1e1);
1306            try testArgs(f80, -1e-1, -1e0);
1307            try testArgs(f80, -1e-1, -1e-1);
1308            try testArgs(f80, -1e-1, -fmin(f80));
1309            try testArgs(f80, -1e-1, -tmin(f80));
1310            try testArgs(f80, -1e-1, -0.0);
1311            try testArgs(f80, -1e-1, 0.0);
1312            try testArgs(f80, -1e-1, tmin(f80));
1313            try testArgs(f80, -1e-1, fmin(f80));
1314            try testArgs(f80, -1e-1, 1e-1);
1315            try testArgs(f80, -1e-1, 1e0);
1316            try testArgs(f80, -1e-1, 1e1);
1317            try testArgs(f80, -1e-1, fmax(f80));
1318            try testArgs(f80, -1e-1, inf(f80));
1319            try testArgs(f80, -1e-1, nan(f80));
1320
1321            try testArgs(f80, -fmin(f80), -nan(f80));
1322            try testArgs(f80, -fmin(f80), -inf(f80));
1323            try testArgs(f80, -fmin(f80), -fmax(f80));
1324            try testArgs(f80, -fmin(f80), -1e1);
1325            try testArgs(f80, -fmin(f80), -1e0);
1326            try testArgs(f80, -fmin(f80), -1e-1);
1327            try testArgs(f80, -fmin(f80), -fmin(f80));
1328            try testArgs(f80, -fmin(f80), -tmin(f80));
1329            try testArgs(f80, -fmin(f80), -0.0);
1330            try testArgs(f80, -fmin(f80), 0.0);
1331            try testArgs(f80, -fmin(f80), tmin(f80));
1332            try testArgs(f80, -fmin(f80), fmin(f80));
1333            try testArgs(f80, -fmin(f80), 1e-1);
1334            try testArgs(f80, -fmin(f80), 1e0);
1335            try testArgs(f80, -fmin(f80), 1e1);
1336            try testArgs(f80, -fmin(f80), fmax(f80));
1337            try testArgs(f80, -fmin(f80), inf(f80));
1338            try testArgs(f80, -fmin(f80), nan(f80));
1339
1340            try testArgs(f80, -tmin(f80), -nan(f80));
1341            try testArgs(f80, -tmin(f80), -inf(f80));
1342            try testArgs(f80, -tmin(f80), -fmax(f80));
1343            try testArgs(f80, -tmin(f80), -1e1);
1344            try testArgs(f80, -tmin(f80), -1e0);
1345            try testArgs(f80, -tmin(f80), -1e-1);
1346            try testArgs(f80, -tmin(f80), -fmin(f80));
1347            try testArgs(f80, -tmin(f80), -tmin(f80));
1348            try testArgs(f80, -tmin(f80), -0.0);
1349            try testArgs(f80, -tmin(f80), 0.0);
1350            try testArgs(f80, -tmin(f80), tmin(f80));
1351            try testArgs(f80, -tmin(f80), fmin(f80));
1352            try testArgs(f80, -tmin(f80), 1e-1);
1353            try testArgs(f80, -tmin(f80), 1e0);
1354            try testArgs(f80, -tmin(f80), 1e1);
1355            try testArgs(f80, -tmin(f80), fmax(f80));
1356            try testArgs(f80, -tmin(f80), inf(f80));
1357            try testArgs(f80, -tmin(f80), nan(f80));
1358
1359            try testArgs(f80, -0.0, -nan(f80));
1360            try testArgs(f80, -0.0, -inf(f80));
1361            try testArgs(f80, -0.0, -fmax(f80));
1362            try testArgs(f80, -0.0, -1e1);
1363            try testArgs(f80, -0.0, -1e0);
1364            try testArgs(f80, -0.0, -1e-1);
1365            try testArgs(f80, -0.0, -fmin(f80));
1366            try testArgs(f80, -0.0, -tmin(f80));
1367            try testArgs(f80, -0.0, -0.0);
1368            try testArgs(f80, -0.0, 0.0);
1369            try testArgs(f80, -0.0, tmin(f80));
1370            try testArgs(f80, -0.0, fmin(f80));
1371            try testArgs(f80, -0.0, 1e-1);
1372            try testArgs(f80, -0.0, 1e0);
1373            try testArgs(f80, -0.0, 1e1);
1374            try testArgs(f80, -0.0, fmax(f80));
1375            try testArgs(f80, -0.0, inf(f80));
1376            try testArgs(f80, -0.0, nan(f80));
1377
1378            try testArgs(f80, 0.0, -nan(f80));
1379            try testArgs(f80, 0.0, -inf(f80));
1380            try testArgs(f80, 0.0, -fmax(f80));
1381            try testArgs(f80, 0.0, -1e1);
1382            try testArgs(f80, 0.0, -1e0);
1383            try testArgs(f80, 0.0, -1e-1);
1384            try testArgs(f80, 0.0, -fmin(f80));
1385            try testArgs(f80, 0.0, -tmin(f80));
1386            try testArgs(f80, 0.0, -0.0);
1387            try testArgs(f80, 0.0, 0.0);
1388            try testArgs(f80, 0.0, tmin(f80));
1389            try testArgs(f80, 0.0, fmin(f80));
1390            try testArgs(f80, 0.0, 1e-1);
1391            try testArgs(f80, 0.0, 1e0);
1392            try testArgs(f80, 0.0, 1e1);
1393            try testArgs(f80, 0.0, fmax(f80));
1394            try testArgs(f80, 0.0, inf(f80));
1395            try testArgs(f80, 0.0, nan(f80));
1396
1397            try testArgs(f80, tmin(f80), -nan(f80));
1398            try testArgs(f80, tmin(f80), -inf(f80));
1399            try testArgs(f80, tmin(f80), -fmax(f80));
1400            try testArgs(f80, tmin(f80), -1e1);
1401            try testArgs(f80, tmin(f80), -1e0);
1402            try testArgs(f80, tmin(f80), -1e-1);
1403            try testArgs(f80, tmin(f80), -fmin(f80));
1404            try testArgs(f80, tmin(f80), -tmin(f80));
1405            try testArgs(f80, tmin(f80), -0.0);
1406            try testArgs(f80, tmin(f80), 0.0);
1407            try testArgs(f80, tmin(f80), tmin(f80));
1408            try testArgs(f80, tmin(f80), fmin(f80));
1409            try testArgs(f80, tmin(f80), 1e-1);
1410            try testArgs(f80, tmin(f80), 1e0);
1411            try testArgs(f80, tmin(f80), 1e1);
1412            try testArgs(f80, tmin(f80), fmax(f80));
1413            try testArgs(f80, tmin(f80), inf(f80));
1414            try testArgs(f80, tmin(f80), nan(f80));
1415
1416            try testArgs(f80, fmin(f80), -nan(f80));
1417            try testArgs(f80, fmin(f80), -inf(f80));
1418            try testArgs(f80, fmin(f80), -fmax(f80));
1419            try testArgs(f80, fmin(f80), -1e1);
1420            try testArgs(f80, fmin(f80), -1e0);
1421            try testArgs(f80, fmin(f80), -1e-1);
1422            try testArgs(f80, fmin(f80), -fmin(f80));
1423            try testArgs(f80, fmin(f80), -tmin(f80));
1424            try testArgs(f80, fmin(f80), -0.0);
1425            try testArgs(f80, fmin(f80), 0.0);
1426            try testArgs(f80, fmin(f80), tmin(f80));
1427            try testArgs(f80, fmin(f80), fmin(f80));
1428            try testArgs(f80, fmin(f80), 1e-1);
1429            try testArgs(f80, fmin(f80), 1e0);
1430            try testArgs(f80, fmin(f80), 1e1);
1431            try testArgs(f80, fmin(f80), fmax(f80));
1432            try testArgs(f80, fmin(f80), inf(f80));
1433            try testArgs(f80, fmin(f80), nan(f80));
1434
1435            try testArgs(f80, 1e-1, -nan(f80));
1436            try testArgs(f80, 1e-1, -inf(f80));
1437            try testArgs(f80, 1e-1, -fmax(f80));
1438            try testArgs(f80, 1e-1, -1e1);
1439            try testArgs(f80, 1e-1, -1e0);
1440            try testArgs(f80, 1e-1, -1e-1);
1441            try testArgs(f80, 1e-1, -fmin(f80));
1442            try testArgs(f80, 1e-1, -tmin(f80));
1443            try testArgs(f80, 1e-1, -0.0);
1444            try testArgs(f80, 1e-1, 0.0);
1445            try testArgs(f80, 1e-1, tmin(f80));
1446            try testArgs(f80, 1e-1, fmin(f80));
1447            try testArgs(f80, 1e-1, 1e-1);
1448            try testArgs(f80, 1e-1, 1e0);
1449            try testArgs(f80, 1e-1, 1e1);
1450            try testArgs(f80, 1e-1, fmax(f80));
1451            try testArgs(f80, 1e-1, inf(f80));
1452            try testArgs(f80, 1e-1, nan(f80));
1453
1454            try testArgs(f80, 1e0, -nan(f80));
1455            try testArgs(f80, 1e0, -inf(f80));
1456            try testArgs(f80, 1e0, -fmax(f80));
1457            try testArgs(f80, 1e0, -1e1);
1458            try testArgs(f80, 1e0, -1e0);
1459            try testArgs(f80, 1e0, -1e-1);
1460            try testArgs(f80, 1e0, -fmin(f80));
1461            try testArgs(f80, 1e0, -tmin(f80));
1462            try testArgs(f80, 1e0, -0.0);
1463            try testArgs(f80, 1e0, 0.0);
1464            try testArgs(f80, 1e0, tmin(f80));
1465            try testArgs(f80, 1e0, fmin(f80));
1466            try testArgs(f80, 1e0, 1e-1);
1467            try testArgs(f80, 1e0, 1e0);
1468            try testArgs(f80, 1e0, 1e1);
1469            try testArgs(f80, 1e0, fmax(f80));
1470            try testArgs(f80, 1e0, inf(f80));
1471            try testArgs(f80, 1e0, nan(f80));
1472
1473            try testArgs(f80, 1e1, -nan(f80));
1474            try testArgs(f80, 1e1, -inf(f80));
1475            try testArgs(f80, 1e1, -fmax(f80));
1476            try testArgs(f80, 1e1, -1e1);
1477            try testArgs(f80, 1e1, -1e0);
1478            try testArgs(f80, 1e1, -1e-1);
1479            try testArgs(f80, 1e1, -fmin(f80));
1480            try testArgs(f80, 1e1, -tmin(f80));
1481            try testArgs(f80, 1e1, -0.0);
1482            try testArgs(f80, 1e1, 0.0);
1483            try testArgs(f80, 1e1, tmin(f80));
1484            try testArgs(f80, 1e1, fmin(f80));
1485            try testArgs(f80, 1e1, 1e-1);
1486            try testArgs(f80, 1e1, 1e0);
1487            try testArgs(f80, 1e1, 1e1);
1488            try testArgs(f80, 1e1, fmax(f80));
1489            try testArgs(f80, 1e1, inf(f80));
1490            try testArgs(f80, 1e1, nan(f80));
1491
1492            try testArgs(f80, fmax(f80), -nan(f80));
1493            try testArgs(f80, fmax(f80), -inf(f80));
1494            try testArgs(f80, fmax(f80), -fmax(f80));
1495            try testArgs(f80, fmax(f80), -1e1);
1496            try testArgs(f80, fmax(f80), -1e0);
1497            try testArgs(f80, fmax(f80), -1e-1);
1498            try testArgs(f80, fmax(f80), -fmin(f80));
1499            try testArgs(f80, fmax(f80), -tmin(f80));
1500            try testArgs(f80, fmax(f80), -0.0);
1501            try testArgs(f80, fmax(f80), 0.0);
1502            try testArgs(f80, fmax(f80), tmin(f80));
1503            try testArgs(f80, fmax(f80), fmin(f80));
1504            try testArgs(f80, fmax(f80), 1e-1);
1505            try testArgs(f80, fmax(f80), 1e0);
1506            try testArgs(f80, fmax(f80), 1e1);
1507            try testArgs(f80, fmax(f80), fmax(f80));
1508            try testArgs(f80, fmax(f80), inf(f80));
1509            try testArgs(f80, fmax(f80), nan(f80));
1510
1511            try testArgs(f80, inf(f80), -nan(f80));
1512            try testArgs(f80, inf(f80), -inf(f80));
1513            try testArgs(f80, inf(f80), -fmax(f80));
1514            try testArgs(f80, inf(f80), -1e1);
1515            try testArgs(f80, inf(f80), -1e0);
1516            try testArgs(f80, inf(f80), -1e-1);
1517            try testArgs(f80, inf(f80), -fmin(f80));
1518            try testArgs(f80, inf(f80), -tmin(f80));
1519            try testArgs(f80, inf(f80), -0.0);
1520            try testArgs(f80, inf(f80), 0.0);
1521            try testArgs(f80, inf(f80), tmin(f80));
1522            try testArgs(f80, inf(f80), fmin(f80));
1523            try testArgs(f80, inf(f80), 1e-1);
1524            try testArgs(f80, inf(f80), 1e0);
1525            try testArgs(f80, inf(f80), 1e1);
1526            try testArgs(f80, inf(f80), fmax(f80));
1527            try testArgs(f80, inf(f80), inf(f80));
1528            try testArgs(f80, inf(f80), nan(f80));
1529
1530            try testArgs(f80, nan(f80), -nan(f80));
1531            try testArgs(f80, nan(f80), -inf(f80));
1532            try testArgs(f80, nan(f80), -fmax(f80));
1533            try testArgs(f80, nan(f80), -1e1);
1534            try testArgs(f80, nan(f80), -1e0);
1535            try testArgs(f80, nan(f80), -1e-1);
1536            try testArgs(f80, nan(f80), -fmin(f80));
1537            try testArgs(f80, nan(f80), -tmin(f80));
1538            try testArgs(f80, nan(f80), -0.0);
1539            try testArgs(f80, nan(f80), 0.0);
1540            try testArgs(f80, nan(f80), tmin(f80));
1541            try testArgs(f80, nan(f80), fmin(f80));
1542            try testArgs(f80, nan(f80), 1e-1);
1543            try testArgs(f80, nan(f80), 1e0);
1544            try testArgs(f80, nan(f80), 1e1);
1545            try testArgs(f80, nan(f80), fmax(f80));
1546            try testArgs(f80, nan(f80), inf(f80));
1547            try testArgs(f80, nan(f80), nan(f80));
1548
1549            try testArgs(f128, -nan(f128), -nan(f128));
1550            try testArgs(f128, -nan(f128), -inf(f128));
1551            try testArgs(f128, -nan(f128), -fmax(f128));
1552            try testArgs(f128, -nan(f128), -1e1);
1553            try testArgs(f128, -nan(f128), -1e0);
1554            try testArgs(f128, -nan(f128), -1e-1);
1555            try testArgs(f128, -nan(f128), -fmin(f128));
1556            try testArgs(f128, -nan(f128), -tmin(f128));
1557            try testArgs(f128, -nan(f128), -0.0);
1558            try testArgs(f128, -nan(f128), 0.0);
1559            try testArgs(f128, -nan(f128), tmin(f128));
1560            try testArgs(f128, -nan(f128), fmin(f128));
1561            try testArgs(f128, -nan(f128), 1e-1);
1562            try testArgs(f128, -nan(f128), 1e0);
1563            try testArgs(f128, -nan(f128), 1e1);
1564            try testArgs(f128, -nan(f128), fmax(f128));
1565            try testArgs(f128, -nan(f128), inf(f128));
1566            try testArgs(f128, -nan(f128), nan(f128));
1567
1568            try testArgs(f128, -inf(f128), -nan(f128));
1569            try testArgs(f128, -inf(f128), -inf(f128));
1570            try testArgs(f128, -inf(f128), -fmax(f128));
1571            try testArgs(f128, -inf(f128), -1e1);
1572            try testArgs(f128, -inf(f128), -1e0);
1573            try testArgs(f128, -inf(f128), -1e-1);
1574            try testArgs(f128, -inf(f128), -fmin(f128));
1575            try testArgs(f128, -inf(f128), -tmin(f128));
1576            try testArgs(f128, -inf(f128), -0.0);
1577            try testArgs(f128, -inf(f128), 0.0);
1578            try testArgs(f128, -inf(f128), tmin(f128));
1579            try testArgs(f128, -inf(f128), fmin(f128));
1580            try testArgs(f128, -inf(f128), 1e-1);
1581            try testArgs(f128, -inf(f128), 1e0);
1582            try testArgs(f128, -inf(f128), 1e1);
1583            try testArgs(f128, -inf(f128), fmax(f128));
1584            try testArgs(f128, -inf(f128), inf(f128));
1585            try testArgs(f128, -inf(f128), nan(f128));
1586
1587            try testArgs(f128, -fmax(f128), -nan(f128));
1588            try testArgs(f128, -fmax(f128), -inf(f128));
1589            try testArgs(f128, -fmax(f128), -fmax(f128));
1590            try testArgs(f128, -fmax(f128), -1e1);
1591            try testArgs(f128, -fmax(f128), -1e0);
1592            try testArgs(f128, -fmax(f128), -1e-1);
1593            try testArgs(f128, -fmax(f128), -fmin(f128));
1594            try testArgs(f128, -fmax(f128), -tmin(f128));
1595            try testArgs(f128, -fmax(f128), -0.0);
1596            try testArgs(f128, -fmax(f128), 0.0);
1597            try testArgs(f128, -fmax(f128), tmin(f128));
1598            try testArgs(f128, -fmax(f128), fmin(f128));
1599            try testArgs(f128, -fmax(f128), 1e-1);
1600            try testArgs(f128, -fmax(f128), 1e0);
1601            try testArgs(f128, -fmax(f128), 1e1);
1602            try testArgs(f128, -fmax(f128), fmax(f128));
1603            try testArgs(f128, -fmax(f128), inf(f128));
1604            try testArgs(f128, -fmax(f128), nan(f128));
1605
1606            try testArgs(f128, -1e1, -nan(f128));
1607            try testArgs(f128, -1e1, -inf(f128));
1608            try testArgs(f128, -1e1, -fmax(f128));
1609            try testArgs(f128, -1e1, -1e1);
1610            try testArgs(f128, -1e1, -1e0);
1611            try testArgs(f128, -1e1, -1e-1);
1612            try testArgs(f128, -1e1, -fmin(f128));
1613            try testArgs(f128, -1e1, -tmin(f128));
1614            try testArgs(f128, -1e1, -0.0);
1615            try testArgs(f128, -1e1, 0.0);
1616            try testArgs(f128, -1e1, tmin(f128));
1617            try testArgs(f128, -1e1, fmin(f128));
1618            try testArgs(f128, -1e1, 1e-1);
1619            try testArgs(f128, -1e1, 1e0);
1620            try testArgs(f128, -1e1, 1e1);
1621            try testArgs(f128, -1e1, fmax(f128));
1622            try testArgs(f128, -1e1, inf(f128));
1623            try testArgs(f128, -1e1, nan(f128));
1624
1625            try testArgs(f128, -1e0, -nan(f128));
1626            try testArgs(f128, -1e0, -inf(f128));
1627            try testArgs(f128, -1e0, -fmax(f128));
1628            try testArgs(f128, -1e0, -1e1);
1629            try testArgs(f128, -1e0, -1e0);
1630            try testArgs(f128, -1e0, -1e-1);
1631            try testArgs(f128, -1e0, -fmin(f128));
1632            try testArgs(f128, -1e0, -tmin(f128));
1633            try testArgs(f128, -1e0, -0.0);
1634            try testArgs(f128, -1e0, 0.0);
1635            try testArgs(f128, -1e0, tmin(f128));
1636            try testArgs(f128, -1e0, fmin(f128));
1637            try testArgs(f128, -1e0, 1e-1);
1638            try testArgs(f128, -1e0, 1e0);
1639            try testArgs(f128, -1e0, 1e1);
1640            try testArgs(f128, -1e0, fmax(f128));
1641            try testArgs(f128, -1e0, inf(f128));
1642            try testArgs(f128, -1e0, nan(f128));
1643
1644            try testArgs(f128, -1e-1, -nan(f128));
1645            try testArgs(f128, -1e-1, -inf(f128));
1646            try testArgs(f128, -1e-1, -fmax(f128));
1647            try testArgs(f128, -1e-1, -1e1);
1648            try testArgs(f128, -1e-1, -1e0);
1649            try testArgs(f128, -1e-1, -1e-1);
1650            try testArgs(f128, -1e-1, -fmin(f128));
1651            try testArgs(f128, -1e-1, -tmin(f128));
1652            try testArgs(f128, -1e-1, -0.0);
1653            try testArgs(f128, -1e-1, 0.0);
1654            try testArgs(f128, -1e-1, tmin(f128));
1655            try testArgs(f128, -1e-1, fmin(f128));
1656            try testArgs(f128, -1e-1, 1e-1);
1657            try testArgs(f128, -1e-1, 1e0);
1658            try testArgs(f128, -1e-1, 1e1);
1659            try testArgs(f128, -1e-1, fmax(f128));
1660            try testArgs(f128, -1e-1, inf(f128));
1661            try testArgs(f128, -1e-1, nan(f128));
1662
1663            try testArgs(f128, -fmin(f128), -nan(f128));
1664            try testArgs(f128, -fmin(f128), -inf(f128));
1665            try testArgs(f128, -fmin(f128), -fmax(f128));
1666            try testArgs(f128, -fmin(f128), -1e1);
1667            try testArgs(f128, -fmin(f128), -1e0);
1668            try testArgs(f128, -fmin(f128), -1e-1);
1669            try testArgs(f128, -fmin(f128), -fmin(f128));
1670            try testArgs(f128, -fmin(f128), -tmin(f128));
1671            try testArgs(f128, -fmin(f128), -0.0);
1672            try testArgs(f128, -fmin(f128), 0.0);
1673            try testArgs(f128, -fmin(f128), tmin(f128));
1674            try testArgs(f128, -fmin(f128), fmin(f128));
1675            try testArgs(f128, -fmin(f128), 1e-1);
1676            try testArgs(f128, -fmin(f128), 1e0);
1677            try testArgs(f128, -fmin(f128), 1e1);
1678            try testArgs(f128, -fmin(f128), fmax(f128));
1679            try testArgs(f128, -fmin(f128), inf(f128));
1680            try testArgs(f128, -fmin(f128), nan(f128));
1681
1682            try testArgs(f128, -tmin(f128), -nan(f128));
1683            try testArgs(f128, -tmin(f128), -inf(f128));
1684            try testArgs(f128, -tmin(f128), -fmax(f128));
1685            try testArgs(f128, -tmin(f128), -1e1);
1686            try testArgs(f128, -tmin(f128), -1e0);
1687            try testArgs(f128, -tmin(f128), -1e-1);
1688            try testArgs(f128, -tmin(f128), -fmin(f128));
1689            try testArgs(f128, -tmin(f128), -tmin(f128));
1690            try testArgs(f128, -tmin(f128), -0.0);
1691            try testArgs(f128, -tmin(f128), 0.0);
1692            try testArgs(f128, -tmin(f128), tmin(f128));
1693            try testArgs(f128, -tmin(f128), fmin(f128));
1694            try testArgs(f128, -tmin(f128), 1e-1);
1695            try testArgs(f128, -tmin(f128), 1e0);
1696            try testArgs(f128, -tmin(f128), 1e1);
1697            try testArgs(f128, -tmin(f128), fmax(f128));
1698            try testArgs(f128, -tmin(f128), inf(f128));
1699            try testArgs(f128, -tmin(f128), nan(f128));
1700
1701            try testArgs(f128, -0.0, -nan(f128));
1702            try testArgs(f128, -0.0, -inf(f128));
1703            try testArgs(f128, -0.0, -fmax(f128));
1704            try testArgs(f128, -0.0, -1e1);
1705            try testArgs(f128, -0.0, -1e0);
1706            try testArgs(f128, -0.0, -1e-1);
1707            try testArgs(f128, -0.0, -fmin(f128));
1708            try testArgs(f128, -0.0, -tmin(f128));
1709            try testArgs(f128, -0.0, -0.0);
1710            try testArgs(f128, -0.0, 0.0);
1711            try testArgs(f128, -0.0, tmin(f128));
1712            try testArgs(f128, -0.0, fmin(f128));
1713            try testArgs(f128, -0.0, 1e-1);
1714            try testArgs(f128, -0.0, 1e0);
1715            try testArgs(f128, -0.0, 1e1);
1716            try testArgs(f128, -0.0, fmax(f128));
1717            try testArgs(f128, -0.0, inf(f128));
1718            try testArgs(f128, -0.0, nan(f128));
1719
1720            try testArgs(f128, 0.0, -nan(f128));
1721            try testArgs(f128, 0.0, -inf(f128));
1722            try testArgs(f128, 0.0, -fmax(f128));
1723            try testArgs(f128, 0.0, -1e1);
1724            try testArgs(f128, 0.0, -1e0);
1725            try testArgs(f128, 0.0, -1e-1);
1726            try testArgs(f128, 0.0, -fmin(f128));
1727            try testArgs(f128, 0.0, -tmin(f128));
1728            try testArgs(f128, 0.0, -0.0);
1729            try testArgs(f128, 0.0, 0.0);
1730            try testArgs(f128, 0.0, tmin(f128));
1731            try testArgs(f128, 0.0, fmin(f128));
1732            try testArgs(f128, 0.0, 1e-1);
1733            try testArgs(f128, 0.0, 1e0);
1734            try testArgs(f128, 0.0, 1e1);
1735            try testArgs(f128, 0.0, fmax(f128));
1736            try testArgs(f128, 0.0, inf(f128));
1737            try testArgs(f128, 0.0, nan(f128));
1738
1739            try testArgs(f128, tmin(f128), -nan(f128));
1740            try testArgs(f128, tmin(f128), -inf(f128));
1741            try testArgs(f128, tmin(f128), -fmax(f128));
1742            try testArgs(f128, tmin(f128), -1e1);
1743            try testArgs(f128, tmin(f128), -1e0);
1744            try testArgs(f128, tmin(f128), -1e-1);
1745            try testArgs(f128, tmin(f128), -fmin(f128));
1746            try testArgs(f128, tmin(f128), -tmin(f128));
1747            try testArgs(f128, tmin(f128), -0.0);
1748            try testArgs(f128, tmin(f128), 0.0);
1749            try testArgs(f128, tmin(f128), tmin(f128));
1750            try testArgs(f128, tmin(f128), fmin(f128));
1751            try testArgs(f128, tmin(f128), 1e-1);
1752            try testArgs(f128, tmin(f128), 1e0);
1753            try testArgs(f128, tmin(f128), 1e1);
1754            try testArgs(f128, tmin(f128), fmax(f128));
1755            try testArgs(f128, tmin(f128), inf(f128));
1756            try testArgs(f128, tmin(f128), nan(f128));
1757
1758            try testArgs(f128, fmin(f128), -nan(f128));
1759            try testArgs(f128, fmin(f128), -inf(f128));
1760            try testArgs(f128, fmin(f128), -fmax(f128));
1761            try testArgs(f128, fmin(f128), -1e1);
1762            try testArgs(f128, fmin(f128), -1e0);
1763            try testArgs(f128, fmin(f128), -1e-1);
1764            try testArgs(f128, fmin(f128), -fmin(f128));
1765            try testArgs(f128, fmin(f128), -tmin(f128));
1766            try testArgs(f128, fmin(f128), -0.0);
1767            try testArgs(f128, fmin(f128), 0.0);
1768            try testArgs(f128, fmin(f128), tmin(f128));
1769            try testArgs(f128, fmin(f128), fmin(f128));
1770            try testArgs(f128, fmin(f128), 1e-1);
1771            try testArgs(f128, fmin(f128), 1e0);
1772            try testArgs(f128, fmin(f128), 1e1);
1773            try testArgs(f128, fmin(f128), fmax(f128));
1774            try testArgs(f128, fmin(f128), inf(f128));
1775            try testArgs(f128, fmin(f128), nan(f128));
1776
1777            try testArgs(f128, 1e-1, -nan(f128));
1778            try testArgs(f128, 1e-1, -inf(f128));
1779            try testArgs(f128, 1e-1, -fmax(f128));
1780            try testArgs(f128, 1e-1, -1e1);
1781            try testArgs(f128, 1e-1, -1e0);
1782            try testArgs(f128, 1e-1, -1e-1);
1783            try testArgs(f128, 1e-1, -fmin(f128));
1784            try testArgs(f128, 1e-1, -tmin(f128));
1785            try testArgs(f128, 1e-1, -0.0);
1786            try testArgs(f128, 1e-1, 0.0);
1787            try testArgs(f128, 1e-1, tmin(f128));
1788            try testArgs(f128, 1e-1, fmin(f128));
1789            try testArgs(f128, 1e-1, 1e-1);
1790            try testArgs(f128, 1e-1, 1e0);
1791            try testArgs(f128, 1e-1, 1e1);
1792            try testArgs(f128, 1e-1, fmax(f128));
1793            try testArgs(f128, 1e-1, inf(f128));
1794            try testArgs(f128, 1e-1, nan(f128));
1795
1796            try testArgs(f128, 1e0, -nan(f128));
1797            try testArgs(f128, 1e0, -inf(f128));
1798            try testArgs(f128, 1e0, -fmax(f128));
1799            try testArgs(f128, 1e0, -1e1);
1800            try testArgs(f128, 1e0, -1e0);
1801            try testArgs(f128, 1e0, -1e-1);
1802            try testArgs(f128, 1e0, -fmin(f128));
1803            try testArgs(f128, 1e0, -tmin(f128));
1804            try testArgs(f128, 1e0, -0.0);
1805            try testArgs(f128, 1e0, 0.0);
1806            try testArgs(f128, 1e0, tmin(f128));
1807            try testArgs(f128, 1e0, fmin(f128));
1808            try testArgs(f128, 1e0, 1e-1);
1809            try testArgs(f128, 1e0, 1e0);
1810            try testArgs(f128, 1e0, 1e1);
1811            try testArgs(f128, 1e0, fmax(f128));
1812            try testArgs(f128, 1e0, inf(f128));
1813            try testArgs(f128, 1e0, nan(f128));
1814
1815            try testArgs(f128, 1e1, -nan(f128));
1816            try testArgs(f128, 1e1, -inf(f128));
1817            try testArgs(f128, 1e1, -fmax(f128));
1818            try testArgs(f128, 1e1, -1e1);
1819            try testArgs(f128, 1e1, -1e0);
1820            try testArgs(f128, 1e1, -1e-1);
1821            try testArgs(f128, 1e1, -fmin(f128));
1822            try testArgs(f128, 1e1, -tmin(f128));
1823            try testArgs(f128, 1e1, -0.0);
1824            try testArgs(f128, 1e1, 0.0);
1825            try testArgs(f128, 1e1, tmin(f128));
1826            try testArgs(f128, 1e1, fmin(f128));
1827            try testArgs(f128, 1e1, 1e-1);
1828            try testArgs(f128, 1e1, 1e0);
1829            try testArgs(f128, 1e1, 1e1);
1830            try testArgs(f128, 1e1, fmax(f128));
1831            try testArgs(f128, 1e1, inf(f128));
1832            try testArgs(f128, 1e1, nan(f128));
1833
1834            try testArgs(f128, fmax(f128), -nan(f128));
1835            try testArgs(f128, fmax(f128), -inf(f128));
1836            try testArgs(f128, fmax(f128), -fmax(f128));
1837            try testArgs(f128, fmax(f128), -1e1);
1838            try testArgs(f128, fmax(f128), -1e0);
1839            try testArgs(f128, fmax(f128), -1e-1);
1840            try testArgs(f128, fmax(f128), -fmin(f128));
1841            try testArgs(f128, fmax(f128), -tmin(f128));
1842            try testArgs(f128, fmax(f128), -0.0);
1843            try testArgs(f128, fmax(f128), 0.0);
1844            try testArgs(f128, fmax(f128), tmin(f128));
1845            try testArgs(f128, fmax(f128), fmin(f128));
1846            try testArgs(f128, fmax(f128), 1e-1);
1847            try testArgs(f128, fmax(f128), 1e0);
1848            try testArgs(f128, fmax(f128), 1e1);
1849            try testArgs(f128, fmax(f128), fmax(f128));
1850            try testArgs(f128, fmax(f128), inf(f128));
1851            try testArgs(f128, fmax(f128), nan(f128));
1852
1853            try testArgs(f128, inf(f128), -nan(f128));
1854            try testArgs(f128, inf(f128), -inf(f128));
1855            try testArgs(f128, inf(f128), -fmax(f128));
1856            try testArgs(f128, inf(f128), -1e1);
1857            try testArgs(f128, inf(f128), -1e0);
1858            try testArgs(f128, inf(f128), -1e-1);
1859            try testArgs(f128, inf(f128), -fmin(f128));
1860            try testArgs(f128, inf(f128), -tmin(f128));
1861            try testArgs(f128, inf(f128), -0.0);
1862            try testArgs(f128, inf(f128), 0.0);
1863            try testArgs(f128, inf(f128), tmin(f128));
1864            try testArgs(f128, inf(f128), fmin(f128));
1865            try testArgs(f128, inf(f128), 1e-1);
1866            try testArgs(f128, inf(f128), 1e0);
1867            try testArgs(f128, inf(f128), 1e1);
1868            try testArgs(f128, inf(f128), fmax(f128));
1869            try testArgs(f128, inf(f128), inf(f128));
1870            try testArgs(f128, inf(f128), nan(f128));
1871
1872            try testArgs(f128, nan(f128), -nan(f128));
1873            try testArgs(f128, nan(f128), -inf(f128));
1874            try testArgs(f128, nan(f128), -fmax(f128));
1875            try testArgs(f128, nan(f128), -1e1);
1876            try testArgs(f128, nan(f128), -1e0);
1877            try testArgs(f128, nan(f128), -1e-1);
1878            try testArgs(f128, nan(f128), -fmin(f128));
1879            try testArgs(f128, nan(f128), -tmin(f128));
1880            try testArgs(f128, nan(f128), -0.0);
1881            try testArgs(f128, nan(f128), 0.0);
1882            try testArgs(f128, nan(f128), tmin(f128));
1883            try testArgs(f128, nan(f128), fmin(f128));
1884            try testArgs(f128, nan(f128), 1e-1);
1885            try testArgs(f128, nan(f128), 1e0);
1886            try testArgs(f128, nan(f128), 1e1);
1887            try testArgs(f128, nan(f128), fmax(f128));
1888            try testArgs(f128, nan(f128), inf(f128));
1889            try testArgs(f128, nan(f128), nan(f128));
1890        }
1891        fn testBoolVectors() !void {
1892            try testArgs(@Vector(1, bool), .{
1893                false,
1894            }, .{
1895                true,
1896            });
1897            try testArgs(@Vector(2, bool), .{
1898                false, true,
1899            }, .{
1900                true, false,
1901            });
1902            try testArgs(@Vector(4, bool), .{
1903                false, false, true, true,
1904            }, .{
1905                false, true, false, true,
1906            });
1907        }
1908        fn testIntVectors() !void {
1909            try testArgs(@Vector(1, i1), .{
1910                0x0,
1911            }, .{
1912                -0x1,
1913            });
1914            try testArgs(@Vector(2, i1), .{
1915                0x0, 0x0,
1916            }, .{
1917                -0x1, -0x1,
1918            });
1919            try testArgs(@Vector(4, i1), .{
1920                0x0, 0x0, 0x0, 0x0,
1921            }, .{
1922                -0x1, -0x1, -0x1, -0x1,
1923            });
1924            try testArgs(@Vector(8, i1), .{
1925                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1926            }, .{
1927                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1928            });
1929            try testArgs(@Vector(16, i1), .{
1930                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1931            }, .{
1932                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1933            });
1934            try testArgs(@Vector(32, i1), .{
1935                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1936                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1937            }, .{
1938                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1939                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1940            });
1941            try testArgs(@Vector(64, i1), .{
1942                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1943                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1944                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1945                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1946            }, .{
1947                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1948                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1949                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1950                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1951            });
1952            try testArgs(@Vector(128, i1), .{
1953                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1954                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1955                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1956                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1957                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1958                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1959                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1960                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
1961            }, .{
1962                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1963                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1964                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1965                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1966                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1967                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1968                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1969                -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, -0x1,
1970            });
1971
1972            try testArgs(@Vector(1, u1), .{
1973                0x0,
1974            }, .{
1975                0x1,
1976            });
1977            try testArgs(@Vector(2, u1), .{
1978                0x0, 0x1,
1979            }, .{
1980                0x1, 0x1,
1981            });
1982            try testArgs(@Vector(4, u1), .{
1983                0x0, 0x0, 0x1, 0x0,
1984            }, .{
1985                0x1, 0x1, 0x1, 0x1,
1986            });
1987            try testArgs(@Vector(8, u1), .{
1988                0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
1989            }, .{
1990                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1991            });
1992            try testArgs(@Vector(16, u1), .{
1993                0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
1994            }, .{
1995                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
1996            });
1997            try testArgs(@Vector(32, u1), .{
1998                0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
1999                0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
2000            }, .{
2001                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2002                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2003            });
2004            try testArgs(@Vector(64, u1), .{
2005                0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1,
2006                0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1,
2007                0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
2008                0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0,
2009            }, .{
2010                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2011                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2012                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2013                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2014            });
2015            try testArgs(@Vector(128, u1), .{
2016                0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
2017                0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1,
2018                0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1,
2019                0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
2020                0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1,
2021                0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1,
2022                0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
2023                0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1,
2024            }, .{
2025                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2026                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2027                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2028                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2029                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2030                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2031                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2032                0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
2033            });
2034
2035            try testArgs(@Vector(1, i2), .{
2036                0x1,
2037            }, .{
2038                0x1,
2039            });
2040            try testArgs(@Vector(2, i2), .{
2041                0x0, -0x2,
2042            }, .{
2043                -0x2, -0x2,
2044            });
2045            try testArgs(@Vector(4, i2), .{
2046                -0x2, -0x1, 0x0, -0x2,
2047            }, .{
2048                -0x2, 0x1, -0x1, -0x2,
2049            });
2050            try testArgs(@Vector(8, i2), .{
2051                -0x1, 0x1, 0x1, -0x1, -0x2, -0x2, 0x0, -0x2,
2052            }, .{
2053                -0x1, -0x1, -0x2, -0x1, -0x2, 0x1, -0x1, 0x1,
2054            });
2055            try testArgs(@Vector(16, i2), .{
2056                0x0, -0x2, -0x1, -0x2, 0x1, 0x0, -0x1, 0x0, 0x1, -0x2, 0x1, -0x1, -0x2, -0x2, 0x1, 0x0,
2057            }, .{
2058                -0x2, -0x2, 0x1, -0x2, -0x1, -0x2, -0x1, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1, -0x2, -0x2, -0x2,
2059            });
2060            try testArgs(@Vector(32, i2), .{
2061                -0x2, 0x1, -0x1, 0x1, 0x0, -0x2, 0x1, -0x2, -0x2, 0x0,  -0x1, 0x0,  -0x2, -0x2, 0x0, 0x1,
2062                -0x1, 0x1, -0x1, 0x1, 0x1, 0x1,  0x1, -0x2, -0x1, -0x1, 0x1,  -0x2, 0x0,  -0x1, 0x0, -0x2,
2063            }, .{
2064                0x1,  -0x1, 0x1, -0x1, 0x1,  0x1,  0x1,  -0x2, 0x1,  -0x2, -0x1, -0x2, 0x1,  0x1, 0x1,  -0x1,
2065                -0x2, 0x1,  0x1, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, -0x2, 0x1,  -0x2, -0x1, 0x1, -0x2, -0x2,
2066            });
2067            try testArgs(@Vector(64, i2), .{
2068                0x1,  -0x2, -0x1, 0x0,  0x1,  -0x2, -0x1, -0x2, -0x2, -0x1, -0x2, -0x1, 0x1, 0x1,  0x0,  0x1,
2069                -0x1, -0x1, -0x1, 0x1,  0x1,  -0x1, 0x0,  0x1,  -0x1, 0x0,  0x0,  0x1,  0x1, 0x0,  -0x2, -0x2,
2070                0x1,  0x0,  -0x2, -0x2, 0x1,  -0x2, -0x2, 0x1,  0x1,  -0x2, 0x1,  0x0,  0x0, -0x1, 0x0,  0x1,
2071                -0x2, 0x0,  0x0,  -0x1, -0x1, 0x1,  -0x2, 0x0,  -0x2, 0x0,  -0x2, 0x1,  0x0, -0x1, -0x1, 0x1,
2072            }, .{
2073                -0x2, -0x2, 0x1,  -0x1, -0x2, -0x2, -0x1, -0x2, 0x1,  0x1,  0x1,  -0x1, 0x1,  0x1,  0x1,  -0x1,
2074                -0x2, 0x1,  0x1,  -0x2, -0x2, 0x1,  0x1,  -0x1, -0x2, -0x2, 0x1,  -0x1, -0x2, 0x1,  -0x2, 0x1,
2075                0x1,  -0x2, -0x2, -0x2, -0x2, 0x1,  0x1,  0x1,  -0x2, 0x1,  -0x1, 0x1,  -0x1, 0x1,  0x1,  -0x1,
2076                -0x2, 0x1,  -0x1, 0x1,  -0x1, -0x1, 0x1,  0x1,  -0x2, 0x1,  0x1,  -0x2, -0x2, -0x1, -0x2, -0x2,
2077            });
2078            try testArgs(@Vector(128, i2), .{
2079                -0x1, -0x2, 0x0,  -0x2, -0x2, 0x1,  -0x1, 0x0,  -0x1, -0x2, 0x0,  -0x2, 0x0,  0x1,  0x0,  -0x1,
2080                0x0,  -0x2, 0x1,  0x0,  0x1,  0x0,  -0x2, 0x1,  0x1,  0x1,  -0x1, 0x1,  0x0,  -0x1, 0x1,  -0x1,
2081                0x1,  -0x2, 0x1,  -0x2, 0x1,  -0x2, 0x1,  -0x2, -0x2, -0x2, 0x0,  0x0,  0x1,  0x1,  -0x2, -0x1,
2082                0x1,  0x0,  0x0,  0x1,  -0x2, -0x1, 0x0,  -0x1, 0x1,  -0x2, 0x1,  0x0,  0x1,  0x0,  0x0,  -0x2,
2083                0x0,  0x0,  -0x1, 0x1,  -0x1, 0x0,  -0x1, -0x2, 0x1,  -0x2, -0x2, -0x1, -0x2, 0x0,  0x0,  0x0,
2084                -0x1, -0x1, -0x1, -0x1, -0x2, 0x0,  -0x1, 0x1,  0x0,  0x0,  -0x2, 0x0,  0x0,  0x0,  0x0,  0x1,
2085                0x1,  -0x2, 0x0,  0x0,  -0x1, -0x1, 0x1,  -0x1, -0x2, 0x0,  -0x1, -0x1, -0x2, -0x2, 0x0,  0x0,
2086                -0x1, 0x0,  0x1,  0x0,  -0x1, -0x2, 0x1,  -0x2, -0x1, -0x1, 0x0,  0x0,  -0x1, 0x0,  0x0,  0x1,
2087            }, .{
2088                -0x2, -0x2, 0x1,  0x1,  -0x2, -0x1, 0x1,  0x1,  0x1,  -0x2, -0x2, 0x1,  -0x2, -0x2, 0x1,  -0x1,
2089                -0x1, -0x2, 0x1,  -0x1, 0x1,  0x1,  0x1,  -0x1, -0x1, -0x1, -0x1, -0x1, -0x1, 0x1,  0x1,  -0x2,
2090                -0x1, -0x2, -0x2, -0x2, -0x2, -0x2, -0x1, -0x2, 0x1,  0x1,  -0x1, -0x1, -0x1, -0x1, 0x1,  -0x2,
2091                0x1,  -0x1, 0x1,  -0x1, 0x1,  0x1,  -0x1, -0x2, 0x1,  0x1,  -0x2, -0x2, -0x2, 0x1,  0x1,  -0x2,
2092                -0x1, 0x1,  -0x2, -0x1, -0x1, 0x1,  -0x2, -0x2, 0x1,  0x1,  -0x2, -0x1, -0x2, -0x2, -0x2, -0x2,
2093                0x1,  -0x1, 0x1,  -0x2, 0x1,  -0x1, -0x1, 0x1,  0x1,  -0x1, 0x1,  -0x1, -0x2, -0x2, -0x1, -0x2,
2094                -0x2, 0x1,  -0x2, -0x2, -0x1, -0x1, -0x1, -0x2, 0x1,  -0x2, 0x1,  -0x2, 0x1,  -0x2, -0x2, 0x1,
2095                0x1,  -0x1, 0x1,  0x1,  -0x1, -0x2, 0x1,  0x1,  -0x1, -0x2, -0x1, -0x1, 0x1,  -0x2, -0x2, -0x2,
2096            });
2097
2098            try testArgs(@Vector(1, u2), .{
2099                0x2,
2100            }, .{
2101                0x2,
2102            });
2103            try testArgs(@Vector(2, u2), .{
2104                0x1, 0x0,
2105            }, .{
2106                0x2, 0x1,
2107            });
2108            try testArgs(@Vector(4, u2), .{
2109                0x3, 0x3, 0x0, 0x2,
2110            }, .{
2111                0x3, 0x1, 0x1, 0x3,
2112            });
2113            try testArgs(@Vector(8, u2), .{
2114                0x0, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1,
2115            }, .{
2116                0x1, 0x1, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2,
2117            });
2118            try testArgs(@Vector(16, u2), .{
2119                0x1, 0x1, 0x0, 0x1, 0x0, 0x2, 0x2, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1,
2120            }, .{
2121                0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x1,
2122            });
2123            try testArgs(@Vector(32, u2), .{
2124                0x2, 0x2, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x3, 0x0, 0x0, 0x3, 0x3, 0x1, 0x3, 0x0,
2125                0x1, 0x0, 0x2, 0x3, 0x2, 0x3, 0x2, 0x0, 0x1, 0x3, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0,
2126            }, .{
2127                0x3, 0x2, 0x1, 0x1, 0x2, 0x3, 0x1, 0x3, 0x1, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x2,
2128                0x2, 0x2, 0x1, 0x1, 0x1, 0x2, 0x1, 0x1, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x3,
2129            });
2130            try testArgs(@Vector(64, u2), .{
2131                0x1, 0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x3, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x3, 0x0,
2132                0x3, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x3, 0x1, 0x3,
2133                0x1, 0x2, 0x3, 0x2, 0x3, 0x0, 0x1, 0x1, 0x2, 0x1, 0x0, 0x3, 0x2, 0x3, 0x3, 0x0,
2134                0x0, 0x0, 0x3, 0x1, 0x3, 0x0, 0x1, 0x0, 0x2, 0x0, 0x3, 0x0, 0x1, 0x0, 0x3, 0x3,
2135            }, .{
2136                0x1, 0x2, 0x2, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x3,
2137                0x2, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x1, 0x1, 0x2, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1,
2138                0x3, 0x2, 0x1, 0x1, 0x3, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x3, 0x2, 0x2,
2139                0x3, 0x2, 0x3, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3, 0x3, 0x1,
2140            });
2141            try testArgs(@Vector(128, u2), .{
2142                0x2, 0x0, 0x0, 0x1, 0x3, 0x0, 0x0, 0x3, 0x0, 0x1, 0x2, 0x0, 0x0, 0x2, 0x0, 0x1,
2143                0x3, 0x0, 0x0, 0x1, 0x3, 0x0, 0x3, 0x0, 0x1, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x1,
2144                0x0, 0x0, 0x3, 0x3, 0x3, 0x2, 0x2, 0x1, 0x0, 0x3, 0x1, 0x1, 0x3, 0x3, 0x1, 0x0,
2145                0x1, 0x2, 0x2, 0x1, 0x0, 0x1, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x2, 0x0, 0x0, 0x0,
2146                0x1, 0x3, 0x2, 0x3, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x0, 0x3,
2147                0x2, 0x1, 0x3, 0x3, 0x1, 0x2, 0x1, 0x3, 0x3, 0x0, 0x1, 0x3, 0x2, 0x1, 0x0, 0x1,
2148                0x1, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x3, 0x2, 0x0, 0x0, 0x1,
2149                0x1, 0x1, 0x1, 0x1, 0x0, 0x3, 0x1, 0x1, 0x2, 0x1, 0x0, 0x2, 0x3, 0x3, 0x1, 0x2,
2150            }, .{
2151                0x3, 0x2, 0x2, 0x1, 0x3, 0x3, 0x1, 0x3, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x3, 0x1,
2152                0x2, 0x2, 0x1, 0x3, 0x1, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x3, 0x1, 0x3, 0x3,
2153                0x2, 0x1, 0x2, 0x3, 0x1, 0x2, 0x1, 0x2, 0x3, 0x3, 0x3, 0x1, 0x1, 0x2, 0x1, 0x3,
2154                0x1, 0x3, 0x1, 0x3, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3, 0x1, 0x2,
2155                0x2, 0x2, 0x2, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x3, 0x3, 0x1, 0x3, 0x1, 0x2,
2156                0x1, 0x1, 0x3, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1,
2157                0x1, 0x3, 0x1, 0x3, 0x1, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x1, 0x2, 0x2, 0x3, 0x1,
2158                0x2, 0x2, 0x3, 0x3, 0x1, 0x1, 0x1, 0x1, 0x2, 0x1, 0x3, 0x1, 0x3, 0x2, 0x3, 0x1,
2159            });
2160
2161            try testArgs(@Vector(1, i3), .{
2162                -0x3,
2163            }, .{
2164                -0x1,
2165            });
2166            try testArgs(@Vector(2, i3), .{
2167                0x2, -0x3,
2168            }, .{
2169                0x1, 0x3,
2170            });
2171            try testArgs(@Vector(4, i3), .{
2172                0x1, -0x4, -0x2, -0x3,
2173            }, .{
2174                -0x2, -0x4, 0x2, 0x2,
2175            });
2176            try testArgs(@Vector(8, i3), .{
2177                0x0, 0x1, 0x3, 0x1, -0x3, 0x1, 0x3, 0x3,
2178            }, .{
2179                -0x3, 0x2, 0x1, 0x1, -0x4, -0x1, 0x3, -0x2,
2180            });
2181            try testArgs(@Vector(16, i3), .{
2182                -0x4, 0x3, -0x2, 0x0, -0x2, -0x1, 0x2, -0x4, 0x1, -0x3, 0x2, -0x2, 0x1, -0x2, 0x2, -0x4,
2183            }, .{
2184                0x2, -0x3, 0x3, 0x1, -0x4, 0x1, -0x1, 0x1, -0x1, -0x3, -0x4, 0x2, 0x3, 0x3, -0x1, -0x4,
2185            });
2186            try testArgs(@Vector(32, i3), .{
2187                0x1,  -0x3, -0x1, -0x3, -0x3, 0x2, 0x1, 0x0, 0x0, -0x1, 0x3,  -0x2, 0x3,  0x0, -0x3, 0x0,
2188                -0x4, -0x2, -0x1, -0x4, -0x4, 0x2, 0x2, 0x3, 0x1, 0x2,  -0x4, -0x4, -0x3, 0x1, -0x1, -0x2,
2189            }, .{
2190                -0x4, -0x2, 0x1, -0x1, 0x3,  0x1, 0x2,  -0x3, 0x2, -0x2, 0x1, -0x1, -0x2, -0x1, -0x1, -0x2,
2191                -0x2, -0x3, 0x3, -0x3, -0x4, 0x1, -0x3, 0x3,  0x1, -0x3, 0x3, 0x3,  -0x4, 0x3,  0x2,  -0x2,
2192            });
2193            try testArgs(@Vector(64, i3), .{
2194                0x1,  0x2,  0x1,  0x2,  -0x2, 0x2,  0x2,  -0x1, -0x4, 0x1,  0x3,  0x0,  -0x2, -0x2, 0x2,  -0x2,
2195                0x0,  -0x4, -0x3, -0x4, -0x1, -0x1, 0x2,  0x2,  -0x2, -0x1, -0x1, 0x3,  0x3,  -0x4, 0x2,  0x0,
2196                0x3,  0x2,  -0x4, -0x1, 0x1,  0x1,  0x3,  0x1,  0x2,  0x3,  -0x3, 0x1,  -0x4, -0x2, 0x1,  -0x3,
2197                -0x3, -0x1, 0x1,  -0x3, -0x1, 0x3,  -0x4, -0x4, 0x0,  0x0,  -0x4, -0x2, 0x3,  -0x1, -0x3, -0x3,
2198            }, .{
2199                0x3,  -0x2, 0x1,  -0x4, 0x1,  0x3,  -0x3, 0x1,  0x3,  0x1,  0x1,  -0x1, -0x2, 0x1,  -0x3, 0x1,
2200                -0x2, -0x2, 0x3,  -0x3, -0x1, -0x3, 0x1,  -0x1, -0x3, -0x3, 0x1,  -0x2, 0x1,  -0x2, 0x1,  0x2,
2201                0x3,  -0x4, -0x4, -0x1, 0x1,  0x3,  0x1,  0x1,  -0x4, 0x2,  -0x3, 0x3,  0x3,  -0x1, 0x1,  -0x1,
2202                -0x2, 0x2,  0x2,  -0x4, -0x4, 0x3,  -0x2, -0x4, -0x1, -0x2, -0x4, 0x1,  0x2,  0x1,  -0x1, -0x2,
2203            });
2204            try testArgs(@Vector(128, i3), .{
2205                -0x4, 0x1,  0x0,  -0x4, -0x4, 0x1,  -0x4, -0x2, 0x2,  0x2,  -0x3, 0x1,  0x2,  -0x2, 0x1,  0x1,
2206                0x3,  0x0,  0x3,  -0x4, -0x1, 0x3,  0x3,  -0x4, 0x0,  -0x3, 0x2,  -0x2, 0x0,  0x3,  0x1,  -0x2,
2207                -0x1, -0x1, 0x3,  -0x1, -0x2, 0x3,  0x3,  0x1,  -0x3, 0x1,  -0x1, -0x2, -0x4, 0x2,  -0x2, -0x1,
2208                0x1,  0x1,  0x1,  0x0,  -0x1, 0x2,  -0x1, 0x3,  0x2,  -0x1, -0x2, 0x3,  -0x2, 0x3,  0x3,  0x1,
2209                0x3,  -0x3, -0x4, -0x1, 0x2,  0x2,  -0x2, 0x3,  -0x4, -0x2, -0x1, 0x0,  0x1,  -0x1, 0x0,  0x0,
2210                -0x2, 0x3,  0x0,  -0x3, -0x4, 0x2,  -0x3, -0x2, -0x4, 0x0,  -0x3, -0x4, -0x4, -0x2, -0x1, -0x3,
2211                0x0,  -0x1, 0x0,  -0x1, 0x2,  -0x4, -0x3, 0x0,  -0x4, 0x0,  -0x2, 0x1,  -0x2, -0x4, -0x1, -0x1,
2212                -0x3, 0x3,  -0x1, -0x1, -0x2, 0x1,  0x3,  0x1,  -0x3, 0x1,  -0x4, -0x2, 0x0,  -0x1, -0x2, 0x2,
2213            }, .{
2214                -0x3, 0x2,  -0x3, 0x1,  -0x2, -0x1, -0x3, 0x1,  0x2,  0x2,  -0x2, 0x2,  0x2,  0x1,  0x3,  -0x1,
2215                -0x4, -0x3, 0x2,  -0x3, -0x2, 0x3,  -0x3, 0x2,  -0x1, -0x3, 0x1,  0x2,  -0x4, 0x2,  -0x2, -0x3,
2216                0x1,  -0x1, 0x2,  0x2,  -0x1, -0x3, -0x4, 0x2,  0x1,  -0x4, 0x1,  -0x4, 0x2,  -0x1, 0x2,  -0x2,
2217                0x2,  0x1,  -0x4, 0x3,  0x1,  -0x2, -0x3, -0x4, 0x3,  -0x1, 0x3,  -0x4, -0x2, 0x1,  -0x2, 0x3,
2218                0x1,  0x1,  0x2,  0x1,  -0x1, -0x2, 0x2,  -0x1, 0x1,  -0x1, -0x3, -0x1, 0x1,  -0x4, -0x1, -0x1,
2219                -0x3, -0x1, -0x4, 0x3,  0x1,  -0x1, -0x1, -0x1, 0x1,  -0x4, 0x1,  -0x2, -0x4, 0x2,  -0x4, -0x3,
2220                0x2,  -0x4, -0x1, 0x1,  0x3,  0x2,  -0x1, 0x3,  0x2,  0x2,  0x1,  -0x4, -0x3, 0x1,  -0x1, 0x1,
2221                -0x2, -0x4, 0x1,  0x3,  -0x1, 0x3,  0x1,  0x2,  -0x4, 0x2,  0x2,  -0x3, -0x3, -0x4, -0x2, 0x3,
2222            });
2223
2224            try testArgs(@Vector(1, u3), .{
2225                0x5,
2226            }, .{
2227                0x2,
2228            });
2229            try testArgs(@Vector(2, u3), .{
2230                0x4, 0x5,
2231            }, .{
2232                0x2, 0x4,
2233            });
2234            try testArgs(@Vector(4, u3), .{
2235                0x7, 0x7, 0x2, 0x3,
2236            }, .{
2237                0x4, 0x5, 0x7, 0x1,
2238            });
2239            try testArgs(@Vector(8, u3), .{
2240                0x1, 0x5, 0x3, 0x7, 0x2, 0x5, 0x4, 0x7,
2241            }, .{
2242                0x5, 0x2, 0x3, 0x5, 0x5, 0x1, 0x3, 0x1,
2243            });
2244            try testArgs(@Vector(16, u3), .{
2245                0x6, 0x5, 0x7, 0x4, 0x7, 0x2, 0x2, 0x3, 0x7, 0x6, 0x6, 0x5, 0x6, 0x4, 0x7, 0x5,
2246            }, .{
2247                0x6, 0x3, 0x5, 0x7, 0x4, 0x4, 0x4, 0x4, 0x6, 0x5, 0x3, 0x7, 0x4, 0x3, 0x3, 0x2,
2248            });
2249            try testArgs(@Vector(32, u3), .{
2250                0x0, 0x6, 0x4, 0x3, 0x2, 0x4, 0x7, 0x5, 0x7, 0x5, 0x0, 0x6, 0x7, 0x2, 0x2, 0x2,
2251                0x6, 0x2, 0x6, 0x5, 0x2, 0x3, 0x1, 0x0, 0x7, 0x1, 0x7, 0x0, 0x3, 0x1, 0x6, 0x2,
2252            }, .{
2253                0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x5, 0x4, 0x4, 0x1, 0x7, 0x2, 0x2, 0x2, 0x5, 0x1,
2254                0x2, 0x4, 0x3, 0x5, 0x5, 0x1, 0x5, 0x4, 0x7, 0x5, 0x4, 0x3, 0x1, 0x7, 0x5, 0x6,
2255            });
2256            try testArgs(@Vector(64, u3), .{
2257                0x2, 0x3, 0x1, 0x0, 0x5, 0x6, 0x1, 0x2, 0x2, 0x3, 0x1, 0x1, 0x5, 0x2, 0x2, 0x5,
2258                0x0, 0x0, 0x1, 0x1, 0x0, 0x6, 0x5, 0x2, 0x7, 0x3, 0x1, 0x1, 0x1, 0x0, 0x4, 0x7,
2259                0x2, 0x6, 0x4, 0x0, 0x1, 0x1, 0x6, 0x5, 0x2, 0x0, 0x3, 0x4, 0x1, 0x4, 0x5, 0x2,
2260                0x7, 0x4, 0x6, 0x6, 0x0, 0x2, 0x6, 0x2, 0x4, 0x6, 0x6, 0x5, 0x7, 0x0, 0x3, 0x6,
2261            }, .{
2262                0x7, 0x3, 0x3, 0x2, 0x6, 0x4, 0x3, 0x3, 0x7, 0x2, 0x3, 0x4, 0x7, 0x5, 0x2, 0x4,
2263                0x6, 0x3, 0x6, 0x1, 0x7, 0x4, 0x1, 0x6, 0x7, 0x3, 0x1, 0x3, 0x6, 0x6, 0x5, 0x5,
2264                0x2, 0x5, 0x7, 0x7, 0x4, 0x2, 0x2, 0x7, 0x4, 0x6, 0x6, 0x6, 0x4, 0x6, 0x2, 0x4,
2265                0x3, 0x2, 0x2, 0x1, 0x7, 0x7, 0x4, 0x4, 0x2, 0x4, 0x7, 0x6, 0x7, 0x2, 0x2, 0x3,
2266            });
2267            try testArgs(@Vector(128, u3), .{
2268                0x5, 0x2, 0x5, 0x4, 0x6, 0x0, 0x7, 0x2, 0x0, 0x6, 0x7, 0x4, 0x6, 0x4, 0x2, 0x6,
2269                0x7, 0x3, 0x5, 0x6, 0x4, 0x5, 0x3, 0x0, 0x1, 0x5, 0x2, 0x0, 0x7, 0x2, 0x7, 0x5,
2270                0x4, 0x6, 0x5, 0x4, 0x4, 0x3, 0x5, 0x7, 0x0, 0x2, 0x0, 0x6, 0x6, 0x1, 0x3, 0x3,
2271                0x3, 0x7, 0x3, 0x3, 0x1, 0x0, 0x5, 0x3, 0x0, 0x0, 0x5, 0x5, 0x2, 0x4, 0x7, 0x4,
2272                0x4, 0x1, 0x5, 0x0, 0x3, 0x2, 0x1, 0x3, 0x7, 0x3, 0x1, 0x4, 0x3, 0x1, 0x3, 0x2,
2273                0x5, 0x7, 0x7, 0x2, 0x3, 0x7, 0x1, 0x1, 0x0, 0x7, 0x2, 0x5, 0x7, 0x0, 0x1, 0x4,
2274                0x5, 0x6, 0x0, 0x1, 0x1, 0x4, 0x7, 0x5, 0x2, 0x3, 0x7, 0x7, 0x1, 0x3, 0x6, 0x4,
2275                0x6, 0x0, 0x1, 0x0, 0x3, 0x7, 0x5, 0x4, 0x7, 0x4, 0x6, 0x5, 0x6, 0x6, 0x7, 0x4,
2276            }, .{
2277                0x5, 0x7, 0x5, 0x1, 0x7, 0x1, 0x3, 0x5, 0x1, 0x4, 0x3, 0x2, 0x5, 0x5, 0x2, 0x1,
2278                0x4, 0x2, 0x2, 0x2, 0x5, 0x7, 0x1, 0x6, 0x2, 0x5, 0x2, 0x7, 0x2, 0x7, 0x4, 0x4,
2279                0x1, 0x5, 0x4, 0x3, 0x2, 0x1, 0x1, 0x6, 0x3, 0x4, 0x7, 0x2, 0x7, 0x4, 0x1, 0x4,
2280                0x3, 0x5, 0x3, 0x4, 0x6, 0x3, 0x7, 0x6, 0x6, 0x1, 0x7, 0x6, 0x3, 0x3, 0x5, 0x5,
2281                0x7, 0x1, 0x1, 0x3, 0x3, 0x3, 0x1, 0x1, 0x1, 0x2, 0x6, 0x5, 0x3, 0x7, 0x1, 0x1,
2282                0x5, 0x3, 0x1, 0x2, 0x7, 0x2, 0x5, 0x6, 0x4, 0x7, 0x3, 0x6, 0x5, 0x4, 0x3, 0x3,
2283                0x5, 0x3, 0x7, 0x2, 0x3, 0x3, 0x7, 0x3, 0x1, 0x5, 0x3, 0x4, 0x7, 0x7, 0x5, 0x7,
2284                0x1, 0x1, 0x2, 0x7, 0x2, 0x5, 0x1, 0x6, 0x4, 0x6, 0x1, 0x6, 0x5, 0x1, 0x2, 0x1,
2285            });
2286
2287            try testArgs(@Vector(1, i4), .{
2288                0x2,
2289            }, .{
2290                0x1,
2291            });
2292            try testArgs(@Vector(2, i4), .{
2293                -0x2, 0x5,
2294            }, .{
2295                -0x1, 0x2,
2296            });
2297            try testArgs(@Vector(4, i4), .{
2298                -0x8, 0x5, 0x5, -0x2,
2299            }, .{
2300                -0x3, -0x7, -0x4, -0x5,
2301            });
2302            try testArgs(@Vector(8, i4), .{
2303                0x7, 0x3, 0x2, -0x1, -0x8, -0x2, 0x7, 0x1,
2304            }, .{
2305                -0x2, 0x4, -0x8, 0x7, 0x1, -0x5, 0x6, -0x7,
2306            });
2307            try testArgs(@Vector(16, i4), .{
2308                0x6, -0x3, 0x6, 0x6, -0x5, 0x6, 0x3, 0x7, -0x6, 0x7, -0x7, 0x6, -0x2, -0x2, -0x5, 0x0,
2309            }, .{
2310                0x2, -0x3, -0x4, -0x5, 0x3, 0x3, -0x5, 0x5, 0x4, -0x1, -0x6, 0x4, 0x7, -0x2, 0x3, 0x2,
2311            });
2312            try testArgs(@Vector(32, i4), .{
2313                -0x1, -0x4, 0x6,  0x6, 0x5,  0x3,  0x4, 0x0, 0x3, 0x7,  -0x6, 0x7, -0x2, -0x7, -0x4, 0x6,
2314                0x3,  -0x7, -0x5, 0x1, -0x7, -0x6, 0x1, 0x3, 0x7, -0x8, -0x5, 0x6, -0x5, 0x0,  0x0,  -0x8,
2315            }, .{
2316                -0x4, -0x4, -0x4, 0x4,  -0x5, 0x3, -0x1, 0x6,  0x1,  -0x3, -0x1, 0x6,  0x5,  -0x8, 0x1, -0x4,
2317                -0x1, -0x4, 0x1,  -0x3, 0x4,  0x6, -0x3, -0x8, -0x7, -0x4, 0x2,  -0x3, -0x1, -0x2, 0x6, -0x6,
2318            });
2319            try testArgs(@Vector(64, i4), .{
2320                0x0,  -0x3, -0x3, 0x5,  0x2,  -0x1, 0x4,  0x5,  0x6,  -0x2, 0x1,  0x5,  -0x3, -0x1, -0x2, -0x1,
2321                -0x8, 0x2,  -0x1, -0x2, 0x7,  -0x3, -0x2, -0x3, 0x1,  -0x5, 0x5,  0x2,  -0x1, -0x6, -0x2, -0x1,
2322                -0x2, -0x5, 0x0,  0x6,  0x3,  -0x4, -0x5, -0x5, -0x4, -0x7, -0x4, 0x1,  0x0,  -0x6, -0x7, -0x6,
2323                0x1,  -0x6, 0x4,  -0x4, -0x2, 0x6,  -0x7, 0x4,  0x4,  0x5,  0x3,  -0x6, -0x8, -0x5, 0x5,  -0x7,
2324            }, .{
2325                -0x1, -0x5, 0x5,  -0x2, 0x6,  -0x6, -0x4, -0x5, -0x4, 0x7,  -0x6, 0x7,  0x4,  -0x5, 0x5,  0x7,
2326                -0x6, 0x3,  -0x4, 0x2,  -0x8, 0x4,  -0x2, 0x5,  -0x5, -0x5, -0x8, 0x3,  -0x1, -0x4, -0x8, -0x2,
2327                -0x2, 0x5,  -0x7, -0x3, 0x2,  -0x5, -0x6, -0x7, -0x8, -0x2, 0x5,  -0x3, 0x2,  -0x1, -0x7, -0x4,
2328                -0x3, -0x3, 0x6,  -0x8, 0x3,  -0x4, 0x7,  0x3,  -0x2, 0x7,  -0x1, 0x1,  0x1,  0x6,  -0x2, -0x2,
2329            });
2330            try testArgs(@Vector(128, i4), .{
2331                -0x1, -0x3, -0x3, -0x4, 0x3, -0x4, 0x0,  -0x4, 0x7,  0x3,  0x5,  -0x4, -0x5, -0x4, -0x2, -0x7,
2332                0x2,  0x0,  -0x4, 0x7,  0x3, -0x5, 0x4,  0x5,  -0x2, -0x3, -0x4, 0x6,  -0x7, -0x1, 0x1,  -0x6,
2333                0x1,  0x5,  0x2,  0x5,  0x2, 0x2,  -0x4, -0x4, 0x5,  0x2,  -0x2, -0x8, -0x1, -0x2, 0x5,  0x3,
2334                0x0,  -0x5, 0x5,  0x7,  0x6, -0x3, -0x2, 0x0,  -0x7, -0x7, -0x4, 0x2,  -0x4, 0x7,  0x1,  -0x5,
2335                -0x4, -0x8, 0x2,  -0x7, 0x3, -0x4, 0x7,  0x6,  -0x7, -0x3, -0x7, 0x2,  0x4,  0x2,  -0x5, -0x6,
2336                0x3,  0x5,  0x1,  0x6,  0x5, 0x7,  0x7,  -0x4, -0x7, -0x1, 0x0,  -0x7, 0x6,  0x0,  0x6,  0x0,
2337                0x0,  -0x5, -0x1, -0x8, 0x7, -0x6, -0x5, -0x2, -0x4, 0x1,  0x1,  -0x8, 0x2,  0x6,  -0x1, -0x3,
2338                -0x6, 0x5,  -0x8, 0x3,  0x3, 0x1,  -0x1, -0x3, -0x3, -0x6, 0x7,  -0x6, -0x8, 0x1,  -0x7, -0x8,
2339            }, .{
2340                0x1,  0x3,  0x1,  0x3,  -0x6, 0x6,  0x2,  -0x3, 0x1,  -0x7, 0x7,  -0x3, -0x1, -0x1, 0x7,  0x2,
2341                -0x8, 0x2,  -0x3, -0x4, 0x4,  -0x4, 0x7,  0x6,  -0x5, -0x2, -0x1, 0x6,  -0x7, 0x4,  0x7,  -0x3,
2342                -0x5, -0x8, -0x5, -0x6, -0x6, 0x2,  0x1,  -0x8, 0x4,  0x3,  -0x5, 0x7,  -0x8, 0x3,  -0x1, 0x7,
2343                -0x3, 0x7,  -0x3, -0x2, -0x6, 0x4,  0x2,  -0x2, -0x2, -0x7, 0x5,  -0x1, -0x6, 0x7,  -0x5, 0x5,
2344                0x4,  0x5,  -0x8, -0x5, 0x6,  0x1,  -0x5, 0x7,  -0x6, -0x3, -0x4, 0x6,  -0x8, 0x7,  0x7,  -0x6,
2345                0x6,  -0x4, 0x2,  -0x8, -0x8, -0x4, -0x8, -0x3, 0x6,  0x5,  0x7,  -0x6, 0x1,  0x2,  -0x7, -0x3,
2346                -0x3, 0x1,  -0x3, 0x3,  -0x1, 0x3,  -0x7, -0x8, 0x1,  -0x3, -0x3, -0x3, -0x4, 0x5,  0x7,  -0x7,
2347                0x3,  0x2,  0x6,  -0x2, -0x4, -0x3, -0x1, 0x5,  -0x6, 0x2,  0x3,  -0x5, 0x5,  -0x3, -0x2, -0x8,
2348            });
2349
2350            try testArgs(@Vector(1, u4), .{
2351                0x2,
2352            }, .{
2353                0xa,
2354            });
2355            try testArgs(@Vector(2, u4), .{
2356                0x0, 0xa,
2357            }, .{
2358                0xb, 0xa,
2359            });
2360            try testArgs(@Vector(4, u4), .{
2361                0xb, 0x7, 0x0, 0xd,
2362            }, .{
2363                0x4, 0x5, 0xf, 0x3,
2364            });
2365            try testArgs(@Vector(8, u4), .{
2366                0x9, 0xf, 0x0, 0x5, 0x4, 0x9, 0x3, 0x7,
2367            }, .{
2368                0xc, 0x6, 0x8, 0x8, 0x9, 0x8, 0x9, 0x2,
2369            });
2370            try testArgs(@Vector(16, u4), .{
2371                0x0, 0xb, 0xd, 0x2, 0x8, 0xa, 0x6, 0x7, 0xa, 0xf, 0xf, 0x4, 0x9, 0x9, 0x9, 0xf,
2372            }, .{
2373                0xd, 0x1, 0xf, 0x8, 0xb, 0xa, 0xe, 0x4, 0x5, 0x3, 0xd, 0x4, 0x1, 0xd, 0xd, 0xe,
2374            });
2375            try testArgs(@Vector(32, u4), .{
2376                0x3, 0xc, 0x5, 0x1, 0xa, 0x6, 0x7, 0xe, 0x5, 0x8, 0x5, 0x6, 0xe, 0x0, 0xe, 0x6,
2377                0x9, 0x5, 0x3, 0x6, 0xd, 0xe, 0x9, 0x4, 0xf, 0x1, 0x1, 0x5, 0x0, 0x2, 0xa, 0x0,
2378            }, .{
2379                0xd, 0x8, 0x7, 0xe, 0xa, 0x2, 0x5, 0x8, 0x5, 0x1, 0xa, 0x8, 0x1, 0x8, 0xb, 0x3,
2380                0xb, 0xe, 0x5, 0xf, 0xb, 0x8, 0xd, 0x7, 0x6, 0x4, 0x7, 0x5, 0x5, 0x7, 0xf, 0x6,
2381            });
2382            try testArgs(@Vector(64, u4), .{
2383                0x5, 0xd, 0x0, 0xd, 0x1, 0xb, 0xb, 0xe, 0xb, 0x7, 0xa, 0xc, 0xb, 0xe, 0x8, 0x9,
2384                0x1, 0xb, 0x9, 0x5, 0xa, 0x6, 0xc, 0x5, 0x1, 0xe, 0x5, 0xb, 0x2, 0x8, 0x1, 0x4,
2385                0x2, 0x6, 0x5, 0x1, 0x0, 0x5, 0xa, 0x5, 0xf, 0xf, 0x0, 0xb, 0x5, 0x4, 0xf, 0xb,
2386                0x6, 0x0, 0xb, 0x4, 0x7, 0x8, 0xd, 0xf, 0xc, 0xc, 0x1, 0xe, 0x0, 0xb, 0xa, 0xd,
2387            }, .{
2388                0xc, 0x5, 0xb, 0x3, 0x1, 0x5, 0xb, 0x1, 0x2, 0x1, 0x8, 0x4, 0xe, 0x1, 0xa, 0x7,
2389                0x2, 0x9, 0x4, 0xd, 0xa, 0x5, 0x4, 0xe, 0x1, 0x4, 0xb, 0x2, 0x9, 0x7, 0x4, 0x2,
2390                0x7, 0xd, 0x7, 0xb, 0xb, 0xf, 0xc, 0x5, 0xe, 0xf, 0x4, 0x8, 0x9, 0x5, 0x3, 0x6,
2391                0x8, 0x4, 0x2, 0x5, 0x8, 0x2, 0x3, 0x5, 0x4, 0xf, 0x5, 0x9, 0x4, 0x8, 0x9, 0x8,
2392            });
2393            try testArgs(@Vector(128, u4), .{
2394                0xe, 0x0, 0xa, 0xa, 0xf, 0x3, 0x3, 0x9, 0xe, 0x2, 0x7, 0x2, 0xf, 0x7, 0xf, 0x6,
2395                0xa, 0x8, 0x0, 0x5, 0x6, 0x4, 0xf, 0x6, 0x5, 0xd, 0x0, 0xc, 0x3, 0xe, 0x3, 0x3,
2396                0x5, 0x4, 0x8, 0x8, 0xb, 0x0, 0x7, 0x3, 0x8, 0xa, 0x8, 0x0, 0x8, 0x4, 0x7, 0x4,
2397                0x9, 0x6, 0xa, 0x2, 0xe, 0x2, 0x0, 0x1, 0xe, 0xf, 0x9, 0x0, 0x9, 0x4, 0xb, 0xa,
2398                0x1, 0x7, 0xf, 0xd, 0x6, 0x6, 0x2, 0x2, 0x1, 0xd, 0xe, 0x7, 0x5, 0xd, 0x9, 0x7,
2399                0xd, 0xc, 0xc, 0x0, 0xa, 0xc, 0x1, 0xa, 0x5, 0x3, 0xf, 0xc, 0xf, 0x7, 0x1, 0xc,
2400                0xa, 0x4, 0x3, 0xa, 0xc, 0x8, 0x2, 0xc, 0xf, 0x7, 0x3, 0x7, 0xf, 0x0, 0x0, 0x8,
2401                0x7, 0x3, 0x4, 0x9, 0xb, 0xc, 0x5, 0x0, 0x1, 0x2, 0xa, 0x7, 0x9, 0x1, 0x3, 0x1,
2402            }, .{
2403                0xb, 0x1, 0x9, 0x3, 0x4, 0xb, 0xb, 0x4, 0xb, 0x7, 0x2, 0x7, 0x4, 0x5, 0x1, 0x4,
2404                0x5, 0xa, 0xb, 0x4, 0x4, 0x2, 0xa, 0xb, 0xe, 0x4, 0x7, 0xb, 0xb, 0x4, 0x1, 0x6,
2405                0xd, 0x3, 0xc, 0x7, 0x8, 0x1, 0x7, 0x6, 0xf, 0x9, 0x8, 0x4, 0x5, 0x2, 0x6, 0xe,
2406                0xb, 0xd, 0x4, 0x6, 0x5, 0xb, 0x2, 0x8, 0x7, 0x2, 0xf, 0xe, 0x9, 0xe, 0xa, 0x5,
2407                0x6, 0xc, 0xb, 0x1, 0x8, 0xc, 0xd, 0x3, 0x1, 0x4, 0x4, 0xf, 0x4, 0x3, 0x5, 0x7,
2408                0xf, 0x3, 0x5, 0xf, 0xe, 0x2, 0xd, 0x7, 0x6, 0x2, 0x4, 0xd, 0xd, 0xa, 0x1, 0xa,
2409                0xb, 0xa, 0xa, 0x2, 0x4, 0x9, 0x8, 0xa, 0xe, 0xb, 0xf, 0xf, 0x6, 0x4, 0x9, 0x8,
2410                0x9, 0x6, 0x4, 0x5, 0xf, 0xe, 0x8, 0x5, 0x2, 0x5, 0xf, 0xb, 0xf, 0x4, 0x6, 0x4,
2411            });
2412
2413            try testArgs(@Vector(1, i5), .{
2414                0x03,
2415            }, .{
2416                0x0a,
2417            });
2418            try testArgs(@Vector(2, i5), .{
2419                0x0c, -0x0e,
2420            }, .{
2421                -0x0f, -0x0e,
2422            });
2423            try testArgs(@Vector(4, i5), .{
2424                -0x0a, 0x06, -0x05, 0x09,
2425            }, .{
2426                -0x0f, 0x05, 0x05, 0x09,
2427            });
2428            try testArgs(@Vector(8, i5), .{
2429                -0x04, -0x04, 0x05, -0x05, 0x0f, -0x0e, 0x0f, -0x0e,
2430            }, .{
2431                -0x09, -0x0d, 0x02, 0x01, 0x08, -0x05, -0x09, -0x03,
2432            });
2433            try testArgs(@Vector(16, i5), .{
2434                -0x0e, -0x08, -0x10, -0x0b, -0x10, -0x09, -0x0f, -0x05, -0x10, 0x06, 0x0d, -0x04, 0x09, -0x0e, -0x10, -0x10,
2435            }, .{
2436                0x03, 0x0b, 0x0c, 0x06, -0x0d, 0x0e, -0x09, -0x04, 0x0a, -0x0e, -0x0d, 0x0f, -0x09, -0x0e, -0x0b, 0x03,
2437            });
2438            try testArgs(@Vector(32, i5), .{
2439                -0x08, -0x05, 0x09,  -0x08, 0x01, 0x0e, -0x0c, 0x0b, -0x0e, 0x0f,  -0x0b, 0x01, -0x03, 0x03, 0x08,  0x04,
2440                0x02,  0x0f,  -0x0b, -0x0b, 0x0d, 0x00, 0x09,  0x00, -0x06, -0x08, -0x01, 0x0b, 0x05,  0x03, -0x05, -0x07,
2441            }, .{
2442                -0x0c, 0x07,  0x0d,  -0x09, 0x0a,  0x06,  -0x0b, -0x07, -0x0a, 0x08,  0x07,  -0x0d, 0x08,  0x07,  0x09,  -0x07,
2443                0x0b,  -0x02, -0x02, -0x02, -0x06, -0x08, 0x0a,  -0x0a, 0x02,  -0x07, -0x0a, 0x0d,  -0x07, -0x05, -0x0e, 0x05,
2444            });
2445            try testArgs(@Vector(64, i5), .{
2446                0x04,  -0x0d, 0x0d,  -0x01, 0x07,  0x0c,  0x00, 0x01,  -0x07, 0x0a,  -0x01, -0x01, 0x08,  -0x0b, -0x03, -0x06,
2447                -0x03, -0x03, -0x0c, 0x0e,  -0x0c, -0x02, 0x07, -0x03, 0x0e,  -0x0a, -0x0e, -0x06, -0x08, 0x0a,  -0x0c, -0x0c,
2448                0x06,  -0x04, 0x04,  0x00,  0x05,  0x07,  0x04, 0x06,  -0x01, 0x0a,  0x07,  -0x08, 0x00,  0x0f,  0x0f,  0x0d,
2449                -0x07, 0x0f,  0x05,  -0x0b, -0x08, -0x0c, 0x0d, -0x05, -0x05, 0x0e,  0x02,  0x06,  0x0d,  0x06,  0x00,  0x0a,
2450            }, .{
2451                0x02,  -0x09, -0x01, -0x10, -0x0c, -0x0f, -0x10, -0x0d, 0x02,  0x0e, 0x07,  -0x01, -0x0a, -0x0b, 0x05,  -0x0e,
2452                -0x09, 0x03,  0x08,  -0x0d, 0x0d,  0x03,  -0x02, 0x0e,  0x0c,  0x03, 0x0b,  -0x0d, -0x04, -0x10, 0x0e,  0x0d,
2453                0x09,  -0x03, -0x0e, -0x03, -0x05, -0x0c, -0x07, 0x08,  -0x06, 0x08, -0x0e, 0x02,  -0x10, 0x01,  0x01,  -0x0a,
2454                0x01,  -0x09, 0x03,  -0x01, 0x05,  0x09,  0x06,  -0x03, -0x0a, 0x08, -0x0e, 0x0e,  0x07,  -0x05, -0x0c, -0x10,
2455            });
2456            try testArgs(@Vector(128, i5), .{
2457                0x01,  0x0b,  -0x01, -0x10, -0x05, 0x05,  -0x09, 0x0e,  -0x0e, 0x04,  0x0f,  -0x06, 0x0f,  0x04,  -0x02, 0x0a,
2458                -0x08, -0x06, 0x08,  -0x07, -0x08, 0x0e,  0x06,  0x0d,  -0x07, -0x04, 0x04,  -0x0b, 0x02,  -0x06, 0x07,  -0x10,
2459                0x0d,  0x09,  0x0b,  -0x04, 0x0e,  -0x06, -0x0a, 0x01,  0x06,  0x08,  0x01,  -0x0b, -0x09, -0x08, -0x0c, -0x0b,
2460                0x07,  0x06,  0x0d,  0x0c,  -0x0b, -0x03, -0x06, -0x0c, -0x0e, 0x05,  0x0b,  0x08,  -0x01, 0x00,  0x01,  0x0a,
2461                0x00,  0x0a,  0x06,  0x06,  -0x10, -0x05, -0x05, -0x0f, 0x02,  -0x06, -0x08, -0x08, 0x0f,  0x09,  -0x07, -0x05,
2462                0x07,  0x06,  0x03,  0x05,  0x02,  0x0f,  0x0d,  -0x0e, -0x03, -0x01, -0x06, -0x02, -0x01, -0x07, 0x09,  0x05,
2463                -0x07, -0x07, -0x08, 0x0c,  -0x0e, 0x09,  -0x0c, -0x0d, 0x07,  0x04,  0x07,  -0x03, 0x09,  0x0e,  0x04,  0x02,
2464                0x0f,  -0x02, -0x10, -0x03, -0x0d, -0x04, 0x0c,  -0x06, -0x01, -0x0e, -0x0e, -0x0a, 0x0d,  -0x0e, 0x04,  0x03,
2465            }, .{
2466                -0x08, -0x09, -0x04, 0x0f,  -0x0f, -0x08, -0x04, 0x0b,  0x09,  -0x0b, -0x02, 0x0f,  0x01,  -0x01, -0x0a, -0x0a,
2467                0x08,  0x09,  0x0d,  -0x06, 0x0f,  -0x02, 0x0c,  0x01,  0x0c,  0x02,  -0x04, 0x0b,  0x05,  0x02,  -0x08, -0x09,
2468                0x01,  0x0f,  -0x0b, 0x02,  -0x06, 0x08,  -0x0e, -0x02, -0x0b, -0x03, -0x01, 0x0c,  0x09,  -0x04, 0x08,  -0x0a,
2469                0x09,  -0x05, 0x08,  0x0e,  0x05,  0x03,  -0x0a, 0x0d,  -0x03, 0x06,  0x0f,  -0x09, 0x0a,  0x03,  0x02,  0x0c,
2470                0x08,  -0x0a, 0x06,  0x0e,  0x08,  0x02,  0x08,  -0x04, -0x0d, -0x02, -0x08, -0x0a, 0x0a,  0x0c,  -0x03, 0x04,
2471                0x0b,  -0x0c, -0x0e, 0x01,  0x07,  -0x01, 0x09,  0x0f,  -0x06, -0x05, -0x0e, -0x01, -0x04, 0x0a,  -0x0a, -0x0d,
2472                -0x10, -0x10, -0x03, -0x0f, -0x0c, -0x0a, -0x0b, -0x06, -0x04, -0x0f, -0x0b, -0x08, 0x0e,  0x04,  -0x01, -0x0b,
2473                -0x06, 0x0a,  0x0a,  -0x0c, -0x0c, 0x0b,  -0x02, 0x0c,  -0x04, -0x06, -0x0c, -0x09, -0x09, -0x0b, -0x0c, -0x0b,
2474            });
2475
2476            try testArgs(@Vector(1, u5), .{
2477                0x0a,
2478            }, .{
2479                0x1c,
2480            });
2481            try testArgs(@Vector(2, u5), .{
2482                0x01, 0x07,
2483            }, .{
2484                0x03, 0x1d,
2485            });
2486            try testArgs(@Vector(4, u5), .{
2487                0x1c, 0x0d, 0x1f, 0x0a,
2488            }, .{
2489                0x14, 0x03, 0x07, 0x02,
2490            });
2491            try testArgs(@Vector(8, u5), .{
2492                0x00, 0x0c, 0x1f, 0x01, 0x12, 0x14, 0x12, 0x10,
2493            }, .{
2494                0x0c, 0x14, 0x05, 0x1a, 0x04, 0x17, 0x06, 0x1a,
2495            });
2496            try testArgs(@Vector(16, u5), .{
2497                0x1e, 0x17, 0x03, 0x16, 0x1f, 0x10, 0x00, 0x05, 0x19, 0x10, 0x18, 0x0d, 0x0f, 0x1b, 0x1e, 0x05,
2498            }, .{
2499                0x18, 0x13, 0x14, 0x12, 0x10, 0x11, 0x18, 0x0c, 0x03, 0x02, 0x11, 0x03, 0x17, 0x0c, 0x19, 0x05,
2500            });
2501            try testArgs(@Vector(32, u5), .{
2502                0x1a, 0x10, 0x16, 0x1f, 0x08, 0x07, 0x1a, 0x04, 0x05, 0x16, 0x07, 0x09, 0x09, 0x03, 0x0f, 0x00,
2503                0x03, 0x05, 0x1c, 0x00, 0x07, 0x16, 0x17, 0x1b, 0x0b, 0x01, 0x0e, 0x08, 0x15, 0x12, 0x04, 0x16,
2504            }, .{
2505                0x02, 0x14, 0x09, 0x17, 0x0c, 0x10, 0x1a, 0x1e, 0x14, 0x06, 0x03, 0x1b, 0x1d, 0x1f, 0x18, 0x0b,
2506                0x16, 0x1b, 0x11, 0x14, 0x0d, 0x18, 0x05, 0x18, 0x16, 0x1a, 0x14, 0x04, 0x14, 0x1a, 0x0c, 0x1e,
2507            });
2508            try testArgs(@Vector(64, u5), .{
2509                0x0c, 0x09, 0x0c, 0x05, 0x0e, 0x08, 0x0b, 0x07, 0x18, 0x05, 0x0a, 0x1e, 0x06, 0x14, 0x0d, 0x03,
2510                0x0c, 0x0d, 0x00, 0x10, 0x0f, 0x05, 0x12, 0x0e, 0x0c, 0x1c, 0x16, 0x11, 0x14, 0x0b, 0x16, 0x06,
2511                0x1e, 0x07, 0x00, 0x13, 0x09, 0x13, 0x1b, 0x03, 0x12, 0x1c, 0x0b, 0x04, 0x18, 0x0a, 0x18, 0x16,
2512                0x16, 0x0a, 0x11, 0x19, 0x00, 0x1d, 0x08, 0x06, 0x0a, 0x1e, 0x09, 0x1d, 0x18, 0x1e, 0x06, 0x1b,
2513            }, .{
2514                0x0d, 0x10, 0x05, 0x18, 0x10, 0x0a, 0x06, 0x03, 0x1c, 0x10, 0x1c, 0x1e, 0x19, 0x1c, 0x04, 0x03,
2515                0x0a, 0x1d, 0x1f, 0x10, 0x0e, 0x04, 0x0c, 0x18, 0x14, 0x05, 0x11, 0x19, 0x19, 0x14, 0x10, 0x06,
2516                0x0b, 0x16, 0x0f, 0x01, 0x12, 0x0c, 0x1b, 0x03, 0x19, 0x0d, 0x12, 0x15, 0x15, 0x11, 0x16, 0x1f,
2517                0x03, 0x11, 0x06, 0x11, 0x1d, 0x16, 0x0c, 0x17, 0x19, 0x1a, 0x06, 0x16, 0x13, 0x0a, 0x09, 0x1c,
2518            });
2519            try testArgs(@Vector(128, u5), .{
2520                0x09, 0x16, 0x11, 0x1e, 0x17, 0x13, 0x1d, 0x14, 0x07, 0x15, 0x1c, 0x0b, 0x08, 0x19, 0x01, 0x0b,
2521                0x1b, 0x19, 0x00, 0x0c, 0x0c, 0x0a, 0x10, 0x08, 0x1a, 0x1c, 0x03, 0x14, 0x1c, 0x0b, 0x18, 0x1f,
2522                0x0c, 0x10, 0x17, 0x16, 0x05, 0x16, 0x0e, 0x03, 0x02, 0x0b, 0x13, 0x0b, 0x0a, 0x09, 0x0f, 0x01,
2523                0x17, 0x0f, 0x1c, 0x13, 0x1d, 0x0b, 0x03, 0x0e, 0x01, 0x04, 0x1f, 0x18, 0x04, 0x07, 0x10, 0x05,
2524                0x18, 0x09, 0x08, 0x16, 0x1e, 0x0e, 0x0f, 0x0c, 0x11, 0x0b, 0x0c, 0x13, 0x0f, 0x13, 0x13, 0x1d,
2525                0x02, 0x01, 0x0f, 0x03, 0x17, 0x0f, 0x0f, 0x09, 0x0a, 0x1e, 0x1c, 0x0e, 0x0d, 0x17, 0x1e, 0x02,
2526                0x07, 0x05, 0x0f, 0x0b, 0x01, 0x1f, 0x13, 0x17, 0x1a, 0x01, 0x1d, 0x12, 0x07, 0x01, 0x11, 0x10,
2527                0x1a, 0x19, 0x02, 0x06, 0x1a, 0x1e, 0x13, 0x18, 0x11, 0x14, 0x19, 0x15, 0x1a, 0x1f, 0x01, 0x01,
2528            }, .{
2529                0x10, 0x04, 0x14, 0x13, 0x04, 0x0f, 0x1d, 0x17, 0x0a, 0x08, 0x17, 0x1a, 0x02, 0x0c, 0x0c, 0x12,
2530                0x07, 0x0d, 0x11, 0x1c, 0x01, 0x17, 0x13, 0x1b, 0x11, 0x1c, 0x02, 0x16, 0x10, 0x0c, 0x16, 0x07,
2531                0x02, 0x18, 0x03, 0x04, 0x1c, 0x1c, 0x18, 0x0c, 0x15, 0x14, 0x17, 0x1c, 0x1e, 0x0b, 0x1c, 0x1f,
2532                0x18, 0x13, 0x02, 0x06, 0x18, 0x03, 0x1e, 0x12, 0x0a, 0x03, 0x07, 0x11, 0x09, 0x1a, 0x1c, 0x07,
2533                0x10, 0x1b, 0x19, 0x0b, 0x1c, 0x10, 0x08, 0x05, 0x02, 0x09, 0x04, 0x02, 0x11, 0x05, 0x13, 0x1a,
2534                0x0b, 0x1b, 0x1e, 0x11, 0x1e, 0x0e, 0x05, 0x18, 0x08, 0x0c, 0x04, 0x04, 0x06, 0x15, 0x05, 0x04,
2535                0x14, 0x1f, 0x18, 0x0c, 0x04, 0x04, 0x03, 0x1c, 0x1e, 0x09, 0x1d, 0x08, 0x13, 0x16, 0x0d, 0x1c,
2536                0x15, 0x16, 0x04, 0x02, 0x0c, 0x04, 0x13, 0x1d, 0x1d, 0x07, 0x1a, 0x1c, 0x15, 0x15, 0x19, 0x09,
2537            });
2538
2539            try testArgs(@Vector(1, i7), .{
2540                0x3b,
2541            }, .{
2542                0x0d,
2543            });
2544            try testArgs(@Vector(2, i7), .{
2545                -0x3e, -0x06,
2546            }, .{
2547                -0x37, -0x0f,
2548            });
2549            try testArgs(@Vector(4, i7), .{
2550                0x35, 0x29, -0x17, 0x39,
2551            }, .{
2552                -0x2c, -0x02, -0x29, -0x1a,
2553            });
2554            try testArgs(@Vector(8, i7), .{
2555                0x1d, 0x25, 0x03, 0x1c, -0x12, -0x09, 0x1d, 0x3c,
2556            }, .{
2557                0x34, 0x33, 0x3e, -0x21, 0x13, 0x2d, 0x1f, 0x05,
2558            });
2559            try testArgs(@Vector(16, i7), .{
2560                -0x12, 0x39, 0x11, 0x28, 0x29, -0x30, 0x08, -0x33, 0x2e, 0x03, 0x31, -0x2b, -0x1f, 0x37, 0x0f, -0x31,
2561            }, .{
2562                -0x0d, -0x1a, -0x22, -0x38, 0x30, 0x32, -0x38, -0x3b, -0x04, -0x2c, 0x27, -0x0d, -0x02, -0x2d, 0x18, 0x09,
2563            });
2564            try testArgs(@Vector(32, i7), .{
2565                0x04, 0x09,  0x1e, -0x1b, -0x33, 0x1f, -0x08, 0x2d, -0x30, -0x3c, 0x11,  -0x2a, 0x29,  -0x16, -0x3b, -0x1e,
2566                0x3a, -0x0d, 0x11, 0x16,  0x27,  0x0f, 0x2f,  0x14, 0x3b,  -0x2f, -0x3d, 0x1d,  -0x08, -0x2e, -0x2a, -0x33,
2567            }, .{
2568                -0x09, 0x3c,  0x15, -0x25, -0x03, 0x0a,  0x11, 0x03,  0x12,  -0x1d, -0x23, 0x29,  -0x30, -0x35, -0x0e, -0x15,
2569                -0x1c, -0x14, 0x07, 0x29,  -0x0d, -0x2e, 0x12, -0x3b, -0x0c, 0x22,  -0x15, -0x2d, 0x04,  0x19,  0x14,  -0x1d,
2570            });
2571            try testArgs(@Vector(64, i7), .{
2572                0x23,  0x09,  -0x13, 0x03, 0x19,  -0x35, -0x06, -0x3c, -0x31, 0x12,  0x09, 0x22,  -0x15, -0x1c, -0x25, -0x31,
2573                0x3a,  -0x31, 0x05,  0x0b, -0x14, 0x38,  0x39,  0x15,  0x15,  -0x11, 0x11, -0x21, 0x2f,  0x3d,  -0x2e, -0x33,
2574                -0x38, 0x1b,  0x14,  0x1d, 0x0d,  -0x16, 0x10,  -0x0a, 0x25,  0x0d,  0x1e, 0x1a,  -0x15, 0x21,  0x3e,  -0x0c,
2575                0x03,  0x3f,  0x1f,  0x17, 0x2c,  -0x0a, -0x2b, 0x1f,  0x32,  0x09,  0x0f, -0x15, 0x24,  -0x35, 0x27,  -0x13,
2576            }, .{
2577                -0x20, 0x25,  0x38,  -0x28, 0x06,  -0x2f, -0x0b, -0x2b, 0x21,  -0x23, -0x08, 0x06,  -0x2a, -0x26, 0x33,  -0x2f,
2578                0x06,  -0x1b, 0x3c,  -0x3d, 0x3e,  0x1f,  0x27,  0x28,  -0x05, -0x31, -0x29, -0x25, -0x13, -0x07, -0x3e, 0x3e,
2579                0x0e,  -0x2c, -0x0f, -0x3b, 0x1b,  0x17,  0x3f,  -0x3a, 0x21,  -0x16, 0x11,  -0x0a, 0x1b,  0x2a,  0x27,  0x3e,
2580                -0x09, -0x34, 0x20,  0x3e,  -0x29, -0x35, -0x0b, -0x20, -0x19, 0x21,  0x13,  0x22,  0x0c,  -0x1f, 0x38,  0x21,
2581            });
2582            try testArgs(@Vector(128, i7), .{
2583                -0x38, -0x10, 0x08,  -0x2b, 0x3e,  -0x19, 0x39,  -0x1f, -0x27, -0x10, -0x0c, 0x02,  0x07,  0x10, -0x1a, 0x0b,
2584                0x3c,  -0x2e, 0x1b,  -0x17, 0x3e,  -0x1b, -0x04, 0x35,  0x2d,  0x0d,  0x33,  0x0f,  0x18,  0x0b, 0x1a,  -0x09,
2585                0x25,  -0x0b, -0x21, 0x3a,  -0x28, 0x12,  0x16,  0x03,  -0x1f, 0x1d,  -0x1c, -0x1a, -0x38, 0x32, 0x3d,  -0x2a,
2586                -0x0b, -0x1b, -0x39, -0x0d, -0x20, -0x1e, -0x39, 0x02,  -0x13, -0x23, 0x2f,  0x0a,  -0x22, 0x15, 0x34,  -0x06,
2587                -0x2e, -0x3b, 0x26,  0x38,  0x33,  -0x29, -0x0c, 0x2e,  0x07,  -0x19, 0x3c,  -0x35, -0x33, 0x39, 0x3c,  0x37,
2588                -0x07, -0x13, 0x16,  0x05,  -0x27, 0x28,  -0x2b, -0x07, -0x25, -0x01, 0x1d,  -0x0a, -0x01, 0x1d, -0x2a, -0x30,
2589                0x31,  0x0a,  -0x24, 0x0c,  0x35,  -0x1c, -0x04, 0x21,  -0x35, 0x12,  0x19,  0x3d,  -0x0c, 0x20, 0x28,  -0x22,
2590                -0x3c, 0x09,  0x11,  -0x0c, -0x14, -0x39, 0x0f,  -0x40, -0x0a, 0x0f,  0x1b,  0x34,  -0x27, 0x35, 0x0e,  -0x3d,
2591            }, .{
2592                -0x1a, 0x06,  0x1f,  -0x24, -0x21, -0x3d, 0x1f,  -0x18, 0x2f,  -0x38, 0x2f,  -0x0f, 0x20,  0x2d,  0x31,  -0x09,
2593                -0x1d, 0x3a,  0x24,  -0x09, 0x0c,  -0x3b, -0x35, -0x2a, -0x08, -0x2d, 0x29,  0x23,  -0x37, -0x05, 0x27,  -0x12,
2594                0x23,  -0x14, 0x26,  0x36,  -0x33, -0x1d, -0x0f, 0x32,  0x2a,  -0x34, -0x31, 0x0a,  -0x33, -0x34, 0x30,  0x3d,
2595                -0x1a, 0x0f,  0x16,  0x07,  0x2d,  -0x2b, 0x2c,  -0x2d, 0x34,  -0x07, 0x32,  0x3a,  0x2e,  -0x1c, 0x2e,  0x0f,
2596                0x02,  0x33,  -0x1e, -0x05, -0x40, -0x0a, 0x3d,  -0x28, -0x21, -0x2b, -0x18, 0x02,  0x01,  -0x2c, -0x16, -0x3b,
2597                0x27,  0x23,  -0x19, 0x13,  -0x2c, 0x3c,  -0x1a, 0x0e,  -0x25, -0x19, 0x06,  0x1b,  -0x3f, 0x26,  0x30,  0x0d,
2598                -0x0e, -0x2f, -0x28, 0x3b,  -0x0e, 0x2d,  0x3d,  0x03,  0x0d,  -0x23, 0x02,  0x26,  0x0c,  0x31,  -0x10, -0x10,
2599                0x37,  -0x38, -0x0f, 0x20,  -0x17, 0x02,  0x3e,  -0x40, 0x37,  0x22,  0x06,  0x14,  -0x31, -0x1e, -0x36, -0x2c,
2600            });
2601
2602            try testArgs(@Vector(1, u7), .{
2603                0x72,
2604            }, .{
2605                0x0c,
2606            });
2607            try testArgs(@Vector(2, u7), .{
2608                0x0c, 0x3a,
2609            }, .{
2610                0x72, 0x0b,
2611            });
2612            try testArgs(@Vector(4, u7), .{
2613                0x68, 0x2b, 0x52, 0x6e,
2614            }, .{
2615                0x74, 0x79, 0x10, 0x67,
2616            });
2617            try testArgs(@Vector(8, u7), .{
2618                0x68, 0x30, 0x65, 0x49, 0x3f, 0x3c, 0x05, 0x1b,
2619            }, .{
2620                0x3f, 0x0e, 0x04, 0x50, 0x20, 0x07, 0x07, 0x4c,
2621            });
2622            try testArgs(@Vector(16, u7), .{
2623                0x46, 0x73, 0x34, 0x68, 0x66, 0x0d, 0x69, 0x38, 0x7d, 0x40, 0x34, 0x22, 0x7b, 0x57, 0x76, 0x69,
2624            }, .{
2625                0x12, 0x45, 0x1b, 0x5d, 0x24, 0x36, 0x72, 0x70, 0x51, 0x1c, 0x23, 0x77, 0x7d, 0x7a, 0x20, 0x4b,
2626            });
2627            try testArgs(@Vector(32, u7), .{
2628                0x1e, 0x74, 0x19, 0x6c, 0x74, 0x05, 0x6f, 0x08, 0x54, 0x56, 0x25, 0x40, 0x07, 0x2d, 0x42, 0x73,
2629                0x5c, 0x1c, 0x60, 0x1e, 0x5a, 0x1d, 0x00, 0x33, 0x3b, 0x09, 0x28, 0x58, 0x66, 0x1d, 0x4e, 0x6b,
2630            }, .{
2631                0x22, 0x79, 0x72, 0x19, 0x19, 0x0b, 0x64, 0x6b, 0x15, 0x70, 0x10, 0x70, 0x73, 0x56, 0x48, 0x68,
2632                0x01, 0x16, 0x1b, 0x68, 0x67, 0x09, 0x37, 0x36, 0x29, 0x25, 0x01, 0x7c, 0x58, 0x37, 0x61, 0x1c,
2633            });
2634            try testArgs(@Vector(64, u7), .{
2635                0x79, 0x75, 0x24, 0x4a, 0x05, 0x1b, 0x28, 0x74, 0x43, 0x1c, 0x35, 0x06, 0x0d, 0x53, 0x07, 0x75,
2636                0x37, 0x3b, 0x6c, 0x50, 0x5d, 0x52, 0x3f, 0x76, 0x3e, 0x57, 0x1e, 0x12, 0x31, 0x7b, 0x62, 0x6e,
2637                0x30, 0x09, 0x1c, 0x0d, 0x3e, 0x52, 0x64, 0x6e, 0x23, 0x41, 0x2f, 0x4b, 0x69, 0x65, 0x67, 0x3f,
2638                0x56, 0x6d, 0x4d, 0x35, 0x54, 0x7c, 0x63, 0x5d, 0x24, 0x49, 0x0a, 0x71, 0x55, 0x48, 0x3e, 0x4b,
2639            }, .{
2640                0x6a, 0x1d, 0x23, 0x7d, 0x12, 0x29, 0x23, 0x0b, 0x53, 0x3d, 0x39, 0x4b, 0x45, 0x05, 0x1b, 0x4a,
2641                0x5c, 0x66, 0x38, 0x2d, 0x38, 0x70, 0x29, 0x5b, 0x32, 0x38, 0x39, 0x2e, 0x01, 0x3c, 0x15, 0x05,
2642                0x1f, 0x28, 0x3a, 0x0f, 0x0a, 0x09, 0x11, 0x5e, 0x0a, 0x7a, 0x3f, 0x7d, 0x2c, 0x34, 0x63, 0x34,
2643                0x1b, 0x61, 0x73, 0x63, 0x2c, 0x35, 0x25, 0x19, 0x09, 0x0c, 0x75, 0x5d, 0x01, 0x29, 0x3b, 0x0c,
2644            });
2645            try testArgs(@Vector(128, u7), .{
2646                0x5c, 0x65, 0x65, 0x34, 0x31, 0x03, 0x7a, 0x56, 0x16, 0x74, 0x5c, 0x7f, 0x2a, 0x46, 0x2a, 0x5f,
2647                0x62, 0x06, 0x51, 0x23, 0x58, 0x1f, 0x5a, 0x2d, 0x29, 0x21, 0x26, 0x5a, 0x5a, 0x13, 0x13, 0x46,
2648                0x26, 0x1c, 0x06, 0x2d, 0x08, 0x52, 0x5b, 0x6f, 0x2d, 0x4a, 0x00, 0x40, 0x68, 0x27, 0x00, 0x4a,
2649                0x3a, 0x22, 0x2d, 0x5b, 0x05, 0x26, 0x4e, 0x6f, 0x46, 0x4d, 0x14, 0x70, 0x51, 0x04, 0x66, 0x13,
2650                0x4c, 0x7c, 0x67, 0x23, 0x13, 0x55, 0x1b, 0x30, 0x7d, 0x04, 0x47, 0x78, 0x05, 0x09, 0x5a, 0x20,
2651                0x2e, 0x17, 0x11, 0x49, 0x6c, 0x5e, 0x34, 0x3e, 0x66, 0x60, 0x5d, 0x75, 0x48, 0x1d, 0x69, 0x67,
2652                0x40, 0x2d, 0x7b, 0x31, 0x13, 0x60, 0x19, 0x2f, 0x3e, 0x7d, 0x23, 0x6a, 0x0e, 0x16, 0x44, 0x34,
2653                0x5d, 0x5a, 0x2a, 0x0b, 0x64, 0x07, 0x22, 0x5b, 0x24, 0x22, 0x3b, 0x46, 0x23, 0x65, 0x5d, 0x34,
2654            }, .{
2655                0x4b, 0x36, 0x7a, 0x13, 0x5a, 0x4b, 0x69, 0x4b, 0x1d, 0x02, 0x1b, 0x3f, 0x61, 0x21, 0x45, 0x48,
2656                0x44, 0x61, 0x25, 0x42, 0x57, 0x7d, 0x7a, 0x45, 0x22, 0x2e, 0x44, 0x3f, 0x3a, 0x14, 0x07, 0x6e,
2657                0x68, 0x51, 0x03, 0x6b, 0x11, 0x32, 0x6d, 0x6f, 0x44, 0x5a, 0x61, 0x6d, 0x71, 0x66, 0x54, 0x14,
2658                0x5d, 0x56, 0x22, 0x5c, 0x3a, 0x72, 0x16, 0x39, 0x59, 0x3e, 0x27, 0x4d, 0x3d, 0x44, 0x72, 0x2c,
2659                0x71, 0x74, 0x3b, 0x6c, 0x70, 0x39, 0x0f, 0x5c, 0x71, 0x04, 0x67, 0x02, 0x2c, 0x18, 0x0f, 0x14,
2660                0x2d, 0x24, 0x51, 0x34, 0x6d, 0x0c, 0x19, 0x0f, 0x73, 0x79, 0x3d, 0x74, 0x20, 0x15, 0x22, 0x25,
2661                0x09, 0x14, 0x09, 0x71, 0x2d, 0x6f, 0x09, 0x2e, 0x27, 0x75, 0x57, 0x62, 0x4d, 0x07, 0x62, 0x01,
2662                0x41, 0x2d, 0x5d, 0x4c, 0x77, 0x10, 0x7f, 0x30, 0x0f, 0x50, 0x15, 0x39, 0x34, 0x7c, 0x33, 0x16,
2663            });
2664
2665            try testArgs(@Vector(1, i8), .{
2666                -0x54,
2667            }, .{
2668                0x0f,
2669            });
2670            try testArgs(@Vector(2, i8), .{
2671                -0x4d, 0x55,
2672            }, .{
2673                0x7d, -0x5d,
2674            });
2675            try testArgs(@Vector(4, i8), .{
2676                0x73, 0x6f, 0x6e, -0x49,
2677            }, .{
2678                -0x66, 0x23, 0x21, -0x56,
2679            });
2680            try testArgs(@Vector(8, i8), .{
2681                0x44, -0x37, 0x33, -0x2b, -0x1f, 0x3e, 0x50, -0x4d,
2682            }, .{
2683                0x6a, 0x1a, -0x0e, 0x4c, -0x46, 0x03, -0x17, 0x3e,
2684            });
2685            try testArgs(@Vector(16, i8), .{
2686                -0x52, 0x1a, -0x4b, 0x4e, -0x75, 0x33, -0x43, 0x30, 0x71, -0x30, -0x73, -0x53, 0x64, 0x1f, -0x27, 0x36,
2687            }, .{
2688                0x65, 0x77, -0x62, 0x0f, 0x15, 0x52, 0x5c, 0x12, -0x10, 0x36, 0x6d, 0x42, -0x24, -0x79, -0x32, -0x75,
2689            });
2690            try testArgs(@Vector(32, i8), .{
2691                -0x12, -0x1e, 0x18, 0x6e, 0x31,  0x53,  -0x6a, -0x34, 0x13,  0x4d, 0x30, -0x7d, -0x31, 0x1e,  -0x24, 0x32,
2692                -0x1e, -0x01, 0x55, 0x33, -0x75, -0x44, -0x57, 0x2b,  -0x66, 0x19, 0x7f, -0x28, -0x3f, -0x7e, -0x5d, -0x06,
2693            }, .{
2694                0x05, -0x23, 0x43,  -0x54, -0x41, 0x7f,  -0x6a, -0x31, 0x04,  0x15,  -0x7a, -0x37, 0x6d, 0x16,  0x01,  0x4a,
2695                0x15, 0x55,  -0x4a, 0x16,  -0x73, -0x0c, 0x1c,  -0x26, -0x14, -0x01, 0x55,  0x7b,  0x16, -0x2e, -0x5f, -0x67,
2696            });
2697            try testArgs(@Vector(64, i8), .{
2698                -0x05, 0x76,  0x4e,  -0x5c, 0x7b,  -0x1a, -0x38, -0x2e, 0x3d,  0x36,  0x01,  0x30,  -0x02, -0x71, -0x24, 0x24,
2699                -0x2e, -0x6e, -0x60, 0x74,  -0x80, -0x1c, -0x34, -0x08, -0x33, 0x77,  0x1c,  -0x0f, 0x45,  -0x51, -0x1d, 0x35,
2700                -0x45, 0x44,  0x27,  -0x3c, 0x6b,  0x58,  -0x6a, -0x26, 0x06,  -0x30, -0x21, -0x0a, 0x60,  -0x11, -0x05, 0x75,
2701                0x38,  0x72,  -0x6d, -0x1f, -0x7f, 0x74,  -0x6b, -0x14, -0x80, 0x35,  -0x0f, -0x1e, 0x6a,  0x17,  -0x74, -0x6c,
2702            }, .{
2703                -0x5d, 0x2d,  0x55,  0x40,  -0x7c, 0x67,  0x61,  0x5f,  0x14,  0x5b, -0x0c, -0x4d, -0x5f, 0x25,  0x36,  0x3c,
2704                -0x75, -0x48, -0x2b, 0x76,  -0x57, -0x4a, 0x1d,  0x65,  -0x32, 0x18, -0x2a, -0x0a, -0x6e, -0x3c, -0x62, 0x4e,
2705                -0x24, -0x3c, 0x7d,  -0x79, -0x1a, -0x14, -0x03, -0x56, 0x7a,  0x5f, 0x64,  -0x68, 0x5f,  -0x10, -0x63, -0x07,
2706                0x79,  -0x44, 0x47,  0x7d,  0x6e,  0x77,  0x03,  -0x4e, 0x67,  0x38, 0x46,  -0x44, -0x41, 0x66,  -0x16, -0x0a,
2707            });
2708            try testArgs(@Vector(128, i8), .{
2709                0x30,  0x70,  -0x2a, -0x29, -0x35, -0x69, -0x18, 0x2b,  0x4a,  -0x17, -0x5f, -0x36, 0x34,  -0x26, 0x03,  -0x2d,
2710                -0x75, -0x27, -0x07, -0x49, -0x58, 0x00,  -0x45, 0x5d,  -0x11, -0x68, 0x34,  0x73,  -0x4d, 0x7f,  -0x25, -0x6a,
2711                0x46,  -0x1d, -0x68, 0x04,  0x64,  -0x0d, 0x30,  0x27,  -0x24, 0x67,  0x3c,  -0x7c, -0x2e, -0x24, 0x24,  0x3e,
2712                -0x2c, -0x05, 0x4e,  -0x17, 0x6d,  0x57,  0x76,  0x35,  -0x3d, 0x51,  0x71,  -0x4e, 0x50,  0x26,  0x4a,  -0x42,
2713                0x73,  -0x36, -0x5d, 0x2a,  0x55,  0x33,  -0x2b, -0x76, 0x08,  0x43,  0x77,  -0x73, -0x0a, 0x5c,  -0x03, -0x50,
2714                -0x0a, -0x1c, -0x20, 0x3c,  -0x7e, 0x60,  0x11,  -0x77, 0x25,  -0x71, 0x31,  0x2d,  -0x4b, -0x26, -0x2a, 0x7f,
2715                -0x1f, 0x23,  -0x34, -0x1f, 0x35,  0x0d,  0x3e,  0x76,  -0x08, 0x2c,  0x12,  0x3e,  -0x09, -0x3e, 0x4b,  -0x52,
2716                -0x1a, -0x44, -0x53, -0x41, -0x6d, -0x5e, -0x06, -0x04, 0x3f,  -0x2e, 0x01,  0x54,  0x19,  -0x5a, -0x62, -0x3a,
2717            }, .{
2718                0x42,  -0x11, -0x08, -0x64, -0x55, 0x31,  0x27,  -0x66, 0x38,  0x5a,  0x25,  -0x68, 0x0b,  -0x41, -0x0d, 0x60,
2719                -0x17, -0x6d, 0x62,  -0x65, -0x5e, -0x1c, -0x35, 0x28,  0x1c,  -0x74, -0x7f, -0x1c, 0x3a,  0x4e,  0x05,  -0x08,
2720                0x30,  -0x77, 0x03,  0x68,  -0x2c, 0x5c,  0x74,  0x6a,  -0x21, 0x0a,  0x36,  -0x55, 0x21,  0x29,  -0x05, 0x70,
2721                0x23,  0x3b,  0x0a,  0x7a,  0x19,  0x14,  0x65,  -0x1d, 0x2b,  0x65,  0x33,  0x2a,  0x52,  -0x63, 0x57,  0x10,
2722                -0x1b, 0x26,  -0x46, -0x7e, -0x25, 0x79,  -0x01, -0x0d, -0x49, -0x4d, 0x74,  0x03,  0x77,  0x16,  0x03,  -0x3d,
2723                0x1c,  0x25,  0x5a,  -0x2f, -0x16, -0x5f, -0x36, -0x55, -0x44, -0x0c, -0x0f, 0x7b,  -0x15, -0x1d, 0x32,  0x31,
2724                0x6e,  -0x44, -0x4a, -0x64, 0x67,  0x04,  0x47,  -0x02, 0x3c,  -0x0a, -0x79, 0x3d,  0x48,  0x5a,  0x61,  -0x2c,
2725                0x6d,  -0x68, -0x71, -0x6b, -0x11, 0x44,  -0x75, -0x55, -0x67, -0x52, 0x64,  -0x3d, -0x05, -0x76, -0x6d, -0x44,
2726            });
2727
2728            try testArgs(@Vector(1, u8), .{
2729                0x1f,
2730            }, .{
2731                0x06,
2732            });
2733            try testArgs(@Vector(2, u8), .{
2734                0x80, 0x63,
2735            }, .{
2736                0xe4, 0x28,
2737            });
2738            try testArgs(@Vector(4, u8), .{
2739                0x83, 0x9e, 0x1e, 0xc1,
2740            }, .{
2741                0xf0, 0x5c, 0x46, 0x85,
2742            });
2743            try testArgs(@Vector(8, u8), .{
2744                0x1e, 0x4d, 0x9d, 0x2a, 0x4c, 0x74, 0x0a, 0x83,
2745            }, .{
2746                0x28, 0x60, 0xa9, 0xb5, 0xd9, 0xa6, 0xf1, 0xb6,
2747            });
2748            try testArgs(@Vector(16, u8), .{
2749                0xea, 0x80, 0xbb, 0xe8, 0x74, 0x81, 0xc8, 0x66, 0x7b, 0x41, 0x90, 0xcb, 0x30, 0x70, 0x4b, 0x0f,
2750            }, .{
2751                0x61, 0x26, 0xbe, 0x47, 0x02, 0x9c, 0x55, 0xa5, 0x59, 0xf0, 0xb2, 0x20, 0x30, 0xaf, 0x82, 0x3e,
2752            });
2753            try testArgs(@Vector(32, u8), .{
2754                0xa1, 0x88, 0xc4, 0xf4, 0x77, 0x0b, 0xf5, 0xbb, 0x09, 0x03, 0xbf, 0xf5, 0xcc, 0x7f, 0x6b, 0x2a,
2755                0x4c, 0x05, 0x37, 0xc9, 0x8a, 0xcb, 0x91, 0x23, 0x09, 0x5f, 0xb8, 0x99, 0x4a, 0x75, 0x26, 0xe4,
2756            }, .{
2757                0xff, 0x0f, 0x99, 0x49, 0xa6, 0x25, 0xa7, 0xd4, 0xc9, 0x2f, 0x97, 0x6a, 0x01, 0xd6, 0x6e, 0x41,
2758                0xa4, 0xb5, 0x3c, 0x03, 0xea, 0x82, 0x9c, 0x5f, 0xac, 0x07, 0x16, 0x15, 0x1c, 0x64, 0x25, 0x2f,
2759            });
2760            try testArgs(@Vector(64, u8), .{
2761                0xaa, 0x08, 0xeb, 0xb2, 0xd7, 0x89, 0x0f, 0x98, 0xda, 0x9f, 0xa6, 0x4e, 0x3c, 0xce, 0x1b, 0x1b,
2762                0x9e, 0x5f, 0x2b, 0xd6, 0x59, 0x26, 0x47, 0x05, 0x2a, 0xb7, 0xd1, 0x10, 0xde, 0xd9, 0x84, 0x00,
2763                0x07, 0xc0, 0xaa, 0x6e, 0xfa, 0x3b, 0x97, 0x85, 0xa8, 0x42, 0xd7, 0xa5, 0x90, 0xe6, 0x10, 0x1a,
2764                0x47, 0x84, 0xe1, 0x3e, 0xb0, 0x70, 0x26, 0x3f, 0xea, 0x24, 0xb8, 0x5f, 0xe3, 0xe3, 0x4c, 0xed,
2765            }, .{
2766                0x3b, 0xc5, 0xe0, 0x3d, 0x4f, 0x2e, 0x1d, 0xa9, 0xf7, 0x7b, 0xc7, 0xc1, 0x48, 0xc6, 0xe5, 0x9e,
2767                0x4d, 0xa8, 0x21, 0x37, 0xa1, 0x1a, 0x95, 0x69, 0x89, 0x2f, 0x15, 0x07, 0x3d, 0x7b, 0x69, 0x89,
2768                0xea, 0x87, 0xf0, 0x94, 0x67, 0xf2, 0x3d, 0x04, 0x96, 0x8a, 0xd6, 0x70, 0x7c, 0x16, 0xe7, 0x62,
2769                0xf0, 0x8d, 0x96, 0x65, 0xd1, 0x4a, 0x35, 0x3e, 0x7a, 0x67, 0xa6, 0x1f, 0x37, 0x66, 0xe3, 0x45,
2770            });
2771            try testArgs(@Vector(128, u8), .{
2772                0xa1, 0xd0, 0x7b, 0xf9, 0x7b, 0x77, 0x7b, 0x3d, 0x2d, 0x68, 0xc2, 0x7b, 0xb0, 0xb8, 0xd4, 0x7c,
2773                0x1a, 0x1f, 0xd2, 0x92, 0x3e, 0xcb, 0xc1, 0x6b, 0xb9, 0x4d, 0xf1, 0x67, 0x58, 0x8e, 0x77, 0xa6,
2774                0xb9, 0xdf, 0x10, 0x6f, 0xbe, 0xe3, 0x33, 0xb6, 0x93, 0x77, 0x80, 0xef, 0x09, 0x9d, 0x61, 0x40,
2775                0xa2, 0xf4, 0x52, 0x18, 0x9d, 0xe4, 0xb0, 0xaf, 0x0a, 0xa7, 0x0b, 0x09, 0x67, 0x38, 0x71, 0x04,
2776                0x72, 0xa1, 0xd2, 0xfd, 0xf8, 0xf0, 0xa7, 0x23, 0x24, 0x5b, 0x7d, 0xfb, 0x43, 0xba, 0x6c, 0xc4,
2777                0x83, 0x46, 0x0e, 0x4d, 0x6c, 0x92, 0xab, 0x4f, 0xd2, 0x70, 0x9d, 0xfe, 0xce, 0xf8, 0x05, 0x9f,
2778                0x98, 0x36, 0x9c, 0x90, 0x9a, 0xd0, 0xb5, 0x76, 0x16, 0xe8, 0x25, 0xc2, 0xbd, 0x91, 0xab, 0xf9,
2779                0x6f, 0x6c, 0xc5, 0x60, 0xe5, 0x30, 0xf2, 0xb7, 0x59, 0xc4, 0x9c, 0xdd, 0xdf, 0x04, 0x65, 0xd9,
2780            }, .{
2781                0xed, 0xe1, 0x8a, 0xf6, 0xf3, 0x8b, 0xfd, 0x1d, 0x3c, 0x87, 0xbf, 0xfe, 0x04, 0x52, 0x15, 0x82,
2782                0x0b, 0xb0, 0xcf, 0xcf, 0xf8, 0x03, 0x9c, 0xef, 0xc1, 0x76, 0x7e, 0xe3, 0xe9, 0xa8, 0x18, 0x90,
2783                0xd4, 0xc4, 0x91, 0x15, 0x68, 0x7f, 0x65, 0xd8, 0xe1, 0xb3, 0x23, 0xc2, 0x7d, 0x84, 0x3b, 0xaf,
2784                0x74, 0x69, 0x07, 0x2a, 0x1b, 0x5f, 0x0e, 0x44, 0x0d, 0x2b, 0x9c, 0x82, 0x41, 0xf9, 0x7f, 0xb5,
2785                0xc4, 0xd9, 0xcb, 0xd3, 0xc5, 0x31, 0x8b, 0x5f, 0xda, 0x09, 0x9b, 0x29, 0xa3, 0xb7, 0x13, 0x0d,
2786                0x55, 0x9b, 0x59, 0x33, 0x2a, 0x59, 0x3a, 0x44, 0x1f, 0xd3, 0x40, 0x4e, 0xde, 0x2c, 0xe4, 0x16,
2787                0xfd, 0xc3, 0x02, 0x74, 0xaa, 0x65, 0xfd, 0xc8, 0x2a, 0x8a, 0xdb, 0xae, 0x44, 0x28, 0x62, 0xa4,
2788                0x56, 0x4f, 0xf1, 0xaa, 0x0a, 0x0f, 0xdb, 0x1b, 0xc8, 0x45, 0x9b, 0x12, 0xb4, 0x1a, 0xe4, 0xa3,
2789            });
2790
2791            try testArgs(@Vector(1, i9), .{
2792                0x002,
2793            }, .{
2794                0x0bd,
2795            });
2796            try testArgs(@Vector(2, i9), .{
2797                0x00c, 0x0b1,
2798            }, .{
2799                -0x00b, -0x009,
2800            });
2801            try testArgs(@Vector(4, i9), .{
2802                0x0b2, 0x02b, -0x09d, -0x03c,
2803            }, .{
2804                0x031, 0x078, 0x016, -0x08a,
2805            });
2806            try testArgs(@Vector(8, i9), .{
2807                0x066, -0x03b, 0x007, 0x054, 0x0a7, 0x0ee, 0x00f, -0x0f8,
2808            }, .{
2809                0x01e, 0x0af, 0x047, 0x0d8, 0x002, -0x030, -0x01d, 0x003,
2810            });
2811            try testArgs(@Vector(16, i9), .{
2812                0x0e7, -0x066, 0x079, -0x08d, -0x01a, -0x009, 0x0c8, 0x0c0, -0x070, 0x001, -0x00e, 0x014, -0x0f7, -0x07f, 0x0c8, -0x09a,
2813            }, .{
2814                0x0ea, -0x040, -0x045, -0x06d, 0x02c, -0x0b0, -0x0ba, -0x01a, 0x0af, 0x055, -0x015, -0x0fa, 0x0ca, 0x0f4, 0x007, -0x0a0,
2815            });
2816            try testArgs(@Vector(32, i9), .{
2817                -0x003, 0x01b,  0x0b6, -0x009, 0x090, 0x047,  -0x00b, -0x0f2, 0x0f6, -0x09d, 0x0bf,  0x06a, -0x0e0, 0x03f, 0x007,  0x0a1,
2818                0x009,  -0x0fb, 0x034, 0x0ba,  0x0cb, -0x0c9, -0x0ff, -0x0c1, 0x0d3, 0x029,  -0x076, 0x044, 0x0d4,  0x083, -0x002, 0x04e,
2819            }, .{
2820                -0x0cb, 0x0e3,  0x014, 0x02f,  -0x0da, -0x06a, 0x07f,  0x07d, -0x0ea, -0x014, 0x09a, 0x050, 0x017,  -0x00d, 0x041,  0x03e,
2821                -0x096, -0x008, 0x075, -0x0bc, 0x0f9,  -0x0fc, -0x0a7, 0x0ef, 0x0f9,  0x066,  0x02f, 0x0d3, -0x0f0, -0x04a, -0x100, -0x0c6,
2822            });
2823            try testArgs(@Vector(64, i9), .{
2824                -0x016, -0x0ae, 0x08b,  -0x0eb, -0x0b2, 0x02f,  0x039,  -0x0ba, -0x08d, -0x0a8, -0x0eb, -0x01a, 0x0eb,  0x0ca,  -0x049, 0x04e,
2825                -0x019, -0x0d9, -0x0bd, 0x0ae,  -0x07d, -0x092, -0x0fb, -0x06c, -0x0e6, 0x0d9,  0x02c,  0x0cc,  0x093,  -0x022, 0x07a,  -0x093,
2826                0x0e5,  -0x011, -0x003, 0x070,  -0x042, -0x0ad, 0x0be,  -0x038, -0x0bf, 0x098,  0x090,  -0x09e, -0x0a5, -0x0e1, -0x0e2, 0x039,
2827                -0x035, -0x0e5, -0x054, 0x04c,  0x04b,  -0x09f, 0x091,  -0x039, 0x09b,  -0x029, 0x014,  -0x0d3, 0x06b,  0x0ae,  0x091,  0x082,
2828            }, .{
2829                -0x0bb, -0x0ec, 0x0fa,  0x055,  0x06f,  0x011,  -0x09d, 0x083,  -0x066, 0x014, 0x007,  0x002,  -0x0ee, -0x0d9, 0x0c3,  -0x087,
2830                0x03c,  -0x065, -0x0cf, -0x075, -0x0c7, -0x0c1, 0x06b,  -0x0e3, -0x07a, 0x0b2, -0x0f8, -0x0fa, 0x001,  -0x0ba, 0x0c4,  0x0bb,
2831                0x032,  0x01e,  -0x074, -0x058, -0x040, 0x0aa,  0x077,  0x028,  -0x061, 0x076, -0x04e, 0x01a,  -0x05f, -0x073, 0x0ea,  0x06e,
2832                -0x069, -0x0a1, -0x041, 0x013,  -0x01c, -0x0f8, 0x053,  0x0f8,  -0x0c3, 0x058, -0x02d, 0x0f1,  -0x045, 0x04b,  -0x0b1, -0x0f3,
2833            });
2834            try testArgs(@Vector(128, i9), .{
2835                0x0d4,  0x036,  0x0bd,  -0x046, -0x0a7, 0x09e,  0x0dd,  0x043,  0x098,  -0x09a, -0x06f, 0x0bb,  -0x0b7, 0x021,  0x0a3,  0x0f0,
2836                0x069,  -0x08b, 0x0da,  0x016,  -0x049, 0x0d0,  0x07b,  0x004,  0x0ad,  -0x07c, -0x04e, -0x011, 0x01f,  -0x035, 0x028,  -0x0c9,
2837                -0x0eb, 0x077,  0x08b,  -0x009, 0x024,  -0x058, 0x04e,  -0x0c0, -0x01d, -0x0a7, 0x088,  0x01b,  -0x0f3, -0x0c5, -0x08e, 0x0dc,
2838                0x07d,  0x086,  -0x032, 0x0a9,  -0x00c, -0x06a, 0x06c,  0x032,  0x083,  0x0ec,  0x0ec,  -0x0a6, 0x029,  0x044,  -0x07f, 0x068,
2839                -0x038, 0x0f6,  0x0b5,  -0x00d, -0x051, -0x0c6, -0x0af, -0x0eb, -0x0b6, 0x03c,  -0x037, 0x0cc,  -0x033, 0x08a,  -0x0b4, -0x039,
2840                0x01e,  0x06c,  0x015,  -0x081, -0x029, 0x017,  -0x080, -0x01e, -0x081, 0x04f,  -0x071, -0x073, 0x0c3,  0x079,  0x0ad,  0x087,
2841                -0x072, 0x067,  -0x064, -0x0d4, 0x0b4,  0x003,  0x0b1,  0x0bb,  0x0cc,  -0x0e9, 0x0e7,  0x015,  0x07b,  0x0e4,  -0x0ee, -0x07f,
2842                -0x0bf, 0x0cd,  -0x056, 0x0ea,  0x0e5,  0x0fa,  0x0e1,  -0x087, 0x0fe,  0x017,  0x071,  -0x0d1, -0x053, -0x088, -0x0ef, 0x01b,
2843            }, .{
2844                0x0ea,  -0x018, 0x0ab,  0x039,  0x0ec,  0x0cc,  -0x033, -0x0e6, -0x037, -0x075, -0x055, -0x09a, 0x0bc,  0x099,  -0x03c, -0x0b4,
2845                -0x0fe, -0x0ce, 0x0d6,  -0x084, 0x08f,  0x04b,  0x0cc,  -0x023, 0x01e,  -0x09c, 0x058,  0x0f4,  -0x0a7, 0x085,  -0x049, -0x050,
2846                0x0f3,  -0x036, -0x0fe, 0x070,  -0x0a2, -0x081, -0x066, 0x057,  -0x017, -0x0c8, 0x070,  0x09b,  -0x0e4, -0x03b, -0x0d9, 0x081,
2847                0x041,  0x0ec,  -0x062, 0x0b9,  -0x0d2, -0x02a, 0x0ab,  0x072,  0x001,  -0x082, -0x0cd, 0x0c8,  0x017,  -0x09d, 0x094,  -0x027,
2848                0x09c,  0x024,  -0x0ec, 0x02f,  0x066,  -0x08e, 0x0ee,  0x099,  0x08e,  -0x0e5, -0x094, 0x0bb,  0x02f,  -0x0fe, -0x07e, -0x0ad,
2849                0x05c,  0x066,  0x07e,  -0x0a9, 0x0fe,  -0x0e3, -0x068, 0x058,  -0x007, 0x0d6,  -0x0e8, -0x0d6, 0x038,  0x0b8,  -0x0b2, 0x0c1,
2850                0x09a,  0x02f,  0x0d9,  0x07d,  0x0fc,  0x0f7,  -0x005, -0x01c, 0x0c2,  0x066,  0x064,  -0x096, -0x040, 0x065,  -0x00d, -0x063,
2851                0x031,  -0x088, 0x090,  -0x077, 0x0e2,  0x0a8,  -0x0e0, -0x077, 0x0eb,  0x0c3,  -0x0ad, 0x008,  0x04e,  -0x095, -0x041, -0x0a6,
2852            });
2853
2854            try testArgs(@Vector(1, u9), .{
2855                0x09e,
2856            }, .{
2857                0x171,
2858            });
2859            try testArgs(@Vector(2, u9), .{
2860                0x0bf, 0x042,
2861            }, .{
2862                0x154, 0x14b,
2863            });
2864            try testArgs(@Vector(4, u9), .{
2865                0x0a5, 0x1ba, 0x1ef, 0x0b3,
2866            }, .{
2867                0x15d, 0x1d3, 0x00e, 0x13b,
2868            });
2869            try testArgs(@Vector(8, u9), .{
2870                0x068, 0x125, 0x1ac, 0x105, 0x0cb, 0x14b, 0x18b, 0x07f,
2871            }, .{
2872                0x04a, 0x011, 0x0ad, 0x1d7, 0x1b8, 0x083, 0x16d, 0x052,
2873            });
2874            try testArgs(@Vector(16, u9), .{
2875                0x00e, 0x0b4, 0x0d2, 0x149, 0x012, 0x17d, 0x13f, 0x1cb, 0x0f2, 0x145, 0x098, 0x005, 0x055, 0x141, 0x115, 0x01c,
2876            }, .{
2877                0x06c, 0x1da, 0x192, 0x0cf, 0x180, 0x0c2, 0x158, 0x0c6, 0x141, 0x105, 0x168, 0x165, 0x0aa, 0x0d5, 0x0a1, 0x03d,
2878            });
2879            try testArgs(@Vector(32, u9), .{
2880                0x1bd, 0x05b, 0x1e1, 0x03e, 0x18b, 0x1ad, 0x102, 0x1bc, 0x0cd, 0x09f, 0x028, 0x057, 0x0cd, 0x14f, 0x02b, 0x00f,
2881                0x140, 0x0b3, 0x155, 0x161, 0x1b6, 0x0ae, 0x13f, 0x1a7, 0x1b5, 0x0d4, 0x1f1, 0x1f5, 0x01c, 0x04b, 0x110, 0x0e2,
2882            }, .{
2883                0x027, 0x046, 0x00a, 0x035, 0x0ad, 0x10c, 0x010, 0x0ef, 0x096, 0x061, 0x016, 0x0cb, 0x17a, 0x0aa, 0x0d6, 0x1ad,
2884                0x108, 0x0e3, 0x078, 0x020, 0x145, 0x0fc, 0x109, 0x04e, 0x13b, 0x02b, 0x11c, 0x125, 0x0f0, 0x185, 0x06b, 0x0b2,
2885            });
2886            try testArgs(@Vector(64, u9), .{
2887                0x17b, 0x094, 0x1e8, 0x089, 0x0ec, 0x15d, 0x190, 0x0eb, 0x086, 0x091, 0x132, 0x074, 0x004, 0x142, 0x136, 0x066,
2888                0x0a1, 0x1dc, 0x1d2, 0x026, 0x11e, 0x1eb, 0x1d5, 0x055, 0x047, 0x116, 0x0b7, 0x14a, 0x1ea, 0x067, 0x1c1, 0x19e,
2889                0x13e, 0x11a, 0x16d, 0x0a6, 0x1b8, 0x0ef, 0x179, 0x076, 0x13e, 0x118, 0x0a3, 0x04e, 0x10a, 0x1bd, 0x186, 0x170,
2890                0x172, 0x14f, 0x15e, 0x0f2, 0x1bc, 0x016, 0x189, 0x199, 0x0ee, 0x1ac, 0x0d8, 0x094, 0x19f, 0x0c8, 0x0f2, 0x06a,
2891            }, .{
2892                0x096, 0x19f, 0x094, 0x03d, 0x060, 0x164, 0x171, 0x101, 0x1ab, 0x172, 0x14b, 0x177, 0x1d6, 0x10d, 0x193, 0x13e,
2893                0x1cf, 0x1be, 0x16a, 0x088, 0x0bb, 0x1bf, 0x052, 0x14c, 0x1fa, 0x060, 0x1c7, 0x073, 0x19d, 0x158, 0x1dc, 0x12d,
2894                0x1c1, 0x15c, 0x10e, 0x16e, 0x1d2, 0x155, 0x0d1, 0x0e1, 0x126, 0x0bd, 0x081, 0x17e, 0x1f9, 0x1aa, 0x1ad, 0x0fe,
2895                0x0f8, 0x158, 0x0ec, 0x00f, 0x033, 0x053, 0x033, 0x1e4, 0x05b, 0x072, 0x06b, 0x1a3, 0x157, 0x0ed, 0x1c8, 0x01b,
2896            });
2897            try testArgs(@Vector(128, u9), .{
2898                0x13e, 0x0ad, 0x121, 0x0b1, 0x186, 0x0af, 0x058, 0x1b6, 0x16c, 0x0b0, 0x1e4, 0x1a2, 0x1f7, 0x1e1, 0x12c, 0x098,
2899                0x0a5, 0x138, 0x1dd, 0x1d5, 0x0a0, 0x01e, 0x01e, 0x077, 0x0a9, 0x0f9, 0x12b, 0x153, 0x0bd, 0x0ac, 0x13e, 0x097,
2900                0x062, 0x064, 0x091, 0x100, 0x0be, 0x196, 0x096, 0x183, 0x18f, 0x006, 0x07f, 0x14c, 0x0ec, 0x028, 0x0cd, 0x09c,
2901                0x054, 0x0c7, 0x0cf, 0x019, 0x058, 0x0fa, 0x1ec, 0x1c4, 0x0d8, 0x0f7, 0x187, 0x1a5, 0x17f, 0x008, 0x087, 0x199,
2902                0x1cd, 0x094, 0x100, 0x011, 0x050, 0x09d, 0x05e, 0x1f8, 0x0a7, 0x0a7, 0x0f7, 0x06b, 0x05e, 0x14f, 0x03c, 0x08c,
2903                0x110, 0x16a, 0x08b, 0x1a3, 0x173, 0x1e0, 0x01a, 0x18a, 0x061, 0x0e8, 0x0d7, 0x0a6, 0x11b, 0x1fa, 0x004, 0x1fe,
2904                0x045, 0x117, 0x0ab, 0x11a, 0x079, 0x1f6, 0x1bb, 0x0b6, 0x04a, 0x01b, 0x0d5, 0x0a6, 0x15a, 0x088, 0x0fa, 0x180,
2905                0x0a4, 0x1fa, 0x17b, 0x117, 0x120, 0x110, 0x199, 0x109, 0x171, 0x1cb, 0x1cb, 0x0f3, 0x127, 0x1b2, 0x0e5, 0x152,
2906            }, .{
2907                0x137, 0x1c8, 0x1e2, 0x04a, 0x0f9, 0x0a7, 0x1d7, 0x1ba, 0x1a6, 0x035, 0x09b, 0x018, 0x1bd, 0x0fe, 0x08d, 0x029,
2908                0x0d8, 0x1cc, 0x06f, 0x174, 0x132, 0x02b, 0x188, 0x15f, 0x036, 0x15e, 0x0bc, 0x1bd, 0x1b2, 0x0f1, 0x193, 0x0b7,
2909                0x192, 0x03d, 0x0df, 0x1b7, 0x087, 0x14a, 0x137, 0x102, 0x117, 0x0de, 0x031, 0x03e, 0x1b0, 0x021, 0x0f4, 0x13e,
2910                0x148, 0x0a7, 0x19c, 0x11e, 0x0e6, 0x0f1, 0x043, 0x1b3, 0x0c6, 0x1b2, 0x162, 0x098, 0x1c1, 0x0e7, 0x142, 0x032,
2911                0x00d, 0x196, 0x124, 0x11e, 0x011, 0x19b, 0x023, 0x101, 0x0a1, 0x1ae, 0x03a, 0x0ec, 0x146, 0x020, 0x0c0, 0x0d7,
2912                0x135, 0x152, 0x0fe, 0x08b, 0x193, 0x147, 0x0bf, 0x1c3, 0x0a2, 0x0c2, 0x0f7, 0x1c5, 0x1fe, 0x0a2, 0x033, 0x1ec,
2913                0x043, 0x1a9, 0x1f5, 0x151, 0x04d, 0x176, 0x0df, 0x1f4, 0x09f, 0x054, 0x119, 0x0f8, 0x197, 0x0e9, 0x189, 0x196,
2914                0x083, 0x1bb, 0x19b, 0x1a9, 0x15b, 0x136, 0x192, 0x08f, 0x0ba, 0x166, 0x178, 0x0c2, 0x0d0, 0x1b7, 0x181, 0x1e2,
2915            });
2916
2917            try testArgs(@Vector(1, i15), .{
2918                0x1309,
2919            }, .{
2920                0x1422,
2921            });
2922            try testArgs(@Vector(2, i15), .{
2923                0x32e8, 0x3d81,
2924            }, .{
2925                0x195c, 0x13e8,
2926            });
2927            try testArgs(@Vector(4, i15), .{
2928                -0x3485, 0x2320, -0x1725, 0x1e6e,
2929            }, .{
2930                0x2910, 0x3293, 0x3144, -0x3bbc,
2931            });
2932            try testArgs(@Vector(8, i15), .{
2933                0x1c0d, 0x2f06, -0x0e9e, 0x230a, 0x0a7b, 0x19ae, -0x19b6, -0x2ace,
2934            }, .{
2935                -0x34a3, -0x342a, -0x0aaf, 0x1ece, 0x12fc, 0x0562, 0x0d22, -0x310f,
2936            });
2937            try testArgs(@Vector(16, i15), .{
2938                -0x0abb, -0x1bbc, -0x3112, -0x23bf, -0x08b5, -0x1517, 0x1586, 0x06b2,
2939                0x25ec,  0x3cf1,  0x07ea,  0x3972,  0x09d8,  -0x18a6, 0x06dd, -0x1c34,
2940            }, .{
2941                -0x0ec7, 0x1144,  -0x1a94, 0x255f,  -0x1fbb, -0x1500, -0x0e4f, 0x0b67,
2942                0x1352,  -0x0d6b, 0x2f3e,  -0x086b, -0x19dc, -0x149b, -0x013e, 0x0ce6,
2943            });
2944            try testArgs(@Vector(32, i15), .{
2945                -0x330a, -0x0a40, -0x2533, -0x1e99, 0x1aa6, -0x2587, 0x2778,  0x394a,
2946                -0x0383, -0x2fb7, 0x04cf,  0x033a,  0x2bff, 0x3997,  -0x112c, 0x3a1a,
2947                0x1adf,  0x270b,  0x182e,  -0x23f6, 0x1a33, 0x2644,  -0x0b41, -0x1c48,
2948                0x1c2d,  -0x2a40, 0x007c,  0x1a62,  0x30d9, 0x0e4b,  0x32ee,  0x2b46,
2949            }, .{
2950                0x1af0,  0x286f,  -0x14fe, 0x2318,  0x002a,  -0x26b2, 0x350b,  0x0884,
2951                0x3011,  0x276a,  0x2b2a,  0x22d3,  -0x1ece, 0x0143,  0x2f5b,  -0x0fa2,
2952                0x2412,  -0x3d86, -0x3774, -0x09a5, 0x0fbf,  0x32f7,  -0x0a23, -0x3d5a,
2953                -0x1523, -0x27c5, 0x097f,  0x2923,  0x3060,  0x113e,  -0x0643, -0x1287,
2954            });
2955            try testArgs(@Vector(64, i15), .{
2956                0x0419,  0x1803,  -0x3897, 0x2b0c,  0x08a3,  -0x39d0, 0x174e,  -0x29c6,
2957                0x0152,  -0x1078, 0x1113,  0x23bf,  0x0990,  -0x2777, 0x2ba4,  -0x058b,
2958                -0x2d4a, -0x23ba, 0x3875,  -0x1720, -0x2625, -0x1c8f, 0x1f7c,  0x3f73,
2959                0x3780,  -0x3043, -0x0d8d, 0x2ced,  0x091a,  0x3481,  -0x1917, -0x352f,
2960                0x34c7,  0x322f,  -0x20ae, -0x0653, 0x1c82,  0x09a8,  -0x1a0b, -0x1dff,
2961                -0x24c2, -0x2592, -0x3ff7, 0x1515,  -0x3d32, 0x1e9e,  -0x334d, 0x352b,
2962                -0x2439, -0x3d0b, -0x2bcc, -0x2d29, 0x197c,  -0x2bad, -0x2682, 0x32cf,
2963                0x31e4,  -0x085c, -0x0c84, -0x2f11, 0x03ba,  -0x0111, -0x2634, 0x344f,
2964            }, .{
2965                0x011a,  0x186c,  -0x2d7e, 0x29b1,  0x2cfb,  -0x077b, 0x3e8c,  -0x3a62,
2966                0x3575,  0x35f0,  -0x2529, -0x3040, 0x398e,  -0x0c56, 0x2aa5,  0x0a72,
2967                -0x0c36, -0x2c53, 0x275b,  -0x1155, 0x1a9d,  -0x34af, -0x3d4f, 0x14a0,
2968                -0x0b88, 0x0b34,  0x2d60,  0x19ee,  -0x0ac4, -0x2f1b, -0x1e20, -0x2d8b,
2969                -0x23f4, 0x0472,  0x1977,  -0x33f2, -0x301d, -0x1931, -0x1abe, 0x307f,
2970                -0x2dcb, 0x2e99,  0x0dd1,  0x0377,  -0x3f91, -0x3719, 0x0248,  0x3c40,
2971                -0x08d4, -0x2f12, -0x12ee, 0x3bc0,  0x3c4a,  0x1ff3,  -0x1096, -0x37e0,
2972                -0x0879, -0x354f, -0x2277, 0x1ced,  0x0833,  -0x0f7e, 0x2070,  0x0d81,
2973            });
2974
2975            try testArgs(@Vector(1, u15), .{
2976                0x18c0,
2977            }, .{
2978                0x0c85,
2979            });
2980            try testArgs(@Vector(2, u15), .{
2981                0x3697, 0x744b,
2982            }, .{
2983                0x60d5, 0x4172,
2984            });
2985            try testArgs(@Vector(4, u15), .{
2986                0x7c31, 0x62c3, 0x7fe9, 0x4a52,
2987            }, .{
2988                0x28bf, 0x58a9, 0x09d5, 0x111f,
2989            });
2990            try testArgs(@Vector(8, u15), .{
2991                0x3be1, 0x1928, 0x227e, 0x7ab4, 0x7e26, 0x4761, 0x586a, 0x4665,
2992            }, .{
2993                0x11b8, 0x4079, 0x39eb, 0x79d2, 0x7871, 0x5a40, 0x793c, 0x4a66,
2994            });
2995            try testArgs(@Vector(16, u15), .{
2996                0x30fe, 0x6781, 0x6db6, 0x16f7, 0x736f, 0x1dca, 0x122e, 0x4e43,
2997                0x41d8, 0x5b7a, 0x183b, 0x5036, 0x6a3a, 0x4301, 0x6c05, 0x5e7f,
2998            }, .{
2999                0x7dd5, 0x0897, 0x7f63, 0x0375, 0x5d05, 0x74c8, 0x0bc8, 0x6ac2,
3000                0x5063, 0x335a, 0x283c, 0x452d, 0x6274, 0x2531, 0x1f90, 0x05c3,
3001            });
3002            try testArgs(@Vector(32, u15), .{
3003                0x122d, 0x54a6, 0x7cf1, 0x5b48, 0x47e3, 0x6918, 0x0d81, 0x6074,
3004                0x06d3, 0x0951, 0x40d8, 0x52db, 0x6258, 0x13fa, 0x3fe0, 0x0cdc,
3005                0x6c69, 0x4fa8, 0x7bc7, 0x66e7, 0x1417, 0x368a, 0x46fc, 0x1850,
3006                0x2a1d, 0x2622, 0x3877, 0x524a, 0x64b0, 0x6391, 0x2f16, 0x5b7c,
3007            }, .{
3008                0x4c22, 0x7689, 0x57ba, 0x04b5, 0x2720, 0x081e, 0x25e4, 0x3f89,
3009                0x3065, 0x2d1e, 0x0386, 0x0f0c, 0x740a, 0x5fa5, 0x6b0a, 0x1fda,
3010                0x2b3c, 0x5e71, 0x77c5, 0x3e29, 0x6a2e, 0x147e, 0x79a1, 0x77f6,
3011                0x4bdd, 0x7fb1, 0x632c, 0x3898, 0x3dd3, 0x78b3, 0x75b9, 0x4960,
3012            });
3013            try testArgs(@Vector(64, u15), .{
3014                0x2bb1, 0x0225, 0x151a, 0x056c, 0x0655, 0x3f5b, 0x5fea, 0x000a,
3015                0x4f56, 0x7e08, 0x20b4, 0x4f64, 0x0da1, 0x74a0, 0x11b7, 0x38c7,
3016                0x7a25, 0x6608, 0x50a7, 0x79b8, 0x5444, 0x4cc4, 0x110d, 0x1cf0,
3017                0x5a2e, 0x4462, 0x03dc, 0x785a, 0x2d1c, 0x4592, 0x1855, 0x14c6,
3018                0x2c4d, 0x7ae3, 0x7b45, 0x6cb0, 0x197d, 0x6fcc, 0x269e, 0x6f98,
3019                0x7527, 0x7895, 0x0259, 0x2b3f, 0x181a, 0x5f50, 0x401d, 0x54d2,
3020                0x2acc, 0x0aa8, 0x6822, 0x5d64, 0x3459, 0x5823, 0x4e62, 0x395e,
3021                0x339f, 0x0b56, 0x25b8, 0x0c30, 0x5b3d, 0x7005, 0x0411, 0x074d,
3022            }, .{
3023                0x155c, 0x6c07, 0x5880, 0x1766, 0x661b, 0x5cfd, 0x1fb9, 0x67e1,
3024                0x617c, 0x2bb4, 0x251b, 0x7ace, 0x4940, 0x584b, 0x708c, 0x3849,
3025                0x0cdb, 0x3204, 0x4667, 0x7bee, 0x3279, 0x4c74, 0x7561, 0x2d6f,
3026                0x5676, 0x530e, 0x39a1, 0x7c05, 0x1b23, 0x7bd7, 0x25ce, 0x7e97,
3027                0x56c0, 0x0d59, 0x17f7, 0x6fed, 0x3b0e, 0x7470, 0x52a4, 0x5da3,
3028                0x17c8, 0x2a51, 0x031f, 0x5879, 0x22bb, 0x674e, 0x3a55, 0x13a2,
3029                0x1fef, 0x1cd8, 0x5067, 0x6602, 0x3d5b, 0x2f5e, 0x4b7f, 0x6cfc,
3030                0x197d, 0x5afc, 0x4254, 0x07de, 0x6b37, 0x07d5, 0x4435, 0x0b29,
3031            });
3032
3033            try testArgs(@Vector(1, i16), .{
3034                -0x7b9c,
3035            }, .{
3036                0x600a,
3037            });
3038            try testArgs(@Vector(2, i16), .{
3039                0x43cc, -0x1421,
3040            }, .{
3041                -0x2b0e, 0x4d99,
3042            });
3043            try testArgs(@Vector(4, i16), .{
3044                0x558f, 0x6d92, 0x488f, 0x0a04,
3045            }, .{
3046                -0x01a9,
3047                0x2ee4,
3048                0x24a9,
3049                -0x5fee,
3050            });
3051            try testArgs(@Vector(8, i16), .{
3052                -0x7e5d, -0x02e4, -0x3a72, -0x2e30, 0x7c87, 0x3ea0, 0x4f02, 0x06e4,
3053            }, .{
3054                -0x417f, 0x5a13, -0x117b, 0x4c28, -0x3769, -0x56a8, 0x1656, -0x4431,
3055            });
3056            try testArgs(@Vector(16, i16), .{
3057                0x04be,  0x774a, 0x7395,  -0x6ca2, -0x21a0, 0x35be, 0x186c,  0x5991,
3058                -0x1a82, 0x4527, -0x2278, -0x3554, 0x42c1,  0x7f53, -0x670d, 0x1fad,
3059            }, .{
3060                0x7a7d,  0x47dd,  0x1975,  0x4028, 0x26ef,  -0x24f5, -0x77c9, -0x19a5,
3061                -0x4b04, -0x6939, -0x1b8d, 0x3718, -0x78e6, 0x0941,  -0x1208, -0x392d,
3062            });
3063            try testArgs(@Vector(32, i16), .{
3064                0x4cde,  0x3ab0,  0x354e,  0x0bc0,  -0x5333, 0x4857,  -0x7ccf, -0x69da,
3065                0x6ab8,  0x2bf3,  0x1c5a,  0x7b11,  -0x5653, 0x7bc5,  0x497e,  -0x0b55,
3066                0x7aa8,  -0x5a8c, -0x6d05, 0x6210,  0x1b64,  0x3f6f,  0x1a02,  0x65e4,
3067                -0x6795, 0x5867,  -0x6faf, -0x07cb, -0x762c, -0x7500, 0x1f1c,  -0x4348,
3068            }, .{
3069                0x72f6,  -0x5405, -0x3aac, 0x2857,  0x34cd,  -0x1dce, -0x56d8, 0x7150,
3070                -0x6549, 0x61bd,  -0x3a9f, -0x1e02, -0x5a5a, -0x7910, -0x166d, 0x7c8e,
3071                -0x5292, -0x6c6e, -0x37e3, 0x1514,  0x1787,  0x58cb,  -0x4d99, -0x6c15,
3072                0x592e,  -0x045f, 0x7682,  -0x1eef, 0x1fb2,  -0x7117, -0x2a17, -0x2d8e,
3073            });
3074            try testArgs(@Vector(64, i16), .{
3075                0x29c3,  -0x1b1f, -0x17ce, -0x50d0, -0x5de3, 0x5ffd,  0x184a,  -0x7769,
3076                0x445e,  0x0d8a,  0x7844,  -0x757d, 0x2b32,  0x5374,  -0x6ab2, -0x71c4,
3077                0x38f9,  0x347f,  0x2d4c,  0x69a4,  -0x2f92, -0x4479, 0x427b,  -0x0c5f,
3078                0x15ae,  0x2c86,  0x1864,  -0x0095, 0x6803,  -0x3484, 0x1001,  -0x0560,
3079                -0x0824, 0x7bf6,  0x7a3c,  -0x458a, -0x65cc, -0x54b1, -0x75c6, 0x782e,
3080                0x35a7,  -0x3188, -0x58ba, 0x40d0,  -0x4a9c, 0x6b79,  0x1ef5,  0x67a2,
3081                -0x3fb8, 0x1885,  -0x093d, -0x4802, 0x0379,  0x2f52,  0x7f1f,  0x256c,
3082                0x1052,  0x1b3b,  -0x6146, 0x7e0d,  0x79ca,  -0x79ee, 0x3d58,  0x7482,
3083            }, .{
3084                -0x0017, -0x3fdd, -0x6f93, 0x6178,  0x5c2b,  0x4eb3,  0x685b,  0x12c8,
3085                0x0290,  -0x34f4, -0x6572, 0x3ab6,  -0x3ed1, -0x5e5f, 0x3a90,  -0x4540,
3086                -0x2098, 0x6bde,  0x1246,  0x2212,  -0x4d6a, -0x2a5a, 0x5cc4,  -0x240f,
3087                0x51b2,  0x5ec0,  -0x5b5f, -0x1b6e, -0x57a5, -0x06bd, -0x5132, 0x7889,
3088                0x2817,  0x6ada,  -0x6b46, -0x6a37, -0x6475, -0x5ff4, 0x5a27,  0x1dfa,
3089                0x6bd6,  -0x49da, -0x09bf, -0x7c53, 0x2cd3,  -0x6be0, -0x2dca, 0x44bd,
3090                -0x1b95, 0x7680,  -0x5bb0, 0x7ad7,  -0x1988, 0x149f,  0x631e,  -0x1d2d,
3091                0x632b,  0x55c7,  -0x3433, 0x0dde,  -0x27a7, 0x560e,  -0x2063, 0x4570,
3092            });
3093
3094            try testArgs(@Vector(1, u16), .{
3095                0x9d6f,
3096            }, .{
3097                0x44b1,
3098            });
3099            try testArgs(@Vector(2, u16), .{
3100                0xa0fa, 0xc365,
3101            }, .{
3102                0xe736, 0xc394,
3103            });
3104            try testArgs(@Vector(4, u16), .{
3105                0x9608, 0xa558, 0x161b, 0x206f,
3106            }, .{
3107                0x3088, 0xf25c, 0x7837, 0x9b3f,
3108            });
3109            try testArgs(@Vector(8, u16), .{
3110                0xcf61, 0xb121, 0x3cf1, 0x3e9f, 0x43a7, 0x8d69, 0x96f5, 0xc11e,
3111            }, .{
3112                0xee30, 0x82f0, 0x270b, 0x1498, 0x4c60, 0x6e72, 0x0b64, 0x02d4,
3113            });
3114            try testArgs(@Vector(16, u16), .{
3115                0x9191, 0xd23e, 0xf844, 0xd84a, 0xe907, 0xf1e8, 0x712d, 0x90af,
3116                0x6541, 0x3fa6, 0x92eb, 0xe35a, 0xc0c9, 0xcb47, 0xb790, 0x4453,
3117            }, .{
3118                0x21c3, 0x4039, 0x9b71, 0x60bd, 0xcd7f, 0x2ec8, 0x50ba, 0xe810,
3119                0xebd4, 0x06e5, 0xed18, 0x2f66, 0x7e31, 0xe282, 0xad63, 0xb25e,
3120            });
3121            try testArgs(@Vector(32, u16), .{
3122                0x6b6a, 0x30a9, 0xc267, 0x2231, 0xbf4c, 0x00bc, 0x9c2c, 0x2928,
3123                0xecad, 0x82df, 0xcfb0, 0xa4e5, 0x909b, 0x1b05, 0xaf40, 0x1fd9,
3124                0xcec6, 0xd8dc, 0xd4b5, 0x6d59, 0x8e3f, 0x4d8a, 0xb83a, 0x808e,
3125                0x47e2, 0x5782, 0x59bf, 0xcefc, 0x5179, 0x3f48, 0x93dc, 0x66d2,
3126            }, .{
3127                0x1be8, 0xe98c, 0xf9b3, 0xb008, 0x2f8d, 0xf087, 0xc9b9, 0x75aa,
3128                0xbd16, 0x9540, 0xc5bd, 0x2b2c, 0xd43f, 0x9394, 0x3e1d, 0xf695,
3129                0x167d, 0xff7a, 0xf09d, 0xdff8, 0xdfa2, 0xc779, 0x70b7, 0x01bd,
3130                0x46b3, 0x995a, 0xb7bc, 0xa79d, 0x5542, 0x961e, 0x37cd, 0x9c2a,
3131            });
3132            try testArgs(@Vector(64, u16), .{
3133                0x6b87, 0xfd84, 0x436b, 0xe345, 0xfb82, 0x81fc, 0x0992, 0x45f9,
3134                0x5527, 0x1f6d, 0xda46, 0x6a16, 0xf6e1, 0x8fb7, 0x3619, 0xdfe3,
3135                0x64ce, 0x8ac6, 0x3ae8, 0x30e3, 0xec3b, 0x4ba7, 0x02a4, 0xa694,
3136                0x8e68, 0x8f0c, 0x5e30, 0x0e55, 0x6538, 0x9852, 0xea35, 0x7be2,
3137                0xdabd, 0x57e6, 0x5b38, 0x0fb2, 0x2604, 0x85e7, 0x6595, 0x8de9,
3138                0x49b1, 0xe9a2, 0x3758, 0xa4d9, 0x505b, 0xc9d3, 0xddc5, 0x9a43,
3139                0xfd44, 0x50f5, 0x379e, 0x03b6, 0x6375, 0x692f, 0x5586, 0xc717,
3140                0x94dd, 0xee06, 0xb32d, 0x0bb9, 0x0e35, 0x5f8f, 0x0ba4, 0x19a8,
3141            }, .{
3142                0xbeeb, 0x3e54, 0x6486, 0x5167, 0xe432, 0x57cf, 0x9cac, 0x922e,
3143                0xd2f8, 0x5614, 0x2e7f, 0x19cf, 0x9a07, 0x0524, 0x168f, 0x4464,
3144                0x4def, 0x83ce, 0x97b4, 0xf269, 0xda5f, 0x28c1, 0x9cc3, 0xfa7c,
3145                0x25a0, 0x912d, 0x25b2, 0xd60d, 0xcd82, 0x0e03, 0x40cc, 0xc9dc,
3146                0x18eb, 0xc609, 0xb06d, 0x29e0, 0xf3c7, 0x997b, 0x8ca2, 0xa750,
3147                0xc9bc, 0x8f0e, 0x3916, 0xd905, 0x94f8, 0x397f, 0x98b5, 0xc61d,
3148                0x05db, 0x3e7a, 0xf750, 0xe8de, 0x3225, 0x81d9, 0x612e, 0x0a7e,
3149                0x2c02, 0xff5b, 0x19ca, 0xbbf5, 0x870e, 0xc9ca, 0x47bb, 0xcfcc,
3150            });
3151
3152            try testArgs(@Vector(1, i17), .{
3153                0x0538f,
3154            }, .{
3155                0x01de0,
3156            });
3157            try testArgs(@Vector(2, i17), .{
3158                0x0cb5d, 0x00c0b,
3159            }, .{
3160                -0x0ef1d, -0x0797c,
3161            });
3162            try testArgs(@Vector(4, i17), .{
3163                -0x06cbb, 0x08fcd, 0x05d91, -0x05824,
3164            }, .{
3165                0x0714b, 0x09218, -0x0c0d8, 0x000dd,
3166            });
3167            try testArgs(@Vector(8, i17), .{
3168                0x0d8db, 0x0c58a, 0x09110, 0x0d637, -0x0a7e5, -0x00bc2, 0x08ffb, -0x0cf79,
3169            }, .{
3170                0x0a1ce, 0x0b491, 0x0aff1, -0x0b794, -0x085e7, 0x05c84, 0x040bc, 0x0f21f,
3171            });
3172            try testArgs(@Vector(16, i17), .{
3173                -0x0ccb0, -0x04d27, -0x0199e, -0x06dae, 0x0b1a1, 0x05324, -0x0edee, -0x0e52d,
3174                0x042d2,  0x06121,  0x0241f,  0x06833,  0x0a33b, 0x0f526, 0x0671a,  0x0c2a3,
3175            }, .{
3176                0x02be2, -0x08589, 0x0d95c,  -0x001cc, -0x03183, 0x08c1a,  -0x001db, 0x07604,
3177                0x08d92, 0x094ad,  -0x08aa5, -0x0b495, -0x0d6cd, -0x0dff1, -0x027f1, -0x0214e,
3178            });
3179            try testArgs(@Vector(32, i17), .{
3180                0x01222,  0x022bc,  0x042df,  0x02205,  -0x06de8, -0x0aaaf, 0x0fa4c,  -0x0c708,
3181                -0x06edd, -0x0acbe, 0x0b01f,  0x003f5,  -0x0b82a, 0x0a189,  -0x04f4b, 0x02122,
3182                -0x0debd, -0x0b05f, 0x091b6,  -0x074ff, 0x054e5,  -0x03355, 0x08ab0,  0x0c3c8,
3183                -0x0f488, -0x04304, -0x0168e, -0x0224a, -0x0cbaa, 0x0ac99,  -0x0f096, 0x0e064,
3184            }, .{
3185                0x0d1c0,  0x02f93,  0x0e28c,  0x0862d,  -0x09e1e, -0x02247, -0x01b56, 0x06633,
3186                0x0fdcc,  -0x0731f, 0x0e084,  0x0b865,  0x089ac,  -0x09e31, 0x0c730,  0x0af1d,
3187                0x0c9b2,  -0x0bbbd, -0x0f0a4, -0x0aba7, 0x0e593,  -0x02c83, -0x04e28, 0x0f375,
3188                -0x0e805, 0x0390f,  0x042a3,  -0x02aed, 0x03a5a,  0x070d3,  -0x0ed6a, 0x02b14,
3189            });
3190            try testArgs(@Vector(64, i17), .{
3191                0x0be66,  0x0e4fb,  -0x0b918, -0x029b8, 0x019e8,  0x00621,  0x0e380,  0x040f6,
3192                -0x0d095, 0x0b4d8,  -0x0a3ad, -0x0eaf2, 0x03bd3,  0x0635c,  0x02444,  -0x0830f,
3193                0x01239,  -0x037ed, -0x071d1, 0x057e7,  -0x02cdb, 0x0504c,  0x0612c,  -0x005bf,
3194                -0x04793, 0x03909,  0x0061c,  -0x06423, 0x040d6,  0x0bc6a,  -0x09204, 0x0e890,
3195                0x04b98,  0x00257,  0x0dc85,  -0x0af2b, -0x0a1e7, 0x04ff6,  0x0b680,  -0x07c61,
3196                -0x0eaff, -0x0da01, -0x04b21, -0x0088d, 0x068a8,  0x06b52,  -0x0d619, -0x09344,
3197                -0x09b96, 0x0b81e,  0x04df8,  -0x012f6, -0x0c3bd, 0x067cc,  -0x0fa47, -0x05e93,
3198                0x07d29,  0x00d87,  0x0de1f,  0x0d24f,  -0x0aede, -0x03414, -0x09a6c, 0x094dc,
3199            }, .{
3200                0x03d8e,  -0x0f297, -0x0d810, 0x05b8e,  -0x0630e, -0x0656f, 0x02f56,  0x0190b,
3201                0x0a1e6,  -0x0783a, -0x00bde, 0x01bb2,  -0x093a5, -0x02b3f, 0x0198c,  0x0cc55,
3202                0x04ec1,  -0x0ed31, -0x00a80, -0x0be6d, 0x0712b,  0x0451b,  0x067a4,  0x061cd,
3203                0x0e799,  -0x06c74, -0x09b05, 0x0dc73,  -0x0a87d, -0x0cf60, -0x00f07, 0x0b101,
3204                0x06d5b,  0x09d61,  -0x01092, 0x002ee,  0x0f192,  0x0024b,  0x04778,  0x06d05,
3205                -0x0e460, 0x08524,  -0x0ba27, -0x0611e, -0x0d944, -0x0a3de, -0x0c278, 0x015e5,
3206                0x071fe,  0x016d5,  -0x076e2, -0x035d8, 0x02763,  -0x0676f, -0x0a9aa, -0x0ab0b,
3207                0x012de,  -0x00d05, 0x0f528,  0x07837,  0x0fc4e,  -0x06304, 0x0616f,  -0x0b10d,
3208            });
3209
3210            try testArgs(@Vector(1, u17), .{
3211                0x17ba6,
3212            }, .{
3213                0x1ac3a,
3214            });
3215            try testArgs(@Vector(2, u17), .{
3216                0x1d26d, 0x18548,
3217            }, .{
3218                0x0c0eb, 0x1bbc8,
3219            });
3220            try testArgs(@Vector(4, u17), .{
3221                0x1a01c, 0x12671, 0x175cc, 0x0ed36,
3222            }, .{
3223                0x141d6, 0x1b2bc, 0x1c2b9, 0x1eb18,
3224            });
3225            try testArgs(@Vector(8, u17), .{
3226                0x0cb1b, 0x0f5ce, 0x1eba1, 0x04fdc, 0x0510f, 0x02c4c, 0x09310, 0x132df,
3227            }, .{
3228                0x1b732, 0x0b446, 0x048a7, 0x04c58, 0x03a0b, 0x19346, 0x07688, 0x1d4d5,
3229            });
3230            try testArgs(@Vector(16, u17), .{
3231                0x1e6a3, 0x0eae5, 0x1065a, 0x18766, 0x1b70a, 0x1605b, 0x18256, 0x1e254,
3232                0x0d926, 0x0f023, 0x1d9de, 0x14549, 0x051dd, 0x1e89e, 0x0baba, 0x00f38,
3233            }, .{
3234                0x1e050, 0x0f727, 0x1dfef, 0x151a6, 0x05593, 0x04a79, 0x1c54c, 0x147b6,
3235                0x07173, 0x0480b, 0x094a6, 0x105ce, 0x0540c, 0x19d78, 0x15501, 0x1133a,
3236            });
3237            try testArgs(@Vector(32, u17), .{
3238                0x0d98a, 0x1c869, 0x12b2b, 0x1fc00, 0x00b1b, 0x1c7b9, 0x09dd0, 0x1b560,
3239                0x1f409, 0x18cdf, 0x04275, 0x07da6, 0x069e5, 0x12aa8, 0x0513a, 0x0dea5,
3240                0x00df4, 0x1f8da, 0x0df92, 0x07885, 0x1c4d7, 0x14e64, 0x09648, 0x040cb,
3241                0x04fc6, 0x122cb, 0x1022d, 0x1bbd5, 0x0fd59, 0x1978f, 0x17d5a, 0x06299,
3242            }, .{
3243                0x0086f, 0x023b6, 0x0d964, 0x0e90b, 0x1bd4b, 0x18f58, 0x09f26, 0x0a831,
3244                0x00c03, 0x03ad1, 0x01c05, 0x1aded, 0x1d300, 0x12529, 0x14124, 0x1e684,
3245                0x1b40d, 0x09328, 0x1a3b6, 0x1e492, 0x00f2a, 0x13b51, 0x1606e, 0x1d7f1,
3246                0x0a5e6, 0x04172, 0x1aaea, 0x1e96f, 0x1c3ae, 0x11494, 0x06aac, 0x01dee,
3247            });
3248            try testArgs(@Vector(64, u17), .{
3249                0x1b753, 0x10620, 0x0c1de, 0x1fa10, 0x118bf, 0x0a549, 0x06b32, 0x095dc,
3250                0x177a2, 0x0aee7, 0x0f2cf, 0x118e0, 0x0b694, 0x0f270, 0x00917, 0x0048c,
3251                0x1d903, 0x1de14, 0x10aa2, 0x06885, 0x1bba1, 0x0a5c5, 0x19373, 0x01355,
3252                0x153f9, 0x18b94, 0x0e8a3, 0x0cc07, 0x0a014, 0x0f9ed, 0x02d95, 0x18388,
3253                0x01de4, 0x0c8fa, 0x15858, 0x0ff57, 0x1fc97, 0x18d83, 0x11836, 0x0f136,
3254                0x0d4e3, 0x1742d, 0x09f22, 0x088cf, 0x134f8, 0x1b9a8, 0x11fd2, 0x18428,
3255                0x17411, 0x146e1, 0x0edea, 0x1d57d, 0x04059, 0x18b93, 0x10fc8, 0x01cd7,
3256                0x12d54, 0x0cb27, 0x04fc3, 0x0d479, 0x0202c, 0x0cfab, 0x11e82, 0x000e7,
3257            }, .{
3258                0x0122f, 0x06698, 0x0c704, 0x012de, 0x0e36c, 0x0d81b, 0x00d34, 0x10ad6,
3259                0x1f156, 0x00fca, 0x1f869, 0x1d14b, 0x13165, 0x1e11e, 0x1e60c, 0x00d18,
3260                0x164bf, 0x1881f, 0x18a59, 0x14f13, 0x04ef2, 0x0e2a7, 0x021b0, 0x15884,
3261                0x1ac75, 0x19969, 0x1353d, 0x073ec, 0x190ef, 0x1c777, 0x14b19, 0x12e43,
3262                0x1b93f, 0x06daf, 0x02a1f, 0x1a801, 0x0facc, 0x132db, 0x13fb2, 0x00791,
3263                0x11f11, 0x0ebc1, 0x0a376, 0x10e6d, 0x0321c, 0x154d7, 0x01180, 0x0cce1,
3264                0x1a449, 0x0383b, 0x0d5bb, 0x0e5dd, 0x07e94, 0x08f78, 0x1c681, 0x1a146,
3265                0x170db, 0x0da34, 0x1bd7f, 0x07a96, 0x0a017, 0x0b946, 0x0f98a, 0x0e9e5,
3266            });
3267
3268            try testArgs(@Vector(1, i31), .{
3269                0x2b94a60e,
3270            }, .{
3271                0x20451023,
3272            });
3273            try testArgs(@Vector(2, i31), .{
3274                0x21d4d18c, -0x1f73454a,
3275            }, .{
3276                -0x18dcc667, -0x2e81b7f1,
3277            });
3278            try testArgs(@Vector(4, i31), .{
3279                -0x1d8f56b6, -0x2beae9b1, 0x3d488b10, -0x14ce8669,
3280            }, .{
3281                -0x03a922a5, -0x0ea0c434, -0x029db0c1, -0x3b8d64f3,
3282            });
3283            try testArgs(@Vector(8, i31), .{
3284                0x0ffaa22c,  0x15914f94,  -0x20cec195, -0x35e7b06a,
3285                -0x1d212622, -0x2bb576e4, -0x0dede257, 0x1cc1066e,
3286            }, .{
3287                -0x178ffdb4, -0x10934a93, 0x08c3b058,  -0x1579a89f,
3288                0x2340c302,  0x00280e85,  -0x38983c31, 0x0349891e,
3289            });
3290            try testArgs(@Vector(16, i31), .{
3291                -0x11bc6f72, 0x1ca1ca00,  0x0b49c711,  -0x07fd7d21,
3292                0x20ab59d2,  -0x07f45e94, -0x0d33151d, 0x065b8bff,
3293                0x2231354e,  0x21ff00a7,  -0x35061bb0, -0x1135899e,
3294                0x2ed1c690,  -0x1c1b598f, -0x19157726, -0x11c4d2c7,
3295            }, .{
3296                0x304dbbfb,  -0x3e59fd39, 0x1029151a,  -0x1e4d2063,
3297                -0x3e164c14, -0x35fb3d09, -0x22070b0d, 0x1b730749,
3298                0x380ae142,  0x357f1b30,  -0x17ccaa0d, -0x32cd12b4,
3299                0x305256f7,  -0x298ce473, 0x244faaf4,  0x23450241,
3300            });
3301            try testArgs(@Vector(32, i31), .{
3302                -0x2e3a0d66, -0x0df709be, 0x3bfd8b3f,  0x2a4f2d06,
3303                -0x2b7ea7af, -0x28016bef, -0x34a3b4f9, -0x2dfdded7,
3304                0x357e8c45,  0x0434b6b9,  0x28a3c5f9,  0x2d5b9944,
3305                0x316614a1,  0x0c12a228,  0x0422665d,  0x33c0dec9,
3306                0x0a7ede17,  -0x02e88ae9, -0x39e76560, 0x1e4b90af,
3307                0x0a1527bb,  0x3a9f0405,  0x163b6eae,  -0x3ff84429,
3308                0x1eb85fcc,  0x265f1f44,  0x2536ec34,  -0x30c952a2,
3309                -0x1f7864e5, 0x033737cd,  -0x20b5718a, -0x0aad3a2f,
3310            }, .{
3311                -0x2455af85, 0x210b1040,  0x39915c7d,  0x2d56c08e,
3312                0x1f318b8d,  -0x1e125926, -0x3faaabbb, -0x254d4da5,
3313                -0x1b2ded0f, -0x27fa4874, 0x02c0d73b,  0x123e9344,
3314                0x0351c023,  0x14cca255,  -0x2072b9d7, 0x1e624059,
3315                -0x07d014a1, 0x2eda3228,  -0x300ff9b4, 0x333f25ad,
3316                -0x3c653e21, 0x04b4a50e,  -0x20f17e80, 0x29063cd1,
3317                0x2d52f6ad,  -0x0b2cdb6b, -0x2e4c9778, 0x303ded7c,
3318                0x397162ee,  -0x2aa6708b, -0x0ef146b4, 0x04f36039,
3319            });
3320
3321            try testArgs(@Vector(1, u31), .{
3322                0x3ed1fb2d,
3323            }, .{
3324                0x1b75c3fd,
3325            });
3326            try testArgs(@Vector(2, u31), .{
3327                0x38754d45, 0x04a454d9,
3328            }, .{
3329                0x7d06646d, 0x228e6c44,
3330            });
3331            try testArgs(@Vector(4, u31), .{
3332                0x725a3790, 0x43680c3d, 0x058a6acf, 0x76172c1c,
3333            }, .{
3334                0x77fa9932, 0x7354fc00, 0x1756db7a, 0x559bf7c1,
3335            });
3336            try testArgs(@Vector(8, u31), .{
3337                0x375a41f8, 0x761db971, 0x1c633348, 0x556c2682,
3338                0x2478e967, 0x4fc61f7d, 0x0b0c0fbc, 0x3989659e,
3339            }, .{
3340                0x2cd6c7c1, 0x518c1da4, 0x2a52dd59, 0x0a9165dd,
3341                0x5f2a31fd, 0x04dd2dba, 0x6eb0e7f6, 0x078c7a78,
3342            });
3343            try testArgs(@Vector(16, u31), .{
3344                0x4d4ae18f, 0x3f131977, 0x337240bd, 0x4461dafc,
3345                0x36bf5c5f, 0x527cca5e, 0x788a765b, 0x51da84b2,
3346                0x58afe262, 0x289694c8, 0x7f3dc333, 0x05f123e9,
3347                0x49182e11, 0x05ec0bb8, 0x0a760c6a, 0x4e74999f,
3348            }, .{
3349                0x107f6e90, 0x38d44d8e, 0x4b3adb3c, 0x7d6c21c0,
3350                0x3ec0863b, 0x72422c85, 0x45e72de4, 0x07fc07d3,
3351                0x7e30044d, 0x3ee5687d, 0x34037d8f, 0x1f3e1e71,
3352                0x77aec6b0, 0x02db5151, 0x697fe49b, 0x49f9ad57,
3353            });
3354            try testArgs(@Vector(32, u31), .{
3355                0x3b815f8c, 0x01c443d3, 0x22f036bf, 0x3d86e477,
3356                0x3f631301, 0x51df4ff2, 0x7edd9a1c, 0x1b8d97fc,
3357                0x7758837d, 0x23944d5a, 0x6b6fe951, 0x1cea3c27,
3358                0x27033a47, 0x00b7643b, 0x407e47c9, 0x6004a994,
3359                0x2efac78c, 0x22720791, 0x4308438b, 0x7776b2be,
3360                0x139db08a, 0x4d9068a5, 0x4e26c811, 0x5e05d0a0,
3361                0x0a651f83, 0x7f7a1fcc, 0x6b0f3eb0, 0x3467ea73,
3362                0x4827410b, 0x3e48eece, 0x73a3abf5, 0x212b7737,
3363            }, .{
3364                0x13031751, 0x08fb38ec, 0x4aff2c4e, 0x25046a42,
3365                0x0e9e35bf, 0x27349249, 0x54067ba1, 0x5a229b53,
3366                0x6e68895f, 0x74f3d476, 0x6584d407, 0x0ef73f77,
3367                0x2473e0ce, 0x3b936b7c, 0x2cf9dd51, 0x7100aa6b,
3368                0x6dca745e, 0x739f6346, 0x32407063, 0x40de144d,
3369                0x3dc73803, 0x3afedeab, 0x56cbbfe7, 0x4273c6db,
3370                0x7b2eeb85, 0x6bf11881, 0x4e8148c7, 0x7b8daec4,
3371                0x75c63050, 0x0001d08d, 0x7f14dd77, 0x13f23338,
3372            });
3373
3374            try testArgs(@Vector(1, i32), .{
3375                0x7aef7b1e,
3376            }, .{
3377                0x60310858,
3378            });
3379            try testArgs(@Vector(2, i32), .{
3380                -0x21910ac9, 0x669f37ef,
3381            }, .{
3382                0x1a2a1681, 0x003b1fdf,
3383            });
3384            try testArgs(@Vector(4, i32), .{
3385                0x7906cf0d, 0x4818a45f, -0x0a2833b6, 0x51a018c9,
3386            }, .{
3387                -0x05a3e6a7, -0x47f4a500, 0x50d1141f, -0x264c85c2,
3388            });
3389            try testArgs(@Vector(8, i32), .{
3390                0x7566235a,  -0x7720144f, -0x7d4f5489, 0x3cd736c8,
3391                -0x77388801, 0x4e7f955a,  0x4cdf52bc,  0x50b0b53f,
3392            }, .{
3393                0x00ed6fc5, 0x37320361, 0x70c563c2,  -0x09acb495,
3394                0x0688e83f, 0x797295c4, -0x23bfbfdb, 0x38552096,
3395            });
3396            try testArgs(@Vector(16, i32), .{
3397                -0x0214589d, 0x74a7537f,  0x7a7dcb26, 0x3e2e4c44,
3398                -0x23bfc358, 0x60e8ef18,  0x5524a7bc, -0x3d88c153,
3399                -0x7dc8ff0f, 0x6e2698f6,  0x05641ab8, -0x45e9e405,
3400                -0x7c1a04d0, -0x4a8d1e91, 0x41d56723, 0x4ba924ab,
3401            }, .{
3402                -0x528dc756, -0x6bc217f4, 0x40789b06, 0x65f08d3a,
3403                -0x077140ea, -0x43bdaa79, 0x5d98f4e7, -0x2356a1ca,
3404                -0x36ef2b49, -0x7cd09b06, 0x71c8176e, 0x5b005860,
3405                0x6ce8cfab,  -0x49fd7609, 0x6cbb4e33, 0x6c7c121d,
3406            });
3407            try testArgs(@Vector(32, i32), .{
3408                0x7d22905d,  -0x354e4bbe, -0x68662618, -0x246e1858,
3409                -0x1c4285a9, -0x0338059c, -0x60f5bbf4, -0x04f06917,
3410                -0x55f837b6, -0x2fba5fe3, 0x092aabf4,  -0x5f533b31,
3411                0x6e81a558,  -0x7bcac358, 0x6c4d8d04,  0x3e2f9852,
3412                -0x78589b1a, -0x68a00fd4, -0x77d55e25, 0x7f79b51c,
3413                -0x66b88f45, 0x7f6dc8a5,  -0x27299a82, -0x426c8e1c,
3414                0x0c288f16,  0x158f8c3f,  0x26708be1,  -0x0b73626e,
3415                -0x32df1bee, 0x196330f4,  -0x68bb9529, -0x26376ab6,
3416            }, .{
3417                0x63bd0bd4,  0x4e507611,  -0x5e5222b8, -0x35d8e114,
3418                0x1feab77b,  -0x20de7dfd, -0x0ed0b09f, -0x7fc3d585,
3419                -0x2d3018e9, -0x261d431b, 0x54451864,  0x1415288f,
3420                -0x3ab89593, -0x7060e4c1, -0x54fcd501, -0x26324630,
3421                0x53fc8294,  0x2d4aceef,  -0x4ac8efd2, -0x2fec97b7,
3422                -0x4de3a2fc, 0x2269fe52,  -0x58c8b473, -0x21026285,
3423                -0x23438776, 0x3d5c8c41,  -0x1fc946b2, -0x161c7005,
3424                0x44913ff1,  -0x76e2bfaa, -0x54636350, -0x6ec53870,
3425            });
3426
3427            try testArgs(@Vector(1, u32), .{
3428                0x1d0d9cc4,
3429            }, .{
3430                0xce2d0ab6,
3431            });
3432            try testArgs(@Vector(2, u32), .{
3433                0x5ab78c03, 0xd21bb513,
3434            }, .{
3435                0x8a6664eb, 0x79eac37d,
3436            });
3437            try testArgs(@Vector(4, u32), .{
3438                0x234d576e, 0x4151cc9c, 0x39f558e4, 0xba935a32,
3439            }, .{
3440                0x398f2a9d, 0x4540f093, 0x9225551c, 0x3bac865b,
3441            });
3442            try testArgs(@Vector(8, u32), .{
3443                0xb8336635, 0x2fc3182c, 0x27a00123, 0x71587fbe,
3444                0x9cbc65d2, 0x6f4bb0e6, 0x362594ce, 0x9971df38,
3445            }, .{
3446                0x5727e734, 0x972b0313, 0xff25f5dc, 0x924f8e55,
3447                0x04920a61, 0xa1c3b334, 0xf52df4b6, 0x5ef72ecc,
3448            });
3449            try testArgs(@Vector(16, u32), .{
3450                0xfb566f9e, 0x9ad4691a, 0x5b5f9ec0, 0x5a572d2a,
3451                0x8f2f226b, 0x2dfc7e33, 0x9fb07e32, 0x9d672a2e,
3452                0xbedc3cee, 0x6872428d, 0xbc73a9fd, 0xd4d5f055,
3453                0x69c1e9ee, 0x65038deb, 0x1449061a, 0x48412ec2,
3454            }, .{
3455                0x96cbe946, 0x3f24f60b, 0xaeacdc53, 0x7611a8b4,
3456                0x031a67a8, 0x52a26828, 0x75646f4b, 0xb75902c3,
3457                0x1f881f08, 0x834e02a4, 0x5e5b40eb, 0xc75c264d,
3458                0xa8251e09, 0x28e46bbd, 0x12cb1f31, 0x9a2af615,
3459            });
3460            try testArgs(@Vector(32, u32), .{
3461                0x131bbb7b, 0xa7311026, 0x9d5e59a0, 0x99b090d6,
3462                0xfe969e2e, 0x04547697, 0x357d3250, 0x43be6d7a,
3463                0x16ecf5c5, 0xf60febcc, 0x1d1e2602, 0x138a96d2,
3464                0x9117ba72, 0x9f185b32, 0xc10e23fd, 0x3e6b7fd8,
3465                0x4dc9be70, 0x2ee30047, 0xaffeab60, 0x7172d362,
3466                0x6154bfcf, 0x5388dc3e, 0xd6e5a76e, 0x8b782f2d,
3467                0xacbef4a2, 0x843aca71, 0x25d8ab5c, 0xe1a63a39,
3468                0xc26212e5, 0x0847b84b, 0xb53541e5, 0x0c8e44db,
3469            }, .{
3470                0x4ad92822, 0x715b623f, 0xa5bed8a7, 0x937447a9,
3471                0x7ecb38eb, 0x0a2f3dfc, 0x96f467a2, 0xec882793,
3472                0x41a8707f, 0xf7310656, 0x76217b80, 0x2058e5fc,
3473                0x26682154, 0x87313e31, 0x4bdc480a, 0x193572ff,
3474                0x60b03c75, 0x0fe45908, 0x56c73703, 0xdb86554c,
3475                0xdda2dd7d, 0x34371b27, 0xe4e6ad50, 0x422d1828,
3476                0x1de3801b, 0xdce268d3, 0x20af9ec8, 0x188a591f,
3477                0xf080e943, 0xc8718d14, 0x3f920382, 0x18d101b5,
3478            });
3479
3480            try testArgs(@Vector(1, i33), .{
3481                0x0a9a3088e,
3482            }, .{
3483                0x06c76b26e,
3484            });
3485            try testArgs(@Vector(2, i33), .{
3486                0x0a9bd1d56, 0x05b0b9015,
3487            }, .{
3488                -0x05af6217c, 0x0227b5d3a,
3489            });
3490            try testArgs(@Vector(4, i33), .{
3491                -0x0405ee2ea, -0x0ff2c72eb, 0x0817f6727, 0x09093b663,
3492            }, .{
3493                -0x0ffdf18ee, 0x0956db821, -0x01ed194af, 0x059e085e9,
3494            });
3495            try testArgs(@Vector(8, i33), .{
3496                0x09d4fea1c,  0x0cd4254ba,  0x008d5f732,  0x0566c6f55,
3497                -0x01c2e54c3, -0x0469292fe, -0x00ba9ba6f, -0x076670146,
3498            }, .{
3499                0x02c01d901, 0x04407fcae,  -0x0e6a223a6, -0x0bd9499f8,
3500                0x0f9da76ed, -0x07483b289, -0x0bfc2d58e, -0x078b3055e,
3501            });
3502            try testArgs(@Vector(16, i33), .{
3503                -0x05a738cb0, -0x0be006f3e, 0x09271a365, 0x039d2f00d,
3504                -0x0d502b660, 0x0dd465278,  0x042a7e451, 0x03c1c3671,
3505                0x00eb6f4a9,  0x08982dbc4,  0x0421b8852, 0x015ee0e53,
3506                0x0e6924014,  0x0c6ddbc65,  0x00260ea59, 0x0d98aaedf,
3507            }, .{
3508                -0x0d285a53d, 0x0800f42de, -0x048e48809, -0x052d65f47,
3509                -0x0bda689e0, 0x0bc437a1b, -0x05cc595ba, 0x04b335861,
3510                -0x0f5ec6456, 0x0580ceda6, 0x06f0e76c9,  0x0b0064ff1,
3511                -0x0eae28371, 0x075c3c6b1, 0x07c8d26dd,  -0x06af4f476,
3512            });
3513            try testArgs(@Vector(32, i33), .{
3514                0x07b887609,  -0x004a23b00, 0x09b664a97,  -0x0d4932ed0,
3515                -0x01a63850e, -0x0a4298efc, -0x01e409b55, 0x01452fb7a,
3516                0x03d12175b,  -0x0463cd854, 0x0cf448f1d,  0x0d1d02e2e,
3517                -0x0da681c00, 0x0d1173267,  0x08faa4e2c,  0x0634c9df5,
3518                0x037e682e2,  0x0db055022,  -0x0641f3daa, 0x053852c9b,
3519                0x035822a2b,  -0x0b12bfe53, 0x084f704c9,  0x018cfacee,
3520                -0x07130725b, -0x0b301dece, 0x00e1765b3,  -0x0e0f0c97c,
3521                0x0ccd5e7fd,  -0x0ee60c481, -0x0c918345b, 0x04b2c6ec3,
3522            }, .{
3523                0x0df3d6e88,  0x00b4748ff,  -0x0d0381c05, -0x093d68cb5,
3524                -0x027834cc7, 0x05aa9ca20,  -0x04bc88f40, 0x080f0d937,
3525                0x06699a6b8,  -0x0fed64f1d, 0x0a79fe089,  -0x016a9c385,
3526                0x0186e6b5b,  -0x0a3c83fe6, 0x09a4f87ec,  0x011ce03bf,
3527                -0x0f742cb8c, 0x066be2e66,  -0x03b0beb52, 0x059bfda10,
3528                0x04bc221c0,  0x07d8b0344,  -0x0c6e34f34, -0x0de0338ce,
3529                -0x09571f80c, 0x0d36e8ea7,  -0x052c44147, 0x0072ce503,
3530                -0x0ef8dec64, 0x0b5956cb3,  -0x02b72b4b1, 0x0f2585167,
3531            });
3532
3533            try testArgs(@Vector(1, u33), .{
3534                0x197ead992,
3535            }, .{
3536                0x0be595917,
3537            });
3538            try testArgs(@Vector(2, u33), .{
3539                0x1485499a5, 0x1e12b23e3,
3540            }, .{
3541                0x1431cd300, 0x0762a7b51,
3542            });
3543            try testArgs(@Vector(4, u33), .{
3544                0x00d6f907d, 0x19a2c1e5e, 0x18a597564, 0x0bea832ed,
3545            }, .{
3546                0x004f8c83b, 0x18fd5422c, 0x1b02cb79b, 0x092af8ba2,
3547            });
3548            try testArgs(@Vector(8, u33), .{
3549                0x100a8bdce, 0x182aa3624, 0x0a0523393, 0x0cc8b944f,
3550                0x0797fe181, 0x19c2ef2f6, 0x1b43977a0, 0x1513a878a,
3551            }, .{
3552                0x10da86327, 0x16e25c8c1, 0x036e09027, 0x1d85d870c,
3553                0x0ff720340, 0x07d3901ec, 0x03df35db0, 0x0b3e4a05e,
3554            });
3555            try testArgs(@Vector(16, u33), .{
3556                0x1c323b838, 0x03e15bdff, 0x0d11e109b, 0x152199f53,
3557                0x1f3fc1542, 0x0e7b471e0, 0x0d291cc97, 0x1f5576bf6,
3558                0x1c64d5f2e, 0x1468c9947, 0x18f1bb596, 0x0250829ac,
3559                0x08d1b66a0, 0x1102178a6, 0x03eaf21e6, 0x1d0012275,
3560            }, .{
3561                0x11bcb3f84, 0x13150388c, 0x0e41a521a, 0x1c6c23e22,
3562                0x130ac516c, 0x02d3a49c2, 0x1dd028aca, 0x1b83e56ef,
3563                0x161d93875, 0x0a0fcb218, 0x1d27943a8, 0x09c919906,
3564                0x182582997, 0x1c2acc0c7, 0x1cb8a9324, 0x0f456f948,
3565            });
3566            try testArgs(@Vector(32, u33), .{
3567                0x1819f161e, 0x11b0c6f8b, 0x10e54ef82, 0x0f56ffe99,
3568                0x1c128ddba, 0x0c70e8d84, 0x15e26011b, 0x1ed2f16e4,
3569                0x1c498769a, 0x1b3a95b06, 0x0580ebb27, 0x16ef0aa01,
3570                0x00a5a7986, 0x011a5fbf1, 0x092059f35, 0x065d9a218,
3571                0x18b3c3508, 0x1f8a52f0b, 0x12a0c771c, 0x15c566333,
3572                0x0882ec701, 0x0856047ee, 0x06974b33a, 0x049a97da9,
3573                0x103730040, 0x0fabaaafc, 0x08e6b9887, 0x12e97722d,
3574                0x00a2e302f, 0x144df5d90, 0x1dcc2f7d4, 0x1b6a6c079,
3575            }, .{
3576                0x13e4aa8fb, 0x1ff2fa13d, 0x0fd3d4549, 0x10837c43c,
3577                0x1db62d7c2, 0x0e92f9f8b, 0x10c7ee602, 0x0e010e5f6,
3578                0x1b216ca4f, 0x15808c554, 0x1ff8df1f7, 0x0c30cb60b,
3579                0x191d83ae9, 0x17dc4326a, 0x1ff1e287e, 0x12e08bb58,
3580                0x17787d83b, 0x074306807, 0x0ad4d40f7, 0x157b2e8a1,
3581                0x1830cc0d0, 0x18e688eec, 0x1f87405f3, 0x19443ff22,
3582                0x16ebfdd93, 0x07bb98b57, 0x01cd6f301, 0x08adbcc33,
3583                0x1ffbcb919, 0x007455180, 0x1edbabfcb, 0x0b5519b97,
3584            });
3585
3586            try testArgs(@Vector(1, i63), .{
3587                -0x2d99033c3223ad4f,
3588            }, .{
3589                0x023c8c6807737a0e,
3590            });
3591            try testArgs(@Vector(2, i63), .{
3592                -0x08fe3255607ce099, -0x3bf678cfa16a59d2,
3593            }, .{
3594                -0x1b8733d130c49d54, 0x39deb4fe6c836b3f,
3595            });
3596            try testArgs(@Vector(4, i63), .{
3597                0x1e81cf3e0f9eae80, -0x0886f09bd1723b08,
3598                0x16e84b8d985e5b82, 0x0fa327538c09a281,
3599            }, .{
3600                -0x2594908bb49f963f, -0x29639632db767665,
3601                0x012d5330f966e1be,  -0x1143fddd48bf9752,
3602            });
3603            try testArgs(@Vector(8, i63), .{
3604                -0x08e352cf330c1852, -0x17bc1f760120ff85,
3605                -0x0f180e5c748c0e20, 0x07ee9290e2d53335,
3606                -0x33945ea070fbb445, 0x104802af8984525d,
3607                0x36d27ad0f35fcfd8,  0x292141a0133227a0,
3608            }, .{
3609                0x2adad30092da2886,  -0x1694bcdda9b82c45,
3610                0x1f5a019d638ba22c,  -0x2e7853134888b613,
3611                -0x2bb77a420f280a6d, -0x377771e94e493751,
3612                0x1dd5373311160f2f,  -0x02bb5248b7e0c55e,
3613            });
3614            try testArgs(@Vector(16, i63), .{
3615                0x2d930d47aa078416,  0x1edf9abe8d562bd5,
3616                0x3ef3a5266f822396,  -0x102f82f23c5608e1,
3617                -0x38755dccf6c87ae1, 0x09f11b107d033f85,
3618                0x079829e968213db8,  0x17248ef600ddb53d,
3619                0x19e16a7a4e6aa0cc,  0x11e21ddfb7b5b946,
3620                0x26ad3768e80b1258,  0x3672a14b31cb7f1a,
3621                0x3235b83f829966b4,  0x3b4009ac38f728b8,
3622                -0x205d4b6cd8a164ad, -0x2fc581f11fa0eb42,
3623            }, .{
3624                -0x1428b8c4947715ea, -0x0a5626024843736e,
3625                0x075a1a0d0d47f0af,  0x0ea460d282e8dcc0,
3626                -0x124b2a6e2957dc53, -0x0d2602075af449d5,
3627                -0x0db76b825400293c, -0x17c13cd693d2db13,
3628                0x0ad907bb94e64687,  -0x05fd33e10be897ad,
3629                -0x3210cf60aa544f0b, -0x10f80c3ee6d7c510,
3630                0x0106683b57f2cf9e,  0x353bea8a4c199155,
3631                0x3942af4e40b65cb0,  0x3da0254a739aa17a,
3632            });
3633
3634            try testArgs(@Vector(1, u63), .{
3635                0x17beef25621255fb,
3636            }, .{
3637                0x79bc7e82d16c5e15,
3638            });
3639            try testArgs(@Vector(2, u63), .{
3640                0x58aeb180f136af8b, 0x0ed5f2cdb8ffe659,
3641            }, .{
3642                0x5df7aae04a4a1126, 0x53568966decbd14f,
3643            });
3644            try testArgs(@Vector(4, u63), .{
3645                0x3d50a0f4755d87e3, 0x722e93c0b1355665,
3646                0x3c8325a3e3640be1, 0x34eef2706884b9ab,
3647            }, .{
3648                0x2671797fd253520d, 0x22f81938e525536e,
3649                0x08ca256b0b348d57, 0x1cdbe1867f422280,
3650            });
3651            try testArgs(@Vector(8, u63), .{
3652                0x49ab492d75830041, 0x28f4065197f361cf,
3653                0x3fcebb5fe8968a08, 0x0ab4e3fd7b158803,
3654                0x7f517fcfc0451068, 0x05eaa5d2f93407b2,
3655                0x0fe06447fdbec4d6, 0x34862504232f73d8,
3656            }, .{
3657                0x64a1796fe76dcc4d, 0x159bd1a9228a8c41,
3658                0x093a4794b5759276, 0x40a740fa4d288585,
3659                0x5d2d1aede616f40e, 0x7e7af17ddce8e03e,
3660                0x7555fb4a1c18d5ff, 0x11b45e151e8724d0,
3661            });
3662            try testArgs(@Vector(16, u63), .{
3663                0x456de088589c1035, 0x23239ed26d0e198f,
3664                0x4f3c4ae380a12430, 0x1cb11ef73131a6f4,
3665                0x6e51a370969ec7ae, 0x38bed7b267bb163d,
3666                0x2fcfab012fb79669, 0x45e203406a43fe95,
3667                0x38468cff64a44f74, 0x3cc86f1d717e8c60,
3668                0x2ae5f2a7c73c6c2c, 0x0c8856138b43dff8,
3669                0x1a7493c9bb7b265c, 0x6e8536e5f32317d8,
3670                0x634701c32688fd34, 0x7a4e4a7f35ef9651,
3671            }, .{
3672                0x3da82f0beb7a091d, 0x040c9bbf428787fa,
3673                0x795418c55742e8d2, 0x700f9b62c01cdf30,
3674                0x78d567c18e7ce16d, 0x300da37dc14b6705,
3675                0x68bf0e06ec9054ca, 0x2e45a80bcd5dd30d,
3676                0x00e8c13b3acf4557, 0x19adb837145a0267,
3677                0x594889dd8e1ff4c2, 0x561da6bd7e2ba593,
3678                0x6a8ed2f67f586604, 0x2ce6d9d2663cb1fc,
3679                0x68ec40831cb6b863, 0x2862d922ed7a78eb,
3680            });
3681
3682            try testArgs(@Vector(1, i64), .{
3683                0x4a31679b316d8b59,
3684            }, .{
3685                0x34a583368386afde,
3686            });
3687            try testArgs(@Vector(2, i64), .{
3688                0x3bae373f9cb990b3, -0x7e8c6c876e8fd34a,
3689            }, .{
3690                0x09dbef6f7cb9c726, 0x48dfeca879b0df51,
3691            });
3692            try testArgs(@Vector(4, i64), .{
3693                -0x2bd24dd5f5da94bf, -0x144113bae33082c2,
3694                0x51e8cb7027ba4b12,  -0x47b02168e2e22f13,
3695            }, .{
3696                0x769f113245641b91,  -0x414d0e24ea97bc53,
3697                -0x0d2a570e7ef9e923, -0x070513d46d3b5a4c,
3698            });
3699            try testArgs(@Vector(8, i64), .{
3700                0x10bb6779b6a55ca9,  0x5f6ffd567a187af4,
3701                -0x6ba191b1168486b4, -0x441b92ce455870a1,
3702                0x2b6fdefbec9386ad,  -0x6fdd3938d79217e4,
3703                0x6aa8fe1fb891501f,  0x20802f5bbdf6dc50,
3704            }, .{
3705                -0x7500319df437b479, 0x00ceb712d4fa62d4,
3706                0x67e715b9e99e660d,  -0x17ae00e1f0009ec2,
3707                -0x5b700b948503acdf, -0x3ff61fb5cce5a530,
3708                0x55a3efac2e3694a4,  0x7f951a8d842f1670,
3709            });
3710            try testArgs(@Vector(16, i64), .{
3711                0x37a205109a685810,  -0x50ff5d13134ccaa6,
3712                0x26813391c5505d5d,  -0x502cdc01603a2f21,
3713                -0x6b1b44b1c850c7ea, 0x1f6db974ace9dd70,
3714                -0x47d15da8b519e328, 0x3ac0763abbf79d8d,
3715                0x5f12e0dc1aed4a4f,  -0x46a973e16061e928,
3716                -0x3f59a3fa9699b4d5, -0x2f5012d390c78315,
3717                -0x40e510dea2c47e9c, 0x221c51defe0acc9a,
3718                -0x385fd6f1d390b84b, 0x35932fe2783fa6b9,
3719            }, .{
3720                0x0ba5202b71ad73dd,  0x65c8d2d5e2a14fe5,
3721                0x2e4d97cd66c41a3d,  0x14babbb47da51193,
3722                0x59d1d12b42ade3aa,  -0x3c3617e556dfa8fb,
3723                -0x5a36602ba43279c4, -0x61f1ddda13665d9f,
3724                -0x50cd6128589ddd04, 0x135ae0dcc85674ae,
3725                -0x25e80592affc038d, 0x07e184c44fbe9b12,
3726                -0x70ede1b90964bbaa, 0x3ec48b32e8efd98e,
3727                -0x5267d41d85a29f46, 0x53099805f9116b60,
3728            });
3729
3730            try testArgs(@Vector(1, u64), .{
3731                0x333f593bf9d08546,
3732            }, .{
3733                0x6918bd767e730778,
3734            });
3735            try testArgs(@Vector(2, u64), .{
3736                0x4cd89a317b03d430, 0x28998f61842f63a9,
3737            }, .{
3738                0x6c34db64af0e217e, 0x57aa5d02cd45dceb,
3739            });
3740            try testArgs(@Vector(4, u64), .{
3741                0x946cf7e7484691c9, 0xf4fc5be2a762fcbf,
3742                0x71cc83bc25abaf14, 0xc69cef44c6f833a1,
3743            }, .{
3744                0x9f90cbd6c3ce1d4e, 0x182f65295dff4e84,
3745                0x4dfe62c59fed0040, 0x18402347c1db1999,
3746            });
3747            try testArgs(@Vector(8, u64), .{
3748                0x92c6281333943e2c, 0xa97750504668efb5,
3749                0x234be51057c0181f, 0xefbc1f407f3df4fb,
3750                0x8da6cc7c39cebb94, 0xb408f7e56feee497,
3751                0x2363f1f8821592ed, 0x01716e800c0619e1,
3752            }, .{
3753                0xa617426684147e7e, 0x7542da7ebe093a7b,
3754                0x3f21d99ac57606b7, 0x65cd36d697d22de4,
3755                0xed23d6bdf176c844, 0x2d4573f100ff7b58,
3756                0x4968f4d21b49f8ab, 0xf5d9a205d453e933,
3757            });
3758            try testArgs(@Vector(16, u64), .{
3759                0x2f61a4ee66177b4a, 0xf13b286b279f6a93,
3760                0x36b46beb63665318, 0x74294dbde0da98d2,
3761                0x3aa872ba60b936eb, 0xe8f698b36e62600b,
3762                0x9e8930c21a6a1a76, 0x876998b09b8eb03c,
3763                0xa0244771a2ec0adb, 0xb4c72bff3d3ac1a2,
3764                0xd70677210830eced, 0x6622abc1734dd72d,
3765                0x157e2bb0d57d6596, 0x2aac8192fb7ef973,
3766                0xc4a0ca92f34d7b13, 0x04300f8ad1845246,
3767            }, .{
3768                0xeaf71dcf0eb76f5d, 0x0e84b1b63dc97139,
3769                0x0f64cc38d23c94a1, 0x12775cf0816349b7,
3770                0xfdcf13387ba48d54, 0xf8d3c672cacd8779,
3771                0xe728c1f5eb56ab1e, 0x05931a34877f7a69,
3772                0x1861a763c8dafd1f, 0x4ac97573ecd5739f,
3773                0x3384414c9bf77b8c, 0x32c15bbd04a5ddc4,
3774                0xbfd88aee1d82ed32, 0x20e91c15b701059a,
3775                0xed533d18f8657f3f, 0x1ddd7cd7f6bab957,
3776            });
3777
3778            try testArgs(@Vector(1, i65), .{
3779                0x0ca0853f57c0686c8,
3780            }, .{
3781                -0x05c79d7369ef879fd,
3782            });
3783            try testArgs(@Vector(2, i65), .{
3784                0x0c65f685f4839bc8d, -0x079057ad04859d897,
3785            }, .{
3786                -0x0dbb1951a67a71fc6, -0x0d4763ead1d5f66aa,
3787            });
3788            try testArgs(@Vector(4, i65), .{
3789                0x0d6a03163f101695e,  -0x0ebe991e54e61156d,
3790                -0x0715adf48176985dc, 0x01e57dbe6ea50b22f,
3791            }, .{
3792                -0x0b308d8311a45a38d, 0x07c292cc15044b1f5,
3793                0x0e69e3eae81046bc8,  0x053b75d6a544ca0db,
3794            });
3795            try testArgs(@Vector(8, i65), .{
3796                0x0066315a88896ba00,  0x026c8109f087eb4e3,
3797                -0x0b9928ad2e41d98ef, 0x0fc5ab9c89a8ee6ff,
3798                0x0dcdd248c4575dbb1,  -0x09db7d03c38a83255,
3799                -0x097bc9d5397c57594, 0x0e6af866eed43b462,
3800            }, .{
3801                -0x06ac0448a06876866, 0x0f89dbafcbbb065d7,
3802                -0x02b88b31ed9fc24dd, -0x005c56246687ed4f0,
3803                -0x085a4a7b09dcec260, -0x0068e92e14823a98a,
3804                -0x0ac4a04dd6de87eb9, 0x0716ed52ef9704b71,
3805            });
3806            try testArgs(@Vector(16, i65), .{
3807                -0x09fd6493584cf3a50, 0x0e6dc4b5655cb9d36,
3808                -0x03b55c156ac2bdcf1, 0x002cfefc233d5bcb8,
3809                0x0dbebb830228d2945,  -0x02133deab2ebd8699,
3810                -0x0ff9bc10c14c58c6c, -0x09170272ba214dabc,
3811                -0x06ed685bdc535a55e, 0x0c12e1ca45cf7be9a,
3812                -0x04e1094b79391df4a, 0x03b3fbc230416592d,
3813                0x08799db1379e6b1ba,  -0x0fa7c7aed60863358,
3814                -0x0c44dd44a770610bd, -0x0349cdc54719b2e37,
3815            }, .{
3816                0x03146cdf203a80cfd,  0x0e22a03fe80f3e2ed,
3817                0x07fa7a66dbe252222,  0x000a3bc923a32648a,
3818                -0x078bac9e36d66da71, -0x03055804cd3b73168,
3819                0x0d9280808858f006d,  -0x09415dfb2fd33fe5a,
3820                -0x01bb25a93961b763c, -0x0d7b9f64e9b0c5c82,
3821                -0x096d7b6ee9a0b1e11, -0x0358047a2c33fc157,
3822                0x0ac0128bbf7a5200e,  -0x009e0b2ab770e711b,
3823                0x05473b5629f372ee9,  -0x02eda67313ff7fa47,
3824            });
3825
3826            try testArgs(@Vector(1, u65), .{
3827                0x1879059aca94dd383,
3828            }, .{
3829                0x0051da1f25078e919,
3830            });
3831            try testArgs(@Vector(2, u65), .{
3832                0x18f39bb41f03223f5, 0x16a59f6838a63e737,
3833            }, .{
3834                0x105aa15beae036a1a, 0x1b47ef7ef744b70fe,
3835            });
3836            try testArgs(@Vector(4, u65), .{
3837                0x18c685254b3c7170c, 0x0de8048a66902ebfd,
3838                0x02bc97f62163e7e31, 0x152b6eba67c1e76db,
3839            }, .{
3840                0x1f45ab5e13037f07b, 0x1a6ac8ec084a115ee,
3841                0x1db62793f956492ba, 0x0e4262599ec54c2a4,
3842            });
3843            try testArgs(@Vector(8, u65), .{
3844                0x07c1dbda5d0ddd69a, 0x18f5741ef462a799b,
3845                0x1fd2f93384860df65, 0x01827fcdb6c715d64,
3846                0x03869c173a922b018, 0x0addd48a4671a2f6b,
3847                0x1eee0f78995f9f118, 0x1e1d0d6b2396bcf38,
3848            }, .{
3849                0x159e9494fc84ed452, 0x0834f6aaa7666a22b,
3850                0x066765389e84150b4, 0x1e722ae23908c7e96,
3851                0x0d64ec725397e6ee0, 0x19f3a147a355baa22,
3852                0x02f1b100538b6dbc3, 0x175885a34aefca91b,
3853            });
3854            try testArgs(@Vector(16, u65), .{
3855                0x105647e12b2b76daa, 0x04dcca29537263f6a,
3856                0x16c112620be731a4e, 0x0d6c088da3c158fa0,
3857                0x02ff8ce4fc8331ec4, 0x127a7d10ab851980c,
3858                0x05703068045915d95, 0x07cc42e0bb216b310,
3859                0x08a15a16e4247ad98, 0x1c17b2292e34aa369,
3860                0x14c9808748fa615c3, 0x187449666c2f5375b,
3861                0x133fcb93a31d2f369, 0x047729af594c8c1c1,
3862                0x1ce798ff51a064ad2, 0x0800a3c18b944f0e4,
3863            }, .{
3864                0x0d65b8b643703ef96, 0x1c55c2e0816c5d056,
3865                0x0390a06d3ec60e632, 0x0d543d346db055847,
3866                0x017e27c7d663d7005, 0x112f7b98a78014ea3,
3867                0x030136142f19042d7, 0x059f9b6e576f79ef7,
3868                0x1dd78fb3577c5ed37, 0x1a4594314b3f1adde,
3869                0x1e26cd964c656292a, 0x0579c10261478da1d,
3870                0x0406f2849ab5ad15c, 0x024b15c729f2211b7,
3871                0x10f0505cc2f7f110c, 0x133cfa11f995e0afc,
3872            });
3873
3874            try testArgs(@Vector(1, i127), .{
3875                0x226b8faf65414a9a0ffcd438c7fa9eea,
3876            }, .{
3877                0x2c582610b08531ca208fef1c2b839bdc,
3878            });
3879            try testArgs(@Vector(2, i127), .{
3880                0x35e8caffc9fc8e1b3b6d3667cb6a128c,
3881                -0x070d99d51807ae2314ea61e4f0166145,
3882            }, .{
3883                -0x3a59d011c2a385a6dcf00a40efd85b77,
3884                0x3b5f506c3fa0c8552fba624d1b5debec,
3885            });
3886            try testArgs(@Vector(4, i127), .{
3887                0x191594cc2356ffeac739f1841b06adcf,
3888                0x1f45176996076de7c3891f14f831e192,
3889                0x1c9047002e0a4f00656556fffeb50349,
3890                -0x38049f47bcc36ab26600bc475295389f,
3891            }, .{
3892                -0x2f8c1618324c60c40f65d216943d59d2,
3893                -0x21429f90bd9dff7b5d49c9d7f2655928,
3894                0x3baeef72d0d168fb50564c9f6eb5d778,
3895                0x3affe6f2eddfc6a69206c357633d0eeb,
3896            });
3897            try testArgs(@Vector(8, i127), .{
3898                -0x00c48629a415129f66e74a1a215d683a,
3899                0x3920a425cbec4c9af649a00d5747136a,
3900                0x11f53b9db15a12814c948c6a809b96f8,
3901                -0x1f7e272db97efc88762dedf54978e795,
3902                0x13e56ca8ed41f64d04ef01019703f402,
3903                0x294014109f4313454d9994f1003b4572,
3904                0x0f3d6fe7adde96149ffcc5c0808b708f,
3905                0x2d9bcd407da37ff3d43cc5f6b64fd385,
3906            }, .{
3907                0x3f95f21d3bc39fe8e3fcc184d150a984,
3908                0x2a8c36a5986d8c245bbdd302737b7e29,
3909                0x37c61446e10efe6a94f797da05a28fae,
3910                -0x096b2f4e16aef099d623066e941d13d1,
3911                0x3df11d4af3229ed59c52628cac02f506,
3912                0x326f78cbf454566daa3bc235a1fb3fb8,
3913                -0x2cf6b4872dffea018c77892e433b6784,
3914                0x345dfdd52635c224c70949913255ab68,
3915            });
3916
3917            try testArgs(@Vector(1, u127), .{
3918                0x49a0cd1849f9adbed215770c6f97a584,
3919            }, .{
3920                0x5e10826a03aeb57d4a9a9ef2a8f02faa,
3921            });
3922            try testArgs(@Vector(2, u127), .{
3923                0x1c2544fbb76890de5c00f42c9a516846,
3924                0x324f292d72694d409152a311b5a0441c,
3925            }, .{
3926                0x01cc87106db8e357e85f875d46feac96,
3927                0x49e775cc0db88cf9725af13113d7d457,
3928            });
3929            try testArgs(@Vector(4, u127), .{
3930                0x3e82ddcd074646a0a489a4fd300c32c9,
3931                0x2a511ac041c17a68c5a71bc6d3cb3ba9,
3932                0x2dace4189083411634b753ae476579a8,
3933                0x4e1d5cb04d9681d806312d72d6dc5262,
3934            }, .{
3935                0x5f489e689ff15fcf38aad995b1796af2,
3936                0x49ee549bd8e20092c8ccebb992cde8b8,
3937                0x4e52d33281cba3fda6ae8d1f463c7a1f,
3938                0x0de0279b2dec3fffe44c1c7decc430f8,
3939            });
3940            try testArgs(@Vector(8, u127), .{
3941                0x636de193fbadb1984a0ed9969f88d38d,
3942                0x64426b7e468cb323b1d75656879fb9b2,
3943                0x48afb4cc5a11f2ca4b8609b057758312,
3944                0x176157ce93422bb4463d6f0dda275b94,
3945                0x746015d0e8cb5e36af43840a6df11aab,
3946                0x279b665776118bc2759134c19cbf1bb0,
3947                0x52cb4dc56d3935090fb7db710c8f9660,
3948                0x591884d8d8e2fe2f77b7f8508dddeaaa,
3949            }, .{
3950                0x42e00bc05d50ea63d546085642b8831b,
3951                0x4241ff07ce99ee055b48ed2939b8d6b7,
3952                0x45a5f53a5c5cb13f1a9e6621fec8cf4a,
3953                0x68d6938c1b348dc6cc98d4b6ab3a1c22,
3954                0x1f9448fc11e38500ec7ecf57a33a278b,
3955                0x7b331526d6fcfb958f3c88fc4656e123,
3956                0x4f1e8ddf41a7105cc1a1c815040a2693,
3957                0x31ac7bd68686d531d53ecca75e6d8b81,
3958            });
3959
3960            try testArgs(@Vector(1, i128), .{
3961                -0x3bb56309fcad13fc1011dc671cf57bdc,
3962            }, .{
3963                -0x05338bb517db516ee08c45d1408e5836,
3964            });
3965            try testArgs(@Vector(2, i128), .{
3966                0x295f2901e3837e5592b9435f8c4df8a7,
3967                -0x1f246b0ff2d02a6bf30a63392fc63371,
3968            }, .{
3969                -0x31060c09e29b545670c4cbc721a4e26b,
3970                -0x631eb286321325d51c617aa798195392,
3971            });
3972            try testArgs(@Vector(4, i128), .{
3973                0x47110102c74f620f08e5b7c5dbe193c2,
3974                -0x61d12d2650413ad3ffeeeab3ba57e1f0,
3975                0x449781e64b29dc8a17a88f4b7a5b0717,
3976                0x0d2170e9238d12a585dc5377566e1938,
3977            }, .{
3978                0x0bf948e19bd01823dcb3887937d97079,
3979                -0x16f933ab12bfba3560d0d39ffe69b64a,
3980                0x3d0bfce3907a5cd157348f0329e2548e,
3981                -0x3c2d182e2e238a4bebd7defbd7f9699a,
3982            });
3983            try testArgs(@Vector(8, i128), .{
3984                -0x775678727c721662f02480619acbfc82,
3985                -0x6f504fcbff673cb91e4706af4373665f,
3986                -0x670f888d4186387c3106d125b856c294,
3987                0x0641e7efdfdd924d126b446d874154f8,
3988                0x57d7aef0f82d3351917f43c8f677392b,
3989                -0x4077e745dede8367d145c94f20ab8810,
3990                -0x0344a74fb60e1f1f72ba8ec288b05939,
3991                -0x0be3ce9be461aca1d25ad8e74dcc36e1,
3992            }, .{
3993                -0x4a873d91e5a2331def0d34c008d33d83,
3994                0x2744cecfd4c683bdd12f3cfc11d7f520,
3995                -0x0cb8e468fc1de93a7c5ad2a5a61e8f50,
3996                -0x1a3be9e58e918d6586cc4948a54515d3,
3997                -0x512ec6f88c3a34950a8aaee47130120b,
3998                -0x2e772e4a8812e553bcf9b2754a493709,
3999                0x0c7b137937dc25f9f9cbaf4d7a88ee6b,
4000                -0x2ecdd5eb81eb0e98ed8d0aa9516c1617,
4001            });
4002
4003            try testArgs(@Vector(1, u128), .{
4004                0x5f11e16b0ca3392f907a857881455d2e,
4005            }, .{
4006                0xf9142d73b408fd6955922f9fc147f7d7,
4007            });
4008            try testArgs(@Vector(2, u128), .{
4009                0xee0fb41fabd805923fb21b5c658e3a87,
4010                0x2352e74aad6c58b3255ff0bba5aa6552,
4011            }, .{
4012                0x8d822f9fdd9cb9a5b43513b14419b224,
4013                0x1aef2a02704379e38ead4d53d69e4cc4,
4014            });
4015            try testArgs(@Vector(4, u128), .{
4016                0xc74437a4ea3bbbb193dbf0ea2f0c5281,
4017                0x039e4b1640868248780db1834a0027eb,
4018                0xb9e8bb34155b2b238da20331d08ff85b,
4019                0x863802d34a54c2e6aa71dd0f067c4904,
4020            }, .{
4021                0x7471bae24ff7b84ab107f86ba2b7d1e7,
4022                0x8f34c449d0576e682c20bda74aa6b6c9,
4023                0x1f34c3efa167b61c48c9d5ec01a1a93f,
4024                0x71c8318fcf3ddc7be058c73a52dce9e3,
4025            });
4026            try testArgs(@Vector(8, u128), .{
4027                0xbf2db71463037f55ee338431f902a906,
4028                0xb7ad317626655f38ab25ae30d8a1aa67,
4029                0x7d3c5a3ffaa607b5560d69ae3fcf7863,
4030                0x009a39a8badf8b628c686dc176aa1273,
4031                0x49dba3744c91304cc7bbbdab61b6c969,
4032                0x6ec664b624f7acf79ce69d80ed7bc85c,
4033                0xe02d7a303c0f00c39010f3b815547f1c,
4034                0xb13e1ee914616f58cffe6acd33d9b5c8,
4035            }, .{
4036                0x2f2d355a071942a7384f82ba72a945b8,
4037                0x61f151b3afec8cb7664f813cecf581d1,
4038                0x5bfbf5484f3a07f0eacc4739ff48af80,
4039                0x59c0abbf8d829cf525a87d5c9c41a38a,
4040                0xdad8b18eb680f0520ca49ebfb5842e22,
4041                0xa05adcaedd9057480b3ba0413d003cec,
4042                0x8b0b4a27fc94a0e90652d19bc755b63d,
4043                0xa858bce5ad0e48c13588a4e170e8667c,
4044            });
4045
4046            try testArgs(@Vector(1, i129), .{
4047                -0x09c126c4e31389b174cb2b45e76c086dd,
4048            }, .{
4049                0x0d023f2566c56400f4b7edb9c4f364ecb,
4050            });
4051            try testArgs(@Vector(2, i129), .{
4052                -0x072be32e116741732f9422d9b20777db5,
4053                -0x010829386cc3d93283a83591bd994ca58,
4054            }, .{
4055                0x004671167d0681d46945832d16f70cfba,
4056                0x098550137341cbadfe8378987e3a83265,
4057            });
4058            try testArgs(@Vector(4, i129), .{
4059                0x04167620c7f5e094208fb204f06b9792c,
4060                0x07a6690c0b5f9de6c8955873f19b98f23,
4061                -0x06505997d01e5a971f820742210c7adc6,
4062                -0x07013921eab8d92559f17ad9e3712bc61,
4063            }, .{
4064                -0x0bdbf7ce4079fa628feb05f5814402e15,
4065                -0x0e6ee5464de547ce92ee5a6037f175e52,
4066                -0x009d079b88cdc765ab72758854b753d98,
4067                -0x085af31dd5243f61b46e6dc950728ff49,
4068            });
4069            try testArgs(@Vector(8, i129), .{
4070                0x0d85f471bdc56611e9187113f1489bd38,
4071                0x06e1e9cae044bb17b63c380fd6f2652b5,
4072                0x0921d649288a16481f2ec69747f443e5e,
4073                0x0e8db24d1aefd91cfab20bac61f560274,
4074                0x0187abef7578e5e02a396e4ebd5859c23,
4075                0x0d2dec5a6bd72afe18288ca428ec2b94d,
4076                0x0c52c111a077bffb1fa4483523cd044c3,
4077                -0x0b6a90c79d6230f271bf625c9a6c0dfc5,
4078            }, .{
4079                0x0d47c566bdedae2e9485f7aa381a98d30,
4080                -0x0e5d9573c01a9e56361b202c47f0e51f8,
4081                -0x0bdcafb1f08db4920121521b2d2679931,
4082                0x08de42eec43f2a5175f928f8a1812575d,
4083                0x0c3f57e712a7f8494e51b62d11573d9a0,
4084                -0x09287910d439c9bafd56bc8a6faf50cb3,
4085                0x07b494af9634c8f95bed2f50fcaf08dda,
4086                -0x0a150693d83af2e823dcc0765e4e331e2,
4087            });
4088
4089            try testArgs(@Vector(1, u129), .{
4090                0x1e51bd13747df8fae52f0471e9f1ad3f2,
4091            }, .{
4092                0x00aba9f2c80c71b1ed07201486ea44d00,
4093            });
4094            try testArgs(@Vector(2, u129), .{
4095                0x0c7967a19d13d4bd3f6ebfa0f8fdeab92,
4096                0x01614ee2c32757cc92e2efd97e94321a7,
4097            }, .{
4098                0x175803a2c0bf888bd01e2a5bae28e4523,
4099                0x07d05a98ec8f4e7e72aac2712bc09a23a,
4100            });
4101            try testArgs(@Vector(4, u129), .{
4102                0x1b18b768c5852bb1f0a7b34ceaeac4a0c,
4103                0x038fc1f995d9378fcf1043598810d7a56,
4104                0x06eebd77f9920e79932decf0f29ef658d,
4105                0x1f31a766145022050d0b16a4f5d06f1e3,
4106            }, .{
4107                0x033b20a528a722b6704bf5c8aea497e68,
4108                0x0ea05276fb8de4e77e4a8d4ef55f64bba,
4109                0x1c632cf252683b00faae6dcb7d73d8b90,
4110                0x11a7e1e98bb34fc7f5ed36c327476b122,
4111            });
4112            try testArgs(@Vector(8, u129), .{
4113                0x1b85991584b26492938854a6f6953b766,
4114                0x119472b0f4b7199f1267639f601833e3d,
4115                0x130d19e6ccfebce09c61c8c8fb526fec0,
4116                0x1379f4fa9d25e18ef5138c193b7ec9ef3,
4117                0x15fc62d9e21c2c0c63f9cab5ab0a8cf36,
4118                0x123ceb2a65f200a0b3e559c801bdbfa58,
4119                0x0e740ae3c7ab0cd24c5ff94d9367e3ebb,
4120                0x008c7dd67796949390355d866e4f171ef,
4121            }, .{
4122                0x0ffdda009048cf61476610425d5e55560,
4123                0x061bcb9d024d015891b5666e7b317cc84,
4124                0x060c013386fb8c129a3bd65b7909f2bc5,
4125                0x01c8efdd7ea806b1dc984c6183da53d8f,
4126                0x02fae7cee43d7f97448e82b907335bd45,
4127                0x0365e7cadcbd0a64decc1377339967c53,
4128                0x1a52793ba8a9689e1d7f5036e8cb613e1,
4129                0x1257d7cdd8f04058d285a5bce173b5262,
4130            });
4131
4132            try testArgs(@Vector(1, i191), .{
4133                -0x23ce1d6b12e301d243024c60aef14b6d068e1d4b1c4f442d,
4134            }, .{
4135                0x1a7b04f33aa590b99c1162bb32e7681ec267b7826e162512,
4136            });
4137            try testArgs(@Vector(2, i191), .{
4138                -0x25ed7b5b9a9cd517f7f1e2e796f8c5a28ae04af6c1e7bfb3,
4139                0x3f298efedf4269276db60344c2bed556ee25d24c5f887000,
4140            }, .{
4141                0x3c92b38c6c6eb449c25011a4248df259b8452293390d8ad7,
4142                -0x35743fe2fa86686c496ffd16f93f2fca1ed742b67b8722a7,
4143            });
4144            try testArgs(@Vector(4, i191), .{
4145                -0x1743b70ad78994b68b5f7ad6066447ce8aefaba4852af2c7,
4146                -0x10974462633ebb5631bf83d65ffde3239ff4029c9f62b7ef,
4147                0x1783dc9f0afa815051e6d338ef35da013e807da475815af5,
4148                0x3f32dd0689a9437b7acc4290920370205825a3f6a4453916,
4149            }, .{
4150                0x2ef1b4f92da40e0c33a1611f48f25d8f1c4208b5396e51dd,
4151                0x0d1e8846fd1a2055386c4d74aa55914ef085196399964a29,
4152                0x272c9065c4395186cf7c164fc5d43aeee7fdd08bfd98ad86,
4153                0x25438380cc92dba5c9f3d57ef311fad8e14e3a3c18910546,
4154            });
4155            try testArgs(@Vector(8, i191), .{
4156                -0x36d4fd6afdc4bae957b5caed3360891ac4c44383f77e0225,
4157                0x2bd89636510607345813f74ee303d3b22435b37a7d09c7ed,
4158                -0x3cc372c1659789b967ed7000bfae20f73829a093e9ac9232,
4159                -0x2e27691dc3d8ea12093136cf859ef8e0c686ae66e56e073d,
4160                -0x24150a1f8bb0097625000af9b186a8927f70993e76702c17,
4161                -0x3adebb65a71f180fbf21117bc38fa3aeddebe1e216ae5a70,
4162                -0x257688d6ef63e2046bb8bfa11ba84b665e4e12522d56d085,
4163                0x173a71a3792e72cbd31f2f10142cf568ff0987e8dfd4ed35,
4164            }, .{
4165                0x056e3bbfe91bd5adf441278fccaeabbe86cba8ae545dee95,
4166                -0x02705836e891812aba265ee3e12d17f6fcdbc69320e52ee9,
4167                -0x276a852ba9a4163fe636cf31007b5e3cb087bc44c0948a02,
4168                -0x14053135d82f772dd82e7a472315b6b9fa836a27bebcf980,
4169                -0x153f064d28f4fb27c827bb5fe2a44c95e3b54d21eba40a1c,
4170                -0x30ac5165fa3f132f294a5241d3201973a0671aa3b536e3ae,
4171                -0x2ce2be59f487892c58bf667a55724b117e3e8ba3b00c1c31,
4172                0x138bb8e5b837ffd06d296ea0af9f533ffe3a36073fafc2d3,
4173            });
4174
4175            try testArgs(@Vector(1, u191), .{
4176                0x24f26e4c0b4b20639550564263b0be7083e112cdef6c2d83,
4177            }, .{
4178                0x020334928f4583d332043b7aef15e832047dfd01b2933038,
4179            });
4180            try testArgs(@Vector(2, u191), .{
4181                0x67074e5315030f5c1a4d035100736de691b5589f6d349162,
4182                0x0e655397f96e3fd66b317294a37975d36478242fd6392259,
4183            }, .{
4184                0x56bb6bd23999b9af6230833f3c661fd54fa2f012673f88bf,
4185                0x005c4fd0feb22f04ae76cd1479b6f0d6e62b76b249073cfd,
4186            });
4187            try testArgs(@Vector(4, u191), .{
4188                0x793af4124df65a0815c1f1603d309d0094e1ee29a571ec57,
4189                0x32163b39813a85f3c4ca626d14130258782eae8704f2ceb1,
4190                0x64a0ac41f560153b3d1f3193faa818db7be2c66f0dbc2457,
4191                0x195e210a66b88674fcb13b0bf26190442b71bd53b2df52fc,
4192            }, .{
4193                0x2668ee718a179e0fa57a1b72aa6a5dea00b60d8fe69a019c,
4194                0x447df595f31d0bac74b0dd7a379fbaecb92b2aba1b8615f7,
4195                0x0c794ae8369677209d714dd97092b5e4d0c6b9e794e6d9b9,
4196                0x2c7a81900b3eef44190b5d0264f9bf072588720247f69693,
4197            });
4198            try testArgs(@Vector(8, u191), .{
4199                0x1afd856825f4458371e2adcbdd7c1b1dbb935b8a6f4a6dca,
4200                0x738efc41846cf88223553ed8b4c1b45366088bece1fe8052,
4201                0x7841b17a1c38e4066376e5ae204959c02c524635740a9013,
4202                0x4ea41d7c910dca17242c74dfb1aedbaf05c9b93fee1e5b77,
4203                0x5c6ba91cfae1f4d49cb2b5cedfc090f0ffbde9afa6794788,
4204                0x4582bfd463bdf1f5ff4da91fc65bc2a38823f45c05bc485e,
4205                0x7cbac126c09224be8017d7d1c9a84014d2af0a3afb14a5b3,
4206                0x3068064c244d43736c5454d45b576f4c62324dd5aec39e8a,
4207            }, .{
4208                0x49907c71f5e8fb9626727be7a949ae8ee47bfc3658b09614,
4209                0x5a8f50d921fcdf9d0a20ff050ecbd2447cd3ab7ea3c4d9fc,
4210                0x11bfcb2033ef38914dd35cf384f22d5ece33c1685616ba90,
4211                0x1996b77370fef92a696ccd5e316eed50b2bc33ae10b245d7,
4212                0x1aeacf955748c195f4ead3b032cafce35db2cf253f4065c1,
4213                0x6661ba1be480a8ca7cb1ed35c01ec591c34ed15524412434,
4214                0x0d357b77a9e3b924156e18bcf41a83620246ad419a9ce9c2,
4215                0x467f70d48dfc54fa6cc3ba3f98e66cd1410283f1ec0ae934,
4216            });
4217
4218            try testArgs(@Vector(1, i192), .{
4219                0x5348bc83a6f352c931d06b9817458273408470e8ce312bef,
4220            }, .{
4221                -0x1e9beca133a9c8cde4b5dae26e198968806ca966c6b8c07d,
4222            });
4223            try testArgs(@Vector(2, i192), .{
4224                0x468c1d585cd2e9549f9ead72889e80fedd3eb95a2ee8d869,
4225                -0x1c0276cb4b61b673492f493520098742edfa913d455c4f5b,
4226            }, .{
4227                0x4a503063a094c7e29c2ca37b6c686e16da8d921aa89c05be,
4228                0x4c2141b98f3736551e6e08f1d24eb864842753a8c7112ef2,
4229            });
4230            try testArgs(@Vector(4, i192), .{
4231                -0x62a9e282152d85abe46e802c276f18b0542871984cd7bacf,
4232                -0x3f01fc751a8bdef2e7a884d7984d6189b36c46048de3035f,
4233                0x2eb5379125d8169909e66f4b6bc903c5f6c92952872bf2fc,
4234                0x308053e7f5da3a2906cf5b48ab3752a5820cb90ab56d58ce,
4235            }, .{
4236                0x6bcb4f6375a8ee60b73240550c89edbe0976acd548588d06,
4237                0x1b63863c7a8871c34b2eed238ac4747508150578f60fd993,
4238                -0x2bc4a2065ebda452635e3c9cd420f9c01f869bf7abe75255,
4239                0x6093a6f058b4da28e5f64ebe7684a5d34e2ed48c98bef114,
4240            });
4241            try testArgs(@Vector(8, i192), .{
4242                -0x41d1d3675490a69b9455f1dd57f0c6a7c5e88e734adee8d9,
4243                0x03c5f5e58058b7a4a9038ac6717a1b70caf3851d017ed2e7,
4244                0x1829fef2dd242cca51c638d69b51e00a6e7847e79df6117c,
4245                -0x4622b84d4b52f94d9c933ef3ac435968b1c0b1b3ac1d07a3,
4246                -0x1bb5b63f2ad4dbc0c0090131116680074a83f51f79d1af32,
4247                -0x6b75cf9bc97f9b012305b718bbc0672f86543a245c363297,
4248                -0x43eb0ec7a8995f1340977273858be8f3d620b503a5931574,
4249                -0x1dcfa8f4475abd395fb4e8f696cb25625de768b2d5cb0464,
4250            }, .{
4251                -0x685420e7656ef93e813658d4eef9d44cb0acab0560894da6,
4252                -0x191a07e070edaa52554347726d2c0e1d701b52dd462b716a,
4253                -0x6a336f271fb3fa7cc33a441e6a0d9bba741d56bc5f83b113,
4254                -0x6313298dfc0492db682940661b6ae1a2f56159663f4ba525,
4255                0x35b1588853218d6e00c358bff9d9bf86e399a8b5e3db2b67,
4256                -0x6bb7cfcd5f78cc6437544a271922eba4fc64c25d4a8a0732,
4257                -0x1a40ab85aabcabc56a4e5523c38f5e184aa5c81d9cdc93f5,
4258                0x74438ae4acd2fa943409ad7b87feb48a467a845041aa8d21,
4259            });
4260
4261            try testArgs(@Vector(1, u192), .{
4262                0x2058bb0137e3c0cf5c4afb9a17d6ca0646594ceadb5a041d,
4263            }, .{
4264                0xc1a1bff0426a68458ea170fba78d09a9fe172a5a3609e8eb,
4265            });
4266            try testArgs(@Vector(2, u192), .{
4267                0x693ffb174c224e1139c22e38405ad42e96d229c3fd7a8af2,
4268                0xce93932e25a8f26d8f3314dd0a56868ee899eeddb321da8d,
4269            }, .{
4270                0x69b7060f45d65d5d71ffd171aeebb3aaab8a3b313426f9b0,
4271                0xd2953b80f910619b3e0af7d65fe8f840b055f8690b3b7a5e,
4272            });
4273            try testArgs(@Vector(4, u192), .{
4274                0x4770c1f64c87afde65aec11764deed53f9a2d533875eb2be,
4275                0x40b75e355dc0b2962e5ce23a5b990642371d9f6a80b133bd,
4276                0x99c6d4c37fe86bd4d207fc56822f7ff6e8dfbda5f9d71256,
4277                0x43d7f6d2a18f88224c447e88848ae335cb58f3122d36de74,
4278            }, .{
4279                0xaa5d91b484e03b2dc31fc09b69192c265155f978e1ec2294,
4280                0xe474f9f62162317d3115396d50a33753b6b709cd3a06f5e5,
4281                0xeab9e1fc9c5da4e6e676ebf7cb0d871e9633d738928b8134,
4282                0xe493f9557f2e1eda644ee3a5055c912db265c302d588e2ec,
4283            });
4284            try testArgs(@Vector(8, u192), .{
4285                0x3a38fe23afa76c5ac5f8e0c0b27c70d0ca17c8e184033066,
4286                0x28104df9a858c83c6301788c0058fd6c58f7e62f0b735099,
4287                0x040f1bad46838cfd6bd5d269415512f7fd129b8322e944c4,
4288                0x5cc3d6202e8efb4d769535a20db0876c5142ce975cc175e3,
4289                0x24211e6d3db188ef22afa6ab4a382bfebb0520b76562bcf7,
4290                0x41c2ba9d1d085d99ffd58fd992c9508ed6cd975441710d0a,
4291                0x09e6ae22e1869faba24973fc0f686f4310b06c8da2b8b9cb,
4292                0x8ae0677c9dcdbe674d252a0c985a81bf9bf32001e2e8cc7e,
4293            }, .{
4294                0xe10819f5757f84ae79f934711e8cdcd6aac2848c9af0744d,
4295                0xf0264ebb8882377dff3f82dcdb9dadfa2350d058be09933e,
4296                0xa47708aedbc8100ef25a6de5eb01d7cd5f98074f69e1227b,
4297                0xd0145ba1e2d64d053034e2beed2f47179bbafb8b90b5e5f9,
4298                0xde348762a0ce1397ad611e84921a7f6f7e0683fd733b9a09,
4299                0x4de07b2982883977940773c44ea2a2e2cbf1e1db94fc832d,
4300                0x5af700739769e9ce05217e76638edf92a169bc4c3ee7542c,
4301                0xa58a80368b056aa1987f504ff1261cff3f5ffc4474ab48a1,
4302            });
4303
4304            try testArgs(@Vector(1, i193), .{
4305                -0x0ccbf216d85fdae8d3a7ee2e7746bc6cc3aca87f3f8067f66,
4306            }, .{
4307                0x0906ac1fd6d47d6c762db9fcc02fa2987ee0c4d66312b79d5,
4308            });
4309            try testArgs(@Vector(2, i193), .{
4310                0x0f3a3fe06faf1140bbe4eb5e0d0268edb529918745ef3ec9f,
4311                -0x0609f53b7f095f629a4b358fb0b77332a89dc203ac0cf28b6,
4312            }, .{
4313                -0x0188251925a3542ea0d568901a19d67796b17339e9b73f88a,
4314                0x00f9037c3dab02483b14195ab2ef737090f187b90ebee13e9,
4315            });
4316            try testArgs(@Vector(4, i193), .{
4317                -0x072798ac04a8ca26a36f587412c9bad03e855fd2049ba72ac,
4318                -0x01a8dd5d7cc5ae4f3342ea2af61c4349bb777e9d14108eeda,
4319                0x0516fc9ec2e14cd7a5e27c0ea83826082c1097fe35f9f006a,
4320                -0x06bd00e1b3a8aff93618d16bcec743ad577e379a15eee0a72,
4321            }, .{
4322                0x0bdf3724329572c17cf6b82f7011daf08bf56bc28acfe650d,
4323                0x08049ade287c9661565a18c5bf57d487cdfb5c111033ba199,
4324                -0x0917208e354d2765f0944bc9f50836d4bfcdafabfe8e2442a,
4325                -0x0a354ea6608f71254d97e615dc45495e0bcccf05466a2db2f,
4326            });
4327            try testArgs(@Vector(8, i193), .{
4328                -0x027bd975ae44664a34f52fd844ada5c23e4b0fa5586a274ec,
4329                -0x077e3522a9cb0c6aa10beeb1430e0ac356a48e90f6466c233,
4330                -0x0d0d02b7ab7876460c3d4d3118bef476e2c5ddae50af453d5,
4331                -0x065c502be097b15379af566a20c4ee93893718330c9a258ce,
4332                0x08b5e11e5ff7422f25c99ab70c216eb77e35f269b5fb739a9,
4333                0x0d827f83698f1365a5140e1d38072571dac4169c2124ee1d6,
4334                0x062e1435b91faafeecadee5551c61dd01f0f132f56e849973,
4335                -0x0dbcd14bffb526c9f3286428e5eb273785128417f05336ce0,
4336            }, .{
4337                0x0a99c2d8d15184fcdaa5b68180f4e10b0c9fcde51d213c257,
4338                0x02065bf7e8d093371795f7f376e2fb3ac857a05a3e1f6befb,
4339                -0x060f3874a6f65b46738d0117db38b749aff45725000c06213,
4340                0x06019cbc9b1466b7669690ae9c6f095257d1c8874e5e27353,
4341                0x0bde8419e795cbad708c76ca90de50c00b585c44d78b2ad68,
4342                -0x02e271e95d11dbe0cb77c8b829c739bc00e6c9b2f7b532a29,
4343                0x0318a691ab34dabf1804facf1b773a9fb6f9e9fd9e63d985e,
4344                -0x04d151cd85a0bc49683bbdba28e2410292dc5648335819fae,
4345            });
4346
4347            try testArgs(@Vector(1, u193), .{
4348                0x16d3f2329dafe80b17fdff6bfa688636ae9b5ba311b276f3a,
4349            }, .{
4350                0x15f95cc088cd4d4cabf9de25cad565d1880515c869da2866e,
4351            });
4352            try testArgs(@Vector(2, u193), .{
4353                0x1a40ffb1b6f0762c975581a45d9b6811b96eda8cdd6eb497c,
4354                0x1b010ecf0ba30ca695c39cce25d82142f4c67aa1f8ae39947,
4355            }, .{
4356                0x0851339a84dee70faac763dbd9cbf884c09f011f093846f20,
4357                0x16be7f51577c5cfcd423ecdac1bd0edd1fbce6755d7b20cac,
4358            });
4359            try testArgs(@Vector(4, u193), .{
4360                0x10e099200fef4497ed4be9e11269a254ee4f7fea53ae1e360,
4361                0x16cef44c285c1d6364cefe22db70934fba8d31dcbcefe2699,
4362                0x074c07744bd683a1a5ec77bcb1ac4cda8b840d5b6e5da9852,
4363                0x063c5565fbb29b63de719fb574657d50af454f33fb79f59fa,
4364            }, .{
4365                0x09cd6adfaaf1b9ed0fd6370049a2227088d9b834b74412a3c,
4366                0x0162bc69f5c0da662e3862ea235ea46819b737de31d258a45,
4367                0x111191f24663c0a425bd31ead4496b4693a089d6bd6082a11,
4368                0x127c9d184e79d0b80a87d9acd7fb79d93fd9b08ff480acef9,
4369            });
4370            try testArgs(@Vector(8, u193), .{
4371                0x171ea804993233dcf14ec91b9185a1520416bebdbb2f0f4b3,
4372                0x0f74e7e8f4b4759d22de5120dfb4db57205990a899ab3698b,
4373                0x094e8a7bf8cf2a802d3a79f77d3932e8a65d11378fb6f8ece,
4374                0x06d07aea60256fcb65c306b32ace35809b45baf5fca21efd1,
4375                0x17df00d2223a949f6119a3c8cf0cd87165ed48f93ad0eb921,
4376                0x173b7201aa391de8d236ff30ed8ae82b7be2ff5de51285361,
4377                0x02a95d9fae7d18739a93e174d9ea1b2f108bd2f5997dfa42f,
4378                0x0bffa67d4ac0f4bb56cd4fec9ea53d47896f05fd4efc0f6e0,
4379            }, .{
4380                0x08485a8df517ac7bf9d02ec8d0c34c246dad221f1ea51596b,
4381                0x0986d1fda1bca4b83da2cace25768e4d91d89028889443cfa,
4382                0x1faa463b7389740db0cf14b3274f1f955536c6a929c89df82,
4383                0x072b004463fc7c58f3ae51d7d5d44ca208205ad3396fa6c8b,
4384                0x1ee3603ef444b40e5ef74b6d79f3433648fdbfb918d50e4b7,
4385                0x1612fe2493d3e02b2fd38ef7664aa9fb079db6843bb201100,
4386                0x0d1a4e0c9596afd18e6f06c04ec3fb1bfb660133fc0c7f7aa,
4387                0x0de0220f630f0ac5a699cb36d7ced9da11b272dd2eb66e96e,
4388            });
4389
4390            try testArgs(@Vector(1, i255), .{
4391                -0x228071e5036248a576fc6f30bda6553bc4f08505cd4fd272e681ddd1a551db11,
4392            }, .{
4393                -0x14c82347566b6d8eb19064009a7ef16e2d08cd6e40b4bf34f1e6723ad9b0d625,
4394            });
4395            try testArgs(@Vector(2, i255), .{
4396                -0x39313c0014d4850a7957418b2fdfc83a0c29c5f04d90ccd634d7b4e52ee6aef2,
4397                -0x096abeb3fdc6451052a96557657d917e9128765c256f83403f788992dd0cd486,
4398            }, .{
4399                0x2765779b4ffc6c405173fe64f621af1c7d63a91ab3fe5809d066fc428f630c47,
4400                0x206df1159f268d4fd99dc8d2228718189161d7095f0af64c7dee86a34a7b875f,
4401            });
4402            try testArgs(@Vector(4, i255), .{
4403                -0x2c31b98911222faeed03f6625c8a75e0ce5fa53be49e79a26695dde5610e28e4,
4404                0x38506947b5f5e5ed4cf3f0738140bb988af9e7cf514862861ec7259a8426b4c1,
4405                0x01ba20e69c07a1e8845b1cc837d8d588480a2a52b15f0a5532c763f91f3dad9a,
4406                0x1877f8233a0a96c33ea2aed47e3388f8961d4a81dd6c8c1a48c77aefe1b7ed6d,
4407            }, .{
4408                0x021a3c326f7841068338bbc9ee73fba9b36050156f2a6d3b44ecfdf2273496dd,
4409                0x0865f2eb5a35c85c480880b26a9a03f51e0f4cd9bbc2b8ab2755f2aadf1cf0e6,
4410                0x0d41a6c3956465b187286d95a42d42033f593be4bd681e757f1154a0735b894a,
4411                -0x0b87a6b415579cd9889321b01ad8d2b722dc6c932cf7aa97a0c8c807be5f6d68,
4412            });
4413
4414            try testArgs(@Vector(1, u255), .{
4415                0x49ee4da820d884bb3693fb576d5b2f16c9f064ba1da5a81838911813a6445dc9,
4416            }, .{
4417                0x0afbdec22d512f0d88a95d179e6fc901c7f682be0746ce9acfca17b748543381,
4418            });
4419            try testArgs(@Vector(2, u255), .{
4420                0x293f83519c238a446748193388e0ab75567a03a458b4873f4c2b16b9250f15ff,
4421                0x1f0f33f7c2d6fc271ae497b6e3b7a7c6fdff096a321843aebd6d07d7f3050bef,
4422            }, .{
4423                0x788c4bf8d34d23eb8147a7f36ab2d09a96be0f4bcaa6be6816447e9e6e39d0f8,
4424                0x2fec35d0092202f654993429949fd5c121554c3cf6072239fcf35aa44d45dd1b,
4425            });
4426            try testArgs(@Vector(4, u255), .{
4427                0x5477956be73c0d9af22c5214b47a39761bf0e88c92dc08ad1955b12f60575982,
4428                0x4fd80abb62788804ff3edac72d91096e3747a8fe5a53e5f63b0cb4c1ec85a626,
4429                0x411f513c4e4dffd0a699f99b3d9aa50c315fccee34d183086b8209f42d965cd4,
4430                0x2561cd45d8e7fb3ddd810396823997354e7c2c4c5529d66b30f5a6ef095d92ce,
4431            }, .{
4432                0x4bb37f557ba14ab84ebc762ec943d39f5250ecb6005935f3269ba60d8df20d61,
4433                0x38358daa8c05bc317383942e3a9189d2f205ba705a76f9285acf9f223d954b36,
4434                0x3616b6288a23c31fb4412739d002df3d50b19d23995585a43dfcacc547f1eb49,
4435                0x00b4ecb3ddfce395458e448c299f74d8f5c37e36a14d9ba5b6bf8dd3917522d7,
4436            });
4437
4438            try testArgs(@Vector(1, i256), .{
4439                0x1fe30aed39db1accf4d1b43845aec28c1094b500492555fdf59b4f2f85c6a1ce,
4440            }, .{
4441                0x6932f4faf261c45ecd701a4fe3015d4255e486b04c4ab448fe162980cead63fb,
4442            });
4443            try testArgs(@Vector(2, i256), .{
4444                -0x23daa9bab59dc1e685f4220c189930c3420a55784f0dec1028c2778d907ccfe2,
4445                0x521c992e4f46d61709d39e076ed94d5d884585f85ccbf71ca4d593da34f61bf5,
4446            }, .{
4447                0x2d880cb5aa793218a32411389db31e935932029645573a9625dd174099c9e5b2,
4448                0x2394a6cde7e8b2dc2995f07f22f815baa6c223d99c0b1ec4b2d8abd0094db853,
4449            });
4450            try testArgs(@Vector(4, i256), .{
4451                0x244e66ed932a4d970fd8735c10bfbd5f59bd4452c20fa0fcf873823b8c9e6321,
4452                -0x31577b747614b1ab83fd0178293cd80b3cb92e739459b2d038688a2471f6d659,
4453                -0x0dbdfc3d8bbd7cab6a33598cef29125aab7571fb0db9a528e42966963d6ce0e7,
4454                -0x72c58cce172d8a34019a44407a4baf1f8f8a4a611711bd5bb4daa2a2739dd67b,
4455            }, .{
4456                -0x2e88bc68893fc2d61af0e5ccb541f31fa6169504e8cfcbeab0b74a03b9e86c33,
4457                -0x7eba0783f3382b59a17ffbea57ba1dd8fa30e2d4f7eba7ed68d336d3c37b4561,
4458                -0x66d1463efd38e9e994e126d09b5c65c8efc932ffea9ec6cdf6042561ba05f801,
4459                0x2024bbacefbabbfd5b32a09be631451764a1f889a77918f9094382dc6d02aef2,
4460            });
4461
4462            try testArgs(@Vector(1, u256), .{
4463                0x28df37e1f57a56133ba3f5b5b2164ce24eb6c29a8973a597fd91fbee8ab4bafb,
4464            }, .{
4465                0x63f725028cab082b5b1e6cb474428c8c3655cf438f3bb05c7a87f8270198f357,
4466            });
4467            try testArgs(@Vector(2, u256), .{
4468                0xcc79740b85597ef411e6d7e92049dfaa2328781ea4911540a3dcb512b71c7f3c,
4469                0x51ae46d2f93cbecff1578481f6ddc633dacee94ecaf81597c752c5c5db0ae766,
4470            }, .{
4471                0x257f0107305cb71cef582a9a58612a019f335e390d7998f51f5898f245874a6e,
4472                0x0a95a17323a4d16a715720f122b752785e9877e3dd3d3f9b72cdac3d1139a81f,
4473            });
4474            try testArgs(@Vector(4, u256), .{
4475                0x19667a6e269342cba437a8904c7ba42a762358d32723723ae2637b01124e63c5,
4476                0x14f7d3599a7edc7bcc46874f68d4291793e6ef72bd1f3763bc5e923f54f2f781,
4477                0x1c939de0ae980b80de773a04088ba45813441336cdfdc281ee356c98d71f653b,
4478                0x39f5d755965382fe13d1b1d6690b8e3827f153f8166768c4ad8a28a963b781f2,
4479            }, .{
4480                0xbe03de37cdcb8126083b4e86cd8a9803121d31b186fd5ce555ad77ce624dd6c7,
4481                0xa0c0730f0d7f141cc959849d09730b049f00693361539f1bc4758270554a60c1,
4482                0x2664bdba8de4eaa36ecee72f6bfec5b4daa6b4e00272d8116f2cc532c29490cc,
4483                0xe47a122bd45d5e7d69722d864a6b795ddee965a0993094f8791dd309d692de8b,
4484            });
4485
4486            try testArgs(@Vector(1, i257), .{
4487                -0x037f102b7ce87d2f4c704b7dd9c77c79d5ef99cbaa890cdf5be7f1c991b377f12,
4488            }, .{
4489                0x0e6613140253b86eb76f9cf0da699c734f1073559d4d59b876727531aa1566a3a,
4490            });
4491            try testArgs(@Vector(2, i257), .{
4492                -0x0516f834d832f5b33a8b766b5830ae9b6ed2a8be3347d7cce6a0d536c0ccdcda3,
4493                -0x04148b4556c411a3db079163f1aba615971677b03abf31a34abe73cf054957e01,
4494            }, .{
4495                0x01de4743d129cde4400547974ca9e9cfe234fe8fa67ec3c00f70b52f16a683ac9,
4496                -0x010dfb09c7a42112f07962065751b8bcabe282143d79aaad484080f2c15ac41a1,
4497            });
4498            try testArgs(@Vector(4, i257), .{
4499                -0x097f0ce2c2a4de17cd779503e3e86de1fa9153ca69674546367166703b79658aa,
4500                0x0d6414d92755101344039202da1d6ea15e7054817dbcf4f30c16f85eaf48f3a85,
4501                0x01e73273f475e7fb3111f8a4212eba3f736c536006f1f1a0fa0656fd3fc34fc66,
4502                -0x0277808e445419c1f814213ef86dec08f7a0192ac985dd22043a8161e0f291c42,
4503            }, .{
4504                0x0a3a6678ee5f9458ea259d8434c1604cbfab67b294525a7b2e6ee5dee752db0d8,
4505                0x009f39291d0f97269ce694958d6252a666b928737e645865e38fc70995307290a,
4506                -0x0beed4ee766fb1a04a66a0cbad3da0f471b5c0e32c252279b23feddad2877d35c,
4507                -0x02ad0e2fa1940ad0d2ba67f8f27b486ec781bf5da1f580a9bba0ba8bb0d11aff5,
4508            });
4509
4510            try testArgs(@Vector(1, u257), .{
4511                0x1bb62cd7dbcbbbf2e708871d12f647840997f16f6d322eae96393b3b46ad0ae11,
4512            }, .{
4513                0x1d4361c83425068c40a7a142019b4004a496cf16649773aa04431225b189fbd68,
4514            });
4515            try testArgs(@Vector(2, u257), .{
4516                0x08459d63d1124e6bf747a2dba45df79ba9813451189f4e9bd8fcae37d92646ef9,
4517                0x1336f89e29d7da4d741e10a8a8016e007ad3f475c7b302a03271f0edcb2dbaa98,
4518            }, .{
4519                0x0fd91b46af0a41227ae191250a1d49b7e44e4435f371eac7e8355b8f3ccff1ccb,
4520                0x03914f3814478e96cf3efb4169aa36747aa4bc33daa56ca41134dd71a3af85de6,
4521            });
4522            try testArgs(@Vector(4, u257), .{
4523                0x0aa2d811711d70ec5dd639ecb979dda726c157bdc18dc34447c3026fac49d3909,
4524                0x00652c96fa6a34772a424e4b9c7c3613558c79f4144349e0d700c15ff9ec2f974,
4525                0x11b10abfe69b4f75c11e0a0ee128526ec9f3fb7b32502d1005984b0c0652ff7c4,
4526                0x053ea83a9caded41dd751a742b49b062fe1fd62af3d3025486bc1af7921225ab0,
4527            }, .{
4528                0x018c2110a0432d0acd462886f559f826bdfb05e91e61e2928a3a43b98d1e6bfab,
4529                0x1b212dde794f97203018963e51b025b21a5dd47f04a007fee80aaaadb87e30140,
4530                0x1394a84c2431e46862d33dbf0dd0cf23f7ff7f85c0107c04cdeca1c168df5c556,
4531                0x060c9e2ba327cde7650bbe329345b4184223d77adda253c5f425531676e863c8b,
4532            });
4533
4534            try testArgs(@Vector(1, i511), .{
4535                0x25c69b25440d3059c5c38ba2771252430152afcbcb988d8c5de0832f49f1d8649a17a4e0dd508d8cd7349adc4ba228902099092726af175a8f04f29a19ded5ed,
4536            }, .{
4537                0x0c28729ed05abb52e888bb7fefe58f783ed5c7ef3c8a4cdd7349fe47edca26db746de0308e642b64b659a52e17405dac9932ec43499e6f17b6cbebcab597e577,
4538            });
4539            try testArgs(@Vector(2, i511), .{
4540                0x2b6235f2d231f63ebc67ac71893fa5ad6f2125b6d50a5f9eedaf8bb4de3e116939ab5b2c0e9b7cbc0a2308c3a5dd4a99049f4538cffd4155b24721e3c77bc268,
4541                0x10cac70f8d1dbb88f1dfd913823e8fa53ad58f54929222c1c7bedb591dd3c90ecc5c1239fccc80515b5bbf4c4d47669f267b3880dd8f465f6c7e9fc6e63faac4,
4542            }, .{
4543                -0x3dc3af786e95767befb16c51f5602029a5fdbc76dafafeab2c409168332f8c5c038a0e7f3d0021acaf6eb6f6ff9a232a9dd19e5b33c7c4158f8f1798150448f1,
4544                -0x0eeaa2dc65820153224f26847a99a3626d6ee9991ecba613e721bbd169e69371dd5bcadc8983ae9b82d77376b0e8179997e400fce64c74c9efd2b4a5f174b854,
4545            });
4546
4547            try testArgs(@Vector(1, u511), .{
4548                0x207381c6b742f50bf76d0d220943d9354d96f4cf27e979bac6c8f47d70d64d44153dd6c2ed62cc7b5a4fce98600382fbece15ee4e4b3d1c0d4277a553ac01c10,
4549            }, .{
4550                0x35ad1698d693b3b7618d1243163f1ce2beb5f6c3c7b6e33a24ce9639e5a3a30f78350f4c3c818512377bf89851388e1d444a50b20a10a2ce66c60d0af1bebc84,
4551            });
4552            try testArgs(@Vector(2, u511), .{
4553                0x039131b98944347f35fe54337902bba6b975a1b6bd9e36a20e236f3149b53156b5bfa0b468a56dfb1c09684a8f24b5d548c6e216c20dde01813c044cf031a3eb,
4554                0x43ac7c9afa88f5169405ff4963557bb7e78ed15eda5bfa91335f7d9117ee13d969d6cdd2f0910f8865cb57687fd2e0f4e6cb188bb34759609724a7ce128c0db1,
4555            }, .{
4556                0x43dc8c03e26c12e96d69076a68afd3e0515ffd67fd2b2aeb8457c92e7e2ec6c503a362866ddd99d4a4f21e7bece901e3df76a9496e978d11f4c4cc50d1e52601,
4557                0x4f97c33b53b3c4b5a59c257b575149524e7e4ec4fcfe1574a9a3111b066959d39affe87e6e99656a80d64ae95d60ef4f90c2544559d22abbf26d6ab34e5b3074,
4558            });
4559
4560            try testArgs(@Vector(1, i512), .{
4561                -0x439ba81b44584e0c4d7abc80d18ab9d679a4e921884e877b28d04eb15b2d3e7be8d670b0aba2c4cc25c12655e1899ab514d0a6e50a221bcf076d506e6411d5c2,
4562            }, .{
4563                0x18b1d3be5a03310d82859a4ab72f056a33d1a4b554522bcc062fb33eda3b8111045ee79e045dd1a665d250b897f6f2e12003a03313c2547698f8c1eab452eae1,
4564            });
4565            try testArgs(@Vector(2, i512), .{
4566                0x28e2ab84d87d5fb12be65d8650de67b992dd162fe563ca74b62f51f2f32e1084e03e32c8370930816445ac5052b4d345059c8ace582e3ef44377b160e265ec9b,
4567                -0x3a96548c707219326c42063997e71bc7a17b3067d402063843f84c86e747b71e09338079c28943d20601c0cde018bad57f5615fc89784bcb6232e45c54dff1db,
4568            }, .{
4569                0x64beecc90609b7156653b75a861e174c58fb42d5c7bf8d793efbb1cbe785c6b8cd52ce5f9aa859f174123c387820d40a2f93122b81396d739eb85c3ea33fcd37,
4570                -0x3632e347bc6d794940424ca0945dafa04328a924ec6b0ccdedcda6d296e09aa2dd5dca83b934cac752993238aa4fe826be8d62991c9347bae6f01bc0b1b4223d,
4571            });
4572
4573            try testArgs(@Vector(1, u512), .{
4574                0x651058c1d89a8f34cfc5e66b6d25294eecfcc4a7e1e4a356eb51ee7d7b2db25378e4afee51b7d18d16e520772a60c50a02d7966f40ced1870b32c658e5821397,
4575            }, .{
4576                0xd726e265ec80cb99510ba4f480ca64e959de5c528a7f54c386ecad22eeeefa845f0fd44b1bd64258a5f868197ee2d8fed59df9c9f0b72e74051a7ff20230880e,
4577            });
4578            try testArgs(@Vector(2, u512), .{
4579                0x22c8183c95cca8b09fdf541e431b73e9e4a1a5a00dff12381937fab52681d09d38ea25727d7025a2be08942cfa01535759e1644792e347c7901ec94b343c6337,
4580                0x292fdf644e75927e1aea9465ae2f60fb27550cd095f1afdea2cf7855286d26fbeed1c0b9c0474b73cb6b75621f7eadaa2f94ec358179ce2aaa0766df20da1ef3,
4581            }, .{
4582                0xe1cd8c0ca244c6626d4415e10b4ac43fa69e454c529c24fec4b13e6b945684d4ea833709c16c636ca78cffa5c5bf0fe945cd714a9ad695184a6bdad31dec9e31,
4583                0x8fa3d86099e9e2789d72f8e792290356d659ab20ac0414ff94745984c6ae7d986082197bb849889f912e896670aa2c1a11bd7e66e3f650710b0f0a18a1533f90,
4584            });
4585
4586            try testArgs(@Vector(1, i513), .{
4587                0x0dd56664962c44dbd9941a8e45102e1e050ef164752b954c4029ce6a28752c97b76ce3b0ae50dd09076fc16c89c628bf82ea7d3250101c3ee1316e8c51a746a4b,
4588            }, .{
4589                -0x0c4f50a700f8d91c3944c66e6932ea9cf0433a309dd41fd8ec1ab6e7c7f031de17c7fa7bde7a162fd653c1911aeddd176271f5bd76cca68eeab79ffde88835808,
4590            });
4591            try testArgs(@Vector(2, i513), .{
4592                0x0099b42682a76cfc1d6a0b680cd44c907387e78ca92d4c30c555dd6b05f136ad7e136f892641f1b256ef2aa10b1497d1e5a25c9e29260bd861b4fdc1ccc821a4c,
4593                -0x03aafdfa35c0b27515ee422ee71afcb157c6b578a77b514a6134e759bd80100f41344d6016a4dc252034667cb7a9b5165c058c5af0a632ed4b9a49d345b54d711,
4594            }, .{
4595                -0x07c699f50cc1592587bae58fa52742130df1dcd12da8ab1a15d48cbb3c8adeccacd16da37b91ba8a4ffe02669a089e3a1aadf325f161b99a010e76275a11f8dd0,
4596                0x0cec94f5064e3d4736016908cee5bd5469c2c60ed22c560a68b5bbc3a912b984195d7a2aa499db9b67779eadf0158ac9e9c166d58d42720834c5cde96d9a22c33,
4597            });
4598
4599            try testArgs(@Vector(1, u513), .{
4600                0x167f9eb1095f756f462ceb2a48b7a5230a92f9ca6c572f394d741475cfa791e9666852b7696944f624f938f9474fe64e2189c1a584bdadc70d0f6db5c94355c78,
4601            }, .{
4602                0x06566ddffb298aee609074e06fbd881774623431f401410416645844a6c95f65cb08e1765f9c80bdf8f6d0d4c8ec9113d96b6e94cf97909d7da8c6165773162d8,
4603            });
4604            try testArgs(@Vector(2, u513), .{
4605                0x0e58f2fad85c025548e8c011faf78307d5237f25c41a319b0ea826704fba3db56f5e1074e6c76c8ecb83004058ff7dc5157d397d93d6725ac604efe0a48e27b8e,
4606                0x1635d3b34a3186f0e3c8d6ecdea25c84be4ef1f1bbc503dba90e9a260ffd8ec781b857c28e30fcc108ea93c3afa6acb91de3ad3fdb8e68cacdf412bcd31121c5e,
4607            }, .{
4608                0x043c3969668c05c0bec64d7be9741790a17588b8fd35ab88b8708c32658acc6e92dfc1691ee41da1278f7abbfc3f92aea885cabc17c556688f0971ca40b2acdef,
4609                0x198d4fc313ec8bafc85712c426223460c465a976aade6ca2b21ccb216257519675dda21f0707134920d23479c983e0d8fc75bb5e113f19fa3b4f63a69329cf723,
4610            });
4611
4612            try testArgs(@Vector(1, i1023), .{
4613                -0x18ad357e523014b4b2b02d7802e8d6687e0b37e0e20bc992d9a1d3498cdccc3683c62628505026725ccab8e2d7da378de5e3dd539f168530e83b8add890851977a58c640102ebeb7d15f56b024a54636008af9232f73ac4a83f9e502ed1f6cf0647e4d6c2cc6c6e8fc4a49abcb2e34fa927cc114692905d73ffed1aed664eab4,
4614            }, .{
4615                0x29757ede90f3fd7a77d970667941eee2f7f7df5dc1100562c8e3bd45dcf1cbbbffface90f0b4f2aef49642e1cdeaa19045cc6dcf9f81750bee8e9d84d951da233d16878ae1473d42146660bc454a78a4bc22ebf2916b7f535c4b88302ea0108b458bd38660e95b0ae703d268cff78b39be828918cf6bd9ad16a90d407d3ee5b1,
4616            });
4617
4618            try testArgs(@Vector(1, u1023), .{
4619                0x7e22aa4f394329943e1f265df8327c44032b28baea5ce81dfdf9781ed2c9ad337964b57c1ad4cb03cb920035c85e8c6e475ad33742874226beeba62e3e130ff6fbd21e902e49f7f95c7c3b1c6d7ce34a1ed85ba8028b41d19ab9547e05da56e6c8fba7c9c4f949412808ac3fb8709e490a859bebe22a77e704c04ea44a4579a0,
4620            }, .{
4621                0x4d2ec73e1a38a7373514259ed749a9895a5c45e53498ad3e75690116ec167321c0bcaa4fe86301b486eba831e7c15c3872676afe677d01ad5d088b51d64248d1bce2e191dcb87d6c9f9b944554b5c5a74bb64c7eea50a0badc2f292251b640c97d5b8e9010eb2f034d77b3a7f14aafb76c104b196a4b76073503acb085055209,
4622            });
4623
4624            try testArgs(@Vector(1, i1024), .{
4625                -0x4fe568569c0531c9bfbbda1516e93a6c61a3d035c98e13fdc85225165a3bea84d5dc6b610ced008f9321453af42ea50bbf6881d40d2759b73b9b6186c0d6d243f367e292cbbf6b5c5c30d7f4e8de19701c7b0fc9e67cdf31228daa1675a4887f6c4f1588b48855d6f4730a21f27dec8a756c568727709b65cd531020d53ff394,
4626            }, .{
4627                -0x7cab2a053dfbf944cd342460350c989fd1b4469a6c7b54ddcacd54e605d29c03651b5c463495610d82269c9ac5b51bfd07816a0f7b1ab50cb598989ed64607b3faff79a190702eb285b0fedc050ec1a71537abc47ec590eb671d4f76b19567049ba4789d1a4348385607a0320fbff9b78260536a9b6030bddb0b09da689d1687,
4628            });
4629
4630            try testArgs(@Vector(1, u1024), .{
4631                0x0ca1a0dfaf8bb1da714b457d23c71aef948e66c7cd45c0aa941498a796fb18502ec32f34e885d0a107d44ae81595f8b52c2f0fb38e584b7139903a0e8a823ae20d01ca0662722dd474e7efc40f32d74cc065d97d8a09d0447f1ab6107fa0a57f3f8c866ae872506627ce82f18add79cee8dc69837f4ead3ca770c4d622d7e544,
4632            }, .{
4633                0xf1e3bbe031d59351770a7a501b6e969b2c00d144f17648db3f944b69dfeb7be72e5ff933a061eba4eaa422f8ca09e5a97d0b0dd740fd4076eba8c72d7a278523f399202dc2d043c4e0eb58a2bcd4066e2146e321810b1ee4d3afdddb4f026bcc7905ce17e033a7727b4e08f33b53c63d8c9f763fc6c31d0523eb38c30d5e40bc,
4634            });
4635
4636            try testArgs(@Vector(1, i1025), .{
4637                -0x0aac7daecbe81ad0f5b3582238ce842a9e57f580af344429c55785eb8ce32d28658417792d10e5263c6c7d0ab7d8ab6198d78bd024ce9c23de9470b20aa6eaf9dd301034cfee6b22025be5df4e91708d7cc9e980959a449b0cb893355392d1c94c4a4ed67d91108df655383f5f8fcde66f22dbd6453d838c1d160fb80ee07ab18,
4638            }, .{
4639                -0x0be0a1d4693d8969af6e26aa98ddb82f44124aa292fb336dd90cb5f28d708a33ef2d055db58e32578c5c20bb436a613b8ca214914db5066d458599600ced96129f4894b80293a3975e2bf7fd1a1f396d128ef89fd0609d2e518534e66c5e46c90b0a73e4a807c8a6decba204ac6e11859a492df1c81beec8b04961afa8544e081,
4640            });
4641
4642            try testArgs(@Vector(1, u1025), .{
4643                0x129e165d8601a1ef41658e3ab9a7d0993124c46a37a672395a1314d5f8984de3c73e4569f1bd91f28aa8bf3e940d2121ef8bb557023abd80deb6761a7b0e2597763e5b895a52fc32308cc39b34a31f17fd8fe04bd1817e5b4a1046bbc1ee2bd360274e667be4392874a7dd8de7c8c054e3e6919302cb2ad46743798591ad0accb,
4644            }, .{
4645                0x07ff746b3d7ed091996cb20d21d6e85397c7daa127063a9f30cdb91483b145f2af3aa0bcf58188bc171e97a7b07800ee007af0305fb40e086ed2289dc7c303961d325bb799920a47de27bb16f6a868d80e93769982d81aa56cc3d1dbc87f1138179f0af4f6def885ade090d2725a044b500ef56fe39794906d45330fab9a4f81f,
4646            });
4647        }
4648        fn testFloatVectors() !void {
4649            @setEvalBranchQuota(21_700);
4650
4651            try testArgs(@Vector(1, f16), .{
4652                -tmin(f16),
4653            }, .{
4654                fmax(f16),
4655            });
4656            try testArgs(@Vector(2, f16), .{
4657                1e-1, 1e0,
4658            }, .{
4659                -nan(f16), -fmin(f16),
4660            });
4661            try testArgs(@Vector(4, f16), .{
4662                1e-1, -fmax(f16), 0.0, 1e-1,
4663            }, .{
4664                -fmin(f16), -1e1, 1e0, -tmin(f16),
4665            });
4666            try testArgs(@Vector(8, f16), .{
4667                -fmax(f16), -fmin(f16), -nan(f16), -0.0, tmin(f16), -0.0, 0.0, 1e-1,
4668            }, .{
4669                -1e0, tmin(f16), nan(f16), nan(f16), -fmax(f16), -1e1, -nan(f16), 1e1,
4670            });
4671            try testArgs(@Vector(16, f16), .{
4672                1e-1, fmax(f16), -1e1, fmax(f16), -1e1, 1e-1, -tmin(f16), -inf(f16), -tmin(f16), -1e0, -fmin(f16), tmin(f16), 1e1, -fmax(f16), 0.0, -fmin(f16),
4673            }, .{
4674                inf(f16), -1e1, -fmax(f16), fmax(f16), -tmin(f16), 0.0, -1e0, -1e0, 1e-1, -nan(f16), -tmin(f16), 1e0, 1e-1, fmax(f16), -0.0, inf(f16),
4675            });
4676            try testArgs(@Vector(32, f16), .{
4677                -inf(f16), tmin(f16), fmin(f16), -nan(f16),  nan(f16),  1e-1,     0.0,        1e1,  -tmin(f16), inf(f16), 1e0,       -1e1, fmin(f16),  -0.0, 1e0,      -fmax(f16),
4678                1e1,       -0.0,      -1e1,      -tmin(f16), fmax(f16), nan(f16), -fmin(f16), -1e0, 0.0,        -1e1,     -nan(f16), 1e0,  -tmin(f16), -0.0, nan(f16), 1e1,
4679            }, .{
4680                0.0,      1e1,  -nan(f16), -0.0, tmin(f16),  fmax(f16), nan(f16),  tmin(f16), -1e1,       1e-1,      1e1, fmin(f16), -fmax(f16), inf(f16),   inf(f16),   -tmin(f16),
4681                inf(f16), -0.0, 1e-1,      0.0,  -fmin(f16), -0.0,      -nan(f16), -inf(f16), -fmin(f16), fmax(f16), 1e0, fmin(f16), -0.0,       -tmin(f16), -fmax(f16), -1e1,
4682            });
4683            try testArgs(@Vector(64, f16), .{
4684                -nan(f16), fmin(f16),  -inf(f16),  inf(f16),  -tmin(f16), inf(f16),   1e-1,      -1e0,      -inf(f16), nan(f16),  -fmin(f16), 1e-1,     -tmin(f16), -fmax(f16), -1e1,     inf(f16),
4685                0.0,       -fmin(f16), -fmax(f16), 1e1,       -fmax(f16), fmax(f16),  1e1,       fmin(f16), -inf(f16), -nan(f16), -tmin(f16), nan(f16), -0.0,       0.0,        1e-1,     -fmin(f16),
4686                0.0,       nan(f16),   inf(f16),   fmax(f16), nan(f16),   tmin(f16),  1e0,       tmin(f16), fmin(f16), -1e1,      0.0,        1e-1,     inf(f16),   -1e1,       inf(f16), 1e0,
4687                1e-1,      -inf(f16),  1e1,        -0.0,      -1e0,       -tmin(f16), -nan(f16), 1e-1,      1e-1,      -nan(f16), -0.0,       -1e1,     -0.0,       -nan(f16),  1e-1,     fmin(f16),
4688            }, .{
4689                1e1,        0.0,       fmax(f16), -inf(f16),  -fmax(f16), -fmax(f16), tmin(f16), -1e0,       -tmin(f16), -1e1, nan(f16), -nan(f16), tmin(f16),  -fmin(f16), nan(f16), -1e1,
4690                1e1,        fmax(f16), 1e-1,      0.0,        1e-1,       -fmax(f16), -0.0,      -fmin(f16), inf(f16),   -1e0, inf(f16), fmin(f16), -inf(f16),  -tmin(f16), 1e1,      1e1,
4691                1e-1,       1e-1,      1e-1,      1e1,        -fmin(f16), inf(f16),   1e-1,      fmax(f16),  inf(f16),   -0.0, -1e1,     tmin(f16), -fmin(f16), 0.0,        1e1,      0.0,
4692                -tmin(f16), -inf(f16), 1e0,       -fmax(f16), inf(f16),   1e1,        fmax(f16), -1e0,       0.0,        1e-1, -1e0,     -inf(f16), 1e-1,       0.0,        -1e1,     fmax(f16),
4693            });
4694            try testArgs(@Vector(128, f16), .{
4695                -fmin(f16), 1e0,        0.0,       1e-1,      nan(f16),   1e-1,       1e-1,      -inf(f16),  -tmin(f16), 1e0,        -fmin(f16), -fmax(f16), -1e0,      -fmin(f16), 1e1,        -nan(f16),
4696                inf(f16),   -inf(f16),  tmin(f16), -1e1,      -1e0,       -0.0,       -0.0,      1e0,        nan(f16),   -1e1,       fmin(f16),  -tmin(f16), tmin(f16), 1e-1,       -fmax(f16), fmax(f16),
4697                tmin(f16),  -fmin(f16), nan(f16),  1e1,       1e0,        -fmin(f16), 1e-1,      1e1,        fmax(f16),  fmax(f16),  fmax(f16),  -1e0,       -nan(f16), 1e1,        tmin(f16),  -nan(f16),
4698                -nan(f16),  -inf(f16),  -0.0,      -inf(f16), nan(f16),   -1e0,       1e-1,      -fmax(f16), -1e1,       nan(f16),   1e0,        -1e1,       tmin(f16), 1e0,        1e-1,       1e0,
4699                1e1,        1e-1,       tmin(f16), nan(f16),  -inf(f16),  -1e0,       -1e0,      -fmax(f16), -inf(f16),  1e-1,       1e-1,       -0.0,       1e1,       fmin(f16),  -1e0,       inf(f16),
4700                1e-1,       -1e1,       inf(f16),  -0.0,      1e-1,       0.0,        inf(f16),  1e0,        tmin(f16),  -tmin(f16), 1e-1,       inf(f16),   tmin(f16), -inf(f16),  1e1,        1e0,
4701                -inf(f16),  1e-1,       1e0,       fmax(f16), -fmin(f16), nan(f16),   -nan(f16), fmin(f16),  -1e0,       -fmax(f16), inf(f16),   -fmax(f16), 0.0,       -1e1,       fmin(f16),  -fmax(f16),
4702                -0.0,       -1e0,       1e-1,      1e1,       inf(f16),   fmax(f16),  inf(f16),  1e1,        fmax(f16),  -0.0,       -tmin(f16), fmin(f16),  inf(f16),  nan(f16),   -fmin(f16), -1e0,
4703            }, .{
4704                -fmax(f16), fmax(f16),  inf(f16),  1e0,        nan(f16),  1e-1,      -fmax(f16), 1e1,        -fmin(f16), 1e-1,       fmin(f16),  -0.0,      1e-1,       -0.0,      -nan(f16),  -nan(f16),
4705                inf(f16),   1e0,        -1e0,      1e-1,       1e-1,      1e-1,      0.0,        -tmin(f16), -1e0,       -1e1,       -tmin(f16), 1e0,       -1e1,       fmin(f16), -fmax(f16), -nan(f16),
4706                -tmin(f16), -inf(f16),  inf(f16),  -fmin(f16), -nan(f16), 0.0,       -inf(f16),  -fmax(f16), 1e-1,       -inf(f16),  tmin(f16),  nan(f16),  tmin(f16),  fmin(f16), -0.0,       1e-1,
4707                fmin(f16),  fmin(f16),  1e0,       tmin(f16),  0.0,       1e1,       1e-1,       inf(f16),   1e1,        -tmin(f16), tmin(f16),  -1e0,      -fmin(f16), 1e0,       nan(f16),   -fmax(f16),
4708                nan(f16),   -fmin(f16), 1e-1,      1e1,        -1e1,      1e0,       -0.0,       tmin(f16),  nan(f16),   inf(f16),   -fmax(f16), tmin(f16), -tmin(f16), 1e1,       fmin(f16),  -tmin(f16),
4709                -0.0,       1e0,        tmin(f16), fmax(f16),  1e0,       -inf(f16), -nan(f16),  -0.0,       1e-1,       -inf(f16),  1e-1,       fmax(f16), -inf(f16),  -nan(f16), -1e0,       -inf(f16),
4710                1e-1,       fmin(f16),  -1e1,      -tmin(f16), 1e0,       -nan(f16), -fmax(f16), -1e1,       -tmin(f16), 1e1,        nan(f16),   fmin(f16), fmax(f16),  tmin(f16), -inf(f16),  1e0,
4711                -fmin(f16), tmin(f16),  -1e0,      1e-1,       0.0,       nan(f16),  1e0,        fmax(f16),  -1e0,       1e1,        nan(f16),   1e0,       fmin(f16),  1e0,       -1e1,       -1e1,
4712            });
4713            try testArgs(@Vector(69, f16), .{
4714                -nan(f16), -1e0,      -fmin(f16), fmin(f16), inf(f16),  1e-1,      0.0,       fmax(f16),  tmin(f16), 1e-1,      0.0,        -tmin(f16), 0.0,        0.0,        1e0,        -inf(f16),
4715                tmin(f16), -inf(f16), -tmin(f16), fmin(f16), -inf(f16), -nan(f16), tmin(f16), -tmin(f16), 1e-1,      -1e0,      -tmin(f16), fmax(f16),  nan(f16),   -fmin(f16), fmin(f16),  1e1,
4716                fmin(f16), -1e1,      0.0,        fmin(f16), fmax(f16), -nan(f16), fmax(f16), -fmax(f16), nan(f16),  -nan(f16), fmin(f16),  -1e1,       -fmin(f16), fmin(f16),  -fmin(f16), -nan(f16),
4717                0.0,       -1e0,      fmax(f16),  1e-1,      inf(f16),  1e0,       -1e0,      -0.0,       1e1,       1e-1,      -fmax(f16), tmin(f16),  -inf(f16),  tmin(f16),  -fmax(f16), 1e-1,
4718                -1e1,      -0.0,      -fmax(f16), nan(f16),  fmax(f16),
4719            }, .{
4720                inf(f16),   -fmin(f16), 1e-1,      1e-1,      -0.0,       fmax(f16),  1e-1,      -0.0,      0.0,       -0.0,       0.0,       -tmin(f16), tmin(f16), -1e0,     nan(f16),   -fmin(f16),
4721                fmin(f16),  1e-1,       1e-1,      nan(f16),  -fmax(f16), -inf(f16),  -nan(f16), -nan(f16), 1e-1,      -fmax(f16), fmin(f16), 1e-1,       1e-1,      1e-1,     -0.0,       1e1,
4722                tmin(f16),  -nan(f16),  fmin(f16), -1e0,      1e0,        -tmin(f16), 0.0,       nan(f16),  fmax(f16), -1e1,       fmin(f16), -fmin(f16), -1e0,      1e-1,     -fmin(f16), -fmin(f16),
4723                -fmax(f16), 0.0,        fmin(f16), -1e1,      -1e0,       -1e0,       fmax(f16), -nan(f16), -inf(f16), -inf(f16),  0.0,       tmin(f16),  -0.0,      nan(f16), -inf(f16),  nan(f16),
4724                inf(f16),   fmin(f16),  -nan(f16), -inf(f16), inf(f16),
4725            });
4726
4727            try testArgs(@Vector(1, f32), .{
4728                fmin(f32),
4729            }, .{
4730                -tmin(f32),
4731            });
4732            try testArgs(@Vector(2, f32), .{
4733                nan(f32), -1e1,
4734            }, .{
4735                -tmin(f32), fmin(f32),
4736            });
4737            try testArgs(@Vector(4, f32), .{
4738                fmax(f32), -fmax(f32), -1e1, 0.0,
4739            }, .{
4740                inf(f32), inf(f32), -1e1, inf(f32),
4741            });
4742            try testArgs(@Vector(8, f32), .{
4743                -1e1, fmax(f32), inf(f32), -0.0, -tmin(f32), -tmin(f32), 1e1, 1e-1,
4744            }, .{
4745                1e1, -1e0, -1e0, inf(f32), 1e0, -tmin(f32), nan(f32), 1e1,
4746            });
4747            try testArgs(@Vector(16, f32), .{
4748                1e-1, 1e-1, -nan(f32), -1e1, -nan(f32), 0.0, fmin(f32), fmin(f32), -1e1, 1e0, -fmax(f32), -0.0, inf(f32), -0.0, fmax(f32), -fmin(f32),
4749            }, .{
4750                nan(f32), 0.0, tmin(f32), -1e0, -1e1, -tmin(f32), fmin(f32), -fmax(f32), 1e-1, 1e-1, -inf(f32), tmin(f32), -0.0, 1e1, -0.0, -inf(f32),
4751            });
4752            try testArgs(@Vector(32, f32), .{
4753                1e-1,       tmin(f32), -1e0,       1e0,       tmin(f32), -1e1,      fmax(f32), 0.0,       tmin(f32),  1e-1,      -1e0,     fmax(f32),  -nan(f32), -0.0,      fmin(f32), 0.0,
4754                -fmax(f32), fmax(f32), -fmin(f32), -inf(f32), tmin(f32), -nan(f32), -1e0,      tmin(f32), -fmin(f32), -inf(f32), nan(f32), -tmin(f32), inf(f32),  -inf(f32), -nan(f32), 1e-1,
4755            }, .{
4756                -fmin(f32), -1e0,      fmax(f32), inf(f32),   -fmin(f32), fmax(f32),  0.0,       -1e1, 0.0,  1e-1,      fmin(f32), -inf(f32),  1e0, -nan(f32), -nan(f32),
4757                -inf(f32),  -0.0,      nan(f32),  -fmax(f32), 1e1,        -tmin(f32), fmax(f32), -1e1, 1e-1, tmin(f32), 1e-1,      -fmax(f32), 0.0, 1e-1,      -nan(f32),
4758                -fmin(f32), fmax(f32),
4759            });
4760            try testArgs(@Vector(64, f32), .{
4761                fmin(f32),  0.0,  -inf(f32), 1e-1,      -1e1,      -fmin(f32), 1e1,        nan(f32),  1e-1,       1e0,       -1e0,      1e1,        1e1,       1e-1,       -fmax(f32), -1e0,
4762                -fmin(f32), 1e-1, -inf(f32), -inf(f32), 1e-1,      1e-1,       0.0,        -1e0,      nan(f32),   -0.0,      -0.0,      -fmin(f32), -inf(f32), inf(f32),   tmin(f32),  -nan(f32),
4763                1e-1,       0.0,  1e0,       tmin(f32), 1e1,       fmin(f32),  -fmin(f32), fmax(f32), nan(f32),   1e0,       -nan(f32), -nan(f32),  1e0,       nan(f32),   1e0,        fmax(f32),
4764                -0.0,       0.0,  inf(f32),  nan(f32),  tmin(f32), 0.0,        fmin(f32),  -0.0,      -fmin(f32), tmin(f32), -1e0,      -1e1,       1e-1,      -tmin(f32), -inf(f32),  -1e0,
4765            }, .{
4766                nan(f32),   -nan(f32),  -tmin(f32), inf(f32),   -inf(f32), 1e-1,      1e-1,       1e-1,       -1e0,       -inf(f32),  -0.0,     fmax(f32), tmin(f32), -nan(f32),  -fmax(f32), -1e0,
4767                -fmin(f32), -0.0,       fmax(f32),  -fmax(f32), 1e0,       -0.0,      0.0,        1e1,        -1e0,       -fmin(f32), 0.0,      fmax(f32), 1e-1,      1e0,        1e1,        1e-1,
4768                1e-1,       fmin(f32),  -nan(f32),  -inf(f32),  -0.0,      -inf(f32), 1e-1,       -fmax(f32), -1e1,       -1e1,       nan(f32), 1e1,       -1e0,      -fmin(f32), 1e1,        fmin(f32),
4769                1e0,        -fmax(f32), nan(f32),   inf(f32),   fmax(f32), fmax(f32), -fmin(f32), -inf(f32),  -tmin(f32), -nan(f32),  nan(f32), nan(f32),  1e-1,      1e-1,       -1e0,       inf(f32),
4770            });
4771            try testArgs(@Vector(128, f32), .{
4772                -1e1,       -nan(f32),  inf(f32),   inf(f32),  -tmin(f32), -0.0,       0.0,        1e-1,       -0.0,       fmin(f32),  nan(f32),   -1e0,       nan(f32),   -fmax(f32), nan(f32),   0.0,
4773                1e0,        -tmin(f32), 0.0,        -nan(f32), 1e-1,       1e-1,       -1e0,       1e1,        -fmax(f32), -fmin(f32), 1e-1,       nan(f32),   1e-1,       -fmax(f32), -tmin(f32), -inf(f32),
4774                inf(f32),   tmin(f32),  -tmin(f32), nan(f32),  -inf(f32),  -1e1,       1e0,        -nan(f32),  1e-1,       nan(f32),   -1e0,       tmin(f32),  -fmin(f32), -0.0,       -0.0,       1e0,
4775                fmin(f32),  -fmin(f32), 1e-1,       1e-1,      1e-1,       -1e1,       -1e1,       -tmin(f32), 1e0,        -0.0,       1e1,        -fmax(f32), 1e1,        -fmax(f32), inf(f32),   -1e0,
4776                -fmax(f32), fmin(f32),  fmin(f32),  fmin(f32), -1e0,       -nan(f32),  fmax(f32),  -nan(f32),  1e-1,       -1e0,       -fmax(f32), -tmin(f32), -0.0,       fmax(f32),  -1e1,       inf(f32),
4777                1e1,        -inf(f32),  1e-1,       fmin(f32), nan(f32),   -fmax(f32), -tmin(f32), inf(f32),   tmin(f32),  -fmin(f32), fmax(f32),  1e0,        fmin(f32),  -0.0,       1e-1,       fmin(f32),
4778                1e-1,       inf(f32),   -1e1,       inf(f32),  1e1,        tmin(f32),  0.0,        1e0,        inf(f32),   -1e1,       -fmin(f32), tmin(f32),  1e0,        1e-1,       1e-1,       -fmin(f32),
4779                1e1,        1e-1,       fmax(f32),  fmin(f32), 1e0,        -1e1,       -inf(f32),  -1e1,       0.0,        -fmax(f32), -inf(f32),  -1e0,       fmax(f32),  -tmin(f32), inf(f32),   nan(f32),
4780            }, .{
4781                -tmin(f32), -fmax(f32), -fmax(f32), 1e1,        inf(f32),  1e-1,     1e0,        fmin(f32),  1e-1,       1e1,        fmin(f32),  -fmax(f32), 1e0,        fmax(f32),  1e-1,       -fmin(f32),
4782                0.0,        -0.0,       -0.0,       -1e0,       -nan(f32), nan(f32), -tmin(f32), 1e1,        -tmin(f32), -1e1,       inf(f32),   0.0,        tmin(f32),  0.0,        -fmax(f32), inf(f32),
4783                fmin(f32),  1e-1,       -1e1,       tmin(f32),  tmin(f32), 1e-1,     fmin(f32),  -tmin(f32), fmin(f32),  nan(f32),   1e-1,       -fmax(f32), -1e0,       -0.0,       fmin(f32),  -0.0,
4784                -1e0,       -0.0,       -inf(f32),  fmax(f32),  -1e1,      1e0,      inf(f32),   -1e0,       -tmin(f32), -tmin(f32), 1e-1,       -1e1,       -fmin(f32), 1e1,        -1e1,       -inf(f32),
4785                -1e0,       inf(f32),   1e-1,       1e0,        -nan(f32), 1e-1,     -1e1,       -nan(f32),  -tmin(f32), 0.0,        fmin(f32),  -nan(f32),  fmax(f32),  -tmin(f32), 0.0,        0.0,
4786                -fmax(f32), -inf(f32),  -1e0,       -0.0,       1e1,       nan(f32), 1e-1,       tmin(f32),  -1e1,       1e1,        tmin(f32),  -fmax(f32), 1e-1,       -1e1,       -tmin(f32), fmax(f32),
4787                -fmax(f32), 1e-1,       -nan(f32),  -fmin(f32), inf(f32),  inf(f32), tmin(f32),  tmin(f32),  -tmin(f32), tmin(f32),  0.0,        -0.0,       1e0,        1e1,        -1e1,       inf(f32),
4788                0.0,        -fmin(f32), fmax(f32),  -1e1,       fmax(f32), -0.0,     0.0,        -fmin(f32), 1e1,        -fmin(f32), -fmin(f32), -fmin(f32), 1e1,        fmin(f32),  -inf(f32),  fmax(f32),
4789            });
4790            try testArgs(@Vector(69, f32), .{
4791                nan(f32),   1e-1,      -tmin(f32), fmax(f32),  nan(f32),  -fmax(f32), 1e-1,       fmax(f32), 1e1,        inf(f32), -fmin(f32), -fmax(f32), inf(f32),   -nan(f32),  1e-1,       1e0,
4792                fmax(f32),  1e-1,      1e1,        0.0,        -1e1,      fmax(f32),  1e1,        0.0,       1e0,        1e1,      -fmax(f32), 0.0,        -tmin(f32), -fmin(f32), 1e-1,       1e0,
4793                fmin(f32),  tmin(f32), -fmin(f32), -tmin(f32), tmin(f32), -inf(f32),  -fmax(f32), -0.0,      -1e0,       -0.0,     -fmax(f32), fmax(f32),  fmin(f32),  -0.0,       0.0,        -inf(f32),
4794                -tmin(f32), inf(f32),  -nan(f32),  tmin(f32),  -1e0,      -tmin(f32), 1e1,        -inf(f32), -fmin(f32), 1e-1,     -inf(f32),  -1e0,       nan(f32),   -inf(f32),  -tmin(f32), 1e1,
4795                1e1,        -nan(f32), -nan(f32),  tmin(f32),  -nan(f32),
4796            }, .{
4797                -nan(f32), 1e0,       fmax(f32), 1e-1,       -0.0,       1e0,       -inf(f32), -fmin(f32), -nan(f32), inf(f32),   1e0,       -nan(f32), -nan(f32), -inf(f32), tmin(f32), -fmin(f32),
4798                -nan(f32), 1e-1,      fmin(f32), -1e0,       -fmax(f32), 1e-1,      -1e0,      1e-1,       1e-1,      -tmin(f32), 1e-1,      1e-1,      1e1,       fmin(f32), 0.0,       nan(f32),
4799                tmin(f32), 1e0,       nan(f32),  -fmin(f32), tmin(f32),  nan(f32),  1e-1,      nan(f32),   1e0,       -fmax(f32), tmin(f32), 1e0,       0.0,       -1e0,      nan(f32),  fmin(f32),
4800                -inf(f32), fmax(f32), -0.0,      nan(f32),   tmin(f32),  tmin(f32), -inf(f32), -1e1,       -nan(f32), -fmax(f32), -0.0,      1e-1,      -inf(f32), 1e0,       nan(f32),  1e0,
4801                -1e1,      fmin(f32), inf(f32),  fmin(f32),  0.0,
4802            });
4803
4804            try testArgs(@Vector(1, f64), .{
4805                -0.0,
4806            }, .{
4807                1e0,
4808            });
4809            try testArgs(@Vector(2, f64), .{
4810                -1e0, 0.0,
4811            }, .{
4812                -inf(f64), -fmax(f64),
4813            });
4814            try testArgs(@Vector(4, f64), .{
4815                -inf(f64), inf(f64), 1e1, 0.0,
4816            }, .{
4817                -tmin(f64), 1e0, nan(f64), 0.0,
4818            });
4819            try testArgs(@Vector(8, f64), .{
4820                1e-1, -tmin(f64), -fmax(f64), 1e0, inf(f64), -1e1, -tmin(f64), -1e1,
4821            }, .{
4822                tmin(f64), fmin(f64), 1e-1, 1e1, -0.0, -0.0, fmax(f64), -1e0,
4823            });
4824            try testArgs(@Vector(16, f64), .{
4825                1e-1, -nan(f64), 1e0, tmin(f64), fmax(f64), -fmax(f64), -tmin(f64), -0.0, -fmin(f64), -1e0, -fmax(f64), -nan(f64), -fmax(f64), nan(f64), -0.0, 1e-1,
4826            }, .{
4827                -1e0, -tmin(f64), -fmin(f64), 1e-1, 1e-1, -0.0, -nan(f64), -inf(f64), -inf(f64), -0.0, nan(f64), tmin(f64), 1e0, 1e-1, tmin(f64), fmin(f64),
4828            });
4829            try testArgs(@Vector(32, f64), .{
4830                -fmax(f64), fmin(f64), 1e-1, 1e-1,      0.0,       1e0,  -0.0, -tmin(f64), tmin(f64), inf(f64),  -tmin(f64), -tmin(f64), -tmin(f64), -fmax(f64), fmin(f64), 1e0,
4831                -fmin(f64), -nan(f64), 1e0,  -inf(f64), -nan(f64), -1e0, 0.0,  0.0,        nan(f64),  -nan(f64), -fmin(f64), fmin(f64),  1e-1,       nan(f64),   tmin(f64), -fmax(f64),
4832            }, .{
4833                -tmin(f64), -fmax(f64), -inf(f64),  -nan(f64), fmin(f64), -inf(f64), 1e-1,     -fmax(f64), -inf(f64), fmin(f64), inf(f64), -1e0, -tmin(f64), inf(f64), 1e-1, nan(f64),
4834                fmin(f64),  1e1,        -tmin(f64), -nan(f64), -inf(f64), 1e0,       nan(f64), -fmin(f64), -1e0,      nan(f64),  -1e0,     0.0,  1e0,        nan(f64), -1e0, -fmin(f64),
4835            });
4836            try testArgs(@Vector(64, f64), .{
4837                -1e1,      fmax(f64),  -nan(f64),  tmin(f64),  1e-1,      -1e0,       1e0,      -0.0,      -fmin(f64), 1e-1,      -fmin(f64), -0.0,      -0.0,      tmin(f64), -1e1,      1e-1,
4838                -1e1,      -fmax(f64), -1e1,       -fmin(f64), 0.0,       -1e1,       nan(f64), 1e0,       inf(f64),   inf(f64),  -inf(f64),  tmin(f64), tmin(f64), 1e-1,      -0.0,      1e-1,
4839                -0.0,      1e-1,       -1e1,       1e1,        fmax(f64), -fmin(f64), 1e0,      fmax(f64), 1e0,        -1e1,      fmin(f64),  fmax(f64), -1e0,      -0.0,      -0.0,      fmax(f64),
4840                -inf(f64), -inf(f64),  -tmin(f64), -fmax(f64), -nan(f64), tmin(f64),  -1e0,     0.0,       -inf(f64),  fmax(f64), nan(f64),   -inf(f64), fmin(f64), -nan(f64), -nan(f64), -1e1,
4841            }, .{
4842                nan(f64),  -1e0, 0.0,       -1e1,       -fmax(f64), -fmin(f64), -nan(f64),  -tmin(f64), 1e-1,       -1e0,      -nan(f64),  -fmax(f64), 0.0,       0.0,      1e1,       inf(f64),
4843                fmin(f64), 0.0,  -1e1,      1e0,        -tmin(f64), -inf(f64),  -fmax(f64), 0.0,        -fmin(f64), -1e0,      -fmin(f64), tmin(f64),  1e0,       -1e1,     fmin(f64), 1e-1,
4844                inf(f64),  -0.0, tmin(f64), -fmax(f64), -tmin(f64), -fmax(f64), fmin(f64),  -fmax(f64), 1e-1,       1e0,       1e0,        0.0,        fmin(f64), nan(f64), -1e1,      tmin(f64),
4845                inf(f64),  1e-1, 1e0,       -nan(f64),  1e0,        -fmin(f64), fmax(f64),  inf(f64),   fmin(f64),  -inf(f64), -0.0,       0.0,        -1e0,      -0.0,     1e-1,      1e-1,
4846            });
4847            try testArgs(@Vector(128, f64), .{
4848                nan(f64),   -fmin(f64), fmax(f64),  fmin(f64), -1e1,       nan(f64),  tmin(f64), fmax(f64),  inf(f64),   -nan(f64),  tmin(f64),  -nan(f64), -0.0,       fmin(f64),  fmax(f64),
4849                -inf(f64),  inf(f64),   -1e0,       0.0,       1e-1,       fmin(f64), 0.0,       1e-1,       -1e0,       -inf(f64),  1e-1,       fmax(f64), fmin(f64),  fmax(f64),  -fmax(f64),
4850                fmin(f64),  inf(f64),   -fmin(f64), -1e1,      -0.0,       1e-1,      nan(f64),  -fmax(f64), -fmax(f64), -1e0,       1e1,        1e1,       -1e0,       -inf(f64),  inf(f64),
4851                -fmin(f64), 1e0,        -inf(f64),  -1e1,      1e-1,       1e0,       1e1,       1e1,        tmin(f64),  nan(f64),   inf(f64),   0.0,       -1e0,       -1e1,       1e0,
4852                -tmin(f64), -fmax(f64), -nan(f64),  1e1,       1e-1,       tmin(f64), 0.0,       1e1,        1e-1,       -tmin(f64), -tmin(f64), 1e0,       -fmax(f64), nan(f64),   -fmin(f64),
4853                nan(f64),   1e1,        -1e0,       -0.0,      -tmin(f64), nan(f64),  1e1,       1e1,        -inf(f64),  1e-1,       -nan(f64),  -1e1,      -tmin(f64), -fmax(f64), -fmax(f64),
4854                inf(f64),   -inf(f64),  tmin(f64),  1e0,       -inf(f64),  -1e1,      inf(f64),  1e-1,       -nan(f64),  -inf(f64),  fmax(f64),  1e-1,      -inf(f64),  1e-1,       1e0,
4855                1e-1,       1e-1,       1e-1,       inf(f64),  -inf(f64),  1e0,       1e1,       1e1,        nan(f64),   1e1,        -tmin(f64), 1e0,       -fmin(f64), -1e0,       -fmax(f64),
4856                -fmin(f64), -fmin(f64), -1e0,       inf(f64),  nan(f64),   tmin(f64), 1e-1,      -1e0,
4857            }, .{
4858                0.0,       0.0,        inf(f64),  -0.0,       1e-1,       -nan(f64),  1e1,        -nan(f64), tmin(f64),  -1e1,       -0.0,      inf(f64),   -fmin(f64), 1e-1,       fmax(f64),
4859                nan(f64),  -tmin(f64), tmin(f64), 1e0,        1e-1,       -1e1,       -nan(f64),  1e0,       inf(f64),   -1e1,       fmin(f64), 1e-1,       1e1,        -1e1,       1e1,
4860                -nan(f64), -nan(f64),  1e-1,      0.0,        1e1,        -fmax(f64), -tmin(f64), tmin(f64), -1e0,       -tmin(f64), -1e1,      1e-1,       -fmax(f64), 1e1,        nan(f64),
4861                fmax(f64), -1e0,       -1e0,      -tmin(f64), fmax(f64),  -1e1,       1e-1,       1e0,       fmin(f64),  inf(f64),   1e-1,      tmin(f64),  1e-1,       -fmax(f64), fmax(f64),
4862                -1e1,      -fmax(f64), fmax(f64), tmin(f64),  -fmin(f64), inf(f64),   1e-1,       -0.0,      fmax(f64),  tmin(f64),  1e-1,      1e0,        -inf(f64),  1e0,        1e1,
4863                1e-1,      0.0,        -1e1,      -nan(f64),  1e1,        -fmin(f64), -tmin(f64), 1e1,       1e0,        -tmin(f64), -1e0,      -fmin(f64), -0.0,       -1e1,       1e-1,
4864                inf(f64),  -fmax(f64), 1e-1,      tmin(f64),  -0.0,       fmax(f64),  0.0,        -nan(f64), -fmin(f64), fmax(f64),  -0.0,      nan(f64),   -inf(f64),  tmin(f64),  1e-1,
4865                inf(f64),  0.0,        1e1,       -fmax(f64), tmin(f64),  -0.0,       fmin(f64),  -nan(f64), -1e1,       -inf(f64),  nan(f64),  inf(f64),   -0.0,       1e1,        fmax(f64),
4866                tmin(f64), -1e1,       -nan(f64), 1e1,        -inf(f64),  -fmax(f64), -inf(f64),  -1e0,
4867            });
4868            try testArgs(@Vector(69, f64), .{
4869                inf(f64),   -0.0,      -fmax(f64), fmax(f64),  fmax(f64), 0.0,      fmin(f64), -nan(f64), 1e-1,      1e-1,      1e-1,       -fmin(f64), inf(f64),   1e-1,      fmax(f64),  nan(f64),
4870                tmin(f64),  -1e1,      1e1,        -tmin(f64), -0.0,      nan(f64), -1e1,      fmin(f64), 0.0,       -0.0,      1e-1,       inf(f64),   -tmin(f64), -nan(f64), inf(f64),   -nan(f64),
4871                -inf(f64),  fmax(f64), 1e-1,       -fmin(f64), 1e-1,      -1e0,     fmin(f64), fmin(f64), fmin(f64), 1e1,       -fmin(f64), nan(f64),   0.0,        0.0,       1e1,        nan(f64),
4872                -tmin(f64), tmin(f64), tmin(f64),  fmin(f64),  -0.0,      -1e0,     1e-1,      1e0,       fmax(f64), tmin(f64), fmin(f64),  0.0,        -fmin(f64), fmin(f64), -tmin(f64), 0.0,
4873                -nan(f64),  1e1,       -1e0,       1e-1,       0.0,
4874            }, .{
4875                -1e1,       -0.0,       fmin(f64), -fmin(f64), nan(f64),  1e1,      -tmin(f64), -fmax(f64), 1e1,       1e-1,     -fmin(f64), inf(f64),  -inf(f64),  -tmin(f64), 1e0,        tmin(f64),
4876                -tmin(f64), -nan(f64),  fmax(f64), 0.0,        -1e0,      1e1,      inf(f64),   fmin(f64),  fmax(f64), 1e-1,     1e-1,       fmax(f64), -inf(f64),  1e-1,       1e-1,       fmin(f64),
4877                1e-1,       fmin(f64),  -1e1,      nan(f64),   0.0,       0.0,      fmax(f64),  -inf(f64),  tmin(f64), inf(f64), -tmin(f64), fmax(f64), -inf(f64),  -1e1,       -1e0,       fmin(f64),
4878                1e-1,       -nan(f64),  fmax(f64), -fmin(f64), fmax(f64), nan(f64), -0.0,       -fmax(f64), 1e1,       nan(f64), inf(f64),   -1e0,      -fmin(f64), nan(f64),   -fmin(f64), -0.0,
4879                -nan(f64),  -fmin(f64), 1e-1,      nan(f64),   1e-1,
4880            });
4881
4882            try testArgs(@Vector(1, f80), .{
4883                -nan(f80),
4884            }, .{
4885                -1e0,
4886            });
4887            try testArgs(@Vector(2, f80), .{
4888                -fmax(f80), -inf(f80),
4889            }, .{
4890                1e-1, 1e1,
4891            });
4892            try testArgs(@Vector(4, f80), .{
4893                -0.0, -inf(f80), 1e-1, 1e1,
4894            }, .{
4895                -1e0, 0.0, 1e-1, -1e1,
4896            });
4897            try testArgs(@Vector(8, f80), .{
4898                1e0, -0.0, -inf(f80), 1e-1, -inf(f80), fmin(f80), 0.0, 1e1,
4899            }, .{
4900                -0.0, -fmin(f80), fmin(f80), -nan(f80), nan(f80), inf(f80), fmin(f80), 1e1,
4901            });
4902            try testArgs(@Vector(16, f80), .{
4903                1e1, inf(f80), -fmin(f80), 1e-1, -tmin(f80), -0.0, -inf(f80), -1e0, -fmax(f80), -nan(f80), -tmin(f80), 1e1, 1e1, -inf(f80), -fmax(f80), fmax(f80),
4904            }, .{
4905                -inf(f80), nan(f80), -fmax(f80), fmin(f80), 1e0, 1e-1, -inf(f80), nan(f80), 1e-1, nan(f80), -inf(f80), nan(f80), tmin(f80), 1e-1, -tmin(f80), -1e1,
4906            });
4907            try testArgs(@Vector(32, f80), .{
4908                inf(f80),  -0.0, 1e-1,     -0.0, 1e-1,     -fmin(f80), -0.0,       fmax(f80), nan(f80),  -tmin(f80), nan(f80), -1e1,       0.0,       1e0,        1e1, -fmin(f80),
4909                fmin(f80), 1e-1, inf(f80), -0.0, nan(f80), tmin(f80),  -tmin(f80), fmin(f80), tmin(f80), -0.0,       nan(f80), -fmax(f80), tmin(f80), -fmin(f80), 1e0, tmin(f80),
4910            }, .{
4911                0.0,  -1e1,     fmax(f80), -inf(f80),  1e-1,      -inf(f80), inf(f80),   1e1,  -1e0, -1e1,      -fmin(f80), 0.0,  inf(f80),   1e0,        -nan(f80), 0.0,
4912                1e-1, nan(f80), 1e0,       -fmax(f80), fmin(f80), -inf(f80), -fmax(f80), 1e-1, -1e1, tmin(f80), fmax(f80),  -0.0, -fmin(f80), -fmin(f80), fmin(f80), -tmin(f80),
4913            });
4914            try testArgs(@Vector(64, f80), .{
4915                -fmax(f80), 1e-1,      -1e0,       1e0,        inf(f80),   1e-1,      -1e1,      1e-1,      fmin(f80), -fmin(f80), -1e1,      -fmax(f80), 0.0,        -1e1,      -1e0,       -nan(f80),
4916                0.0,        1e-1,      -1e0,       -tmin(f80), 1e0,        tmin(f80), fmax(f80), 0.0,       -1e1,      -tmin(f80), fmax(f80), -0.0,       1e-1,       -inf(f80), -fmax(f80), -1e0,
4917                -nan(f80),  tmin(f80), -tmin(f80), -0.0,       -0.0,       -1e0,      -0.0,      fmax(f80), inf(f80),  -nan(f80),  1e-1,      -inf(f80),  -tmin(f80), nan(f80),  1e-1,       1e1,
4918                nan(f80),   -inf(f80), 1e-1,       tmin(f80),  -fmin(f80), 1e1,       -1e1,      tmin(f80), fmin(f80), nan(f80),   1e-1,      -nan(f80),  tmin(f80),  nan(f80),  fmax(f80),  -fmax(f80),
4919            }, .{
4920                -nan(f80), -fmax(f80), tmin(f80), -inf(f80),  -tmin(f80), fmin(f80), -nan(f80), -fmin(f80), fmax(f80), inf(f80), -0.0,      -1e0, 1e-1,       -fmax(f80), 1e0,       -inf(f80),
4921                0.0,       -nan(f80),  -1e1,      -1e0,       -nan(f80),  inf(f80),  1e0,       -nan(f80),  1e1,       inf(f80), tmin(f80), 1e-1, tmin(f80),  -tmin(f80), -inf(f80), -fmin(f80),
4922                fmax(f80), fmax(f80),  1e-1,      -tmin(f80), -nan(f80),  -1e0,      fmin(f80), -nan(f80),  -nan(f80), inf(f80), -1e0,      1e-1, -fmin(f80), -tmin(f80), 0.0,       -0.0,
4923                1e-1,      -fmin(f80), -inf(f80), -1e0,       -tmin(f80), 1e0,       -inf(f80), -0.0,       0.0,       1e0,      tmin(f80), 0.0,  1e-1,       -nan(f80),  fmax(f80), 1e0,
4924            });
4925            try testArgs(@Vector(128, f80), .{
4926                1e-1,      -0.0,       1e-1,       0.0,        fmin(f80),  -1e0,      1e0,       -inf(f80),  fmax(f80),  -fmin(f80), nan(f80),   1e1,        1e-1,       1e-1,       -fmin(f80), -inf(f80),
4927                -1e0,      -inf(f80),  1e0,        -fmin(f80), inf(f80),   -nan(f80), 1e1,       inf(f80),   tmin(f80),  nan(f80),   -1e1,       inf(f80),   1e1,        inf(f80),   -1e1,       0.0,
4928                -1e1,      fmin(f80),  -tmin(f80), 1e0,        -fmax(f80), nan(f80),  0.0,       fmax(f80),  1e-1,       -1e0,       -fmin(f80), inf(f80),   -tmin(f80), nan(f80),   -tmin(f80), 1e1,
4929                -1e1,      -tmin(f80), -1e0,       -tmin(f80), -fmax(f80), 1e1,       -1e0,      -inf(f80),  -nan(f80),  0.0,        1e0,        fmax(f80),  -tmin(f80), -fmin(f80), fmin(f80),  fmin(f80),
4930                -1e1,      -fmax(f80), -tmin(f80), inf(f80),   1e0,        0.0,       tmin(f80), -nan(f80),  -fmin(f80), 1e-1,       -nan(f80),  0.0,        1e-1,       -1e1,       -0.0,       -nan(f80),
4931                1e0,       1e1,        -1e1,       fmin(f80),  -nan(f80),  fmax(f80), -0.0,      1e0,        inf(f80),   1e0,        -fmin(f80), -fmin(f80), 0.0,        1e-1,       inf(f80),   1e1,
4932                tmin(f80), -1e0,       fmax(f80),  -0.0,       fmax(f80),  fmax(f80), 1e-1,      -fmin(f80), -1e1,       1e0,        -fmin(f80), -fmax(f80), fmin(f80),  -fmax(f80), -0.0,       -1e0,
4933                -nan(f80), -inf(f80),  nan(f80),   -fmax(f80), inf(f80),   -inf(f80), -nan(f80), fmin(f80),  nan(f80),   -1e0,       tmin(f80),  tmin(f80),  1e-1,       1e1,        -tmin(f80), -nan(f80),
4934            }, .{
4935                -1e0,       -0.0,      0.0,        fmax(f80),  -1e0,       -0.0,       1e-1,       tmin(f80),  -inf(f80),  1e1,        -0.0,       1e-1,      -tmin(f80), -fmax(f80), tmin(f80), inf(f80),
4936                1e-1,       1e0,       tmin(f80),  nan(f80),   -fmax(f80), 1e1,        fmin(f80),  -1e0,       -fmax(f80), nan(f80),   -fmin(f80), 1e1,       -1e0,       tmin(f80),  inf(f80),  -0.0,
4937                tmin(f80),  1e0,       0.0,        -fmin(f80), 0.0,        1e1,        -fmax(f80), -0.0,       -inf(f80),  fmin(f80),  -0.0,       -0.0,      -0.0,       -fmax(f80), 1e-1,      fmax(f80),
4938                -tmin(f80), tmin(f80), -fmax(f80), 1e1,        -fmax(f80), 1e-1,       fmax(f80),  -1e1,       1e-1,       1e0,        -1e0,       -1e0,      nan(f80),   -nan(f80),  1e1,       -nan(f80),
4939                nan(f80),   -1e1,      -tmin(f80), fmin(f80),  -tmin(f80), -fmin(f80), tmin(f80),  -0.0,       1e-1,       fmax(f80),  tmin(f80),  tmin(f80), nan(f80),   1e-1,       1e1,       1e-1,
4940                inf(f80),   inf(f80),  1e0,        -inf(f80),  -fmax(f80), 0.0,        1e0,        -fmax(f80), fmax(f80),  nan(f80),   fmin(f80),  1e-1,      -1e0,       1e0,        1e-1,      -tmin(f80),
4941                1e1,        1e-1,      -fmax(f80), 0.0,        nan(f80),   -tmin(f80), 1e-1,       fmax(f80),  fmax(f80),  1e-1,       -1e0,       inf(f80),  nan(f80),   1e1,        fmax(f80), -nan(f80),
4942                -1e1,       -1e0,      tmin(f80),  fmin(f80),  inf(f80),   fmax(f80),  -fmin(f80), fmin(f80),  -inf(f80),  -tmin(f80), 1e0,        nan(f80),  -fmin(f80), -fmin(f80), fmax(f80), 1e0,
4943            });
4944            try testArgs(@Vector(69, f80), .{
4945                -1e1,       tmin(f80), 1e-1,       -nan(f80), -inf(f80), -nan(f80), fmin(f80), -0.0,       1e1,  fmax(f80), -fmin(f80), 1e-1,       -nan(f80),  inf(f80), 1e0,       -1e0,
4946                inf(f80),   fmin(f80), -fmax(f80), 1e-1,      nan(f80),  0.0,       0.0,       nan(f80),   -1e1, fmax(f80), fmin(f80),  -fmax(f80), 1e0,        1e-1,     0.0,       -fmin(f80),
4947                -tmin(f80), 0.0,       -1e1,       fmin(f80), 1e0,       1e1,       1e-1,      nan(f80),   -1e1, fmax(f80), 1e-1,       fmin(f80),  -inf(f80),  0.0,      tmin(f80), inf(f80),
4948                fmax(f80),  1e0,       1e-1,       nan(f80),  inf(f80),  tmin(f80), tmin(f80), -fmax(f80), 0.0,  fmin(f80), -inf(f80),  1e-1,       -tmin(f80), 1e-1,     -1e0,      1e-1,
4949                -fmax(f80), -1e0,      1e-1,       -1e0,      fmax(f80),
4950            }, .{
4951                -1e0,      fmin(f80),  inf(f80),   -nan(f80), -0.0,       fmin(f80),  -0.0, nan(f80),  -fmax(f80), 1e-1,       1e0,        -1e1,       -tmin(f80), -fmin(f80), 1e1,       inf(f80),
4952                -1e1,      -tmin(f80), -fmin(f80), 1e1,       0.0,        -tmin(f80), 1e1,  -1e1,      1e-1,       1e-1,       tmin(f80),  fmax(f80),  0.0,        1e-1,       1e-1,      -1e1,
4953                fmin(f80), nan(f80),   -1e1,       -1e1,      -1e1,       0.0,        -0.0, 1e-1,      fmin(f80),  fmin(f80),  -0.0,       -fmin(f80), -nan(f80),  -inf(f80),  0.0,       -inf(f80),
4954                inf(f80),  fmax(f80),  -tmin(f80), inf(f80),  1e-1,       -nan(f80),  1e-1, tmin(f80), -1e1,       -fmax(f80), -fmax(f80), inf(f80),   -nan(f80),  1e0,        -inf(f80), 1e1,
4955                nan(f80),  1e1,        -1e1,       0.0,       -fmin(f80),
4956            });
4957
4958            try testArgs(@Vector(1, f128), .{
4959                -nan(f128),
4960            }, .{
4961                -0.0,
4962            });
4963            try testArgs(@Vector(2, f128), .{
4964                0.0, -inf(f128),
4965            }, .{
4966                1e-1, -fmin(f128),
4967            });
4968            try testArgs(@Vector(4, f128), .{
4969                1e-1, fmax(f128), 1e1, -fmax(f128),
4970            }, .{
4971                -tmin(f128), fmax(f128), -0.0, -0.0,
4972            });
4973            try testArgs(@Vector(8, f128), .{
4974                1e1, -fmin(f128), 0.0, -inf(f128), 1e1, -0.0, -1e0, -fmin(f128),
4975            }, .{
4976                fmin(f128), tmin(f128), -1e0, -1e1, 0.0, -tmin(f128), 0.0, 1e-1,
4977            });
4978            try testArgs(@Vector(16, f128), .{
4979                -fmin(f128), -1e1, -fmin(f128), 1e-1, -1e1, 1e0, -fmax(f128), tmin(f128), -nan(f128), -tmin(f128), 1e1, -inf(f128), -1e0, tmin(f128), -0.0, nan(f128),
4980            }, .{
4981                -fmax(f128), fmin(f128), inf(f128), tmin(f128), -1e1, 1e1, fmax(f128), 1e0, -inf(f128), -inf(f128), -fmax(f128), -nan(f128), 1e0, -inf(f128), tmin(f128), tmin(f128),
4982            });
4983            try testArgs(@Vector(32, f128), .{
4984                -0.0,       -1e0, 1e0,        -fmax(f128), -fmax(f128), 1e-1,        -fmin(f128), -fmin(f128), -1e0,       -tmin(f128), -0.0,       -fmax(f128), tmin(f128), inf(f128), 0.0,  fmax(f128),
4985                -nan(f128), -0.0, -inf(f128), -1e0,        1e-1,        -fmin(f128), tmin(f128),  -1e1,        fmax(f128), -nan(f128),  -nan(f128), -fmax(f128), 1e-1,       inf(f128), -0.0, tmin(f128),
4986            }, .{
4987                -1e0,       -1e1,       -fmin(f128), -fmin(f128), inf(f128),  tmin(f128), nan(f128), 0.0,        -fmin(f128), 1e-1, -nan(f128), 1e-1, -0.0, tmin(f128), 1e0,         0.0,
4988                fmin(f128), fmax(f128), -fmax(f128), -tmin(f128), fmin(f128), -0.0,       -1e0,      -nan(f128), -inf(f128),  1e0,  nan(f128),  1e0,  1e-1, -0.0,       -fmax(f128), -1e1,
4989            });
4990            try testArgs(@Vector(64, f128), .{
4991                -1e0,       -0.0,       nan(f128),   1e-1,        -1e1,        0.0,         1e0,         1e0,       -inf(f128), fmin(f128),  fmax(f128), nan(f128),  -nan(f128), inf(f128),   -0.0,
4992                1e-1,       -inf(f128), -fmax(f128), 1e1,         -tmin(f128), -tmin(f128), -fmax(f128), 1e0,       1e-1,       1e-1,        nan(f128),  1e1,        1e0,        -tmin(f128), 1e1,
4993                -nan(f128), fmax(f128), fmax(f128),  0.0,         fmax(f128),  inf(f128),   1e0,         -0.0,      1e-1,       -tmin(f128), fmin(f128), fmax(f128), tmin(f128), inf(f128),   -1e1,
4994                -1e0,       -1e0,       -1e0,        -inf(f128),  1e1,         -tmin(f128), nan(f128),   nan(f128), 1e-1,       fmin(f128),  1e-1,       tmin(f128), -1e1,       1e-1,        1e1,
4995                fmax(f128), fmax(f128), 1e-1,        -fmax(f128),
4996            }, .{
4997                -0.0,      1e-1,       -0.0,      -fmin(f128), 1e1,  0.0,        1e0,         -inf(f128), tmin(f128),  -1e0,      fmin(f128),  -nan(f128), -1e1,       1e-1,       -1e1,       1e-1,
4998                1e-1,      tmin(f128), nan(f128), -1e0,        0.0,  -1e1,       -1e1,        fmax(f128), -fmax(f128), inf(f128), -nan(f128),  1e-1,       -nan(f128), 1e0,        fmax(f128), inf(f128),
4999                nan(f128), fmin(f128), 1e1,       inf(f128),   0.0,  -inf(f128), 1e-1,        1e-1,       1e-1,        -1e0,      1e-1,        -1e1,       inf(f128),  -nan(f128), 1e-1,       inf(f128),
5000                inf(f128), inf(f128),  -1e1,      -tmin(f128), 1e-1, -inf(f128), -fmin(f128), 1e0,        -tmin(f128), 1e0,       -tmin(f128), -inf(f128), -0.0,       -nan(f128), -1e0,       -fmax(f128),
5001            });
5002            try testArgs(@Vector(128, f128), .{
5003                -inf(f128),  tmin(f128),  -fmax(f128), 1e0,         fmin(f128),  -fmax(f128), -1e0,        1e-1,        -fmax(f128), -fmin(f128), -1e1,        nan(f128),   1e-1,       nan(f128),
5004                inf(f128),   -1e0,        tmin(f128),  -inf(f128),  0.0,         fmax(f128),  tmin(f128),  -fmin(f128), fmin(f128),  -1e1,        -fmin(f128), -1e1,        1e0,        -nan(f128),
5005                -inf(f128),  fmin(f128),  inf(f128),   -tmin(f128), 1e-1,        0.0,         1e1,         1e0,         -tmin(f128), -tmin(f128), tmin(f128),  1e0,         fmin(f128), 1e-1,
5006                1e-1,        1e-1,        fmax(f128),  1e-1,        inf(f128),   0.0,         fmin(f128),  -fmin(f128), 1e1,         1e1,         -1e1,        tmin(f128),  inf(f128),  inf(f128),
5007                -fmin(f128), 0.0,         1e-1,        -nan(f128),  1e-1,        -inf(f128),  -nan(f128),  -1e0,        fmin(f128),  -0.0,        1e1,         -tmin(f128), 1e1,        1e0,
5008                1e-1,        -0.0,        -tmin(f128), 1e-1,        -1e0,        -tmin(f128), -fmin(f128), tmin(f128),  1e-1,        -tmin(f128), -nan(f128),  -1e1,        -inf(f128), 0.0,
5009                1e-1,        0.0,         -fmin(f128), 0.0,         1e1,         1e1,         tmin(f128),  inf(f128),   -nan(f128),  -inf(f128),  -1e0,        -fmin(f128), -1e1,       -fmin(f128),
5010                -inf(f128),  -fmax(f128), tmin(f128),  tmin(f128),  -fmin(f128), 1e-1,        fmin(f128),  fmin(f128),  -fmin(f128), nan(f128),   -1e0,        -0.0,        -0.0,       1e-1,
5011                fmax(f128),  0.0,         -fmax(f128), nan(f128),   nan(f128),   nan(f128),   nan(f128),   -nan(f128),  fmin(f128),  -inf(f128),  inf(f128),   -fmax(f128), -1e1,       fmin(f128),
5012                1e-1,        fmax(f128),
5013            }, .{
5014                0.0,         1e1,         1e-1,        inf(f128),   -0.0,        -1e0,        nan(f128),  -1e1,        -inf(f128),  1e-1,        -tmin(f128), 1e0,         inf(f128),   1e-1,        -1e0,
5015                1e1,         0.0,         1e0,         nan(f128),   tmin(f128),  fmax(f128),  1e1,        1e-1,        1e-1,        -fmin(f128), -inf(f128),  -nan(f128),  -fmin(f128), -0.0,        -inf(f128),
5016                -nan(f128),  fmax(f128),  -fmin(f128), -tmin(f128), -fmin(f128), -fmax(f128), nan(f128),  fmin(f128),  -fmax(f128), fmax(f128),  1e0,         1e1,         -fmax(f128), nan(f128),   -fmax(f128),
5017                -inf(f128),  nan(f128),   -nan(f128),  tmin(f128),  -1e0,        1e-1,        1e-1,       -1e0,        -nan(f128),  fmax(f128),  1e1,         -inf(f128),  1e1,         -0.0,        -1e0,
5018                -0.0,        -tmin(f128), 1e1,         -1e0,        -fmax(f128), fmin(f128),  fmax(f128), tmin(f128),  1e1,         fmin(f128),  -nan(f128),  1e0,         -tmin(f128), -1e0,        fmax(f128),
5019                1e0,         -tmin(f128), 1e-1,        -nan(f128),  inf(f128),   1e-1,        1e-1,       fmax(f128),  -fmin(f128), fmin(f128),  -0.0,        fmax(f128),  -fmax(f128), -tmin(f128), tmin(f128),
5020                nan(f128),   1e-1,        tmin(f128),  -1e0,        fmin(f128),  -nan(f128),  fmax(f128), 1e0,         nan(f128),   -nan(f128),  inf(f128),   -fmin(f128), fmin(f128),  1e-1,        1e1,
5021                -tmin(f128), -1e1,        0.0,         1e-1,        -fmin(f128), -0.0,        0.0,        -1e1,        fmax(f128),  nan(f128),   nan(f128),   -fmin(f128), -fmax(f128), 1e1,         0.0,
5022                fmin(f128),  1e1,         -tmin(f128), -tmin(f128), 0.0,         -1e1,        1e0,        -fmin(f128),
5023            });
5024            try testArgs(@Vector(69, f128), .{
5025                -1e0,       nan(f128),  1e-1,       1e-1,       1e-1,       -1e0, -1e1,       inf(f128), -0.0,       inf(f128),  tmin(f128),  0.0,         -fmax(f128), -tmin(f128), -1e1,        -fmax(f128),
5026                -0.0,       0.0,        nan(f128),  inf(f128),  1e0,        -1e0, 1e-1,       -0.0,      1e0,        fmax(f128), -fmax(f128), 0.0,         inf(f128),   -inf(f128),  -tmin(f128), -inf(f128),
5027                1e1,        fmin(f128), 1e1,        -1e1,       1e-1,       1e0,  -0.0,       nan(f128), tmin(f128), inf(f128),  inf(f128),   -nan(f128),  -nan(f128),  1e0,         -tmin(f128), 0.0,
5028                fmin(f128), fmax(f128), fmin(f128), -1e1,       nan(f128),  0.0,  -nan(f128), -0.0,      -nan(f128), 1e-1,       -1e1,        -tmin(f128), fmax(f128),  1e0,         fmin(f128),  fmax(f128),
5029                nan(f128),  -inf(f128), 1e0,        fmin(f128), -nan(f128),
5030            }, .{
5031                -inf(f128), fmax(f128), 0.0,        nan(f128),   -1e1,        tmin(f128),  nan(f128),  1e0,       1e1,         -fmin(f128), fmin(f128),  tmin(f128),  0.0,         -fmin(f128), -0.0,        fmin(f128),
5032                inf(f128),  inf(f128),  fmin(f128), fmin(f128),  -tmin(f128), -fmax(f128), 1e1,        nan(f128), -0.0,        1e0,         1e1,         -1e1,        -inf(f128),  fmin(f128),  -fmax(f128), 1e-1,
5033                -1e0,       -nan(f128), -1e1,       tmin(f128),  inf(f128),   nan(f128),   0.0,        -1e1,      tmin(f128),  0.0,         -fmax(f128), -tmin(f128), 1e-1,        1e-1,        1e1,         1e-1,
5034                fmax(f128), 1e-1,       0.0,        -fmin(f128), -inf(f128),  -inf(f128),  -nan(f128), 1e-1,      -fmax(f128), fmax(f128),  -fmax(f128), -0.0,        -tmin(f128), -1e0,        nan(f128),   1e-1,
5035                -1e0,       -inf(f128), tmin(f128), inf(f128),   inf(f128),
5036            });
5037        }
5038    };
5039}
5040
5041inline fn addUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5042    @setRuntimeSafety(false);
5043    return @as(AddOneBit(Type), lhs) + rhs;
5044}
5045test addUnsafe {
5046    const test_add_unsafe = binary(addUnsafe, .{});
5047    try test_add_unsafe.testInts();
5048    try test_add_unsafe.testIntVectors();
5049    try test_add_unsafe.testFloats();
5050    try test_add_unsafe.testFloatVectors();
5051}
5052
5053inline fn addSafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5054    @setRuntimeSafety(true);
5055    return @as(AddOneBit(Type), lhs) + rhs;
5056}
5057test addSafe {
5058    const test_add_safe = binary(addSafe, .{});
5059    try test_add_safe.testInts();
5060    try test_add_safe.testIntVectors();
5061}
5062
5063inline fn addWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5064    return lhs +% rhs;
5065}
5066test addWrap {
5067    const test_add_wrap = binary(addWrap, .{});
5068    try test_add_wrap.testInts();
5069    try test_add_wrap.testIntVectors();
5070}
5071
5072inline fn addSaturate(comptime Type: type, lhs: Type, rhs: Type) Type {
5073    return lhs +| rhs;
5074}
5075test addSaturate {
5076    const test_add_saturate = binary(addSaturate, .{});
5077    try test_add_saturate.testInts();
5078    try test_add_saturate.testIntVectors();
5079}
5080
5081inline fn subUnsafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5082    @setRuntimeSafety(false);
5083    return switch (@typeInfo(Scalar(Type))) {
5084        else => @compileError(@typeName(Type)),
5085        .int => |int| switch (int.signedness) {
5086            .signed => @as(AddOneBit(Type), lhs) - rhs,
5087            .unsigned => @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs),
5088        },
5089        .float => lhs - rhs,
5090    };
5091}
5092test subUnsafe {
5093    const test_sub_unsafe = binary(subUnsafe, .{});
5094    try test_sub_unsafe.testInts();
5095    try test_sub_unsafe.testIntVectors();
5096    try test_sub_unsafe.testFloats();
5097    try test_sub_unsafe.testFloatVectors();
5098}
5099
5100inline fn subSafe(comptime Type: type, lhs: Type, rhs: Type) AddOneBit(Type) {
5101    @setRuntimeSafety(true);
5102    return switch (@typeInfo(Scalar(Type))) {
5103        else => @compileError(@typeName(Type)),
5104        .int => |int| switch (int.signedness) {
5105            .signed => @as(AddOneBit(Type), lhs) - rhs,
5106            .unsigned => @as(AddOneBit(Type), @max(lhs, rhs)) - @min(lhs, rhs),
5107        },
5108        .float => lhs - rhs,
5109    };
5110}
5111test subSafe {
5112    const test_sub_safe = binary(subSafe, .{});
5113    try test_sub_safe.testInts();
5114    try test_sub_safe.testIntVectors();
5115}
5116
5117inline fn subWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5118    return lhs -% rhs;
5119}
5120test subWrap {
5121    const test_sub_wrap = binary(subWrap, .{});
5122    try test_sub_wrap.testInts();
5123    try test_sub_wrap.testIntVectors();
5124}
5125
5126inline fn subSaturate(comptime Type: type, lhs: Type, rhs: Type) Type {
5127    return lhs -| rhs;
5128}
5129test subSaturate {
5130    const test_sub_saturate = binary(subSaturate, .{});
5131    try test_sub_saturate.testInts();
5132    try test_sub_saturate.testIntVectors();
5133}
5134
5135inline fn mulUnsafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
5136    @setRuntimeSafety(false);
5137    return @as(DoubleBits(Type), lhs) * rhs;
5138}
5139test mulUnsafe {
5140    const test_mul_unsafe = binary(mulUnsafe, .{});
5141    try test_mul_unsafe.testInts();
5142    try test_mul_unsafe.testIntVectors();
5143    try test_mul_unsafe.testFloats();
5144    try test_mul_unsafe.testFloatVectors();
5145}
5146
5147inline fn mulSafe(comptime Type: type, lhs: Type, rhs: Type) DoubleBits(Type) {
5148    @setRuntimeSafety(true);
5149    return @as(DoubleBits(Type), lhs) * rhs;
5150}
5151test mulSafe {
5152    const test_mul_safe = binary(mulSafe, .{});
5153    try test_mul_safe.testInts();
5154    try test_mul_safe.testIntVectors();
5155}
5156
5157inline fn mulWrap(comptime Type: type, lhs: Type, rhs: Type) Type {
5158    return lhs *% rhs;
5159}
5160test mulWrap {
5161    const test_mul_wrap = binary(mulWrap, .{});
5162    try test_mul_wrap.testInts();
5163    try test_mul_wrap.testIntVectors();
5164}
5165
5166inline fn mulSaturate(comptime Type: type, lhs: Type, rhs: Type) Type {
5167    return lhs *| rhs;
5168}
5169test mulSaturate {
5170    const test_mul_saturate = binary(mulSaturate, .{});
5171    try test_mul_saturate.testInts();
5172    try test_mul_saturate.testIntVectors();
5173}
5174
5175inline fn divide(comptime Type: type, lhs: Type, rhs: Type) Type {
5176    return lhs / rhs;
5177}
5178test divide {
5179    const test_divide = binary(divide, .{ .compare = .approx });
5180    try test_divide.testFloats();
5181    try test_divide.testFloatVectors();
5182}
5183
5184inline fn divTruncUnoptimized(comptime Type: type, lhs: Type, rhs: Type) Type {
5185    return @divTrunc(lhs, rhs);
5186}
5187test divTruncUnoptimized {
5188    const test_div_trunc_unoptimized = binary(divTruncUnoptimized, .{ .compare = .approx_int });
5189    try test_div_trunc_unoptimized.testInts();
5190    try test_div_trunc_unoptimized.testIntVectors();
5191    try test_div_trunc_unoptimized.testFloats();
5192    try test_div_trunc_unoptimized.testFloatVectors();
5193}
5194
5195inline fn divTruncOptimized(comptime Type: type, lhs: Type, rhs: Type) Type {
5196    @setFloatMode(.optimized);
5197    return @divTrunc(lhs, select(@abs(rhs) > splat(Type, 0.0), rhs, splat(Type, 1.0)));
5198}
5199test divTruncOptimized {
5200    const test_div_trunc_optimized = binary(divTruncOptimized, .{ .compare = .approx_int });
5201    try test_div_trunc_optimized.testFloats();
5202    try test_div_trunc_optimized.testFloatVectors();
5203}
5204
5205inline fn divFloorUnoptimized(comptime Type: type, lhs: Type, rhs: Type) Type {
5206    return @divFloor(lhs, rhs);
5207}
5208test divFloorUnoptimized {
5209    const test_div_floor_unoptimized = binary(divFloorUnoptimized, .{ .compare = .approx_int });
5210    try test_div_floor_unoptimized.testInts();
5211    try test_div_floor_unoptimized.testIntVectors();
5212    try test_div_floor_unoptimized.testFloats();
5213    try test_div_floor_unoptimized.testFloatVectors();
5214}
5215
5216inline fn divFloorOptimized(comptime Type: type, lhs: Type, rhs: Type) Type {
5217    @setFloatMode(.optimized);
5218    return @divFloor(lhs, select(@abs(rhs) > splat(Type, 0.0), rhs, splat(Type, 1.0)));
5219}
5220test divFloorOptimized {
5221    const test_div_floor_optimized = binary(divFloorOptimized, .{ .compare = .approx_int });
5222    try test_div_floor_optimized.testFloats();
5223    try test_div_floor_optimized.testFloatVectors();
5224}
5225
5226inline fn rem(comptime Type: type, lhs: Type, rhs: Type) Type {
5227    return @rem(lhs, rhs);
5228}
5229test rem {
5230    const test_rem = binary(rem, .{});
5231    try test_rem.testInts();
5232    try test_rem.testIntVectors();
5233    try test_rem.testFloats();
5234    try test_rem.testFloatVectors();
5235}
5236
5237inline fn mod(comptime Type: type, lhs: Type, rhs: Type) Type {
5238    // workaround llvm backend bugs
5239    if (@inComptime() and @typeInfo(Scalar(Type)) == .float) {
5240        const scalarMod = struct {
5241            fn scalarMod(scalar_lhs: Scalar(Type), scalar_rhs: Scalar(Type)) Scalar(Type) {
5242                const scalar_rem = @rem(scalar_lhs, scalar_rhs);
5243                return if (scalar_rem == 0 or sign(scalar_rem) == sign(scalar_rhs)) scalar_rem else scalar_rem + scalar_rhs;
5244            }
5245        }.scalarMod;
5246        switch (@typeInfo(Type)) {
5247            else => return scalarMod(lhs, rhs),
5248            .vector => |info| {
5249                var res: Type = undefined;
5250                inline for (0..info.len) |i| res[i] = scalarMod(lhs[i], rhs[i]);
5251                return res;
5252            },
5253        }
5254    }
5255    return @mod(lhs, rhs);
5256}
5257test mod {
5258    const builtin = @import("builtin");
5259    if (builtin.object_format == .coff and builtin.abi != .gnu) return error.SkipZigTest;
5260    const test_mod = binary(mod, .{});
5261    try test_mod.testInts();
5262    try test_mod.testIntVectors();
5263    try test_mod.testFloats();
5264    try test_mod.testFloatVectors();
5265}
5266
5267inline fn max(comptime Type: type, lhs: Type, rhs: Type) Type {
5268    return @max(lhs, rhs);
5269}
5270test max {
5271    const test_max = binary(max, .{});
5272    try test_max.testInts();
5273    try test_max.testIntVectors();
5274    try test_max.testFloats();
5275    try test_max.testFloatVectors();
5276}
5277
5278inline fn min(comptime Type: type, lhs: Type, rhs: Type) Type {
5279    return @min(lhs, rhs);
5280}
5281test min {
5282    const test_min = binary(min, .{});
5283    try test_min.testInts();
5284    try test_min.testIntVectors();
5285    try test_min.testFloats();
5286    try test_min.testFloatVectors();
5287}
5288
5289inline fn addWithOverflow(comptime Type: type, lhs: Type, rhs: Type) struct { Type, ChangeScalar(Type, u1) } {
5290    return @addWithOverflow(lhs, rhs);
5291}
5292test addWithOverflow {
5293    const test_add_with_overflow = binary(addWithOverflow, .{});
5294    try test_add_with_overflow.testInts();
5295    try test_add_with_overflow.testIntVectors();
5296}
5297
5298inline fn subWithOverflow(comptime Type: type, lhs: Type, rhs: Type) struct { Type, ChangeScalar(Type, u1) } {
5299    return @subWithOverflow(lhs, rhs);
5300}
5301test subWithOverflow {
5302    const test_sub_with_overflow = binary(subWithOverflow, .{});
5303    try test_sub_with_overflow.testInts();
5304    try test_sub_with_overflow.testIntVectors();
5305}
5306
5307inline fn mulWithOverflow(comptime Type: type, lhs: Type, rhs: Type) struct { Type, ChangeScalar(Type, u1) } {
5308    return @mulWithOverflow(lhs, rhs);
5309}
5310test mulWithOverflow {
5311    const test_mul_with_overflow = binary(mulWithOverflow, .{});
5312    try test_mul_with_overflow.testInts();
5313    try test_mul_with_overflow.testIntVectors();
5314}
5315
5316inline fn shlWithOverflow(comptime Type: type, lhs: Type, rhs: Type) struct { Type, ChangeScalar(Type, u1) } {
5317    const bit_cast_rhs: AsSignedness(Type, .unsigned) = @bitCast(rhs);
5318    const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5319    return @shlWithOverflow(lhs, if (comptime cast(Log2Int(Scalar(Type)), @bitSizeOf(Scalar(Type)))) |bits| truncate_rhs % splat(Log2Int(Type), bits) else truncate_rhs);
5320}
5321test shlWithOverflow {
5322    const test_shl_with_overflow = binary(shlWithOverflow, .{});
5323    try test_shl_with_overflow.testInts();
5324    try test_shl_with_overflow.testIntVectors();
5325}
5326
5327inline fn equal(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5328    return lhs == rhs;
5329}
5330test equal {
5331    const test_equal = binary(equal, .{});
5332    try test_equal.testInts();
5333    try test_equal.testIntVectors();
5334    try test_equal.testFloats();
5335    try test_equal.testFloatVectors();
5336}
5337
5338inline fn notEqual(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5339    return lhs != rhs;
5340}
5341test notEqual {
5342    const test_not_equal = binary(notEqual, .{});
5343    try test_not_equal.testInts();
5344    try test_not_equal.testIntVectors();
5345    try test_not_equal.testFloats();
5346    try test_not_equal.testFloatVectors();
5347}
5348
5349inline fn lessThan(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5350    return lhs < rhs;
5351}
5352test lessThan {
5353    const test_less_than = binary(lessThan, .{});
5354    try test_less_than.testInts();
5355    try test_less_than.testIntVectors();
5356    try test_less_than.testFloats();
5357    try test_less_than.testFloatVectors();
5358}
5359
5360inline fn lessThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5361    return lhs <= rhs;
5362}
5363test lessThanOrEqual {
5364    const test_less_than_or_equal = binary(lessThanOrEqual, .{});
5365    try test_less_than_or_equal.testInts();
5366    try test_less_than_or_equal.testIntVectors();
5367    try test_less_than_or_equal.testFloats();
5368    try test_less_than_or_equal.testFloatVectors();
5369}
5370
5371inline fn greaterThan(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5372    return lhs > rhs;
5373}
5374test greaterThan {
5375    const test_greater_than = binary(greaterThan, .{});
5376    try test_greater_than.testInts();
5377    try test_greater_than.testIntVectors();
5378    try test_greater_than.testFloats();
5379    try test_greater_than.testFloatVectors();
5380}
5381
5382inline fn greaterThanOrEqual(comptime Type: type, lhs: Type, rhs: Type) ChangeScalar(Type, bool) {
5383    return lhs >= rhs;
5384}
5385test greaterThanOrEqual {
5386    const test_greater_than_or_equal = binary(greaterThanOrEqual, .{});
5387    try test_greater_than_or_equal.testInts();
5388    try test_greater_than_or_equal.testIntVectors();
5389    try test_greater_than_or_equal.testFloats();
5390    try test_greater_than_or_equal.testFloatVectors();
5391}
5392
5393inline fn bitAnd(comptime Type: type, lhs: Type, rhs: Type) Type {
5394    return lhs & rhs;
5395}
5396test bitAnd {
5397    const test_bit_and = binary(bitAnd, .{});
5398    try test_bit_and.testBools();
5399    try test_bit_and.testBoolVectors();
5400    try test_bit_and.testInts();
5401    try test_bit_and.testIntVectors();
5402}
5403
5404inline fn bitOr(comptime Type: type, lhs: Type, rhs: Type) Type {
5405    return lhs | rhs;
5406}
5407test bitOr {
5408    const test_bit_or = binary(bitOr, .{});
5409    try test_bit_or.testBools();
5410    try test_bit_or.testBoolVectors();
5411    try test_bit_or.testInts();
5412    try test_bit_or.testIntVectors();
5413}
5414
5415inline fn shr(comptime Type: type, lhs: Type, rhs: Type) Type {
5416    const bit_cast_rhs: AsSignedness(Type, .unsigned) = @bitCast(rhs);
5417    const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5418    return lhs >> if (comptime cast(Log2Int(Scalar(Type)), @bitSizeOf(Scalar(Type)))) |bits| truncate_rhs % splat(Log2Int(Type), bits) else truncate_rhs;
5419}
5420test shr {
5421    const test_shr = binary(shr, .{});
5422    try test_shr.testInts();
5423    try test_shr.testIntVectors();
5424}
5425
5426inline fn shrExact(comptime Type: type, lhs: Type, rhs: Type) Type {
5427    const bit_cast_rhs: AsSignedness(Type, .unsigned) = @bitCast(rhs);
5428    const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5429    const final_rhs = if (comptime cast(Log2Int(Scalar(Type)), @bitSizeOf(Scalar(Type)))) |bits| truncate_rhs % splat(Log2Int(Type), bits) else truncate_rhs;
5430    return @shrExact(lhs >> final_rhs << final_rhs, final_rhs);
5431}
5432test shrExact {
5433    const test_shr_exact = binary(shrExact, .{});
5434    try test_shr_exact.testInts();
5435    try test_shr_exact.testIntVectors();
5436}
5437
5438inline fn shl(comptime Type: type, lhs: Type, rhs: Type) Type {
5439    const bit_cast_rhs: AsSignedness(Type, .unsigned) = @bitCast(rhs);
5440    const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5441    return lhs << if (comptime cast(Log2Int(Scalar(Type)), @bitSizeOf(Scalar(Type)))) |bits| truncate_rhs % splat(Log2Int(Type), bits) else truncate_rhs;
5442}
5443test shl {
5444    const test_shl = binary(shl, .{});
5445    try test_shl.testInts();
5446    try test_shl.testIntVectors();
5447}
5448
5449inline fn shlExactUnsafe(comptime Type: type, lhs: Type, rhs: Type) Type {
5450    @setRuntimeSafety(false);
5451    const bit_cast_rhs: AsSignedness(Type, .unsigned) = @bitCast(rhs);
5452    const truncate_rhs: Log2Int(Type) = @truncate(bit_cast_rhs);
5453    const final_rhs = if (comptime cast(Log2Int(Scalar(Type)), @bitSizeOf(Scalar(Type)))) |bits| truncate_rhs % splat(Log2Int(Type), bits) else truncate_rhs;
5454    return @shlExact(lhs << final_rhs >> final_rhs, final_rhs);
5455}
5456test shlExactUnsafe {
5457    const test_shl_exact_unsafe = binary(shlExactUnsafe, .{});
5458    try test_shl_exact_unsafe.testInts();
5459    try test_shl_exact_unsafe.testIntVectors();
5460}
5461
5462inline fn shlSaturate(comptime Type: type, lhs: Type, rhs: Type) Type {
5463    // workaround https://github.com/ziglang/zig/issues/23034
5464    if (@inComptime()) {
5465        // workaround https://github.com/ziglang/zig/issues/23139
5466        return lhs <<| @min(@abs(rhs), splat(ChangeScalar(Type, u64), imax(u64)));
5467    }
5468    return lhs <<| @abs(rhs);
5469}
5470test shlSaturate {
5471    const test_shl_saturate = binary(shlSaturate, .{});
5472    try test_shl_saturate.testInts();
5473    try test_shl_saturate.testIntVectors();
5474}
5475
5476inline fn bitXor(comptime Type: type, lhs: Type, rhs: Type) Type {
5477    return lhs ^ rhs;
5478}
5479test bitXor {
5480    const test_bit_xor = binary(bitXor, .{});
5481    try test_bit_xor.testBools();
5482    try test_bit_xor.testBoolVectors();
5483    try test_bit_xor.testInts();
5484    try test_bit_xor.testIntVectors();
5485}
5486
5487inline fn optionalsEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5488    if (@inComptime()) return lhs == rhs; // workaround https://github.com/ziglang/zig/issues/22636
5489    return @as(?Type, lhs) == rhs;
5490}
5491test optionalsEqual {
5492    const test_optionals_equal = binary(optionalsEqual, .{});
5493    try test_optionals_equal.testInts();
5494    try test_optionals_equal.testFloats();
5495}
5496
5497inline fn optionalsNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5498    if (@inComptime()) return lhs != rhs; // workaround https://github.com/ziglang/zig/issues/22636
5499    return lhs != @as(?Type, rhs);
5500}
5501test optionalsNotEqual {
5502    const test_optionals_not_equal = binary(optionalsNotEqual, .{});
5503    try test_optionals_not_equal.testInts();
5504    try test_optionals_not_equal.testFloats();
5505}
5506
5507inline fn reduceAndEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5508    return @reduce(.And, lhs == rhs);
5509}
5510test reduceAndEqual {
5511    const test_reduce_and_equal = binary(reduceAndEqual, .{});
5512    try test_reduce_and_equal.testIntVectors();
5513    try test_reduce_and_equal.testFloatVectors();
5514}
5515
5516inline fn reduceAndNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5517    return @reduce(.And, lhs != rhs);
5518}
5519test reduceAndNotEqual {
5520    const test_reduce_and_not_equal = binary(reduceAndNotEqual, .{});
5521    try test_reduce_and_not_equal.testIntVectors();
5522    try test_reduce_and_not_equal.testFloatVectors();
5523}
5524
5525inline fn reduceOrEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5526    return @reduce(.Or, lhs == rhs);
5527}
5528test reduceOrEqual {
5529    const test_reduce_or_equal = binary(reduceOrEqual, .{});
5530    try test_reduce_or_equal.testIntVectors();
5531    try test_reduce_or_equal.testFloatVectors();
5532}
5533
5534inline fn reduceOrNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5535    return @reduce(.Or, lhs != rhs);
5536}
5537test reduceOrNotEqual {
5538    const test_reduce_or_not_equal = binary(reduceOrNotEqual, .{});
5539    try test_reduce_or_not_equal.testIntVectors();
5540    try test_reduce_or_not_equal.testFloatVectors();
5541}
5542
5543inline fn reduceXorEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5544    return @reduce(.Xor, lhs == rhs);
5545}
5546test reduceXorEqual {
5547    const test_reduce_xor_equal = binary(reduceXorEqual, .{});
5548    try test_reduce_xor_equal.testIntVectors();
5549    try test_reduce_xor_equal.testFloatVectors();
5550}
5551
5552inline fn reduceXorNotEqual(comptime Type: type, lhs: Type, rhs: Type) bool {
5553    return @reduce(.Xor, lhs != rhs);
5554}
5555test reduceXorNotEqual {
5556    const test_reduce_xor_not_equal = binary(reduceXorNotEqual, .{});
5557    try test_reduce_xor_not_equal.testIntVectors();
5558    try test_reduce_xor_not_equal.testFloatVectors();
5559}
5560
5561inline fn mulAdd(comptime Type: type, lhs: Type, rhs: Type) Type {
5562    return @mulAdd(Type, lhs, rhs, rhs);
5563}
5564test mulAdd {
5565    const test_mul_add = binary(mulAdd, .{ .compare = .approx });
5566    try test_mul_add.testFloats();
5567    try test_mul_add.testFloatVectors();
5568}