1{
2	"jit: lsh, rsh, arsh by 1",
3	.insns = {
4	BPF_MOV64_IMM(BPF_REG_0, 1),
5	BPF_MOV64_IMM(BPF_REG_1, 0xff),
6	BPF_ALU64_IMM(BPF_LSH, BPF_REG_1, 1),
7	BPF_ALU32_IMM(BPF_LSH, BPF_REG_1, 1),
8	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x3fc, 1),
9	BPF_EXIT_INSN(),
10	BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 1),
11	BPF_ALU32_IMM(BPF_RSH, BPF_REG_1, 1),
12	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0xff, 1),
13	BPF_EXIT_INSN(),
14	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_1, 1),
15	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0x7f, 1),
16	BPF_EXIT_INSN(),
17	BPF_MOV64_IMM(BPF_REG_0, 2),
18	BPF_EXIT_INSN(),
19	},
20	.result = ACCEPT,
21	.retval = 2,
22},
23{
24	"jit: mov32 for ldimm64, 1",
25	.insns = {
26	BPF_MOV64_IMM(BPF_REG_0, 2),
27	BPF_LD_IMM64(BPF_REG_1, 0xfeffffffffffffffULL),
28	BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 32),
29	BPF_LD_IMM64(BPF_REG_2, 0xfeffffffULL),
30	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
31	BPF_MOV64_IMM(BPF_REG_0, 1),
32	BPF_EXIT_INSN(),
33	},
34	.result = ACCEPT,
35	.retval = 2,
36},
37{
38	"jit: mov32 for ldimm64, 2",
39	.insns = {
40	BPF_MOV64_IMM(BPF_REG_0, 1),
41	BPF_LD_IMM64(BPF_REG_1, 0x1ffffffffULL),
42	BPF_LD_IMM64(BPF_REG_2, 0xffffffffULL),
43	BPF_JMP_REG(BPF_JEQ, BPF_REG_1, BPF_REG_2, 1),
44	BPF_MOV64_IMM(BPF_REG_0, 2),
45	BPF_EXIT_INSN(),
46	},
47	.result = ACCEPT,
48	.retval = 2,
49},
50{
51	"jit: various mul tests",
52	.insns = {
53	BPF_LD_IMM64(BPF_REG_2, 0xeeff0d413122ULL),
54	BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL),
55	BPF_LD_IMM64(BPF_REG_1, 0xefefefULL),
56	BPF_ALU64_REG(BPF_MUL, BPF_REG_0, BPF_REG_1),
57	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
58	BPF_MOV64_IMM(BPF_REG_0, 1),
59	BPF_EXIT_INSN(),
60	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),
61	BPF_ALU64_REG(BPF_MUL, BPF_REG_3, BPF_REG_1),
62	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
63	BPF_MOV64_IMM(BPF_REG_0, 1),
64	BPF_EXIT_INSN(),
65	BPF_MOV32_REG(BPF_REG_2, BPF_REG_2),
66	BPF_LD_IMM64(BPF_REG_0, 0xfefefeULL),
67	BPF_ALU32_REG(BPF_MUL, BPF_REG_0, BPF_REG_1),
68	BPF_JMP_REG(BPF_JEQ, BPF_REG_0, BPF_REG_2, 2),
69	BPF_MOV64_IMM(BPF_REG_0, 1),
70	BPF_EXIT_INSN(),
71	BPF_LD_IMM64(BPF_REG_3, 0xfefefeULL),
72	BPF_ALU32_REG(BPF_MUL, BPF_REG_3, BPF_REG_1),
73	BPF_JMP_REG(BPF_JEQ, BPF_REG_3, BPF_REG_2, 2),
74	BPF_MOV64_IMM(BPF_REG_0, 1),
75	BPF_EXIT_INSN(),
76	BPF_LD_IMM64(BPF_REG_0, 0x952a7bbcULL),
77	BPF_LD_IMM64(BPF_REG_1, 0xfefefeULL),
78	BPF_LD_IMM64(BPF_REG_2, 0xeeff0d413122ULL),
79	BPF_ALU32_REG(BPF_MUL, BPF_REG_2, BPF_REG_1),
80	BPF_JMP_REG(BPF_JEQ, BPF_REG_2, BPF_REG_0, 2),
81	BPF_MOV64_IMM(BPF_REG_0, 1),
82	BPF_EXIT_INSN(),
83	BPF_MOV64_IMM(BPF_REG_0, 2),
84	BPF_EXIT_INSN(),
85	},
86	.result = ACCEPT,
87	.retval = 2,
88},
89{
90	"jit: jsgt, jslt",
91	.insns = {
92	BPF_LD_IMM64(BPF_REG_1, 0x80000000ULL),
93	BPF_LD_IMM64(BPF_REG_2, 0x0ULL),
94	BPF_JMP_REG(BPF_JSGT, BPF_REG_1, BPF_REG_2, 2),
95	BPF_MOV64_IMM(BPF_REG_0, 1),
96	BPF_EXIT_INSN(),
97
98	BPF_JMP_REG(BPF_JSLT, BPF_REG_2, BPF_REG_1, 2),
99	BPF_MOV64_IMM(BPF_REG_0, 1),
100	BPF_EXIT_INSN(),
101
102	BPF_MOV64_IMM(BPF_REG_0, 2),
103	BPF_EXIT_INSN(),
104	},
105	.result = ACCEPT,
106	.retval = 2,
107},
108