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