18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "masking, test out of bounds 1", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 5), 58c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 68c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 78c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 88c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 98c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 108c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 118c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 128c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 138c2ecf20Sopenharmony_ci }, 148c2ecf20Sopenharmony_ci .result = ACCEPT, 158c2ecf20Sopenharmony_ci .retval = 0, 168c2ecf20Sopenharmony_ci}, 178c2ecf20Sopenharmony_ci{ 188c2ecf20Sopenharmony_ci "masking, test out of bounds 2", 198c2ecf20Sopenharmony_ci .insns = { 208c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 1), 218c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 228c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 238c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 248c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 258c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 268c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 278c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 288c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 298c2ecf20Sopenharmony_ci }, 308c2ecf20Sopenharmony_ci .result = ACCEPT, 318c2ecf20Sopenharmony_ci .retval = 0, 328c2ecf20Sopenharmony_ci}, 338c2ecf20Sopenharmony_ci{ 348c2ecf20Sopenharmony_ci "masking, test out of bounds 3", 358c2ecf20Sopenharmony_ci .insns = { 368c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0xffffffff), 378c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 388c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 398c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 408c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 418c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 428c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 438c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 448c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 458c2ecf20Sopenharmony_ci }, 468c2ecf20Sopenharmony_ci .result = ACCEPT, 478c2ecf20Sopenharmony_ci .retval = 0, 488c2ecf20Sopenharmony_ci}, 498c2ecf20Sopenharmony_ci{ 508c2ecf20Sopenharmony_ci "masking, test out of bounds 4", 518c2ecf20Sopenharmony_ci .insns = { 528c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0xffffffff), 538c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 548c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 558c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 568c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 578c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 588c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 598c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 608c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 618c2ecf20Sopenharmony_ci }, 628c2ecf20Sopenharmony_ci .result = ACCEPT, 638c2ecf20Sopenharmony_ci .retval = 0, 648c2ecf20Sopenharmony_ci}, 658c2ecf20Sopenharmony_ci{ 668c2ecf20Sopenharmony_ci "masking, test out of bounds 5", 678c2ecf20Sopenharmony_ci .insns = { 688c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, -1), 698c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 708c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 718c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 728c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 738c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 748c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 758c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 768c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 778c2ecf20Sopenharmony_ci }, 788c2ecf20Sopenharmony_ci .result = ACCEPT, 798c2ecf20Sopenharmony_ci .retval = 0, 808c2ecf20Sopenharmony_ci}, 818c2ecf20Sopenharmony_ci{ 828c2ecf20Sopenharmony_ci "masking, test out of bounds 6", 838c2ecf20Sopenharmony_ci .insns = { 848c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, -1), 858c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 868c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 878c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 888c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 898c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 908c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 918c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 928c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 938c2ecf20Sopenharmony_ci }, 948c2ecf20Sopenharmony_ci .result = ACCEPT, 958c2ecf20Sopenharmony_ci .retval = 0, 968c2ecf20Sopenharmony_ci}, 978c2ecf20Sopenharmony_ci{ 988c2ecf20Sopenharmony_ci "masking, test out of bounds 7", 998c2ecf20Sopenharmony_ci .insns = { 1008c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 5), 1018c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 1028c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1038c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1048c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1058c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1068c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1078c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1088c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1098c2ecf20Sopenharmony_ci }, 1108c2ecf20Sopenharmony_ci .result = ACCEPT, 1118c2ecf20Sopenharmony_ci .retval = 0, 1128c2ecf20Sopenharmony_ci}, 1138c2ecf20Sopenharmony_ci{ 1148c2ecf20Sopenharmony_ci "masking, test out of bounds 8", 1158c2ecf20Sopenharmony_ci .insns = { 1168c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 1), 1178c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 1188c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1198c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1208c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1218c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1228c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1238c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1248c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1258c2ecf20Sopenharmony_ci }, 1268c2ecf20Sopenharmony_ci .result = ACCEPT, 1278c2ecf20Sopenharmony_ci .retval = 0, 1288c2ecf20Sopenharmony_ci}, 1298c2ecf20Sopenharmony_ci{ 1308c2ecf20Sopenharmony_ci "masking, test out of bounds 9", 1318c2ecf20Sopenharmony_ci .insns = { 1328c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 0xffffffff), 1338c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 1348c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1358c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1368c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1378c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1388c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1398c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1408c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1418c2ecf20Sopenharmony_ci }, 1428c2ecf20Sopenharmony_ci .result = ACCEPT, 1438c2ecf20Sopenharmony_ci .retval = 0, 1448c2ecf20Sopenharmony_ci}, 1458c2ecf20Sopenharmony_ci{ 1468c2ecf20Sopenharmony_ci "masking, test out of bounds 10", 1478c2ecf20Sopenharmony_ci .insns = { 1488c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 0xffffffff), 1498c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 1508c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1518c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1528c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1538c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1548c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1558c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1568c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1578c2ecf20Sopenharmony_ci }, 1588c2ecf20Sopenharmony_ci .result = ACCEPT, 1598c2ecf20Sopenharmony_ci .retval = 0, 1608c2ecf20Sopenharmony_ci}, 1618c2ecf20Sopenharmony_ci{ 1628c2ecf20Sopenharmony_ci "masking, test out of bounds 11", 1638c2ecf20Sopenharmony_ci .insns = { 1648c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, -1), 1658c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 1668c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1678c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1688c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1698c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1708c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1718c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1728c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1738c2ecf20Sopenharmony_ci }, 1748c2ecf20Sopenharmony_ci .result = ACCEPT, 1758c2ecf20Sopenharmony_ci .retval = 0, 1768c2ecf20Sopenharmony_ci}, 1778c2ecf20Sopenharmony_ci{ 1788c2ecf20Sopenharmony_ci "masking, test out of bounds 12", 1798c2ecf20Sopenharmony_ci .insns = { 1808c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, -1), 1818c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 1828c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1838c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 1848c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 1858c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 1868c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 1878c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1888c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1898c2ecf20Sopenharmony_ci }, 1908c2ecf20Sopenharmony_ci .result = ACCEPT, 1918c2ecf20Sopenharmony_ci .retval = 0, 1928c2ecf20Sopenharmony_ci}, 1938c2ecf20Sopenharmony_ci{ 1948c2ecf20Sopenharmony_ci "masking, test in bounds 1", 1958c2ecf20Sopenharmony_ci .insns = { 1968c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 4), 1978c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 5 - 1), 1988c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 1998c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2008c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2018c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2028c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2038c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2048c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2058c2ecf20Sopenharmony_ci }, 2068c2ecf20Sopenharmony_ci .result = ACCEPT, 2078c2ecf20Sopenharmony_ci .retval = 4, 2088c2ecf20Sopenharmony_ci}, 2098c2ecf20Sopenharmony_ci{ 2108c2ecf20Sopenharmony_ci "masking, test in bounds 2", 2118c2ecf20Sopenharmony_ci .insns = { 2128c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 2138c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 2148c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 2158c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2168c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2178c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2188c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2198c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2208c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2218c2ecf20Sopenharmony_ci }, 2228c2ecf20Sopenharmony_ci .result = ACCEPT, 2238c2ecf20Sopenharmony_ci .retval = 0, 2248c2ecf20Sopenharmony_ci}, 2258c2ecf20Sopenharmony_ci{ 2268c2ecf20Sopenharmony_ci "masking, test in bounds 3", 2278c2ecf20Sopenharmony_ci .insns = { 2288c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0xfffffffe), 2298c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1), 2308c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 2318c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2328c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2338c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2348c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2358c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2368c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2378c2ecf20Sopenharmony_ci }, 2388c2ecf20Sopenharmony_ci .result = ACCEPT, 2398c2ecf20Sopenharmony_ci .retval = 0xfffffffe, 2408c2ecf20Sopenharmony_ci}, 2418c2ecf20Sopenharmony_ci{ 2428c2ecf20Sopenharmony_ci "masking, test in bounds 4", 2438c2ecf20Sopenharmony_ci .insns = { 2448c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0xabcde), 2458c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 0xabcdef - 1), 2468c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 2478c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2488c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2498c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2508c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2518c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2528c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2538c2ecf20Sopenharmony_ci }, 2548c2ecf20Sopenharmony_ci .result = ACCEPT, 2558c2ecf20Sopenharmony_ci .retval = 0xabcde, 2568c2ecf20Sopenharmony_ci}, 2578c2ecf20Sopenharmony_ci{ 2588c2ecf20Sopenharmony_ci "masking, test in bounds 5", 2598c2ecf20Sopenharmony_ci .insns = { 2608c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 0), 2618c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 1 - 1), 2628c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 2638c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2648c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2658c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2668c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2678c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2688c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2698c2ecf20Sopenharmony_ci }, 2708c2ecf20Sopenharmony_ci .result = ACCEPT, 2718c2ecf20Sopenharmony_ci .retval = 0, 2728c2ecf20Sopenharmony_ci}, 2738c2ecf20Sopenharmony_ci{ 2748c2ecf20Sopenharmony_ci "masking, test in bounds 6", 2758c2ecf20Sopenharmony_ci .insns = { 2768c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_1, 46), 2778c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 2788c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1), 2798c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1), 2808c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2818c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2828c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2), 2838c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 2848c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 2858c2ecf20Sopenharmony_ci }, 2868c2ecf20Sopenharmony_ci .result = ACCEPT, 2878c2ecf20Sopenharmony_ci .retval = 46, 2888c2ecf20Sopenharmony_ci}, 2898c2ecf20Sopenharmony_ci{ 2908c2ecf20Sopenharmony_ci "masking, test in bounds 7", 2918c2ecf20Sopenharmony_ci .insns = { 2928c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_3, -46), 2938c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1), 2948c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 2958c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3), 2968c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3), 2978c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 2988c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 2998c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2), 3008c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_3), 3018c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3028c2ecf20Sopenharmony_ci }, 3038c2ecf20Sopenharmony_ci .result = ACCEPT, 3048c2ecf20Sopenharmony_ci .retval = 46, 3058c2ecf20Sopenharmony_ci}, 3068c2ecf20Sopenharmony_ci{ 3078c2ecf20Sopenharmony_ci "masking, test in bounds 8", 3088c2ecf20Sopenharmony_ci .insns = { 3098c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_3, -47), 3108c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1), 3118c2ecf20Sopenharmony_ci BPF_MOV32_IMM(BPF_REG_2, 47 - 1), 3128c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3), 3138c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3), 3148c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0), 3158c2ecf20Sopenharmony_ci BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63), 3168c2ecf20Sopenharmony_ci BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2), 3178c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_3), 3188c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 3198c2ecf20Sopenharmony_ci }, 3208c2ecf20Sopenharmony_ci .result = ACCEPT, 3218c2ecf20Sopenharmony_ci .retval = 0, 3228c2ecf20Sopenharmony_ci}, 323