1// Code generated from gen/*Ops.go; DO NOT EDIT.
2
3package ssa
4
5import (
6	"cmd/internal/obj"
7	"cmd/internal/obj/arm"
8	"cmd/internal/obj/arm64"
9	"cmd/internal/obj/mips"
10	"cmd/internal/obj/ppc64"
11	"cmd/internal/obj/s390x"
12	"cmd/internal/obj/x86"
13)
14
15const (
16	BlockInvalid BlockKind = iota
17
18	Block386EQ
19	Block386NE
20	Block386LT
21	Block386LE
22	Block386GT
23	Block386GE
24	Block386ULT
25	Block386ULE
26	Block386UGT
27	Block386UGE
28	Block386EQF
29	Block386NEF
30	Block386ORD
31	Block386NAN
32
33	BlockAMD64EQ
34	BlockAMD64NE
35	BlockAMD64LT
36	BlockAMD64LE
37	BlockAMD64GT
38	BlockAMD64GE
39	BlockAMD64ULT
40	BlockAMD64ULE
41	BlockAMD64UGT
42	BlockAMD64UGE
43	BlockAMD64EQF
44	BlockAMD64NEF
45	BlockAMD64ORD
46	BlockAMD64NAN
47
48	BlockARMEQ
49	BlockARMNE
50	BlockARMLT
51	BlockARMLE
52	BlockARMGT
53	BlockARMGE
54	BlockARMULT
55	BlockARMULE
56	BlockARMUGT
57	BlockARMUGE
58
59	BlockARM64EQ
60	BlockARM64NE
61	BlockARM64LT
62	BlockARM64LE
63	BlockARM64GT
64	BlockARM64GE
65	BlockARM64ULT
66	BlockARM64ULE
67	BlockARM64UGT
68	BlockARM64UGE
69	BlockARM64Z
70	BlockARM64NZ
71	BlockARM64ZW
72	BlockARM64NZW
73
74	BlockMIPSEQ
75	BlockMIPSNE
76	BlockMIPSLTZ
77	BlockMIPSLEZ
78	BlockMIPSGTZ
79	BlockMIPSGEZ
80	BlockMIPSFPT
81	BlockMIPSFPF
82
83	BlockMIPS64EQ
84	BlockMIPS64NE
85	BlockMIPS64LTZ
86	BlockMIPS64LEZ
87	BlockMIPS64GTZ
88	BlockMIPS64GEZ
89	BlockMIPS64FPT
90	BlockMIPS64FPF
91
92	BlockPPC64EQ
93	BlockPPC64NE
94	BlockPPC64LT
95	BlockPPC64LE
96	BlockPPC64GT
97	BlockPPC64GE
98	BlockPPC64FLT
99	BlockPPC64FLE
100	BlockPPC64FGT
101	BlockPPC64FGE
102
103	BlockS390XEQ
104	BlockS390XNE
105	BlockS390XLT
106	BlockS390XLE
107	BlockS390XGT
108	BlockS390XGE
109	BlockS390XGTF
110	BlockS390XGEF
111
112	BlockPlain
113	BlockIf
114	BlockDefer
115	BlockRet
116	BlockRetJmp
117	BlockExit
118	BlockFirst
119)
120
121var blockString = [...]string{
122	BlockInvalid: "BlockInvalid",
123
124	Block386EQ:  "EQ",
125	Block386NE:  "NE",
126	Block386LT:  "LT",
127	Block386LE:  "LE",
128	Block386GT:  "GT",
129	Block386GE:  "GE",
130	Block386ULT: "ULT",
131	Block386ULE: "ULE",
132	Block386UGT: "UGT",
133	Block386UGE: "UGE",
134	Block386EQF: "EQF",
135	Block386NEF: "NEF",
136	Block386ORD: "ORD",
137	Block386NAN: "NAN",
138
139	BlockAMD64EQ:  "EQ",
140	BlockAMD64NE:  "NE",
141	BlockAMD64LT:  "LT",
142	BlockAMD64LE:  "LE",
143	BlockAMD64GT:  "GT",
144	BlockAMD64GE:  "GE",
145	BlockAMD64ULT: "ULT",
146	BlockAMD64ULE: "ULE",
147	BlockAMD64UGT: "UGT",
148	BlockAMD64UGE: "UGE",
149	BlockAMD64EQF: "EQF",
150	BlockAMD64NEF: "NEF",
151	BlockAMD64ORD: "ORD",
152	BlockAMD64NAN: "NAN",
153
154	BlockARMEQ:  "EQ",
155	BlockARMNE:  "NE",
156	BlockARMLT:  "LT",
157	BlockARMLE:  "LE",
158	BlockARMGT:  "GT",
159	BlockARMGE:  "GE",
160	BlockARMULT: "ULT",
161	BlockARMULE: "ULE",
162	BlockARMUGT: "UGT",
163	BlockARMUGE: "UGE",
164
165	BlockARM64EQ:  "EQ",
166	BlockARM64NE:  "NE",
167	BlockARM64LT:  "LT",
168	BlockARM64LE:  "LE",
169	BlockARM64GT:  "GT",
170	BlockARM64GE:  "GE",
171	BlockARM64ULT: "ULT",
172	BlockARM64ULE: "ULE",
173	BlockARM64UGT: "UGT",
174	BlockARM64UGE: "UGE",
175	BlockARM64Z:   "Z",
176	BlockARM64NZ:  "NZ",
177	BlockARM64ZW:  "ZW",
178	BlockARM64NZW: "NZW",
179
180	BlockMIPSEQ:  "EQ",
181	BlockMIPSNE:  "NE",
182	BlockMIPSLTZ: "LTZ",
183	BlockMIPSLEZ: "LEZ",
184	BlockMIPSGTZ: "GTZ",
185	BlockMIPSGEZ: "GEZ",
186	BlockMIPSFPT: "FPT",
187	BlockMIPSFPF: "FPF",
188
189	BlockMIPS64EQ:  "EQ",
190	BlockMIPS64NE:  "NE",
191	BlockMIPS64LTZ: "LTZ",
192	BlockMIPS64LEZ: "LEZ",
193	BlockMIPS64GTZ: "GTZ",
194	BlockMIPS64GEZ: "GEZ",
195	BlockMIPS64FPT: "FPT",
196	BlockMIPS64FPF: "FPF",
197
198	BlockPPC64EQ:  "EQ",
199	BlockPPC64NE:  "NE",
200	BlockPPC64LT:  "LT",
201	BlockPPC64LE:  "LE",
202	BlockPPC64GT:  "GT",
203	BlockPPC64GE:  "GE",
204	BlockPPC64FLT: "FLT",
205	BlockPPC64FLE: "FLE",
206	BlockPPC64FGT: "FGT",
207	BlockPPC64FGE: "FGE",
208
209	BlockS390XEQ:  "EQ",
210	BlockS390XNE:  "NE",
211	BlockS390XLT:  "LT",
212	BlockS390XLE:  "LE",
213	BlockS390XGT:  "GT",
214	BlockS390XGE:  "GE",
215	BlockS390XGTF: "GTF",
216	BlockS390XGEF: "GEF",
217
218	BlockPlain:  "Plain",
219	BlockIf:     "If",
220	BlockDefer:  "Defer",
221	BlockRet:    "Ret",
222	BlockRetJmp: "RetJmp",
223	BlockExit:   "Exit",
224	BlockFirst:  "First",
225}
226
227func (k BlockKind) String() string { return blockString[k] }
228
229const (
230	OpInvalid Op = iota
231
232	Op386ADDSS
233	Op386ADDSD
234	Op386SUBSS
235	Op386SUBSD
236	Op386MULSS
237	Op386MULSD
238	Op386DIVSS
239	Op386DIVSD
240	Op386MOVSSload
241	Op386MOVSDload
242	Op386MOVSSconst
243	Op386MOVSDconst
244	Op386MOVSSloadidx1
245	Op386MOVSSloadidx4
246	Op386MOVSDloadidx1
247	Op386MOVSDloadidx8
248	Op386MOVSSstore
249	Op386MOVSDstore
250	Op386MOVSSstoreidx1
251	Op386MOVSSstoreidx4
252	Op386MOVSDstoreidx1
253	Op386MOVSDstoreidx8
254	Op386ADDL
255	Op386ADDLconst
256	Op386ADDLcarry
257	Op386ADDLconstcarry
258	Op386ADCL
259	Op386ADCLconst
260	Op386SUBL
261	Op386SUBLconst
262	Op386SUBLcarry
263	Op386SUBLconstcarry
264	Op386SBBL
265	Op386SBBLconst
266	Op386MULL
267	Op386MULLconst
268	Op386HMULL
269	Op386HMULLU
270	Op386MULLQU
271	Op386AVGLU
272	Op386DIVL
273	Op386DIVW
274	Op386DIVLU
275	Op386DIVWU
276	Op386MODL
277	Op386MODW
278	Op386MODLU
279	Op386MODWU
280	Op386ANDL
281	Op386ANDLconst
282	Op386ORL
283	Op386ORLconst
284	Op386XORL
285	Op386XORLconst
286	Op386CMPL
287	Op386CMPW
288	Op386CMPB
289	Op386CMPLconst
290	Op386CMPWconst
291	Op386CMPBconst
292	Op386UCOMISS
293	Op386UCOMISD
294	Op386TESTL
295	Op386TESTW
296	Op386TESTB
297	Op386TESTLconst
298	Op386TESTWconst
299	Op386TESTBconst
300	Op386SHLL
301	Op386SHLLconst
302	Op386SHRL
303	Op386SHRW
304	Op386SHRB
305	Op386SHRLconst
306	Op386SHRWconst
307	Op386SHRBconst
308	Op386SARL
309	Op386SARW
310	Op386SARB
311	Op386SARLconst
312	Op386SARWconst
313	Op386SARBconst
314	Op386ROLLconst
315	Op386ROLWconst
316	Op386ROLBconst
317	Op386NEGL
318	Op386NOTL
319	Op386BSFL
320	Op386BSFW
321	Op386BSRL
322	Op386BSRW
323	Op386BSWAPL
324	Op386SQRTSD
325	Op386SBBLcarrymask
326	Op386SETEQ
327	Op386SETNE
328	Op386SETL
329	Op386SETLE
330	Op386SETG
331	Op386SETGE
332	Op386SETB
333	Op386SETBE
334	Op386SETA
335	Op386SETAE
336	Op386SETEQF
337	Op386SETNEF
338	Op386SETORD
339	Op386SETNAN
340	Op386SETGF
341	Op386SETGEF
342	Op386MOVBLSX
343	Op386MOVBLZX
344	Op386MOVWLSX
345	Op386MOVWLZX
346	Op386MOVLconst
347	Op386CVTTSD2SL
348	Op386CVTTSS2SL
349	Op386CVTSL2SS
350	Op386CVTSL2SD
351	Op386CVTSD2SS
352	Op386CVTSS2SD
353	Op386PXOR
354	Op386LEAL
355	Op386LEAL1
356	Op386LEAL2
357	Op386LEAL4
358	Op386LEAL8
359	Op386MOVBload
360	Op386MOVBLSXload
361	Op386MOVWload
362	Op386MOVWLSXload
363	Op386MOVLload
364	Op386MOVBstore
365	Op386MOVWstore
366	Op386MOVLstore
367	Op386MOVBloadidx1
368	Op386MOVWloadidx1
369	Op386MOVWloadidx2
370	Op386MOVLloadidx1
371	Op386MOVLloadidx4
372	Op386MOVBstoreidx1
373	Op386MOVWstoreidx1
374	Op386MOVWstoreidx2
375	Op386MOVLstoreidx1
376	Op386MOVLstoreidx4
377	Op386MOVBstoreconst
378	Op386MOVWstoreconst
379	Op386MOVLstoreconst
380	Op386MOVBstoreconstidx1
381	Op386MOVWstoreconstidx1
382	Op386MOVWstoreconstidx2
383	Op386MOVLstoreconstidx1
384	Op386MOVLstoreconstidx4
385	Op386DUFFZERO
386	Op386REPSTOSL
387	Op386CALLstatic
388	Op386CALLclosure
389	Op386CALLinter
390	Op386DUFFCOPY
391	Op386REPMOVSL
392	Op386InvertFlags
393	Op386LoweredGetG
394	Op386LoweredGetClosurePtr
395	Op386LoweredNilCheck
396	Op386MOVLconvert
397	Op386FlagEQ
398	Op386FlagLT_ULT
399	Op386FlagLT_UGT
400	Op386FlagGT_UGT
401	Op386FlagGT_ULT
402	Op386FCHS
403	Op386MOVSSconst1
404	Op386MOVSDconst1
405	Op386MOVSSconst2
406	Op386MOVSDconst2
407
408	OpAMD64ADDSS
409	OpAMD64ADDSD
410	OpAMD64SUBSS
411	OpAMD64SUBSD
412	OpAMD64MULSS
413	OpAMD64MULSD
414	OpAMD64DIVSS
415	OpAMD64DIVSD
416	OpAMD64MOVSSload
417	OpAMD64MOVSDload
418	OpAMD64MOVSSconst
419	OpAMD64MOVSDconst
420	OpAMD64MOVSSloadidx1
421	OpAMD64MOVSSloadidx4
422	OpAMD64MOVSDloadidx1
423	OpAMD64MOVSDloadidx8
424	OpAMD64MOVSSstore
425	OpAMD64MOVSDstore
426	OpAMD64MOVSSstoreidx1
427	OpAMD64MOVSSstoreidx4
428	OpAMD64MOVSDstoreidx1
429	OpAMD64MOVSDstoreidx8
430	OpAMD64ADDSDmem
431	OpAMD64ADDSSmem
432	OpAMD64SUBSSmem
433	OpAMD64SUBSDmem
434	OpAMD64MULSSmem
435	OpAMD64MULSDmem
436	OpAMD64ADDQ
437	OpAMD64ADDL
438	OpAMD64ADDQconst
439	OpAMD64ADDLconst
440	OpAMD64SUBQ
441	OpAMD64SUBL
442	OpAMD64SUBQconst
443	OpAMD64SUBLconst
444	OpAMD64MULQ
445	OpAMD64MULL
446	OpAMD64MULQconst
447	OpAMD64MULLconst
448	OpAMD64HMULQ
449	OpAMD64HMULL
450	OpAMD64HMULQU
451	OpAMD64HMULLU
452	OpAMD64AVGQU
453	OpAMD64DIVQ
454	OpAMD64DIVL
455	OpAMD64DIVW
456	OpAMD64DIVQU
457	OpAMD64DIVLU
458	OpAMD64DIVWU
459	OpAMD64MULQU2
460	OpAMD64DIVQU2
461	OpAMD64ANDQ
462	OpAMD64ANDL
463	OpAMD64ANDQconst
464	OpAMD64ANDLconst
465	OpAMD64ORQ
466	OpAMD64ORL
467	OpAMD64ORQconst
468	OpAMD64ORLconst
469	OpAMD64XORQ
470	OpAMD64XORL
471	OpAMD64XORQconst
472	OpAMD64XORLconst
473	OpAMD64CMPQ
474	OpAMD64CMPL
475	OpAMD64CMPW
476	OpAMD64CMPB
477	OpAMD64CMPQconst
478	OpAMD64CMPLconst
479	OpAMD64CMPWconst
480	OpAMD64CMPBconst
481	OpAMD64UCOMISS
482	OpAMD64UCOMISD
483	OpAMD64BTL
484	OpAMD64BTQ
485	OpAMD64BTLconst
486	OpAMD64BTQconst
487	OpAMD64TESTQ
488	OpAMD64TESTL
489	OpAMD64TESTW
490	OpAMD64TESTB
491	OpAMD64TESTQconst
492	OpAMD64TESTLconst
493	OpAMD64TESTWconst
494	OpAMD64TESTBconst
495	OpAMD64SHLQ
496	OpAMD64SHLL
497	OpAMD64SHLQconst
498	OpAMD64SHLLconst
499	OpAMD64SHRQ
500	OpAMD64SHRL
501	OpAMD64SHRW
502	OpAMD64SHRB
503	OpAMD64SHRQconst
504	OpAMD64SHRLconst
505	OpAMD64SHRWconst
506	OpAMD64SHRBconst
507	OpAMD64SARQ
508	OpAMD64SARL
509	OpAMD64SARW
510	OpAMD64SARB
511	OpAMD64SARQconst
512	OpAMD64SARLconst
513	OpAMD64SARWconst
514	OpAMD64SARBconst
515	OpAMD64ROLQ
516	OpAMD64ROLL
517	OpAMD64ROLW
518	OpAMD64ROLB
519	OpAMD64RORQ
520	OpAMD64RORL
521	OpAMD64RORW
522	OpAMD64RORB
523	OpAMD64ROLQconst
524	OpAMD64ROLLconst
525	OpAMD64ROLWconst
526	OpAMD64ROLBconst
527	OpAMD64ADDLmem
528	OpAMD64ADDQmem
529	OpAMD64SUBQmem
530	OpAMD64SUBLmem
531	OpAMD64ANDLmem
532	OpAMD64ANDQmem
533	OpAMD64ORQmem
534	OpAMD64ORLmem
535	OpAMD64XORQmem
536	OpAMD64XORLmem
537	OpAMD64NEGQ
538	OpAMD64NEGL
539	OpAMD64NOTQ
540	OpAMD64NOTL
541	OpAMD64BSFQ
542	OpAMD64BSFL
543	OpAMD64BSRQ
544	OpAMD64BSRL
545	OpAMD64CMOVQEQ
546	OpAMD64CMOVLEQ
547	OpAMD64BSWAPQ
548	OpAMD64BSWAPL
549	OpAMD64POPCNTQ
550	OpAMD64POPCNTL
551	OpAMD64SQRTSD
552	OpAMD64SBBQcarrymask
553	OpAMD64SBBLcarrymask
554	OpAMD64SETEQ
555	OpAMD64SETNE
556	OpAMD64SETL
557	OpAMD64SETLE
558	OpAMD64SETG
559	OpAMD64SETGE
560	OpAMD64SETB
561	OpAMD64SETBE
562	OpAMD64SETA
563	OpAMD64SETAE
564	OpAMD64SETEQF
565	OpAMD64SETNEF
566	OpAMD64SETORD
567	OpAMD64SETNAN
568	OpAMD64SETGF
569	OpAMD64SETGEF
570	OpAMD64MOVBQSX
571	OpAMD64MOVBQZX
572	OpAMD64MOVWQSX
573	OpAMD64MOVWQZX
574	OpAMD64MOVLQSX
575	OpAMD64MOVLQZX
576	OpAMD64MOVLconst
577	OpAMD64MOVQconst
578	OpAMD64CVTTSD2SL
579	OpAMD64CVTTSD2SQ
580	OpAMD64CVTTSS2SL
581	OpAMD64CVTTSS2SQ
582	OpAMD64CVTSL2SS
583	OpAMD64CVTSL2SD
584	OpAMD64CVTSQ2SS
585	OpAMD64CVTSQ2SD
586	OpAMD64CVTSD2SS
587	OpAMD64CVTSS2SD
588	OpAMD64PXOR
589	OpAMD64LEAQ
590	OpAMD64LEAQ1
591	OpAMD64LEAQ2
592	OpAMD64LEAQ4
593	OpAMD64LEAQ8
594	OpAMD64LEAL
595	OpAMD64MOVBload
596	OpAMD64MOVBQSXload
597	OpAMD64MOVWload
598	OpAMD64MOVWQSXload
599	OpAMD64MOVLload
600	OpAMD64MOVLQSXload
601	OpAMD64MOVQload
602	OpAMD64MOVBstore
603	OpAMD64MOVWstore
604	OpAMD64MOVLstore
605	OpAMD64MOVQstore
606	OpAMD64MOVOload
607	OpAMD64MOVOstore
608	OpAMD64MOVBloadidx1
609	OpAMD64MOVWloadidx1
610	OpAMD64MOVWloadidx2
611	OpAMD64MOVLloadidx1
612	OpAMD64MOVLloadidx4
613	OpAMD64MOVQloadidx1
614	OpAMD64MOVQloadidx8
615	OpAMD64MOVBstoreidx1
616	OpAMD64MOVWstoreidx1
617	OpAMD64MOVWstoreidx2
618	OpAMD64MOVLstoreidx1
619	OpAMD64MOVLstoreidx4
620	OpAMD64MOVQstoreidx1
621	OpAMD64MOVQstoreidx8
622	OpAMD64MOVBstoreconst
623	OpAMD64MOVWstoreconst
624	OpAMD64MOVLstoreconst
625	OpAMD64MOVQstoreconst
626	OpAMD64MOVBstoreconstidx1
627	OpAMD64MOVWstoreconstidx1
628	OpAMD64MOVWstoreconstidx2
629	OpAMD64MOVLstoreconstidx1
630	OpAMD64MOVLstoreconstidx4
631	OpAMD64MOVQstoreconstidx1
632	OpAMD64MOVQstoreconstidx8
633	OpAMD64DUFFZERO
634	OpAMD64MOVOconst
635	OpAMD64REPSTOSQ
636	OpAMD64CALLstatic
637	OpAMD64CALLclosure
638	OpAMD64CALLinter
639	OpAMD64DUFFCOPY
640	OpAMD64REPMOVSQ
641	OpAMD64InvertFlags
642	OpAMD64LoweredGetG
643	OpAMD64LoweredGetClosurePtr
644	OpAMD64LoweredNilCheck
645	OpAMD64MOVQconvert
646	OpAMD64MOVLconvert
647	OpAMD64FlagEQ
648	OpAMD64FlagLT_ULT
649	OpAMD64FlagLT_UGT
650	OpAMD64FlagGT_UGT
651	OpAMD64FlagGT_ULT
652	OpAMD64MOVLatomicload
653	OpAMD64MOVQatomicload
654	OpAMD64XCHGL
655	OpAMD64XCHGQ
656	OpAMD64XADDLlock
657	OpAMD64XADDQlock
658	OpAMD64AddTupleFirst32
659	OpAMD64AddTupleFirst64
660	OpAMD64CMPXCHGLlock
661	OpAMD64CMPXCHGQlock
662	OpAMD64ANDBlock
663	OpAMD64ORBlock
664
665	OpARMADD
666	OpARMADDconst
667	OpARMSUB
668	OpARMSUBconst
669	OpARMRSB
670	OpARMRSBconst
671	OpARMMUL
672	OpARMHMUL
673	OpARMHMULU
674	OpARMCALLudiv
675	OpARMADDS
676	OpARMADDSconst
677	OpARMADC
678	OpARMADCconst
679	OpARMSUBS
680	OpARMSUBSconst
681	OpARMRSBSconst
682	OpARMSBC
683	OpARMSBCconst
684	OpARMRSCconst
685	OpARMMULLU
686	OpARMMULA
687	OpARMADDF
688	OpARMADDD
689	OpARMSUBF
690	OpARMSUBD
691	OpARMMULF
692	OpARMMULD
693	OpARMDIVF
694	OpARMDIVD
695	OpARMAND
696	OpARMANDconst
697	OpARMOR
698	OpARMORconst
699	OpARMXOR
700	OpARMXORconst
701	OpARMBIC
702	OpARMBICconst
703	OpARMMVN
704	OpARMNEGF
705	OpARMNEGD
706	OpARMSQRTD
707	OpARMCLZ
708	OpARMREV
709	OpARMRBIT
710	OpARMSLL
711	OpARMSLLconst
712	OpARMSRL
713	OpARMSRLconst
714	OpARMSRA
715	OpARMSRAconst
716	OpARMSRRconst
717	OpARMADDshiftLL
718	OpARMADDshiftRL
719	OpARMADDshiftRA
720	OpARMSUBshiftLL
721	OpARMSUBshiftRL
722	OpARMSUBshiftRA
723	OpARMRSBshiftLL
724	OpARMRSBshiftRL
725	OpARMRSBshiftRA
726	OpARMANDshiftLL
727	OpARMANDshiftRL
728	OpARMANDshiftRA
729	OpARMORshiftLL
730	OpARMORshiftRL
731	OpARMORshiftRA
732	OpARMXORshiftLL
733	OpARMXORshiftRL
734	OpARMXORshiftRA
735	OpARMXORshiftRR
736	OpARMBICshiftLL
737	OpARMBICshiftRL
738	OpARMBICshiftRA
739	OpARMMVNshiftLL
740	OpARMMVNshiftRL
741	OpARMMVNshiftRA
742	OpARMADCshiftLL
743	OpARMADCshiftRL
744	OpARMADCshiftRA
745	OpARMSBCshiftLL
746	OpARMSBCshiftRL
747	OpARMSBCshiftRA
748	OpARMRSCshiftLL
749	OpARMRSCshiftRL
750	OpARMRSCshiftRA
751	OpARMADDSshiftLL
752	OpARMADDSshiftRL
753	OpARMADDSshiftRA
754	OpARMSUBSshiftLL
755	OpARMSUBSshiftRL
756	OpARMSUBSshiftRA
757	OpARMRSBSshiftLL
758	OpARMRSBSshiftRL
759	OpARMRSBSshiftRA
760	OpARMADDshiftLLreg
761	OpARMADDshiftRLreg
762	OpARMADDshiftRAreg
763	OpARMSUBshiftLLreg
764	OpARMSUBshiftRLreg
765	OpARMSUBshiftRAreg
766	OpARMRSBshiftLLreg
767	OpARMRSBshiftRLreg
768	OpARMRSBshiftRAreg
769	OpARMANDshiftLLreg
770	OpARMANDshiftRLreg
771	OpARMANDshiftRAreg
772	OpARMORshiftLLreg
773	OpARMORshiftRLreg
774	OpARMORshiftRAreg
775	OpARMXORshiftLLreg
776	OpARMXORshiftRLreg
777	OpARMXORshiftRAreg
778	OpARMBICshiftLLreg
779	OpARMBICshiftRLreg
780	OpARMBICshiftRAreg
781	OpARMMVNshiftLLreg
782	OpARMMVNshiftRLreg
783	OpARMMVNshiftRAreg
784	OpARMADCshiftLLreg
785	OpARMADCshiftRLreg
786	OpARMADCshiftRAreg
787	OpARMSBCshiftLLreg
788	OpARMSBCshiftRLreg
789	OpARMSBCshiftRAreg
790	OpARMRSCshiftLLreg
791	OpARMRSCshiftRLreg
792	OpARMRSCshiftRAreg
793	OpARMADDSshiftLLreg
794	OpARMADDSshiftRLreg
795	OpARMADDSshiftRAreg
796	OpARMSUBSshiftLLreg
797	OpARMSUBSshiftRLreg
798	OpARMSUBSshiftRAreg
799	OpARMRSBSshiftLLreg
800	OpARMRSBSshiftRLreg
801	OpARMRSBSshiftRAreg
802	OpARMCMP
803	OpARMCMPconst
804	OpARMCMN
805	OpARMCMNconst
806	OpARMTST
807	OpARMTSTconst
808	OpARMTEQ
809	OpARMTEQconst
810	OpARMCMPF
811	OpARMCMPD
812	OpARMCMPshiftLL
813	OpARMCMPshiftRL
814	OpARMCMPshiftRA
815	OpARMCMPshiftLLreg
816	OpARMCMPshiftRLreg
817	OpARMCMPshiftRAreg
818	OpARMCMPF0
819	OpARMCMPD0
820	OpARMMOVWconst
821	OpARMMOVFconst
822	OpARMMOVDconst
823	OpARMMOVWaddr
824	OpARMMOVBload
825	OpARMMOVBUload
826	OpARMMOVHload
827	OpARMMOVHUload
828	OpARMMOVWload
829	OpARMMOVFload
830	OpARMMOVDload
831	OpARMMOVBstore
832	OpARMMOVHstore
833	OpARMMOVWstore
834	OpARMMOVFstore
835	OpARMMOVDstore
836	OpARMMOVWloadidx
837	OpARMMOVWloadshiftLL
838	OpARMMOVWloadshiftRL
839	OpARMMOVWloadshiftRA
840	OpARMMOVWstoreidx
841	OpARMMOVWstoreshiftLL
842	OpARMMOVWstoreshiftRL
843	OpARMMOVWstoreshiftRA
844	OpARMMOVBreg
845	OpARMMOVBUreg
846	OpARMMOVHreg
847	OpARMMOVHUreg
848	OpARMMOVWreg
849	OpARMMOVWnop
850	OpARMMOVWF
851	OpARMMOVWD
852	OpARMMOVWUF
853	OpARMMOVWUD
854	OpARMMOVFW
855	OpARMMOVDW
856	OpARMMOVFWU
857	OpARMMOVDWU
858	OpARMMOVFD
859	OpARMMOVDF
860	OpARMCMOVWHSconst
861	OpARMCMOVWLSconst
862	OpARMSRAcond
863	OpARMCALLstatic
864	OpARMCALLclosure
865	OpARMCALLinter
866	OpARMLoweredNilCheck
867	OpARMEqual
868	OpARMNotEqual
869	OpARMLessThan
870	OpARMLessEqual
871	OpARMGreaterThan
872	OpARMGreaterEqual
873	OpARMLessThanU
874	OpARMLessEqualU
875	OpARMGreaterThanU
876	OpARMGreaterEqualU
877	OpARMDUFFZERO
878	OpARMDUFFCOPY
879	OpARMLoweredZero
880	OpARMLoweredMove
881	OpARMLoweredGetClosurePtr
882	OpARMMOVWconvert
883	OpARMFlagEQ
884	OpARMFlagLT_ULT
885	OpARMFlagLT_UGT
886	OpARMFlagGT_UGT
887	OpARMFlagGT_ULT
888	OpARMInvertFlags
889
890	OpARM64ADD
891	OpARM64ADDconst
892	OpARM64SUB
893	OpARM64SUBconst
894	OpARM64MUL
895	OpARM64MULW
896	OpARM64MULH
897	OpARM64UMULH
898	OpARM64MULL
899	OpARM64UMULL
900	OpARM64DIV
901	OpARM64UDIV
902	OpARM64DIVW
903	OpARM64UDIVW
904	OpARM64MOD
905	OpARM64UMOD
906	OpARM64MODW
907	OpARM64UMODW
908	OpARM64FADDS
909	OpARM64FADDD
910	OpARM64FSUBS
911	OpARM64FSUBD
912	OpARM64FMULS
913	OpARM64FMULD
914	OpARM64FDIVS
915	OpARM64FDIVD
916	OpARM64AND
917	OpARM64ANDconst
918	OpARM64OR
919	OpARM64ORconst
920	OpARM64XOR
921	OpARM64XORconst
922	OpARM64BIC
923	OpARM64BICconst
924	OpARM64MVN
925	OpARM64NEG
926	OpARM64FNEGS
927	OpARM64FNEGD
928	OpARM64FSQRTD
929	OpARM64REV
930	OpARM64REVW
931	OpARM64REV16W
932	OpARM64RBIT
933	OpARM64RBITW
934	OpARM64CLZ
935	OpARM64CLZW
936	OpARM64SLL
937	OpARM64SLLconst
938	OpARM64SRL
939	OpARM64SRLconst
940	OpARM64SRA
941	OpARM64SRAconst
942	OpARM64RORconst
943	OpARM64RORWconst
944	OpARM64CMP
945	OpARM64CMPconst
946	OpARM64CMPW
947	OpARM64CMPWconst
948	OpARM64CMN
949	OpARM64CMNconst
950	OpARM64CMNW
951	OpARM64CMNWconst
952	OpARM64FCMPS
953	OpARM64FCMPD
954	OpARM64ADDshiftLL
955	OpARM64ADDshiftRL
956	OpARM64ADDshiftRA
957	OpARM64SUBshiftLL
958	OpARM64SUBshiftRL
959	OpARM64SUBshiftRA
960	OpARM64ANDshiftLL
961	OpARM64ANDshiftRL
962	OpARM64ANDshiftRA
963	OpARM64ORshiftLL
964	OpARM64ORshiftRL
965	OpARM64ORshiftRA
966	OpARM64XORshiftLL
967	OpARM64XORshiftRL
968	OpARM64XORshiftRA
969	OpARM64BICshiftLL
970	OpARM64BICshiftRL
971	OpARM64BICshiftRA
972	OpARM64CMPshiftLL
973	OpARM64CMPshiftRL
974	OpARM64CMPshiftRA
975	OpARM64MOVDconst
976	OpARM64FMOVSconst
977	OpARM64FMOVDconst
978	OpARM64MOVDaddr
979	OpARM64MOVBload
980	OpARM64MOVBUload
981	OpARM64MOVHload
982	OpARM64MOVHUload
983	OpARM64MOVWload
984	OpARM64MOVWUload
985	OpARM64MOVDload
986	OpARM64FMOVSload
987	OpARM64FMOVDload
988	OpARM64MOVBstore
989	OpARM64MOVHstore
990	OpARM64MOVWstore
991	OpARM64MOVDstore
992	OpARM64FMOVSstore
993	OpARM64FMOVDstore
994	OpARM64MOVBstorezero
995	OpARM64MOVHstorezero
996	OpARM64MOVWstorezero
997	OpARM64MOVDstorezero
998	OpARM64MOVBreg
999	OpARM64MOVBUreg
1000	OpARM64MOVHreg
1001	OpARM64MOVHUreg
1002	OpARM64MOVWreg
1003	OpARM64MOVWUreg
1004	OpARM64MOVDreg
1005	OpARM64MOVDnop
1006	OpARM64SCVTFWS
1007	OpARM64SCVTFWD
1008	OpARM64UCVTFWS
1009	OpARM64UCVTFWD
1010	OpARM64SCVTFS
1011	OpARM64SCVTFD
1012	OpARM64UCVTFS
1013	OpARM64UCVTFD
1014	OpARM64FCVTZSSW
1015	OpARM64FCVTZSDW
1016	OpARM64FCVTZUSW
1017	OpARM64FCVTZUDW
1018	OpARM64FCVTZSS
1019	OpARM64FCVTZSD
1020	OpARM64FCVTZUS
1021	OpARM64FCVTZUD
1022	OpARM64FCVTSD
1023	OpARM64FCVTDS
1024	OpARM64CSELULT
1025	OpARM64CSELULT0
1026	OpARM64CALLstatic
1027	OpARM64CALLclosure
1028	OpARM64CALLinter
1029	OpARM64LoweredNilCheck
1030	OpARM64Equal
1031	OpARM64NotEqual
1032	OpARM64LessThan
1033	OpARM64LessEqual
1034	OpARM64GreaterThan
1035	OpARM64GreaterEqual
1036	OpARM64LessThanU
1037	OpARM64LessEqualU
1038	OpARM64GreaterThanU
1039	OpARM64GreaterEqualU
1040	OpARM64DUFFZERO
1041	OpARM64LoweredZero
1042	OpARM64DUFFCOPY
1043	OpARM64LoweredMove
1044	OpARM64LoweredGetClosurePtr
1045	OpARM64MOVDconvert
1046	OpARM64FlagEQ
1047	OpARM64FlagLT_ULT
1048	OpARM64FlagLT_UGT
1049	OpARM64FlagGT_UGT
1050	OpARM64FlagGT_ULT
1051	OpARM64InvertFlags
1052	OpARM64LDAR
1053	OpARM64LDARW
1054	OpARM64STLR
1055	OpARM64STLRW
1056	OpARM64LoweredAtomicExchange64
1057	OpARM64LoweredAtomicExchange32
1058	OpARM64LoweredAtomicAdd64
1059	OpARM64LoweredAtomicAdd32
1060	OpARM64LoweredAtomicCas64
1061	OpARM64LoweredAtomicCas32
1062	OpARM64LoweredAtomicAnd8
1063	OpARM64LoweredAtomicOr8
1064
1065	OpMIPSADD
1066	OpMIPSADDconst
1067	OpMIPSSUB
1068	OpMIPSSUBconst
1069	OpMIPSMUL
1070	OpMIPSMULT
1071	OpMIPSMULTU
1072	OpMIPSDIV
1073	OpMIPSDIVU
1074	OpMIPSADDF
1075	OpMIPSADDD
1076	OpMIPSSUBF
1077	OpMIPSSUBD
1078	OpMIPSMULF
1079	OpMIPSMULD
1080	OpMIPSDIVF
1081	OpMIPSDIVD
1082	OpMIPSAND
1083	OpMIPSANDconst
1084	OpMIPSOR
1085	OpMIPSORconst
1086	OpMIPSXOR
1087	OpMIPSXORconst
1088	OpMIPSNOR
1089	OpMIPSNORconst
1090	OpMIPSNEG
1091	OpMIPSNEGF
1092	OpMIPSNEGD
1093	OpMIPSSQRTD
1094	OpMIPSSLL
1095	OpMIPSSLLconst
1096	OpMIPSSRL
1097	OpMIPSSRLconst
1098	OpMIPSSRA
1099	OpMIPSSRAconst
1100	OpMIPSCLZ
1101	OpMIPSSGT
1102	OpMIPSSGTconst
1103	OpMIPSSGTzero
1104	OpMIPSSGTU
1105	OpMIPSSGTUconst
1106	OpMIPSSGTUzero
1107	OpMIPSCMPEQF
1108	OpMIPSCMPEQD
1109	OpMIPSCMPGEF
1110	OpMIPSCMPGED
1111	OpMIPSCMPGTF
1112	OpMIPSCMPGTD
1113	OpMIPSMOVWconst
1114	OpMIPSMOVFconst
1115	OpMIPSMOVDconst
1116	OpMIPSMOVWaddr
1117	OpMIPSMOVBload
1118	OpMIPSMOVBUload
1119	OpMIPSMOVHload
1120	OpMIPSMOVHUload
1121	OpMIPSMOVWload
1122	OpMIPSMOVFload
1123	OpMIPSMOVDload
1124	OpMIPSMOVBstore
1125	OpMIPSMOVHstore
1126	OpMIPSMOVWstore
1127	OpMIPSMOVFstore
1128	OpMIPSMOVDstore
1129	OpMIPSMOVBstorezero
1130	OpMIPSMOVHstorezero
1131	OpMIPSMOVWstorezero
1132	OpMIPSMOVBreg
1133	OpMIPSMOVBUreg
1134	OpMIPSMOVHreg
1135	OpMIPSMOVHUreg
1136	OpMIPSMOVWreg
1137	OpMIPSMOVWnop
1138	OpMIPSCMOVZ
1139	OpMIPSCMOVZzero
1140	OpMIPSMOVWF
1141	OpMIPSMOVWD
1142	OpMIPSTRUNCFW
1143	OpMIPSTRUNCDW
1144	OpMIPSMOVFD
1145	OpMIPSMOVDF
1146	OpMIPSCALLstatic
1147	OpMIPSCALLclosure
1148	OpMIPSCALLinter
1149	OpMIPSLoweredAtomicLoad
1150	OpMIPSLoweredAtomicStore
1151	OpMIPSLoweredAtomicStorezero
1152	OpMIPSLoweredAtomicExchange
1153	OpMIPSLoweredAtomicAdd
1154	OpMIPSLoweredAtomicAddconst
1155	OpMIPSLoweredAtomicCas
1156	OpMIPSLoweredAtomicAnd
1157	OpMIPSLoweredAtomicOr
1158	OpMIPSLoweredZero
1159	OpMIPSLoweredMove
1160	OpMIPSLoweredNilCheck
1161	OpMIPSFPFlagTrue
1162	OpMIPSFPFlagFalse
1163	OpMIPSLoweredGetClosurePtr
1164	OpMIPSMOVWconvert
1165
1166	OpMIPS64ADDV
1167	OpMIPS64ADDVconst
1168	OpMIPS64SUBV
1169	OpMIPS64SUBVconst
1170	OpMIPS64MULV
1171	OpMIPS64MULVU
1172	OpMIPS64DIVV
1173	OpMIPS64DIVVU
1174	OpMIPS64ADDF
1175	OpMIPS64ADDD
1176	OpMIPS64SUBF
1177	OpMIPS64SUBD
1178	OpMIPS64MULF
1179	OpMIPS64MULD
1180	OpMIPS64DIVF
1181	OpMIPS64DIVD
1182	OpMIPS64AND
1183	OpMIPS64ANDconst
1184	OpMIPS64OR
1185	OpMIPS64ORconst
1186	OpMIPS64XOR
1187	OpMIPS64XORconst
1188	OpMIPS64NOR
1189	OpMIPS64NORconst
1190	OpMIPS64NEGV
1191	OpMIPS64NEGF
1192	OpMIPS64NEGD
1193	OpMIPS64SLLV
1194	OpMIPS64SLLVconst
1195	OpMIPS64SRLV
1196	OpMIPS64SRLVconst
1197	OpMIPS64SRAV
1198	OpMIPS64SRAVconst
1199	OpMIPS64SGT
1200	OpMIPS64SGTconst
1201	OpMIPS64SGTU
1202	OpMIPS64SGTUconst
1203	OpMIPS64CMPEQF
1204	OpMIPS64CMPEQD
1205	OpMIPS64CMPGEF
1206	OpMIPS64CMPGED
1207	OpMIPS64CMPGTF
1208	OpMIPS64CMPGTD
1209	OpMIPS64MOVVconst
1210	OpMIPS64MOVFconst
1211	OpMIPS64MOVDconst
1212	OpMIPS64MOVVaddr
1213	OpMIPS64MOVBload
1214	OpMIPS64MOVBUload
1215	OpMIPS64MOVHload
1216	OpMIPS64MOVHUload
1217	OpMIPS64MOVWload
1218	OpMIPS64MOVWUload
1219	OpMIPS64MOVVload
1220	OpMIPS64MOVFload
1221	OpMIPS64MOVDload
1222	OpMIPS64MOVBstore
1223	OpMIPS64MOVHstore
1224	OpMIPS64MOVWstore
1225	OpMIPS64MOVVstore
1226	OpMIPS64MOVFstore
1227	OpMIPS64MOVDstore
1228	OpMIPS64MOVBstorezero
1229	OpMIPS64MOVHstorezero
1230	OpMIPS64MOVWstorezero
1231	OpMIPS64MOVVstorezero
1232	OpMIPS64MOVBreg
1233	OpMIPS64MOVBUreg
1234	OpMIPS64MOVHreg
1235	OpMIPS64MOVHUreg
1236	OpMIPS64MOVWreg
1237	OpMIPS64MOVWUreg
1238	OpMIPS64MOVVreg
1239	OpMIPS64MOVVnop
1240	OpMIPS64MOVWF
1241	OpMIPS64MOVWD
1242	OpMIPS64MOVVF
1243	OpMIPS64MOVVD
1244	OpMIPS64TRUNCFW
1245	OpMIPS64TRUNCDW
1246	OpMIPS64TRUNCFV
1247	OpMIPS64TRUNCDV
1248	OpMIPS64MOVFD
1249	OpMIPS64MOVDF
1250	OpMIPS64CALLstatic
1251	OpMIPS64CALLclosure
1252	OpMIPS64CALLinter
1253	OpMIPS64DUFFZERO
1254	OpMIPS64LoweredZero
1255	OpMIPS64LoweredMove
1256	OpMIPS64LoweredNilCheck
1257	OpMIPS64FPFlagTrue
1258	OpMIPS64FPFlagFalse
1259	OpMIPS64LoweredGetClosurePtr
1260	OpMIPS64MOVVconvert
1261
1262	OpPPC64ADD
1263	OpPPC64ADDconst
1264	OpPPC64FADD
1265	OpPPC64FADDS
1266	OpPPC64SUB
1267	OpPPC64FSUB
1268	OpPPC64FSUBS
1269	OpPPC64MULLD
1270	OpPPC64MULLW
1271	OpPPC64MULHD
1272	OpPPC64MULHW
1273	OpPPC64MULHDU
1274	OpPPC64MULHWU
1275	OpPPC64FMUL
1276	OpPPC64FMULS
1277	OpPPC64FMADD
1278	OpPPC64FMADDS
1279	OpPPC64FMSUB
1280	OpPPC64FMSUBS
1281	OpPPC64SRAD
1282	OpPPC64SRAW
1283	OpPPC64SRD
1284	OpPPC64SRW
1285	OpPPC64SLD
1286	OpPPC64SLW
1287	OpPPC64ADDconstForCarry
1288	OpPPC64MaskIfNotCarry
1289	OpPPC64SRADconst
1290	OpPPC64SRAWconst
1291	OpPPC64SRDconst
1292	OpPPC64SRWconst
1293	OpPPC64SLDconst
1294	OpPPC64SLWconst
1295	OpPPC64ROTLconst
1296	OpPPC64ROTLWconst
1297	OpPPC64CNTLZD
1298	OpPPC64CNTLZW
1299	OpPPC64POPCNTD
1300	OpPPC64POPCNTW
1301	OpPPC64POPCNTB
1302	OpPPC64FDIV
1303	OpPPC64FDIVS
1304	OpPPC64DIVD
1305	OpPPC64DIVW
1306	OpPPC64DIVDU
1307	OpPPC64DIVWU
1308	OpPPC64FCTIDZ
1309	OpPPC64FCTIWZ
1310	OpPPC64FCFID
1311	OpPPC64FRSP
1312	OpPPC64Xf2i64
1313	OpPPC64Xi2f64
1314	OpPPC64AND
1315	OpPPC64ANDN
1316	OpPPC64OR
1317	OpPPC64ORN
1318	OpPPC64NOR
1319	OpPPC64XOR
1320	OpPPC64EQV
1321	OpPPC64NEG
1322	OpPPC64FNEG
1323	OpPPC64FSQRT
1324	OpPPC64FSQRTS
1325	OpPPC64ORconst
1326	OpPPC64XORconst
1327	OpPPC64ANDconst
1328	OpPPC64ANDCCconst
1329	OpPPC64MOVBreg
1330	OpPPC64MOVBZreg
1331	OpPPC64MOVHreg
1332	OpPPC64MOVHZreg
1333	OpPPC64MOVWreg
1334	OpPPC64MOVWZreg
1335	OpPPC64MOVBZload
1336	OpPPC64MOVHload
1337	OpPPC64MOVHZload
1338	OpPPC64MOVWload
1339	OpPPC64MOVWZload
1340	OpPPC64MOVDload
1341	OpPPC64FMOVDload
1342	OpPPC64FMOVSload
1343	OpPPC64MOVBstore
1344	OpPPC64MOVHstore
1345	OpPPC64MOVWstore
1346	OpPPC64MOVDstore
1347	OpPPC64FMOVDstore
1348	OpPPC64FMOVSstore
1349	OpPPC64MOVBstorezero
1350	OpPPC64MOVHstorezero
1351	OpPPC64MOVWstorezero
1352	OpPPC64MOVDstorezero
1353	OpPPC64MOVDaddr
1354	OpPPC64MOVDconst
1355	OpPPC64FMOVDconst
1356	OpPPC64FMOVSconst
1357	OpPPC64FCMPU
1358	OpPPC64CMP
1359	OpPPC64CMPU
1360	OpPPC64CMPW
1361	OpPPC64CMPWU
1362	OpPPC64CMPconst
1363	OpPPC64CMPUconst
1364	OpPPC64CMPWconst
1365	OpPPC64CMPWUconst
1366	OpPPC64Equal
1367	OpPPC64NotEqual
1368	OpPPC64LessThan
1369	OpPPC64FLessThan
1370	OpPPC64LessEqual
1371	OpPPC64FLessEqual
1372	OpPPC64GreaterThan
1373	OpPPC64FGreaterThan
1374	OpPPC64GreaterEqual
1375	OpPPC64FGreaterEqual
1376	OpPPC64LoweredGetClosurePtr
1377	OpPPC64LoweredNilCheck
1378	OpPPC64LoweredRound32F
1379	OpPPC64LoweredRound64F
1380	OpPPC64MOVDconvert
1381	OpPPC64CALLstatic
1382	OpPPC64CALLclosure
1383	OpPPC64CALLinter
1384	OpPPC64LoweredZero
1385	OpPPC64LoweredMove
1386	OpPPC64LoweredAtomicStore32
1387	OpPPC64LoweredAtomicStore64
1388	OpPPC64LoweredAtomicLoad32
1389	OpPPC64LoweredAtomicLoad64
1390	OpPPC64LoweredAtomicLoadPtr
1391	OpPPC64LoweredAtomicAdd32
1392	OpPPC64LoweredAtomicAdd64
1393	OpPPC64LoweredAtomicExchange32
1394	OpPPC64LoweredAtomicExchange64
1395	OpPPC64LoweredAtomicCas64
1396	OpPPC64LoweredAtomicCas32
1397	OpPPC64LoweredAtomicAnd8
1398	OpPPC64LoweredAtomicOr8
1399	OpPPC64InvertFlags
1400	OpPPC64FlagEQ
1401	OpPPC64FlagLT
1402	OpPPC64FlagGT
1403
1404	OpS390XFADDS
1405	OpS390XFADD
1406	OpS390XFSUBS
1407	OpS390XFSUB
1408	OpS390XFMULS
1409	OpS390XFMUL
1410	OpS390XFDIVS
1411	OpS390XFDIV
1412	OpS390XFNEGS
1413	OpS390XFNEG
1414	OpS390XFMADDS
1415	OpS390XFMADD
1416	OpS390XFMSUBS
1417	OpS390XFMSUB
1418	OpS390XFMOVSload
1419	OpS390XFMOVDload
1420	OpS390XFMOVSconst
1421	OpS390XFMOVDconst
1422	OpS390XFMOVSloadidx
1423	OpS390XFMOVDloadidx
1424	OpS390XFMOVSstore
1425	OpS390XFMOVDstore
1426	OpS390XFMOVSstoreidx
1427	OpS390XFMOVDstoreidx
1428	OpS390XADD
1429	OpS390XADDW
1430	OpS390XADDconst
1431	OpS390XADDWconst
1432	OpS390XADDload
1433	OpS390XADDWload
1434	OpS390XSUB
1435	OpS390XSUBW
1436	OpS390XSUBconst
1437	OpS390XSUBWconst
1438	OpS390XSUBload
1439	OpS390XSUBWload
1440	OpS390XMULLD
1441	OpS390XMULLW
1442	OpS390XMULLDconst
1443	OpS390XMULLWconst
1444	OpS390XMULLDload
1445	OpS390XMULLWload
1446	OpS390XMULHD
1447	OpS390XMULHDU
1448	OpS390XDIVD
1449	OpS390XDIVW
1450	OpS390XDIVDU
1451	OpS390XDIVWU
1452	OpS390XMODD
1453	OpS390XMODW
1454	OpS390XMODDU
1455	OpS390XMODWU
1456	OpS390XAND
1457	OpS390XANDW
1458	OpS390XANDconst
1459	OpS390XANDWconst
1460	OpS390XANDload
1461	OpS390XANDWload
1462	OpS390XOR
1463	OpS390XORW
1464	OpS390XORconst
1465	OpS390XORWconst
1466	OpS390XORload
1467	OpS390XORWload
1468	OpS390XXOR
1469	OpS390XXORW
1470	OpS390XXORconst
1471	OpS390XXORWconst
1472	OpS390XXORload
1473	OpS390XXORWload
1474	OpS390XCMP
1475	OpS390XCMPW
1476	OpS390XCMPU
1477	OpS390XCMPWU
1478	OpS390XCMPconst
1479	OpS390XCMPWconst
1480	OpS390XCMPUconst
1481	OpS390XCMPWUconst
1482	OpS390XFCMPS
1483	OpS390XFCMP
1484	OpS390XSLD
1485	OpS390XSLW
1486	OpS390XSLDconst
1487	OpS390XSLWconst
1488	OpS390XSRD
1489	OpS390XSRW
1490	OpS390XSRDconst
1491	OpS390XSRWconst
1492	OpS390XSRAD
1493	OpS390XSRAW
1494	OpS390XSRADconst
1495	OpS390XSRAWconst
1496	OpS390XRLLGconst
1497	OpS390XRLLconst
1498	OpS390XNEG
1499	OpS390XNEGW
1500	OpS390XNOT
1501	OpS390XNOTW
1502	OpS390XFSQRT
1503	OpS390XSUBEcarrymask
1504	OpS390XSUBEWcarrymask
1505	OpS390XMOVDEQ
1506	OpS390XMOVDNE
1507	OpS390XMOVDLT
1508	OpS390XMOVDLE
1509	OpS390XMOVDGT
1510	OpS390XMOVDGE
1511	OpS390XMOVDGTnoinv
1512	OpS390XMOVDGEnoinv
1513	OpS390XMOVBreg
1514	OpS390XMOVBZreg
1515	OpS390XMOVHreg
1516	OpS390XMOVHZreg
1517	OpS390XMOVWreg
1518	OpS390XMOVWZreg
1519	OpS390XMOVDreg
1520	OpS390XMOVDnop
1521	OpS390XMOVDconst
1522	OpS390XCFDBRA
1523	OpS390XCGDBRA
1524	OpS390XCFEBRA
1525	OpS390XCGEBRA
1526	OpS390XCEFBRA
1527	OpS390XCDFBRA
1528	OpS390XCEGBRA
1529	OpS390XCDGBRA
1530	OpS390XLEDBR
1531	OpS390XLDEBR
1532	OpS390XMOVDaddr
1533	OpS390XMOVDaddridx
1534	OpS390XMOVBZload
1535	OpS390XMOVBload
1536	OpS390XMOVHZload
1537	OpS390XMOVHload
1538	OpS390XMOVWZload
1539	OpS390XMOVWload
1540	OpS390XMOVDload
1541	OpS390XMOVWBR
1542	OpS390XMOVDBR
1543	OpS390XMOVHBRload
1544	OpS390XMOVWBRload
1545	OpS390XMOVDBRload
1546	OpS390XMOVBstore
1547	OpS390XMOVHstore
1548	OpS390XMOVWstore
1549	OpS390XMOVDstore
1550	OpS390XMOVHBRstore
1551	OpS390XMOVWBRstore
1552	OpS390XMOVDBRstore
1553	OpS390XMVC
1554	OpS390XMOVBZloadidx
1555	OpS390XMOVHZloadidx
1556	OpS390XMOVWZloadidx
1557	OpS390XMOVDloadidx
1558	OpS390XMOVHBRloadidx
1559	OpS390XMOVWBRloadidx
1560	OpS390XMOVDBRloadidx
1561	OpS390XMOVBstoreidx
1562	OpS390XMOVHstoreidx
1563	OpS390XMOVWstoreidx
1564	OpS390XMOVDstoreidx
1565	OpS390XMOVHBRstoreidx
1566	OpS390XMOVWBRstoreidx
1567	OpS390XMOVDBRstoreidx
1568	OpS390XMOVBstoreconst
1569	OpS390XMOVHstoreconst
1570	OpS390XMOVWstoreconst
1571	OpS390XMOVDstoreconst
1572	OpS390XCLEAR
1573	OpS390XCALLstatic
1574	OpS390XCALLclosure
1575	OpS390XCALLinter
1576	OpS390XInvertFlags
1577	OpS390XLoweredGetG
1578	OpS390XLoweredGetClosurePtr
1579	OpS390XLoweredNilCheck
1580	OpS390XLoweredRound32F
1581	OpS390XLoweredRound64F
1582	OpS390XMOVDconvert
1583	OpS390XFlagEQ
1584	OpS390XFlagLT
1585	OpS390XFlagGT
1586	OpS390XMOVWZatomicload
1587	OpS390XMOVDatomicload
1588	OpS390XMOVWatomicstore
1589	OpS390XMOVDatomicstore
1590	OpS390XLAA
1591	OpS390XLAAG
1592	OpS390XAddTupleFirst32
1593	OpS390XAddTupleFirst64
1594	OpS390XLoweredAtomicCas32
1595	OpS390XLoweredAtomicCas64
1596	OpS390XLoweredAtomicExchange32
1597	OpS390XLoweredAtomicExchange64
1598	OpS390XFLOGR
1599	OpS390XSTMG2
1600	OpS390XSTMG3
1601	OpS390XSTMG4
1602	OpS390XSTM2
1603	OpS390XSTM3
1604	OpS390XSTM4
1605	OpS390XLoweredMove
1606	OpS390XLoweredZero
1607
1608	OpAdd8
1609	OpAdd16
1610	OpAdd32
1611	OpAdd64
1612	OpAddPtr
1613	OpAdd32F
1614	OpAdd64F
1615	OpSub8
1616	OpSub16
1617	OpSub32
1618	OpSub64
1619	OpSubPtr
1620	OpSub32F
1621	OpSub64F
1622	OpMul8
1623	OpMul16
1624	OpMul32
1625	OpMul64
1626	OpMul32F
1627	OpMul64F
1628	OpDiv32F
1629	OpDiv64F
1630	OpHmul32
1631	OpHmul32u
1632	OpHmul64
1633	OpHmul64u
1634	OpMul32uhilo
1635	OpMul64uhilo
1636	OpAvg32u
1637	OpAvg64u
1638	OpDiv8
1639	OpDiv8u
1640	OpDiv16
1641	OpDiv16u
1642	OpDiv32
1643	OpDiv32u
1644	OpDiv64
1645	OpDiv64u
1646	OpDiv128u
1647	OpMod8
1648	OpMod8u
1649	OpMod16
1650	OpMod16u
1651	OpMod32
1652	OpMod32u
1653	OpMod64
1654	OpMod64u
1655	OpAnd8
1656	OpAnd16
1657	OpAnd32
1658	OpAnd64
1659	OpOr8
1660	OpOr16
1661	OpOr32
1662	OpOr64
1663	OpXor8
1664	OpXor16
1665	OpXor32
1666	OpXor64
1667	OpLsh8x8
1668	OpLsh8x16
1669	OpLsh8x32
1670	OpLsh8x64
1671	OpLsh16x8
1672	OpLsh16x16
1673	OpLsh16x32
1674	OpLsh16x64
1675	OpLsh32x8
1676	OpLsh32x16
1677	OpLsh32x32
1678	OpLsh32x64
1679	OpLsh64x8
1680	OpLsh64x16
1681	OpLsh64x32
1682	OpLsh64x64
1683	OpRsh8x8
1684	OpRsh8x16
1685	OpRsh8x32
1686	OpRsh8x64
1687	OpRsh16x8
1688	OpRsh16x16
1689	OpRsh16x32
1690	OpRsh16x64
1691	OpRsh32x8
1692	OpRsh32x16
1693	OpRsh32x32
1694	OpRsh32x64
1695	OpRsh64x8
1696	OpRsh64x16
1697	OpRsh64x32
1698	OpRsh64x64
1699	OpRsh8Ux8
1700	OpRsh8Ux16
1701	OpRsh8Ux32
1702	OpRsh8Ux64
1703	OpRsh16Ux8
1704	OpRsh16Ux16
1705	OpRsh16Ux32
1706	OpRsh16Ux64
1707	OpRsh32Ux8
1708	OpRsh32Ux16
1709	OpRsh32Ux32
1710	OpRsh32Ux64
1711	OpRsh64Ux8
1712	OpRsh64Ux16
1713	OpRsh64Ux32
1714	OpRsh64Ux64
1715	OpEq8
1716	OpEq16
1717	OpEq32
1718	OpEq64
1719	OpEqPtr
1720	OpEqInter
1721	OpEqSlice
1722	OpEq32F
1723	OpEq64F
1724	OpNeq8
1725	OpNeq16
1726	OpNeq32
1727	OpNeq64
1728	OpNeqPtr
1729	OpNeqInter
1730	OpNeqSlice
1731	OpNeq32F
1732	OpNeq64F
1733	OpLess8
1734	OpLess8U
1735	OpLess16
1736	OpLess16U
1737	OpLess32
1738	OpLess32U
1739	OpLess64
1740	OpLess64U
1741	OpLess32F
1742	OpLess64F
1743	OpLeq8
1744	OpLeq8U
1745	OpLeq16
1746	OpLeq16U
1747	OpLeq32
1748	OpLeq32U
1749	OpLeq64
1750	OpLeq64U
1751	OpLeq32F
1752	OpLeq64F
1753	OpGreater8
1754	OpGreater8U
1755	OpGreater16
1756	OpGreater16U
1757	OpGreater32
1758	OpGreater32U
1759	OpGreater64
1760	OpGreater64U
1761	OpGreater32F
1762	OpGreater64F
1763	OpGeq8
1764	OpGeq8U
1765	OpGeq16
1766	OpGeq16U
1767	OpGeq32
1768	OpGeq32U
1769	OpGeq64
1770	OpGeq64U
1771	OpGeq32F
1772	OpGeq64F
1773	OpAndB
1774	OpOrB
1775	OpEqB
1776	OpNeqB
1777	OpNot
1778	OpNeg8
1779	OpNeg16
1780	OpNeg32
1781	OpNeg64
1782	OpNeg32F
1783	OpNeg64F
1784	OpCom8
1785	OpCom16
1786	OpCom32
1787	OpCom64
1788	OpCtz32
1789	OpCtz64
1790	OpBitLen32
1791	OpBitLen64
1792	OpBswap32
1793	OpBswap64
1794	OpBitRev8
1795	OpBitRev16
1796	OpBitRev32
1797	OpBitRev64
1798	OpPopCount8
1799	OpPopCount16
1800	OpPopCount32
1801	OpPopCount64
1802	OpSqrt
1803	OpPhi
1804	OpCopy
1805	OpConvert
1806	OpConstBool
1807	OpConstString
1808	OpConstNil
1809	OpConst8
1810	OpConst16
1811	OpConst32
1812	OpConst64
1813	OpConst32F
1814	OpConst64F
1815	OpConstInterface
1816	OpConstSlice
1817	OpInitMem
1818	OpArg
1819	OpAddr
1820	OpSP
1821	OpSB
1822	OpLoad
1823	OpStore
1824	OpMove
1825	OpZero
1826	OpStoreWB
1827	OpMoveWB
1828	OpZeroWB
1829	OpClosureCall
1830	OpStaticCall
1831	OpInterCall
1832	OpSignExt8to16
1833	OpSignExt8to32
1834	OpSignExt8to64
1835	OpSignExt16to32
1836	OpSignExt16to64
1837	OpSignExt32to64
1838	OpZeroExt8to16
1839	OpZeroExt8to32
1840	OpZeroExt8to64
1841	OpZeroExt16to32
1842	OpZeroExt16to64
1843	OpZeroExt32to64
1844	OpTrunc16to8
1845	OpTrunc32to8
1846	OpTrunc32to16
1847	OpTrunc64to8
1848	OpTrunc64to16
1849	OpTrunc64to32
1850	OpCvt32to32F
1851	OpCvt32to64F
1852	OpCvt64to32F
1853	OpCvt64to64F
1854	OpCvt32Fto32
1855	OpCvt32Fto64
1856	OpCvt64Fto32
1857	OpCvt64Fto64
1858	OpCvt32Fto64F
1859	OpCvt64Fto32F
1860	OpRound32F
1861	OpRound64F
1862	OpIsNonNil
1863	OpIsInBounds
1864	OpIsSliceInBounds
1865	OpNilCheck
1866	OpGetG
1867	OpGetClosurePtr
1868	OpPtrIndex
1869	OpOffPtr
1870	OpSliceMake
1871	OpSlicePtr
1872	OpSliceLen
1873	OpSliceCap
1874	OpComplexMake
1875	OpComplexReal
1876	OpComplexImag
1877	OpStringMake
1878	OpStringPtr
1879	OpStringLen
1880	OpIMake
1881	OpITab
1882	OpIData
1883	OpStructMake0
1884	OpStructMake1
1885	OpStructMake2
1886	OpStructMake3
1887	OpStructMake4
1888	OpStructSelect
1889	OpArrayMake0
1890	OpArrayMake1
1891	OpArraySelect
1892	OpStoreReg
1893	OpLoadReg
1894	OpFwdRef
1895	OpUnknown
1896	OpVarDef
1897	OpVarKill
1898	OpVarLive
1899	OpKeepAlive
1900	OpInt64Make
1901	OpInt64Hi
1902	OpInt64Lo
1903	OpAdd32carry
1904	OpAdd32withcarry
1905	OpSub32carry
1906	OpSub32withcarry
1907	OpSignmask
1908	OpZeromask
1909	OpSlicemask
1910	OpCvt32Uto32F
1911	OpCvt32Uto64F
1912	OpCvt32Fto32U
1913	OpCvt64Fto32U
1914	OpCvt64Uto32F
1915	OpCvt64Uto64F
1916	OpCvt32Fto64U
1917	OpCvt64Fto64U
1918	OpSelect0
1919	OpSelect1
1920	OpAtomicLoad32
1921	OpAtomicLoad64
1922	OpAtomicLoadPtr
1923	OpAtomicStore32
1924	OpAtomicStore64
1925	OpAtomicStorePtrNoWB
1926	OpAtomicExchange32
1927	OpAtomicExchange64
1928	OpAtomicAdd32
1929	OpAtomicAdd64
1930	OpAtomicCompareAndSwap32
1931	OpAtomicCompareAndSwap64
1932	OpAtomicAnd8
1933	OpAtomicOr8
1934	OpClobber
1935)
1936
1937var opcodeTable = [...]opInfo{
1938	{name: "OpInvalid"},
1939
1940	{
1941		name:         "ADDSS",
1942		argLen:       2,
1943		commutative:  true,
1944		resultInArg0: true,
1945		usesScratch:  true,
1946		asm:          x86.AADDSS,
1947		reg: regInfo{
1948			inputs: []inputInfo{
1949				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1950				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1951			},
1952			outputs: []outputInfo{
1953				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1954			},
1955		},
1956	},
1957	{
1958		name:         "ADDSD",
1959		argLen:       2,
1960		commutative:  true,
1961		resultInArg0: true,
1962		asm:          x86.AADDSD,
1963		reg: regInfo{
1964			inputs: []inputInfo{
1965				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1966				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1967			},
1968			outputs: []outputInfo{
1969				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1970			},
1971		},
1972	},
1973	{
1974		name:         "SUBSS",
1975		argLen:       2,
1976		resultInArg0: true,
1977		usesScratch:  true,
1978		asm:          x86.ASUBSS,
1979		reg: regInfo{
1980			inputs: []inputInfo{
1981				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1982				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1983			},
1984			outputs: []outputInfo{
1985				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1986			},
1987		},
1988	},
1989	{
1990		name:         "SUBSD",
1991		argLen:       2,
1992		resultInArg0: true,
1993		asm:          x86.ASUBSD,
1994		reg: regInfo{
1995			inputs: []inputInfo{
1996				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1997				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
1998			},
1999			outputs: []outputInfo{
2000				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2001			},
2002		},
2003	},
2004	{
2005		name:         "MULSS",
2006		argLen:       2,
2007		commutative:  true,
2008		resultInArg0: true,
2009		usesScratch:  true,
2010		asm:          x86.AMULSS,
2011		reg: regInfo{
2012			inputs: []inputInfo{
2013				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2014				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2015			},
2016			outputs: []outputInfo{
2017				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2018			},
2019		},
2020	},
2021	{
2022		name:         "MULSD",
2023		argLen:       2,
2024		commutative:  true,
2025		resultInArg0: true,
2026		asm:          x86.AMULSD,
2027		reg: regInfo{
2028			inputs: []inputInfo{
2029				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2030				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2031			},
2032			outputs: []outputInfo{
2033				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2034			},
2035		},
2036	},
2037	{
2038		name:         "DIVSS",
2039		argLen:       2,
2040		resultInArg0: true,
2041		usesScratch:  true,
2042		asm:          x86.ADIVSS,
2043		reg: regInfo{
2044			inputs: []inputInfo{
2045				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2046				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2047			},
2048			outputs: []outputInfo{
2049				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2050			},
2051		},
2052	},
2053	{
2054		name:         "DIVSD",
2055		argLen:       2,
2056		resultInArg0: true,
2057		asm:          x86.ADIVSD,
2058		reg: regInfo{
2059			inputs: []inputInfo{
2060				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2061				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2062			},
2063			outputs: []outputInfo{
2064				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2065			},
2066		},
2067	},
2068	{
2069		name:           "MOVSSload",
2070		auxType:        auxSymOff,
2071		argLen:         2,
2072		faultOnNilArg0: true,
2073		symEffect:      SymRead,
2074		asm:            x86.AMOVSS,
2075		reg: regInfo{
2076			inputs: []inputInfo{
2077				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2078			},
2079			outputs: []outputInfo{
2080				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2081			},
2082		},
2083	},
2084	{
2085		name:           "MOVSDload",
2086		auxType:        auxSymOff,
2087		argLen:         2,
2088		faultOnNilArg0: true,
2089		symEffect:      SymRead,
2090		asm:            x86.AMOVSD,
2091		reg: regInfo{
2092			inputs: []inputInfo{
2093				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2094			},
2095			outputs: []outputInfo{
2096				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2097			},
2098		},
2099	},
2100	{
2101		name:              "MOVSSconst",
2102		auxType:           auxFloat32,
2103		argLen:            0,
2104		rematerializeable: true,
2105		asm:               x86.AMOVSS,
2106		reg: regInfo{
2107			outputs: []outputInfo{
2108				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2109			},
2110		},
2111	},
2112	{
2113		name:              "MOVSDconst",
2114		auxType:           auxFloat64,
2115		argLen:            0,
2116		rematerializeable: true,
2117		asm:               x86.AMOVSD,
2118		reg: regInfo{
2119			outputs: []outputInfo{
2120				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2121			},
2122		},
2123	},
2124	{
2125		name:      "MOVSSloadidx1",
2126		auxType:   auxSymOff,
2127		argLen:    3,
2128		symEffect: SymRead,
2129		asm:       x86.AMOVSS,
2130		reg: regInfo{
2131			inputs: []inputInfo{
2132				{1, 255},   // AX CX DX BX SP BP SI DI
2133				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2134			},
2135			outputs: []outputInfo{
2136				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2137			},
2138		},
2139	},
2140	{
2141		name:      "MOVSSloadidx4",
2142		auxType:   auxSymOff,
2143		argLen:    3,
2144		symEffect: SymRead,
2145		asm:       x86.AMOVSS,
2146		reg: regInfo{
2147			inputs: []inputInfo{
2148				{1, 255},   // AX CX DX BX SP BP SI DI
2149				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2150			},
2151			outputs: []outputInfo{
2152				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2153			},
2154		},
2155	},
2156	{
2157		name:      "MOVSDloadidx1",
2158		auxType:   auxSymOff,
2159		argLen:    3,
2160		symEffect: SymRead,
2161		asm:       x86.AMOVSD,
2162		reg: regInfo{
2163			inputs: []inputInfo{
2164				{1, 255},   // AX CX DX BX SP BP SI DI
2165				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2166			},
2167			outputs: []outputInfo{
2168				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2169			},
2170		},
2171	},
2172	{
2173		name:      "MOVSDloadidx8",
2174		auxType:   auxSymOff,
2175		argLen:    3,
2176		symEffect: SymRead,
2177		asm:       x86.AMOVSD,
2178		reg: regInfo{
2179			inputs: []inputInfo{
2180				{1, 255},   // AX CX DX BX SP BP SI DI
2181				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2182			},
2183			outputs: []outputInfo{
2184				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2185			},
2186		},
2187	},
2188	{
2189		name:           "MOVSSstore",
2190		auxType:        auxSymOff,
2191		argLen:         3,
2192		faultOnNilArg0: true,
2193		symEffect:      SymWrite,
2194		asm:            x86.AMOVSS,
2195		reg: regInfo{
2196			inputs: []inputInfo{
2197				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2198				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2199			},
2200		},
2201	},
2202	{
2203		name:           "MOVSDstore",
2204		auxType:        auxSymOff,
2205		argLen:         3,
2206		faultOnNilArg0: true,
2207		symEffect:      SymWrite,
2208		asm:            x86.AMOVSD,
2209		reg: regInfo{
2210			inputs: []inputInfo{
2211				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2212				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2213			},
2214		},
2215	},
2216	{
2217		name:      "MOVSSstoreidx1",
2218		auxType:   auxSymOff,
2219		argLen:    4,
2220		symEffect: SymWrite,
2221		asm:       x86.AMOVSS,
2222		reg: regInfo{
2223			inputs: []inputInfo{
2224				{1, 255},   // AX CX DX BX SP BP SI DI
2225				{2, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2226				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2227			},
2228		},
2229	},
2230	{
2231		name:      "MOVSSstoreidx4",
2232		auxType:   auxSymOff,
2233		argLen:    4,
2234		symEffect: SymWrite,
2235		asm:       x86.AMOVSS,
2236		reg: regInfo{
2237			inputs: []inputInfo{
2238				{1, 255},   // AX CX DX BX SP BP SI DI
2239				{2, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2240				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2241			},
2242		},
2243	},
2244	{
2245		name:      "MOVSDstoreidx1",
2246		auxType:   auxSymOff,
2247		argLen:    4,
2248		symEffect: SymWrite,
2249		asm:       x86.AMOVSD,
2250		reg: regInfo{
2251			inputs: []inputInfo{
2252				{1, 255},   // AX CX DX BX SP BP SI DI
2253				{2, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2254				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2255			},
2256		},
2257	},
2258	{
2259		name:      "MOVSDstoreidx8",
2260		auxType:   auxSymOff,
2261		argLen:    4,
2262		symEffect: SymWrite,
2263		asm:       x86.AMOVSD,
2264		reg: regInfo{
2265			inputs: []inputInfo{
2266				{1, 255},   // AX CX DX BX SP BP SI DI
2267				{2, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2268				{0, 65791}, // AX CX DX BX SP BP SI DI SB
2269			},
2270		},
2271	},
2272	{
2273		name:         "ADDL",
2274		argLen:       2,
2275		commutative:  true,
2276		clobberFlags: true,
2277		asm:          x86.AADDL,
2278		reg: regInfo{
2279			inputs: []inputInfo{
2280				{1, 239}, // AX CX DX BX BP SI DI
2281				{0, 255}, // AX CX DX BX SP BP SI DI
2282			},
2283			outputs: []outputInfo{
2284				{0, 239}, // AX CX DX BX BP SI DI
2285			},
2286		},
2287	},
2288	{
2289		name:         "ADDLconst",
2290		auxType:      auxInt32,
2291		argLen:       1,
2292		clobberFlags: true,
2293		asm:          x86.AADDL,
2294		reg: regInfo{
2295			inputs: []inputInfo{
2296				{0, 255}, // AX CX DX BX SP BP SI DI
2297			},
2298			outputs: []outputInfo{
2299				{0, 239}, // AX CX DX BX BP SI DI
2300			},
2301		},
2302	},
2303	{
2304		name:         "ADDLcarry",
2305		argLen:       2,
2306		commutative:  true,
2307		resultInArg0: true,
2308		asm:          x86.AADDL,
2309		reg: regInfo{
2310			inputs: []inputInfo{
2311				{0, 239}, // AX CX DX BX BP SI DI
2312				{1, 239}, // AX CX DX BX BP SI DI
2313			},
2314			outputs: []outputInfo{
2315				{1, 0},
2316				{0, 239}, // AX CX DX BX BP SI DI
2317			},
2318		},
2319	},
2320	{
2321		name:         "ADDLconstcarry",
2322		auxType:      auxInt32,
2323		argLen:       1,
2324		resultInArg0: true,
2325		asm:          x86.AADDL,
2326		reg: regInfo{
2327			inputs: []inputInfo{
2328				{0, 239}, // AX CX DX BX BP SI DI
2329			},
2330			outputs: []outputInfo{
2331				{1, 0},
2332				{0, 239}, // AX CX DX BX BP SI DI
2333			},
2334		},
2335	},
2336	{
2337		name:         "ADCL",
2338		argLen:       3,
2339		commutative:  true,
2340		resultInArg0: true,
2341		clobberFlags: true,
2342		asm:          x86.AADCL,
2343		reg: regInfo{
2344			inputs: []inputInfo{
2345				{0, 239}, // AX CX DX BX BP SI DI
2346				{1, 239}, // AX CX DX BX BP SI DI
2347			},
2348			outputs: []outputInfo{
2349				{0, 239}, // AX CX DX BX BP SI DI
2350			},
2351		},
2352	},
2353	{
2354		name:         "ADCLconst",
2355		auxType:      auxInt32,
2356		argLen:       2,
2357		resultInArg0: true,
2358		clobberFlags: true,
2359		asm:          x86.AADCL,
2360		reg: regInfo{
2361			inputs: []inputInfo{
2362				{0, 239}, // AX CX DX BX BP SI DI
2363			},
2364			outputs: []outputInfo{
2365				{0, 239}, // AX CX DX BX BP SI DI
2366			},
2367		},
2368	},
2369	{
2370		name:         "SUBL",
2371		argLen:       2,
2372		resultInArg0: true,
2373		clobberFlags: true,
2374		asm:          x86.ASUBL,
2375		reg: regInfo{
2376			inputs: []inputInfo{
2377				{0, 239}, // AX CX DX BX BP SI DI
2378				{1, 239}, // AX CX DX BX BP SI DI
2379			},
2380			outputs: []outputInfo{
2381				{0, 239}, // AX CX DX BX BP SI DI
2382			},
2383		},
2384	},
2385	{
2386		name:         "SUBLconst",
2387		auxType:      auxInt32,
2388		argLen:       1,
2389		resultInArg0: true,
2390		clobberFlags: true,
2391		asm:          x86.ASUBL,
2392		reg: regInfo{
2393			inputs: []inputInfo{
2394				{0, 239}, // AX CX DX BX BP SI DI
2395			},
2396			outputs: []outputInfo{
2397				{0, 239}, // AX CX DX BX BP SI DI
2398			},
2399		},
2400	},
2401	{
2402		name:         "SUBLcarry",
2403		argLen:       2,
2404		resultInArg0: true,
2405		asm:          x86.ASUBL,
2406		reg: regInfo{
2407			inputs: []inputInfo{
2408				{0, 239}, // AX CX DX BX BP SI DI
2409				{1, 239}, // AX CX DX BX BP SI DI
2410			},
2411			outputs: []outputInfo{
2412				{1, 0},
2413				{0, 239}, // AX CX DX BX BP SI DI
2414			},
2415		},
2416	},
2417	{
2418		name:         "SUBLconstcarry",
2419		auxType:      auxInt32,
2420		argLen:       1,
2421		resultInArg0: true,
2422		asm:          x86.ASUBL,
2423		reg: regInfo{
2424			inputs: []inputInfo{
2425				{0, 239}, // AX CX DX BX BP SI DI
2426			},
2427			outputs: []outputInfo{
2428				{1, 0},
2429				{0, 239}, // AX CX DX BX BP SI DI
2430			},
2431		},
2432	},
2433	{
2434		name:         "SBBL",
2435		argLen:       3,
2436		resultInArg0: true,
2437		clobberFlags: true,
2438		asm:          x86.ASBBL,
2439		reg: regInfo{
2440			inputs: []inputInfo{
2441				{0, 239}, // AX CX DX BX BP SI DI
2442				{1, 239}, // AX CX DX BX BP SI DI
2443			},
2444			outputs: []outputInfo{
2445				{0, 239}, // AX CX DX BX BP SI DI
2446			},
2447		},
2448	},
2449	{
2450		name:         "SBBLconst",
2451		auxType:      auxInt32,
2452		argLen:       2,
2453		resultInArg0: true,
2454		clobberFlags: true,
2455		asm:          x86.ASBBL,
2456		reg: regInfo{
2457			inputs: []inputInfo{
2458				{0, 239}, // AX CX DX BX BP SI DI
2459			},
2460			outputs: []outputInfo{
2461				{0, 239}, // AX CX DX BX BP SI DI
2462			},
2463		},
2464	},
2465	{
2466		name:         "MULL",
2467		argLen:       2,
2468		commutative:  true,
2469		resultInArg0: true,
2470		clobberFlags: true,
2471		asm:          x86.AIMULL,
2472		reg: regInfo{
2473			inputs: []inputInfo{
2474				{0, 239}, // AX CX DX BX BP SI DI
2475				{1, 239}, // AX CX DX BX BP SI DI
2476			},
2477			outputs: []outputInfo{
2478				{0, 239}, // AX CX DX BX BP SI DI
2479			},
2480		},
2481	},
2482	{
2483		name:         "MULLconst",
2484		auxType:      auxInt32,
2485		argLen:       1,
2486		resultInArg0: true,
2487		clobberFlags: true,
2488		asm:          x86.AIMULL,
2489		reg: regInfo{
2490			inputs: []inputInfo{
2491				{0, 239}, // AX CX DX BX BP SI DI
2492			},
2493			outputs: []outputInfo{
2494				{0, 239}, // AX CX DX BX BP SI DI
2495			},
2496		},
2497	},
2498	{
2499		name:         "HMULL",
2500		argLen:       2,
2501		commutative:  true,
2502		clobberFlags: true,
2503		asm:          x86.AIMULL,
2504		reg: regInfo{
2505			inputs: []inputInfo{
2506				{0, 1},   // AX
2507				{1, 255}, // AX CX DX BX SP BP SI DI
2508			},
2509			clobbers: 1, // AX
2510			outputs: []outputInfo{
2511				{0, 4}, // DX
2512			},
2513		},
2514	},
2515	{
2516		name:         "HMULLU",
2517		argLen:       2,
2518		commutative:  true,
2519		clobberFlags: true,
2520		asm:          x86.AMULL,
2521		reg: regInfo{
2522			inputs: []inputInfo{
2523				{0, 1},   // AX
2524				{1, 255}, // AX CX DX BX SP BP SI DI
2525			},
2526			clobbers: 1, // AX
2527			outputs: []outputInfo{
2528				{0, 4}, // DX
2529			},
2530		},
2531	},
2532	{
2533		name:         "MULLQU",
2534		argLen:       2,
2535		commutative:  true,
2536		clobberFlags: true,
2537		asm:          x86.AMULL,
2538		reg: regInfo{
2539			inputs: []inputInfo{
2540				{0, 1},   // AX
2541				{1, 255}, // AX CX DX BX SP BP SI DI
2542			},
2543			outputs: []outputInfo{
2544				{0, 4}, // DX
2545				{1, 1}, // AX
2546			},
2547		},
2548	},
2549	{
2550		name:         "AVGLU",
2551		argLen:       2,
2552		commutative:  true,
2553		resultInArg0: true,
2554		clobberFlags: true,
2555		reg: regInfo{
2556			inputs: []inputInfo{
2557				{0, 239}, // AX CX DX BX BP SI DI
2558				{1, 239}, // AX CX DX BX BP SI DI
2559			},
2560			outputs: []outputInfo{
2561				{0, 239}, // AX CX DX BX BP SI DI
2562			},
2563		},
2564	},
2565	{
2566		name:         "DIVL",
2567		argLen:       2,
2568		clobberFlags: true,
2569		asm:          x86.AIDIVL,
2570		reg: regInfo{
2571			inputs: []inputInfo{
2572				{0, 1},   // AX
2573				{1, 251}, // AX CX BX SP BP SI DI
2574			},
2575			clobbers: 4, // DX
2576			outputs: []outputInfo{
2577				{0, 1}, // AX
2578			},
2579		},
2580	},
2581	{
2582		name:         "DIVW",
2583		argLen:       2,
2584		clobberFlags: true,
2585		asm:          x86.AIDIVW,
2586		reg: regInfo{
2587			inputs: []inputInfo{
2588				{0, 1},   // AX
2589				{1, 251}, // AX CX BX SP BP SI DI
2590			},
2591			clobbers: 4, // DX
2592			outputs: []outputInfo{
2593				{0, 1}, // AX
2594			},
2595		},
2596	},
2597	{
2598		name:         "DIVLU",
2599		argLen:       2,
2600		clobberFlags: true,
2601		asm:          x86.ADIVL,
2602		reg: regInfo{
2603			inputs: []inputInfo{
2604				{0, 1},   // AX
2605				{1, 251}, // AX CX BX SP BP SI DI
2606			},
2607			clobbers: 4, // DX
2608			outputs: []outputInfo{
2609				{0, 1}, // AX
2610			},
2611		},
2612	},
2613	{
2614		name:         "DIVWU",
2615		argLen:       2,
2616		clobberFlags: true,
2617		asm:          x86.ADIVW,
2618		reg: regInfo{
2619			inputs: []inputInfo{
2620				{0, 1},   // AX
2621				{1, 251}, // AX CX BX SP BP SI DI
2622			},
2623			clobbers: 4, // DX
2624			outputs: []outputInfo{
2625				{0, 1}, // AX
2626			},
2627		},
2628	},
2629	{
2630		name:         "MODL",
2631		argLen:       2,
2632		clobberFlags: true,
2633		asm:          x86.AIDIVL,
2634		reg: regInfo{
2635			inputs: []inputInfo{
2636				{0, 1},   // AX
2637				{1, 251}, // AX CX BX SP BP SI DI
2638			},
2639			clobbers: 1, // AX
2640			outputs: []outputInfo{
2641				{0, 4}, // DX
2642			},
2643		},
2644	},
2645	{
2646		name:         "MODW",
2647		argLen:       2,
2648		clobberFlags: true,
2649		asm:          x86.AIDIVW,
2650		reg: regInfo{
2651			inputs: []inputInfo{
2652				{0, 1},   // AX
2653				{1, 251}, // AX CX BX SP BP SI DI
2654			},
2655			clobbers: 1, // AX
2656			outputs: []outputInfo{
2657				{0, 4}, // DX
2658			},
2659		},
2660	},
2661	{
2662		name:         "MODLU",
2663		argLen:       2,
2664		clobberFlags: true,
2665		asm:          x86.ADIVL,
2666		reg: regInfo{
2667			inputs: []inputInfo{
2668				{0, 1},   // AX
2669				{1, 251}, // AX CX BX SP BP SI DI
2670			},
2671			clobbers: 1, // AX
2672			outputs: []outputInfo{
2673				{0, 4}, // DX
2674			},
2675		},
2676	},
2677	{
2678		name:         "MODWU",
2679		argLen:       2,
2680		clobberFlags: true,
2681		asm:          x86.ADIVW,
2682		reg: regInfo{
2683			inputs: []inputInfo{
2684				{0, 1},   // AX
2685				{1, 251}, // AX CX BX SP BP SI DI
2686			},
2687			clobbers: 1, // AX
2688			outputs: []outputInfo{
2689				{0, 4}, // DX
2690			},
2691		},
2692	},
2693	{
2694		name:         "ANDL",
2695		argLen:       2,
2696		commutative:  true,
2697		resultInArg0: true,
2698		clobberFlags: true,
2699		asm:          x86.AANDL,
2700		reg: regInfo{
2701			inputs: []inputInfo{
2702				{0, 239}, // AX CX DX BX BP SI DI
2703				{1, 239}, // AX CX DX BX BP SI DI
2704			},
2705			outputs: []outputInfo{
2706				{0, 239}, // AX CX DX BX BP SI DI
2707			},
2708		},
2709	},
2710	{
2711		name:         "ANDLconst",
2712		auxType:      auxInt32,
2713		argLen:       1,
2714		resultInArg0: true,
2715		clobberFlags: true,
2716		asm:          x86.AANDL,
2717		reg: regInfo{
2718			inputs: []inputInfo{
2719				{0, 239}, // AX CX DX BX BP SI DI
2720			},
2721			outputs: []outputInfo{
2722				{0, 239}, // AX CX DX BX BP SI DI
2723			},
2724		},
2725	},
2726	{
2727		name:         "ORL",
2728		argLen:       2,
2729		commutative:  true,
2730		resultInArg0: true,
2731		clobberFlags: true,
2732		asm:          x86.AORL,
2733		reg: regInfo{
2734			inputs: []inputInfo{
2735				{0, 239}, // AX CX DX BX BP SI DI
2736				{1, 239}, // AX CX DX BX BP SI DI
2737			},
2738			outputs: []outputInfo{
2739				{0, 239}, // AX CX DX BX BP SI DI
2740			},
2741		},
2742	},
2743	{
2744		name:         "ORLconst",
2745		auxType:      auxInt32,
2746		argLen:       1,
2747		resultInArg0: true,
2748		clobberFlags: true,
2749		asm:          x86.AORL,
2750		reg: regInfo{
2751			inputs: []inputInfo{
2752				{0, 239}, // AX CX DX BX BP SI DI
2753			},
2754			outputs: []outputInfo{
2755				{0, 239}, // AX CX DX BX BP SI DI
2756			},
2757		},
2758	},
2759	{
2760		name:         "XORL",
2761		argLen:       2,
2762		commutative:  true,
2763		resultInArg0: true,
2764		clobberFlags: true,
2765		asm:          x86.AXORL,
2766		reg: regInfo{
2767			inputs: []inputInfo{
2768				{0, 239}, // AX CX DX BX BP SI DI
2769				{1, 239}, // AX CX DX BX BP SI DI
2770			},
2771			outputs: []outputInfo{
2772				{0, 239}, // AX CX DX BX BP SI DI
2773			},
2774		},
2775	},
2776	{
2777		name:         "XORLconst",
2778		auxType:      auxInt32,
2779		argLen:       1,
2780		resultInArg0: true,
2781		clobberFlags: true,
2782		asm:          x86.AXORL,
2783		reg: regInfo{
2784			inputs: []inputInfo{
2785				{0, 239}, // AX CX DX BX BP SI DI
2786			},
2787			outputs: []outputInfo{
2788				{0, 239}, // AX CX DX BX BP SI DI
2789			},
2790		},
2791	},
2792	{
2793		name:   "CMPL",
2794		argLen: 2,
2795		asm:    x86.ACMPL,
2796		reg: regInfo{
2797			inputs: []inputInfo{
2798				{0, 255}, // AX CX DX BX SP BP SI DI
2799				{1, 255}, // AX CX DX BX SP BP SI DI
2800			},
2801		},
2802	},
2803	{
2804		name:   "CMPW",
2805		argLen: 2,
2806		asm:    x86.ACMPW,
2807		reg: regInfo{
2808			inputs: []inputInfo{
2809				{0, 255}, // AX CX DX BX SP BP SI DI
2810				{1, 255}, // AX CX DX BX SP BP SI DI
2811			},
2812		},
2813	},
2814	{
2815		name:   "CMPB",
2816		argLen: 2,
2817		asm:    x86.ACMPB,
2818		reg: regInfo{
2819			inputs: []inputInfo{
2820				{0, 255}, // AX CX DX BX SP BP SI DI
2821				{1, 255}, // AX CX DX BX SP BP SI DI
2822			},
2823		},
2824	},
2825	{
2826		name:    "CMPLconst",
2827		auxType: auxInt32,
2828		argLen:  1,
2829		asm:     x86.ACMPL,
2830		reg: regInfo{
2831			inputs: []inputInfo{
2832				{0, 255}, // AX CX DX BX SP BP SI DI
2833			},
2834		},
2835	},
2836	{
2837		name:    "CMPWconst",
2838		auxType: auxInt16,
2839		argLen:  1,
2840		asm:     x86.ACMPW,
2841		reg: regInfo{
2842			inputs: []inputInfo{
2843				{0, 255}, // AX CX DX BX SP BP SI DI
2844			},
2845		},
2846	},
2847	{
2848		name:    "CMPBconst",
2849		auxType: auxInt8,
2850		argLen:  1,
2851		asm:     x86.ACMPB,
2852		reg: regInfo{
2853			inputs: []inputInfo{
2854				{0, 255}, // AX CX DX BX SP BP SI DI
2855			},
2856		},
2857	},
2858	{
2859		name:        "UCOMISS",
2860		argLen:      2,
2861		usesScratch: true,
2862		asm:         x86.AUCOMISS,
2863		reg: regInfo{
2864			inputs: []inputInfo{
2865				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2866				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2867			},
2868		},
2869	},
2870	{
2871		name:        "UCOMISD",
2872		argLen:      2,
2873		usesScratch: true,
2874		asm:         x86.AUCOMISD,
2875		reg: regInfo{
2876			inputs: []inputInfo{
2877				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2878				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
2879			},
2880		},
2881	},
2882	{
2883		name:        "TESTL",
2884		argLen:      2,
2885		commutative: true,
2886		asm:         x86.ATESTL,
2887		reg: regInfo{
2888			inputs: []inputInfo{
2889				{0, 255}, // AX CX DX BX SP BP SI DI
2890				{1, 255}, // AX CX DX BX SP BP SI DI
2891			},
2892		},
2893	},
2894	{
2895		name:        "TESTW",
2896		argLen:      2,
2897		commutative: true,
2898		asm:         x86.ATESTW,
2899		reg: regInfo{
2900			inputs: []inputInfo{
2901				{0, 255}, // AX CX DX BX SP BP SI DI
2902				{1, 255}, // AX CX DX BX SP BP SI DI
2903			},
2904		},
2905	},
2906	{
2907		name:        "TESTB",
2908		argLen:      2,
2909		commutative: true,
2910		asm:         x86.ATESTB,
2911		reg: regInfo{
2912			inputs: []inputInfo{
2913				{0, 255}, // AX CX DX BX SP BP SI DI
2914				{1, 255}, // AX CX DX BX SP BP SI DI
2915			},
2916		},
2917	},
2918	{
2919		name:    "TESTLconst",
2920		auxType: auxInt32,
2921		argLen:  1,
2922		asm:     x86.ATESTL,
2923		reg: regInfo{
2924			inputs: []inputInfo{
2925				{0, 255}, // AX CX DX BX SP BP SI DI
2926			},
2927		},
2928	},
2929	{
2930		name:    "TESTWconst",
2931		auxType: auxInt16,
2932		argLen:  1,
2933		asm:     x86.ATESTW,
2934		reg: regInfo{
2935			inputs: []inputInfo{
2936				{0, 255}, // AX CX DX BX SP BP SI DI
2937			},
2938		},
2939	},
2940	{
2941		name:    "TESTBconst",
2942		auxType: auxInt8,
2943		argLen:  1,
2944		asm:     x86.ATESTB,
2945		reg: regInfo{
2946			inputs: []inputInfo{
2947				{0, 255}, // AX CX DX BX SP BP SI DI
2948			},
2949		},
2950	},
2951	{
2952		name:         "SHLL",
2953		argLen:       2,
2954		resultInArg0: true,
2955		clobberFlags: true,
2956		asm:          x86.ASHLL,
2957		reg: regInfo{
2958			inputs: []inputInfo{
2959				{1, 2},   // CX
2960				{0, 239}, // AX CX DX BX BP SI DI
2961			},
2962			outputs: []outputInfo{
2963				{0, 239}, // AX CX DX BX BP SI DI
2964			},
2965		},
2966	},
2967	{
2968		name:         "SHLLconst",
2969		auxType:      auxInt32,
2970		argLen:       1,
2971		resultInArg0: true,
2972		clobberFlags: true,
2973		asm:          x86.ASHLL,
2974		reg: regInfo{
2975			inputs: []inputInfo{
2976				{0, 239}, // AX CX DX BX BP SI DI
2977			},
2978			outputs: []outputInfo{
2979				{0, 239}, // AX CX DX BX BP SI DI
2980			},
2981		},
2982	},
2983	{
2984		name:         "SHRL",
2985		argLen:       2,
2986		resultInArg0: true,
2987		clobberFlags: true,
2988		asm:          x86.ASHRL,
2989		reg: regInfo{
2990			inputs: []inputInfo{
2991				{1, 2},   // CX
2992				{0, 239}, // AX CX DX BX BP SI DI
2993			},
2994			outputs: []outputInfo{
2995				{0, 239}, // AX CX DX BX BP SI DI
2996			},
2997		},
2998	},
2999	{
3000		name:         "SHRW",
3001		argLen:       2,
3002		resultInArg0: true,
3003		clobberFlags: true,
3004		asm:          x86.ASHRW,
3005		reg: regInfo{
3006			inputs: []inputInfo{
3007				{1, 2},   // CX
3008				{0, 239}, // AX CX DX BX BP SI DI
3009			},
3010			outputs: []outputInfo{
3011				{0, 239}, // AX CX DX BX BP SI DI
3012			},
3013		},
3014	},
3015	{
3016		name:         "SHRB",
3017		argLen:       2,
3018		resultInArg0: true,
3019		clobberFlags: true,
3020		asm:          x86.ASHRB,
3021		reg: regInfo{
3022			inputs: []inputInfo{
3023				{1, 2},   // CX
3024				{0, 239}, // AX CX DX BX BP SI DI
3025			},
3026			outputs: []outputInfo{
3027				{0, 239}, // AX CX DX BX BP SI DI
3028			},
3029		},
3030	},
3031	{
3032		name:         "SHRLconst",
3033		auxType:      auxInt32,
3034		argLen:       1,
3035		resultInArg0: true,
3036		clobberFlags: true,
3037		asm:          x86.ASHRL,
3038		reg: regInfo{
3039			inputs: []inputInfo{
3040				{0, 239}, // AX CX DX BX BP SI DI
3041			},
3042			outputs: []outputInfo{
3043				{0, 239}, // AX CX DX BX BP SI DI
3044			},
3045		},
3046	},
3047	{
3048		name:         "SHRWconst",
3049		auxType:      auxInt16,
3050		argLen:       1,
3051		resultInArg0: true,
3052		clobberFlags: true,
3053		asm:          x86.ASHRW,
3054		reg: regInfo{
3055			inputs: []inputInfo{
3056				{0, 239}, // AX CX DX BX BP SI DI
3057			},
3058			outputs: []outputInfo{
3059				{0, 239}, // AX CX DX BX BP SI DI
3060			},
3061		},
3062	},
3063	{
3064		name:         "SHRBconst",
3065		auxType:      auxInt8,
3066		argLen:       1,
3067		resultInArg0: true,
3068		clobberFlags: true,
3069		asm:          x86.ASHRB,
3070		reg: regInfo{
3071			inputs: []inputInfo{
3072				{0, 239}, // AX CX DX BX BP SI DI
3073			},
3074			outputs: []outputInfo{
3075				{0, 239}, // AX CX DX BX BP SI DI
3076			},
3077		},
3078	},
3079	{
3080		name:         "SARL",
3081		argLen:       2,
3082		resultInArg0: true,
3083		clobberFlags: true,
3084		asm:          x86.ASARL,
3085		reg: regInfo{
3086			inputs: []inputInfo{
3087				{1, 2},   // CX
3088				{0, 239}, // AX CX DX BX BP SI DI
3089			},
3090			outputs: []outputInfo{
3091				{0, 239}, // AX CX DX BX BP SI DI
3092			},
3093		},
3094	},
3095	{
3096		name:         "SARW",
3097		argLen:       2,
3098		resultInArg0: true,
3099		clobberFlags: true,
3100		asm:          x86.ASARW,
3101		reg: regInfo{
3102			inputs: []inputInfo{
3103				{1, 2},   // CX
3104				{0, 239}, // AX CX DX BX BP SI DI
3105			},
3106			outputs: []outputInfo{
3107				{0, 239}, // AX CX DX BX BP SI DI
3108			},
3109		},
3110	},
3111	{
3112		name:         "SARB",
3113		argLen:       2,
3114		resultInArg0: true,
3115		clobberFlags: true,
3116		asm:          x86.ASARB,
3117		reg: regInfo{
3118			inputs: []inputInfo{
3119				{1, 2},   // CX
3120				{0, 239}, // AX CX DX BX BP SI DI
3121			},
3122			outputs: []outputInfo{
3123				{0, 239}, // AX CX DX BX BP SI DI
3124			},
3125		},
3126	},
3127	{
3128		name:         "SARLconst",
3129		auxType:      auxInt32,
3130		argLen:       1,
3131		resultInArg0: true,
3132		clobberFlags: true,
3133		asm:          x86.ASARL,
3134		reg: regInfo{
3135			inputs: []inputInfo{
3136				{0, 239}, // AX CX DX BX BP SI DI
3137			},
3138			outputs: []outputInfo{
3139				{0, 239}, // AX CX DX BX BP SI DI
3140			},
3141		},
3142	},
3143	{
3144		name:         "SARWconst",
3145		auxType:      auxInt16,
3146		argLen:       1,
3147		resultInArg0: true,
3148		clobberFlags: true,
3149		asm:          x86.ASARW,
3150		reg: regInfo{
3151			inputs: []inputInfo{
3152				{0, 239}, // AX CX DX BX BP SI DI
3153			},
3154			outputs: []outputInfo{
3155				{0, 239}, // AX CX DX BX BP SI DI
3156			},
3157		},
3158	},
3159	{
3160		name:         "SARBconst",
3161		auxType:      auxInt8,
3162		argLen:       1,
3163		resultInArg0: true,
3164		clobberFlags: true,
3165		asm:          x86.ASARB,
3166		reg: regInfo{
3167			inputs: []inputInfo{
3168				{0, 239}, // AX CX DX BX BP SI DI
3169			},
3170			outputs: []outputInfo{
3171				{0, 239}, // AX CX DX BX BP SI DI
3172			},
3173		},
3174	},
3175	{
3176		name:         "ROLLconst",
3177		auxType:      auxInt32,
3178		argLen:       1,
3179		resultInArg0: true,
3180		clobberFlags: true,
3181		asm:          x86.AROLL,
3182		reg: regInfo{
3183			inputs: []inputInfo{
3184				{0, 239}, // AX CX DX BX BP SI DI
3185			},
3186			outputs: []outputInfo{
3187				{0, 239}, // AX CX DX BX BP SI DI
3188			},
3189		},
3190	},
3191	{
3192		name:         "ROLWconst",
3193		auxType:      auxInt16,
3194		argLen:       1,
3195		resultInArg0: true,
3196		clobberFlags: true,
3197		asm:          x86.AROLW,
3198		reg: regInfo{
3199			inputs: []inputInfo{
3200				{0, 239}, // AX CX DX BX BP SI DI
3201			},
3202			outputs: []outputInfo{
3203				{0, 239}, // AX CX DX BX BP SI DI
3204			},
3205		},
3206	},
3207	{
3208		name:         "ROLBconst",
3209		auxType:      auxInt8,
3210		argLen:       1,
3211		resultInArg0: true,
3212		clobberFlags: true,
3213		asm:          x86.AROLB,
3214		reg: regInfo{
3215			inputs: []inputInfo{
3216				{0, 239}, // AX CX DX BX BP SI DI
3217			},
3218			outputs: []outputInfo{
3219				{0, 239}, // AX CX DX BX BP SI DI
3220			},
3221		},
3222	},
3223	{
3224		name:         "NEGL",
3225		argLen:       1,
3226		resultInArg0: true,
3227		clobberFlags: true,
3228		asm:          x86.ANEGL,
3229		reg: regInfo{
3230			inputs: []inputInfo{
3231				{0, 239}, // AX CX DX BX BP SI DI
3232			},
3233			outputs: []outputInfo{
3234				{0, 239}, // AX CX DX BX BP SI DI
3235			},
3236		},
3237	},
3238	{
3239		name:         "NOTL",
3240		argLen:       1,
3241		resultInArg0: true,
3242		clobberFlags: true,
3243		asm:          x86.ANOTL,
3244		reg: regInfo{
3245			inputs: []inputInfo{
3246				{0, 239}, // AX CX DX BX BP SI DI
3247			},
3248			outputs: []outputInfo{
3249				{0, 239}, // AX CX DX BX BP SI DI
3250			},
3251		},
3252	},
3253	{
3254		name:         "BSFL",
3255		argLen:       1,
3256		clobberFlags: true,
3257		asm:          x86.ABSFL,
3258		reg: regInfo{
3259			inputs: []inputInfo{
3260				{0, 239}, // AX CX DX BX BP SI DI
3261			},
3262			outputs: []outputInfo{
3263				{0, 239}, // AX CX DX BX BP SI DI
3264			},
3265		},
3266	},
3267	{
3268		name:         "BSFW",
3269		argLen:       1,
3270		clobberFlags: true,
3271		asm:          x86.ABSFW,
3272		reg: regInfo{
3273			inputs: []inputInfo{
3274				{0, 239}, // AX CX DX BX BP SI DI
3275			},
3276			outputs: []outputInfo{
3277				{0, 239}, // AX CX DX BX BP SI DI
3278			},
3279		},
3280	},
3281	{
3282		name:         "BSRL",
3283		argLen:       1,
3284		clobberFlags: true,
3285		asm:          x86.ABSRL,
3286		reg: regInfo{
3287			inputs: []inputInfo{
3288				{0, 239}, // AX CX DX BX BP SI DI
3289			},
3290			outputs: []outputInfo{
3291				{0, 239}, // AX CX DX BX BP SI DI
3292			},
3293		},
3294	},
3295	{
3296		name:         "BSRW",
3297		argLen:       1,
3298		clobberFlags: true,
3299		asm:          x86.ABSRW,
3300		reg: regInfo{
3301			inputs: []inputInfo{
3302				{0, 239}, // AX CX DX BX BP SI DI
3303			},
3304			outputs: []outputInfo{
3305				{0, 239}, // AX CX DX BX BP SI DI
3306			},
3307		},
3308	},
3309	{
3310		name:         "BSWAPL",
3311		argLen:       1,
3312		resultInArg0: true,
3313		clobberFlags: true,
3314		asm:          x86.ABSWAPL,
3315		reg: regInfo{
3316			inputs: []inputInfo{
3317				{0, 239}, // AX CX DX BX BP SI DI
3318			},
3319			outputs: []outputInfo{
3320				{0, 239}, // AX CX DX BX BP SI DI
3321			},
3322		},
3323	},
3324	{
3325		name:   "SQRTSD",
3326		argLen: 1,
3327		asm:    x86.ASQRTSD,
3328		reg: regInfo{
3329			inputs: []inputInfo{
3330				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3331			},
3332			outputs: []outputInfo{
3333				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3334			},
3335		},
3336	},
3337	{
3338		name:   "SBBLcarrymask",
3339		argLen: 1,
3340		asm:    x86.ASBBL,
3341		reg: regInfo{
3342			outputs: []outputInfo{
3343				{0, 239}, // AX CX DX BX BP SI DI
3344			},
3345		},
3346	},
3347	{
3348		name:   "SETEQ",
3349		argLen: 1,
3350		asm:    x86.ASETEQ,
3351		reg: regInfo{
3352			outputs: []outputInfo{
3353				{0, 239}, // AX CX DX BX BP SI DI
3354			},
3355		},
3356	},
3357	{
3358		name:   "SETNE",
3359		argLen: 1,
3360		asm:    x86.ASETNE,
3361		reg: regInfo{
3362			outputs: []outputInfo{
3363				{0, 239}, // AX CX DX BX BP SI DI
3364			},
3365		},
3366	},
3367	{
3368		name:   "SETL",
3369		argLen: 1,
3370		asm:    x86.ASETLT,
3371		reg: regInfo{
3372			outputs: []outputInfo{
3373				{0, 239}, // AX CX DX BX BP SI DI
3374			},
3375		},
3376	},
3377	{
3378		name:   "SETLE",
3379		argLen: 1,
3380		asm:    x86.ASETLE,
3381		reg: regInfo{
3382			outputs: []outputInfo{
3383				{0, 239}, // AX CX DX BX BP SI DI
3384			},
3385		},
3386	},
3387	{
3388		name:   "SETG",
3389		argLen: 1,
3390		asm:    x86.ASETGT,
3391		reg: regInfo{
3392			outputs: []outputInfo{
3393				{0, 239}, // AX CX DX BX BP SI DI
3394			},
3395		},
3396	},
3397	{
3398		name:   "SETGE",
3399		argLen: 1,
3400		asm:    x86.ASETGE,
3401		reg: regInfo{
3402			outputs: []outputInfo{
3403				{0, 239}, // AX CX DX BX BP SI DI
3404			},
3405		},
3406	},
3407	{
3408		name:   "SETB",
3409		argLen: 1,
3410		asm:    x86.ASETCS,
3411		reg: regInfo{
3412			outputs: []outputInfo{
3413				{0, 239}, // AX CX DX BX BP SI DI
3414			},
3415		},
3416	},
3417	{
3418		name:   "SETBE",
3419		argLen: 1,
3420		asm:    x86.ASETLS,
3421		reg: regInfo{
3422			outputs: []outputInfo{
3423				{0, 239}, // AX CX DX BX BP SI DI
3424			},
3425		},
3426	},
3427	{
3428		name:   "SETA",
3429		argLen: 1,
3430		asm:    x86.ASETHI,
3431		reg: regInfo{
3432			outputs: []outputInfo{
3433				{0, 239}, // AX CX DX BX BP SI DI
3434			},
3435		},
3436	},
3437	{
3438		name:   "SETAE",
3439		argLen: 1,
3440		asm:    x86.ASETCC,
3441		reg: regInfo{
3442			outputs: []outputInfo{
3443				{0, 239}, // AX CX DX BX BP SI DI
3444			},
3445		},
3446	},
3447	{
3448		name:         "SETEQF",
3449		argLen:       1,
3450		clobberFlags: true,
3451		asm:          x86.ASETEQ,
3452		reg: regInfo{
3453			clobbers: 1, // AX
3454			outputs: []outputInfo{
3455				{0, 238}, // CX DX BX BP SI DI
3456			},
3457		},
3458	},
3459	{
3460		name:         "SETNEF",
3461		argLen:       1,
3462		clobberFlags: true,
3463		asm:          x86.ASETNE,
3464		reg: regInfo{
3465			clobbers: 1, // AX
3466			outputs: []outputInfo{
3467				{0, 238}, // CX DX BX BP SI DI
3468			},
3469		},
3470	},
3471	{
3472		name:   "SETORD",
3473		argLen: 1,
3474		asm:    x86.ASETPC,
3475		reg: regInfo{
3476			outputs: []outputInfo{
3477				{0, 239}, // AX CX DX BX BP SI DI
3478			},
3479		},
3480	},
3481	{
3482		name:   "SETNAN",
3483		argLen: 1,
3484		asm:    x86.ASETPS,
3485		reg: regInfo{
3486			outputs: []outputInfo{
3487				{0, 239}, // AX CX DX BX BP SI DI
3488			},
3489		},
3490	},
3491	{
3492		name:   "SETGF",
3493		argLen: 1,
3494		asm:    x86.ASETHI,
3495		reg: regInfo{
3496			outputs: []outputInfo{
3497				{0, 239}, // AX CX DX BX BP SI DI
3498			},
3499		},
3500	},
3501	{
3502		name:   "SETGEF",
3503		argLen: 1,
3504		asm:    x86.ASETCC,
3505		reg: regInfo{
3506			outputs: []outputInfo{
3507				{0, 239}, // AX CX DX BX BP SI DI
3508			},
3509		},
3510	},
3511	{
3512		name:   "MOVBLSX",
3513		argLen: 1,
3514		asm:    x86.AMOVBLSX,
3515		reg: regInfo{
3516			inputs: []inputInfo{
3517				{0, 239}, // AX CX DX BX BP SI DI
3518			},
3519			outputs: []outputInfo{
3520				{0, 239}, // AX CX DX BX BP SI DI
3521			},
3522		},
3523	},
3524	{
3525		name:   "MOVBLZX",
3526		argLen: 1,
3527		asm:    x86.AMOVBLZX,
3528		reg: regInfo{
3529			inputs: []inputInfo{
3530				{0, 239}, // AX CX DX BX BP SI DI
3531			},
3532			outputs: []outputInfo{
3533				{0, 239}, // AX CX DX BX BP SI DI
3534			},
3535		},
3536	},
3537	{
3538		name:   "MOVWLSX",
3539		argLen: 1,
3540		asm:    x86.AMOVWLSX,
3541		reg: regInfo{
3542			inputs: []inputInfo{
3543				{0, 239}, // AX CX DX BX BP SI DI
3544			},
3545			outputs: []outputInfo{
3546				{0, 239}, // AX CX DX BX BP SI DI
3547			},
3548		},
3549	},
3550	{
3551		name:   "MOVWLZX",
3552		argLen: 1,
3553		asm:    x86.AMOVWLZX,
3554		reg: regInfo{
3555			inputs: []inputInfo{
3556				{0, 239}, // AX CX DX BX BP SI DI
3557			},
3558			outputs: []outputInfo{
3559				{0, 239}, // AX CX DX BX BP SI DI
3560			},
3561		},
3562	},
3563	{
3564		name:              "MOVLconst",
3565		auxType:           auxInt32,
3566		argLen:            0,
3567		rematerializeable: true,
3568		asm:               x86.AMOVL,
3569		reg: regInfo{
3570			outputs: []outputInfo{
3571				{0, 239}, // AX CX DX BX BP SI DI
3572			},
3573		},
3574	},
3575	{
3576		name:        "CVTTSD2SL",
3577		argLen:      1,
3578		usesScratch: true,
3579		asm:         x86.ACVTTSD2SL,
3580		reg: regInfo{
3581			inputs: []inputInfo{
3582				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3583			},
3584			outputs: []outputInfo{
3585				{0, 239}, // AX CX DX BX BP SI DI
3586			},
3587		},
3588	},
3589	{
3590		name:        "CVTTSS2SL",
3591		argLen:      1,
3592		usesScratch: true,
3593		asm:         x86.ACVTTSS2SL,
3594		reg: regInfo{
3595			inputs: []inputInfo{
3596				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3597			},
3598			outputs: []outputInfo{
3599				{0, 239}, // AX CX DX BX BP SI DI
3600			},
3601		},
3602	},
3603	{
3604		name:        "CVTSL2SS",
3605		argLen:      1,
3606		usesScratch: true,
3607		asm:         x86.ACVTSL2SS,
3608		reg: regInfo{
3609			inputs: []inputInfo{
3610				{0, 239}, // AX CX DX BX BP SI DI
3611			},
3612			outputs: []outputInfo{
3613				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3614			},
3615		},
3616	},
3617	{
3618		name:        "CVTSL2SD",
3619		argLen:      1,
3620		usesScratch: true,
3621		asm:         x86.ACVTSL2SD,
3622		reg: regInfo{
3623			inputs: []inputInfo{
3624				{0, 239}, // AX CX DX BX BP SI DI
3625			},
3626			outputs: []outputInfo{
3627				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3628			},
3629		},
3630	},
3631	{
3632		name:        "CVTSD2SS",
3633		argLen:      1,
3634		usesScratch: true,
3635		asm:         x86.ACVTSD2SS,
3636		reg: regInfo{
3637			inputs: []inputInfo{
3638				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3639			},
3640			outputs: []outputInfo{
3641				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3642			},
3643		},
3644	},
3645	{
3646		name:   "CVTSS2SD",
3647		argLen: 1,
3648		asm:    x86.ACVTSS2SD,
3649		reg: regInfo{
3650			inputs: []inputInfo{
3651				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3652			},
3653			outputs: []outputInfo{
3654				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3655			},
3656		},
3657	},
3658	{
3659		name:         "PXOR",
3660		argLen:       2,
3661		commutative:  true,
3662		resultInArg0: true,
3663		asm:          x86.APXOR,
3664		reg: regInfo{
3665			inputs: []inputInfo{
3666				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3667				{1, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3668			},
3669			outputs: []outputInfo{
3670				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
3671			},
3672		},
3673	},
3674	{
3675		name:              "LEAL",
3676		auxType:           auxSymOff,
3677		argLen:            1,
3678		rematerializeable: true,
3679		symEffect:         SymAddr,
3680		reg: regInfo{
3681			inputs: []inputInfo{
3682				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3683			},
3684			outputs: []outputInfo{
3685				{0, 239}, // AX CX DX BX BP SI DI
3686			},
3687		},
3688	},
3689	{
3690		name:        "LEAL1",
3691		auxType:     auxSymOff,
3692		argLen:      2,
3693		commutative: true,
3694		symEffect:   SymAddr,
3695		reg: regInfo{
3696			inputs: []inputInfo{
3697				{1, 255},   // AX CX DX BX SP BP SI DI
3698				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3699			},
3700			outputs: []outputInfo{
3701				{0, 239}, // AX CX DX BX BP SI DI
3702			},
3703		},
3704	},
3705	{
3706		name:      "LEAL2",
3707		auxType:   auxSymOff,
3708		argLen:    2,
3709		symEffect: SymAddr,
3710		reg: regInfo{
3711			inputs: []inputInfo{
3712				{1, 255},   // AX CX DX BX SP BP SI DI
3713				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3714			},
3715			outputs: []outputInfo{
3716				{0, 239}, // AX CX DX BX BP SI DI
3717			},
3718		},
3719	},
3720	{
3721		name:      "LEAL4",
3722		auxType:   auxSymOff,
3723		argLen:    2,
3724		symEffect: SymAddr,
3725		reg: regInfo{
3726			inputs: []inputInfo{
3727				{1, 255},   // AX CX DX BX SP BP SI DI
3728				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3729			},
3730			outputs: []outputInfo{
3731				{0, 239}, // AX CX DX BX BP SI DI
3732			},
3733		},
3734	},
3735	{
3736		name:      "LEAL8",
3737		auxType:   auxSymOff,
3738		argLen:    2,
3739		symEffect: SymAddr,
3740		reg: regInfo{
3741			inputs: []inputInfo{
3742				{1, 255},   // AX CX DX BX SP BP SI DI
3743				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3744			},
3745			outputs: []outputInfo{
3746				{0, 239}, // AX CX DX BX BP SI DI
3747			},
3748		},
3749	},
3750	{
3751		name:           "MOVBload",
3752		auxType:        auxSymOff,
3753		argLen:         2,
3754		faultOnNilArg0: true,
3755		symEffect:      SymRead,
3756		asm:            x86.AMOVBLZX,
3757		reg: regInfo{
3758			inputs: []inputInfo{
3759				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3760			},
3761			outputs: []outputInfo{
3762				{0, 239}, // AX CX DX BX BP SI DI
3763			},
3764		},
3765	},
3766	{
3767		name:           "MOVBLSXload",
3768		auxType:        auxSymOff,
3769		argLen:         2,
3770		faultOnNilArg0: true,
3771		symEffect:      SymRead,
3772		asm:            x86.AMOVBLSX,
3773		reg: regInfo{
3774			inputs: []inputInfo{
3775				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3776			},
3777			outputs: []outputInfo{
3778				{0, 239}, // AX CX DX BX BP SI DI
3779			},
3780		},
3781	},
3782	{
3783		name:           "MOVWload",
3784		auxType:        auxSymOff,
3785		argLen:         2,
3786		faultOnNilArg0: true,
3787		symEffect:      SymRead,
3788		asm:            x86.AMOVWLZX,
3789		reg: regInfo{
3790			inputs: []inputInfo{
3791				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3792			},
3793			outputs: []outputInfo{
3794				{0, 239}, // AX CX DX BX BP SI DI
3795			},
3796		},
3797	},
3798	{
3799		name:           "MOVWLSXload",
3800		auxType:        auxSymOff,
3801		argLen:         2,
3802		faultOnNilArg0: true,
3803		symEffect:      SymRead,
3804		asm:            x86.AMOVWLSX,
3805		reg: regInfo{
3806			inputs: []inputInfo{
3807				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3808			},
3809			outputs: []outputInfo{
3810				{0, 239}, // AX CX DX BX BP SI DI
3811			},
3812		},
3813	},
3814	{
3815		name:           "MOVLload",
3816		auxType:        auxSymOff,
3817		argLen:         2,
3818		faultOnNilArg0: true,
3819		symEffect:      SymRead,
3820		asm:            x86.AMOVL,
3821		reg: regInfo{
3822			inputs: []inputInfo{
3823				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3824			},
3825			outputs: []outputInfo{
3826				{0, 239}, // AX CX DX BX BP SI DI
3827			},
3828		},
3829	},
3830	{
3831		name:           "MOVBstore",
3832		auxType:        auxSymOff,
3833		argLen:         3,
3834		faultOnNilArg0: true,
3835		symEffect:      SymWrite,
3836		asm:            x86.AMOVB,
3837		reg: regInfo{
3838			inputs: []inputInfo{
3839				{1, 255},   // AX CX DX BX SP BP SI DI
3840				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3841			},
3842		},
3843	},
3844	{
3845		name:           "MOVWstore",
3846		auxType:        auxSymOff,
3847		argLen:         3,
3848		faultOnNilArg0: true,
3849		symEffect:      SymWrite,
3850		asm:            x86.AMOVW,
3851		reg: regInfo{
3852			inputs: []inputInfo{
3853				{1, 255},   // AX CX DX BX SP BP SI DI
3854				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3855			},
3856		},
3857	},
3858	{
3859		name:           "MOVLstore",
3860		auxType:        auxSymOff,
3861		argLen:         3,
3862		faultOnNilArg0: true,
3863		symEffect:      SymWrite,
3864		asm:            x86.AMOVL,
3865		reg: regInfo{
3866			inputs: []inputInfo{
3867				{1, 255},   // AX CX DX BX SP BP SI DI
3868				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3869			},
3870		},
3871	},
3872	{
3873		name:        "MOVBloadidx1",
3874		auxType:     auxSymOff,
3875		argLen:      3,
3876		commutative: true,
3877		symEffect:   SymRead,
3878		asm:         x86.AMOVBLZX,
3879		reg: regInfo{
3880			inputs: []inputInfo{
3881				{1, 255},   // AX CX DX BX SP BP SI DI
3882				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3883			},
3884			outputs: []outputInfo{
3885				{0, 239}, // AX CX DX BX BP SI DI
3886			},
3887		},
3888	},
3889	{
3890		name:        "MOVWloadidx1",
3891		auxType:     auxSymOff,
3892		argLen:      3,
3893		commutative: true,
3894		symEffect:   SymRead,
3895		asm:         x86.AMOVWLZX,
3896		reg: regInfo{
3897			inputs: []inputInfo{
3898				{1, 255},   // AX CX DX BX SP BP SI DI
3899				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3900			},
3901			outputs: []outputInfo{
3902				{0, 239}, // AX CX DX BX BP SI DI
3903			},
3904		},
3905	},
3906	{
3907		name:      "MOVWloadidx2",
3908		auxType:   auxSymOff,
3909		argLen:    3,
3910		symEffect: SymRead,
3911		asm:       x86.AMOVWLZX,
3912		reg: regInfo{
3913			inputs: []inputInfo{
3914				{1, 255},   // AX CX DX BX SP BP SI DI
3915				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3916			},
3917			outputs: []outputInfo{
3918				{0, 239}, // AX CX DX BX BP SI DI
3919			},
3920		},
3921	},
3922	{
3923		name:        "MOVLloadidx1",
3924		auxType:     auxSymOff,
3925		argLen:      3,
3926		commutative: true,
3927		symEffect:   SymRead,
3928		asm:         x86.AMOVL,
3929		reg: regInfo{
3930			inputs: []inputInfo{
3931				{1, 255},   // AX CX DX BX SP BP SI DI
3932				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3933			},
3934			outputs: []outputInfo{
3935				{0, 239}, // AX CX DX BX BP SI DI
3936			},
3937		},
3938	},
3939	{
3940		name:      "MOVLloadidx4",
3941		auxType:   auxSymOff,
3942		argLen:    3,
3943		symEffect: SymRead,
3944		asm:       x86.AMOVL,
3945		reg: regInfo{
3946			inputs: []inputInfo{
3947				{1, 255},   // AX CX DX BX SP BP SI DI
3948				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3949			},
3950			outputs: []outputInfo{
3951				{0, 239}, // AX CX DX BX BP SI DI
3952			},
3953		},
3954	},
3955	{
3956		name:        "MOVBstoreidx1",
3957		auxType:     auxSymOff,
3958		argLen:      4,
3959		commutative: true,
3960		symEffect:   SymWrite,
3961		asm:         x86.AMOVB,
3962		reg: regInfo{
3963			inputs: []inputInfo{
3964				{1, 255},   // AX CX DX BX SP BP SI DI
3965				{2, 255},   // AX CX DX BX SP BP SI DI
3966				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3967			},
3968		},
3969	},
3970	{
3971		name:        "MOVWstoreidx1",
3972		auxType:     auxSymOff,
3973		argLen:      4,
3974		commutative: true,
3975		symEffect:   SymWrite,
3976		asm:         x86.AMOVW,
3977		reg: regInfo{
3978			inputs: []inputInfo{
3979				{1, 255},   // AX CX DX BX SP BP SI DI
3980				{2, 255},   // AX CX DX BX SP BP SI DI
3981				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3982			},
3983		},
3984	},
3985	{
3986		name:      "MOVWstoreidx2",
3987		auxType:   auxSymOff,
3988		argLen:    4,
3989		symEffect: SymWrite,
3990		asm:       x86.AMOVW,
3991		reg: regInfo{
3992			inputs: []inputInfo{
3993				{1, 255},   // AX CX DX BX SP BP SI DI
3994				{2, 255},   // AX CX DX BX SP BP SI DI
3995				{0, 65791}, // AX CX DX BX SP BP SI DI SB
3996			},
3997		},
3998	},
3999	{
4000		name:        "MOVLstoreidx1",
4001		auxType:     auxSymOff,
4002		argLen:      4,
4003		commutative: true,
4004		symEffect:   SymWrite,
4005		asm:         x86.AMOVL,
4006		reg: regInfo{
4007			inputs: []inputInfo{
4008				{1, 255},   // AX CX DX BX SP BP SI DI
4009				{2, 255},   // AX CX DX BX SP BP SI DI
4010				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4011			},
4012		},
4013	},
4014	{
4015		name:      "MOVLstoreidx4",
4016		auxType:   auxSymOff,
4017		argLen:    4,
4018		symEffect: SymWrite,
4019		asm:       x86.AMOVL,
4020		reg: regInfo{
4021			inputs: []inputInfo{
4022				{1, 255},   // AX CX DX BX SP BP SI DI
4023				{2, 255},   // AX CX DX BX SP BP SI DI
4024				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4025			},
4026		},
4027	},
4028	{
4029		name:           "MOVBstoreconst",
4030		auxType:        auxSymValAndOff,
4031		argLen:         2,
4032		faultOnNilArg0: true,
4033		symEffect:      SymWrite,
4034		asm:            x86.AMOVB,
4035		reg: regInfo{
4036			inputs: []inputInfo{
4037				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4038			},
4039		},
4040	},
4041	{
4042		name:           "MOVWstoreconst",
4043		auxType:        auxSymValAndOff,
4044		argLen:         2,
4045		faultOnNilArg0: true,
4046		symEffect:      SymWrite,
4047		asm:            x86.AMOVW,
4048		reg: regInfo{
4049			inputs: []inputInfo{
4050				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4051			},
4052		},
4053	},
4054	{
4055		name:           "MOVLstoreconst",
4056		auxType:        auxSymValAndOff,
4057		argLen:         2,
4058		faultOnNilArg0: true,
4059		symEffect:      SymWrite,
4060		asm:            x86.AMOVL,
4061		reg: regInfo{
4062			inputs: []inputInfo{
4063				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4064			},
4065		},
4066	},
4067	{
4068		name:      "MOVBstoreconstidx1",
4069		auxType:   auxSymValAndOff,
4070		argLen:    3,
4071		symEffect: SymWrite,
4072		asm:       x86.AMOVB,
4073		reg: regInfo{
4074			inputs: []inputInfo{
4075				{1, 255},   // AX CX DX BX SP BP SI DI
4076				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4077			},
4078		},
4079	},
4080	{
4081		name:      "MOVWstoreconstidx1",
4082		auxType:   auxSymValAndOff,
4083		argLen:    3,
4084		symEffect: SymWrite,
4085		asm:       x86.AMOVW,
4086		reg: regInfo{
4087			inputs: []inputInfo{
4088				{1, 255},   // AX CX DX BX SP BP SI DI
4089				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4090			},
4091		},
4092	},
4093	{
4094		name:      "MOVWstoreconstidx2",
4095		auxType:   auxSymValAndOff,
4096		argLen:    3,
4097		symEffect: SymWrite,
4098		asm:       x86.AMOVW,
4099		reg: regInfo{
4100			inputs: []inputInfo{
4101				{1, 255},   // AX CX DX BX SP BP SI DI
4102				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4103			},
4104		},
4105	},
4106	{
4107		name:      "MOVLstoreconstidx1",
4108		auxType:   auxSymValAndOff,
4109		argLen:    3,
4110		symEffect: SymWrite,
4111		asm:       x86.AMOVL,
4112		reg: regInfo{
4113			inputs: []inputInfo{
4114				{1, 255},   // AX CX DX BX SP BP SI DI
4115				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4116			},
4117		},
4118	},
4119	{
4120		name:      "MOVLstoreconstidx4",
4121		auxType:   auxSymValAndOff,
4122		argLen:    3,
4123		symEffect: SymWrite,
4124		asm:       x86.AMOVL,
4125		reg: regInfo{
4126			inputs: []inputInfo{
4127				{1, 255},   // AX CX DX BX SP BP SI DI
4128				{0, 65791}, // AX CX DX BX SP BP SI DI SB
4129			},
4130		},
4131	},
4132	{
4133		name:           "DUFFZERO",
4134		auxType:        auxInt64,
4135		argLen:         3,
4136		faultOnNilArg0: true,
4137		reg: regInfo{
4138			inputs: []inputInfo{
4139				{0, 128}, // DI
4140				{1, 1},   // AX
4141			},
4142			clobbers: 130, // CX DI
4143		},
4144	},
4145	{
4146		name:           "REPSTOSL",
4147		argLen:         4,
4148		faultOnNilArg0: true,
4149		reg: regInfo{
4150			inputs: []inputInfo{
4151				{0, 128}, // DI
4152				{1, 2},   // CX
4153				{2, 1},   // AX
4154			},
4155			clobbers: 130, // CX DI
4156		},
4157	},
4158	{
4159		name:         "CALLstatic",
4160		auxType:      auxSymOff,
4161		argLen:       1,
4162		clobberFlags: true,
4163		call:         true,
4164		symEffect:    SymNone,
4165		reg: regInfo{
4166			clobbers: 65519, // AX CX DX BX BP SI DI X0 X1 X2 X3 X4 X5 X6 X7
4167		},
4168	},
4169	{
4170		name:         "CALLclosure",
4171		auxType:      auxInt64,
4172		argLen:       3,
4173		clobberFlags: true,
4174		call:         true,
4175		reg: regInfo{
4176			inputs: []inputInfo{
4177				{1, 4},   // DX
4178				{0, 255}, // AX CX DX BX SP BP SI DI
4179			},
4180			clobbers: 65519, // AX CX DX BX BP SI DI X0 X1 X2 X3 X4 X5 X6 X7
4181		},
4182	},
4183	{
4184		name:         "CALLinter",
4185		auxType:      auxInt64,
4186		argLen:       2,
4187		clobberFlags: true,
4188		call:         true,
4189		reg: regInfo{
4190			inputs: []inputInfo{
4191				{0, 239}, // AX CX DX BX BP SI DI
4192			},
4193			clobbers: 65519, // AX CX DX BX BP SI DI X0 X1 X2 X3 X4 X5 X6 X7
4194		},
4195	},
4196	{
4197		name:           "DUFFCOPY",
4198		auxType:        auxInt64,
4199		argLen:         3,
4200		clobberFlags:   true,
4201		faultOnNilArg0: true,
4202		faultOnNilArg1: true,
4203		reg: regInfo{
4204			inputs: []inputInfo{
4205				{0, 128}, // DI
4206				{1, 64},  // SI
4207			},
4208			clobbers: 194, // CX SI DI
4209		},
4210	},
4211	{
4212		name:           "REPMOVSL",
4213		argLen:         4,
4214		faultOnNilArg0: true,
4215		faultOnNilArg1: true,
4216		reg: regInfo{
4217			inputs: []inputInfo{
4218				{0, 128}, // DI
4219				{1, 64},  // SI
4220				{2, 2},   // CX
4221			},
4222			clobbers: 194, // CX SI DI
4223		},
4224	},
4225	{
4226		name:   "InvertFlags",
4227		argLen: 1,
4228		reg:    regInfo{},
4229	},
4230	{
4231		name:   "LoweredGetG",
4232		argLen: 1,
4233		reg: regInfo{
4234			outputs: []outputInfo{
4235				{0, 239}, // AX CX DX BX BP SI DI
4236			},
4237		},
4238	},
4239	{
4240		name:   "LoweredGetClosurePtr",
4241		argLen: 0,
4242		reg: regInfo{
4243			outputs: []outputInfo{
4244				{0, 4}, // DX
4245			},
4246		},
4247	},
4248	{
4249		name:           "LoweredNilCheck",
4250		argLen:         2,
4251		clobberFlags:   true,
4252		nilCheck:       true,
4253		faultOnNilArg0: true,
4254		reg: regInfo{
4255			inputs: []inputInfo{
4256				{0, 255}, // AX CX DX BX SP BP SI DI
4257			},
4258		},
4259	},
4260	{
4261		name:   "MOVLconvert",
4262		argLen: 2,
4263		asm:    x86.AMOVL,
4264		reg: regInfo{
4265			inputs: []inputInfo{
4266				{0, 239}, // AX CX DX BX BP SI DI
4267			},
4268			outputs: []outputInfo{
4269				{0, 239}, // AX CX DX BX BP SI DI
4270			},
4271		},
4272	},
4273	{
4274		name:   "FlagEQ",
4275		argLen: 0,
4276		reg:    regInfo{},
4277	},
4278	{
4279		name:   "FlagLT_ULT",
4280		argLen: 0,
4281		reg:    regInfo{},
4282	},
4283	{
4284		name:   "FlagLT_UGT",
4285		argLen: 0,
4286		reg:    regInfo{},
4287	},
4288	{
4289		name:   "FlagGT_UGT",
4290		argLen: 0,
4291		reg:    regInfo{},
4292	},
4293	{
4294		name:   "FlagGT_ULT",
4295		argLen: 0,
4296		reg:    regInfo{},
4297	},
4298	{
4299		name:   "FCHS",
4300		argLen: 1,
4301		reg: regInfo{
4302			inputs: []inputInfo{
4303				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
4304			},
4305			outputs: []outputInfo{
4306				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
4307			},
4308		},
4309	},
4310	{
4311		name:    "MOVSSconst1",
4312		auxType: auxFloat32,
4313		argLen:  0,
4314		reg: regInfo{
4315			outputs: []outputInfo{
4316				{0, 239}, // AX CX DX BX BP SI DI
4317			},
4318		},
4319	},
4320	{
4321		name:    "MOVSDconst1",
4322		auxType: auxFloat64,
4323		argLen:  0,
4324		reg: regInfo{
4325			outputs: []outputInfo{
4326				{0, 239}, // AX CX DX BX BP SI DI
4327			},
4328		},
4329	},
4330	{
4331		name:   "MOVSSconst2",
4332		argLen: 1,
4333		asm:    x86.AMOVSS,
4334		reg: regInfo{
4335			inputs: []inputInfo{
4336				{0, 239}, // AX CX DX BX BP SI DI
4337			},
4338			outputs: []outputInfo{
4339				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
4340			},
4341		},
4342	},
4343	{
4344		name:   "MOVSDconst2",
4345		argLen: 1,
4346		asm:    x86.AMOVSD,
4347		reg: regInfo{
4348			inputs: []inputInfo{
4349				{0, 239}, // AX CX DX BX BP SI DI
4350			},
4351			outputs: []outputInfo{
4352				{0, 65280}, // X0 X1 X2 X3 X4 X5 X6 X7
4353			},
4354		},
4355	},
4356
4357	{
4358		name:         "ADDSS",
4359		argLen:       2,
4360		commutative:  true,
4361		resultInArg0: true,
4362		asm:          x86.AADDSS,
4363		reg: regInfo{
4364			inputs: []inputInfo{
4365				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4366				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4367			},
4368			outputs: []outputInfo{
4369				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4370			},
4371		},
4372	},
4373	{
4374		name:         "ADDSD",
4375		argLen:       2,
4376		commutative:  true,
4377		resultInArg0: true,
4378		asm:          x86.AADDSD,
4379		reg: regInfo{
4380			inputs: []inputInfo{
4381				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4382				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4383			},
4384			outputs: []outputInfo{
4385				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4386			},
4387		},
4388	},
4389	{
4390		name:         "SUBSS",
4391		argLen:       2,
4392		resultInArg0: true,
4393		asm:          x86.ASUBSS,
4394		reg: regInfo{
4395			inputs: []inputInfo{
4396				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4397				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4398			},
4399			outputs: []outputInfo{
4400				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4401			},
4402		},
4403	},
4404	{
4405		name:         "SUBSD",
4406		argLen:       2,
4407		resultInArg0: true,
4408		asm:          x86.ASUBSD,
4409		reg: regInfo{
4410			inputs: []inputInfo{
4411				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4412				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4413			},
4414			outputs: []outputInfo{
4415				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4416			},
4417		},
4418	},
4419	{
4420		name:         "MULSS",
4421		argLen:       2,
4422		commutative:  true,
4423		resultInArg0: true,
4424		asm:          x86.AMULSS,
4425		reg: regInfo{
4426			inputs: []inputInfo{
4427				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4428				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4429			},
4430			outputs: []outputInfo{
4431				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4432			},
4433		},
4434	},
4435	{
4436		name:         "MULSD",
4437		argLen:       2,
4438		commutative:  true,
4439		resultInArg0: true,
4440		asm:          x86.AMULSD,
4441		reg: regInfo{
4442			inputs: []inputInfo{
4443				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4444				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4445			},
4446			outputs: []outputInfo{
4447				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4448			},
4449		},
4450	},
4451	{
4452		name:         "DIVSS",
4453		argLen:       2,
4454		resultInArg0: true,
4455		asm:          x86.ADIVSS,
4456		reg: regInfo{
4457			inputs: []inputInfo{
4458				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4459				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4460			},
4461			outputs: []outputInfo{
4462				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4463			},
4464		},
4465	},
4466	{
4467		name:         "DIVSD",
4468		argLen:       2,
4469		resultInArg0: true,
4470		asm:          x86.ADIVSD,
4471		reg: regInfo{
4472			inputs: []inputInfo{
4473				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4474				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4475			},
4476			outputs: []outputInfo{
4477				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4478			},
4479		},
4480	},
4481	{
4482		name:           "MOVSSload",
4483		auxType:        auxSymOff,
4484		argLen:         2,
4485		faultOnNilArg0: true,
4486		symEffect:      SymRead,
4487		asm:            x86.AMOVSS,
4488		reg: regInfo{
4489			inputs: []inputInfo{
4490				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4491			},
4492			outputs: []outputInfo{
4493				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4494			},
4495		},
4496	},
4497	{
4498		name:           "MOVSDload",
4499		auxType:        auxSymOff,
4500		argLen:         2,
4501		faultOnNilArg0: true,
4502		symEffect:      SymRead,
4503		asm:            x86.AMOVSD,
4504		reg: regInfo{
4505			inputs: []inputInfo{
4506				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4507			},
4508			outputs: []outputInfo{
4509				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4510			},
4511		},
4512	},
4513	{
4514		name:              "MOVSSconst",
4515		auxType:           auxFloat32,
4516		argLen:            0,
4517		rematerializeable: true,
4518		asm:               x86.AMOVSS,
4519		reg: regInfo{
4520			outputs: []outputInfo{
4521				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4522			},
4523		},
4524	},
4525	{
4526		name:              "MOVSDconst",
4527		auxType:           auxFloat64,
4528		argLen:            0,
4529		rematerializeable: true,
4530		asm:               x86.AMOVSD,
4531		reg: regInfo{
4532			outputs: []outputInfo{
4533				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4534			},
4535		},
4536	},
4537	{
4538		name:      "MOVSSloadidx1",
4539		auxType:   auxSymOff,
4540		argLen:    3,
4541		symEffect: SymRead,
4542		asm:       x86.AMOVSS,
4543		reg: regInfo{
4544			inputs: []inputInfo{
4545				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4546				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4547			},
4548			outputs: []outputInfo{
4549				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4550			},
4551		},
4552	},
4553	{
4554		name:      "MOVSSloadidx4",
4555		auxType:   auxSymOff,
4556		argLen:    3,
4557		symEffect: SymRead,
4558		asm:       x86.AMOVSS,
4559		reg: regInfo{
4560			inputs: []inputInfo{
4561				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4562				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4563			},
4564			outputs: []outputInfo{
4565				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4566			},
4567		},
4568	},
4569	{
4570		name:      "MOVSDloadidx1",
4571		auxType:   auxSymOff,
4572		argLen:    3,
4573		symEffect: SymRead,
4574		asm:       x86.AMOVSD,
4575		reg: regInfo{
4576			inputs: []inputInfo{
4577				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4578				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4579			},
4580			outputs: []outputInfo{
4581				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4582			},
4583		},
4584	},
4585	{
4586		name:      "MOVSDloadidx8",
4587		auxType:   auxSymOff,
4588		argLen:    3,
4589		symEffect: SymRead,
4590		asm:       x86.AMOVSD,
4591		reg: regInfo{
4592			inputs: []inputInfo{
4593				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4594				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4595			},
4596			outputs: []outputInfo{
4597				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4598			},
4599		},
4600	},
4601	{
4602		name:           "MOVSSstore",
4603		auxType:        auxSymOff,
4604		argLen:         3,
4605		faultOnNilArg0: true,
4606		symEffect:      SymWrite,
4607		asm:            x86.AMOVSS,
4608		reg: regInfo{
4609			inputs: []inputInfo{
4610				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4611				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4612			},
4613		},
4614	},
4615	{
4616		name:           "MOVSDstore",
4617		auxType:        auxSymOff,
4618		argLen:         3,
4619		faultOnNilArg0: true,
4620		symEffect:      SymWrite,
4621		asm:            x86.AMOVSD,
4622		reg: regInfo{
4623			inputs: []inputInfo{
4624				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4625				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4626			},
4627		},
4628	},
4629	{
4630		name:      "MOVSSstoreidx1",
4631		auxType:   auxSymOff,
4632		argLen:    4,
4633		symEffect: SymWrite,
4634		asm:       x86.AMOVSS,
4635		reg: regInfo{
4636			inputs: []inputInfo{
4637				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4638				{2, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4639				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4640			},
4641		},
4642	},
4643	{
4644		name:      "MOVSSstoreidx4",
4645		auxType:   auxSymOff,
4646		argLen:    4,
4647		symEffect: SymWrite,
4648		asm:       x86.AMOVSS,
4649		reg: regInfo{
4650			inputs: []inputInfo{
4651				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4652				{2, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4653				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4654			},
4655		},
4656	},
4657	{
4658		name:      "MOVSDstoreidx1",
4659		auxType:   auxSymOff,
4660		argLen:    4,
4661		symEffect: SymWrite,
4662		asm:       x86.AMOVSD,
4663		reg: regInfo{
4664			inputs: []inputInfo{
4665				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4666				{2, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4667				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4668			},
4669		},
4670	},
4671	{
4672		name:      "MOVSDstoreidx8",
4673		auxType:   auxSymOff,
4674		argLen:    4,
4675		symEffect: SymWrite,
4676		asm:       x86.AMOVSD,
4677		reg: regInfo{
4678			inputs: []inputInfo{
4679				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4680				{2, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4681				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4682			},
4683		},
4684	},
4685	{
4686		name:           "ADDSDmem",
4687		auxType:        auxSymOff,
4688		argLen:         3,
4689		resultInArg0:   true,
4690		faultOnNilArg1: true,
4691		symEffect:      SymRead,
4692		asm:            x86.AADDSD,
4693		reg: regInfo{
4694			inputs: []inputInfo{
4695				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4696				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4697			},
4698			outputs: []outputInfo{
4699				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4700			},
4701		},
4702	},
4703	{
4704		name:           "ADDSSmem",
4705		auxType:        auxSymOff,
4706		argLen:         3,
4707		resultInArg0:   true,
4708		faultOnNilArg1: true,
4709		symEffect:      SymRead,
4710		asm:            x86.AADDSS,
4711		reg: regInfo{
4712			inputs: []inputInfo{
4713				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4714				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4715			},
4716			outputs: []outputInfo{
4717				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4718			},
4719		},
4720	},
4721	{
4722		name:           "SUBSSmem",
4723		auxType:        auxSymOff,
4724		argLen:         3,
4725		resultInArg0:   true,
4726		faultOnNilArg1: true,
4727		symEffect:      SymRead,
4728		asm:            x86.ASUBSS,
4729		reg: regInfo{
4730			inputs: []inputInfo{
4731				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4732				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4733			},
4734			outputs: []outputInfo{
4735				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4736			},
4737		},
4738	},
4739	{
4740		name:           "SUBSDmem",
4741		auxType:        auxSymOff,
4742		argLen:         3,
4743		resultInArg0:   true,
4744		faultOnNilArg1: true,
4745		symEffect:      SymRead,
4746		asm:            x86.ASUBSD,
4747		reg: regInfo{
4748			inputs: []inputInfo{
4749				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4750				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4751			},
4752			outputs: []outputInfo{
4753				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4754			},
4755		},
4756	},
4757	{
4758		name:           "MULSSmem",
4759		auxType:        auxSymOff,
4760		argLen:         3,
4761		resultInArg0:   true,
4762		faultOnNilArg1: true,
4763		symEffect:      SymRead,
4764		asm:            x86.AMULSS,
4765		reg: regInfo{
4766			inputs: []inputInfo{
4767				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4768				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4769			},
4770			outputs: []outputInfo{
4771				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4772			},
4773		},
4774	},
4775	{
4776		name:           "MULSDmem",
4777		auxType:        auxSymOff,
4778		argLen:         3,
4779		resultInArg0:   true,
4780		faultOnNilArg1: true,
4781		symEffect:      SymRead,
4782		asm:            x86.AMULSD,
4783		reg: regInfo{
4784			inputs: []inputInfo{
4785				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4786				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
4787			},
4788			outputs: []outputInfo{
4789				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
4790			},
4791		},
4792	},
4793	{
4794		name:         "ADDQ",
4795		argLen:       2,
4796		commutative:  true,
4797		clobberFlags: true,
4798		asm:          x86.AADDQ,
4799		reg: regInfo{
4800			inputs: []inputInfo{
4801				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4802				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4803			},
4804			outputs: []outputInfo{
4805				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4806			},
4807		},
4808	},
4809	{
4810		name:         "ADDL",
4811		argLen:       2,
4812		commutative:  true,
4813		clobberFlags: true,
4814		asm:          x86.AADDL,
4815		reg: regInfo{
4816			inputs: []inputInfo{
4817				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4818				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4819			},
4820			outputs: []outputInfo{
4821				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4822			},
4823		},
4824	},
4825	{
4826		name:         "ADDQconst",
4827		auxType:      auxInt32,
4828		argLen:       1,
4829		clobberFlags: true,
4830		asm:          x86.AADDQ,
4831		reg: regInfo{
4832			inputs: []inputInfo{
4833				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4834			},
4835			outputs: []outputInfo{
4836				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4837			},
4838		},
4839	},
4840	{
4841		name:         "ADDLconst",
4842		auxType:      auxInt32,
4843		argLen:       1,
4844		clobberFlags: true,
4845		asm:          x86.AADDL,
4846		reg: regInfo{
4847			inputs: []inputInfo{
4848				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4849			},
4850			outputs: []outputInfo{
4851				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4852			},
4853		},
4854	},
4855	{
4856		name:         "SUBQ",
4857		argLen:       2,
4858		resultInArg0: true,
4859		clobberFlags: true,
4860		asm:          x86.ASUBQ,
4861		reg: regInfo{
4862			inputs: []inputInfo{
4863				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4864				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4865			},
4866			outputs: []outputInfo{
4867				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4868			},
4869		},
4870	},
4871	{
4872		name:         "SUBL",
4873		argLen:       2,
4874		resultInArg0: true,
4875		clobberFlags: true,
4876		asm:          x86.ASUBL,
4877		reg: regInfo{
4878			inputs: []inputInfo{
4879				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4880				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4881			},
4882			outputs: []outputInfo{
4883				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4884			},
4885		},
4886	},
4887	{
4888		name:         "SUBQconst",
4889		auxType:      auxInt32,
4890		argLen:       1,
4891		resultInArg0: true,
4892		clobberFlags: true,
4893		asm:          x86.ASUBQ,
4894		reg: regInfo{
4895			inputs: []inputInfo{
4896				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4897			},
4898			outputs: []outputInfo{
4899				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4900			},
4901		},
4902	},
4903	{
4904		name:         "SUBLconst",
4905		auxType:      auxInt32,
4906		argLen:       1,
4907		resultInArg0: true,
4908		clobberFlags: true,
4909		asm:          x86.ASUBL,
4910		reg: regInfo{
4911			inputs: []inputInfo{
4912				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4913			},
4914			outputs: []outputInfo{
4915				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4916			},
4917		},
4918	},
4919	{
4920		name:         "MULQ",
4921		argLen:       2,
4922		commutative:  true,
4923		resultInArg0: true,
4924		clobberFlags: true,
4925		asm:          x86.AIMULQ,
4926		reg: regInfo{
4927			inputs: []inputInfo{
4928				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4929				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4930			},
4931			outputs: []outputInfo{
4932				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4933			},
4934		},
4935	},
4936	{
4937		name:         "MULL",
4938		argLen:       2,
4939		commutative:  true,
4940		resultInArg0: true,
4941		clobberFlags: true,
4942		asm:          x86.AIMULL,
4943		reg: regInfo{
4944			inputs: []inputInfo{
4945				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4946				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4947			},
4948			outputs: []outputInfo{
4949				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4950			},
4951		},
4952	},
4953	{
4954		name:         "MULQconst",
4955		auxType:      auxInt32,
4956		argLen:       1,
4957		resultInArg0: true,
4958		clobberFlags: true,
4959		asm:          x86.AIMULQ,
4960		reg: regInfo{
4961			inputs: []inputInfo{
4962				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4963			},
4964			outputs: []outputInfo{
4965				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4966			},
4967		},
4968	},
4969	{
4970		name:         "MULLconst",
4971		auxType:      auxInt32,
4972		argLen:       1,
4973		resultInArg0: true,
4974		clobberFlags: true,
4975		asm:          x86.AIMULL,
4976		reg: regInfo{
4977			inputs: []inputInfo{
4978				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4979			},
4980			outputs: []outputInfo{
4981				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4982			},
4983		},
4984	},
4985	{
4986		name:         "HMULQ",
4987		argLen:       2,
4988		commutative:  true,
4989		clobberFlags: true,
4990		asm:          x86.AIMULQ,
4991		reg: regInfo{
4992			inputs: []inputInfo{
4993				{0, 1},     // AX
4994				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
4995			},
4996			clobbers: 1, // AX
4997			outputs: []outputInfo{
4998				{0, 4}, // DX
4999			},
5000		},
5001	},
5002	{
5003		name:         "HMULL",
5004		argLen:       2,
5005		commutative:  true,
5006		clobberFlags: true,
5007		asm:          x86.AIMULL,
5008		reg: regInfo{
5009			inputs: []inputInfo{
5010				{0, 1},     // AX
5011				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5012			},
5013			clobbers: 1, // AX
5014			outputs: []outputInfo{
5015				{0, 4}, // DX
5016			},
5017		},
5018	},
5019	{
5020		name:         "HMULQU",
5021		argLen:       2,
5022		commutative:  true,
5023		clobberFlags: true,
5024		asm:          x86.AMULQ,
5025		reg: regInfo{
5026			inputs: []inputInfo{
5027				{0, 1},     // AX
5028				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5029			},
5030			clobbers: 1, // AX
5031			outputs: []outputInfo{
5032				{0, 4}, // DX
5033			},
5034		},
5035	},
5036	{
5037		name:         "HMULLU",
5038		argLen:       2,
5039		commutative:  true,
5040		clobberFlags: true,
5041		asm:          x86.AMULL,
5042		reg: regInfo{
5043			inputs: []inputInfo{
5044				{0, 1},     // AX
5045				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5046			},
5047			clobbers: 1, // AX
5048			outputs: []outputInfo{
5049				{0, 4}, // DX
5050			},
5051		},
5052	},
5053	{
5054		name:         "AVGQU",
5055		argLen:       2,
5056		commutative:  true,
5057		resultInArg0: true,
5058		clobberFlags: true,
5059		reg: regInfo{
5060			inputs: []inputInfo{
5061				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5062				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5063			},
5064			outputs: []outputInfo{
5065				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5066			},
5067		},
5068	},
5069	{
5070		name:         "DIVQ",
5071		argLen:       2,
5072		clobberFlags: true,
5073		asm:          x86.AIDIVQ,
5074		reg: regInfo{
5075			inputs: []inputInfo{
5076				{0, 1},     // AX
5077				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5078			},
5079			outputs: []outputInfo{
5080				{0, 1}, // AX
5081				{1, 4}, // DX
5082			},
5083		},
5084	},
5085	{
5086		name:         "DIVL",
5087		argLen:       2,
5088		clobberFlags: true,
5089		asm:          x86.AIDIVL,
5090		reg: regInfo{
5091			inputs: []inputInfo{
5092				{0, 1},     // AX
5093				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5094			},
5095			outputs: []outputInfo{
5096				{0, 1}, // AX
5097				{1, 4}, // DX
5098			},
5099		},
5100	},
5101	{
5102		name:         "DIVW",
5103		argLen:       2,
5104		clobberFlags: true,
5105		asm:          x86.AIDIVW,
5106		reg: regInfo{
5107			inputs: []inputInfo{
5108				{0, 1},     // AX
5109				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5110			},
5111			outputs: []outputInfo{
5112				{0, 1}, // AX
5113				{1, 4}, // DX
5114			},
5115		},
5116	},
5117	{
5118		name:         "DIVQU",
5119		argLen:       2,
5120		clobberFlags: true,
5121		asm:          x86.ADIVQ,
5122		reg: regInfo{
5123			inputs: []inputInfo{
5124				{0, 1},     // AX
5125				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5126			},
5127			outputs: []outputInfo{
5128				{0, 1}, // AX
5129				{1, 4}, // DX
5130			},
5131		},
5132	},
5133	{
5134		name:         "DIVLU",
5135		argLen:       2,
5136		clobberFlags: true,
5137		asm:          x86.ADIVL,
5138		reg: regInfo{
5139			inputs: []inputInfo{
5140				{0, 1},     // AX
5141				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5142			},
5143			outputs: []outputInfo{
5144				{0, 1}, // AX
5145				{1, 4}, // DX
5146			},
5147		},
5148	},
5149	{
5150		name:         "DIVWU",
5151		argLen:       2,
5152		clobberFlags: true,
5153		asm:          x86.ADIVW,
5154		reg: regInfo{
5155			inputs: []inputInfo{
5156				{0, 1},     // AX
5157				{1, 65531}, // AX CX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5158			},
5159			outputs: []outputInfo{
5160				{0, 1}, // AX
5161				{1, 4}, // DX
5162			},
5163		},
5164	},
5165	{
5166		name:         "MULQU2",
5167		argLen:       2,
5168		commutative:  true,
5169		clobberFlags: true,
5170		asm:          x86.AMULQ,
5171		reg: regInfo{
5172			inputs: []inputInfo{
5173				{0, 1},     // AX
5174				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5175			},
5176			outputs: []outputInfo{
5177				{0, 4}, // DX
5178				{1, 1}, // AX
5179			},
5180		},
5181	},
5182	{
5183		name:         "DIVQU2",
5184		argLen:       3,
5185		clobberFlags: true,
5186		asm:          x86.ADIVQ,
5187		reg: regInfo{
5188			inputs: []inputInfo{
5189				{0, 4},     // DX
5190				{1, 1},     // AX
5191				{2, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5192			},
5193			outputs: []outputInfo{
5194				{0, 1}, // AX
5195				{1, 4}, // DX
5196			},
5197		},
5198	},
5199	{
5200		name:         "ANDQ",
5201		argLen:       2,
5202		commutative:  true,
5203		resultInArg0: true,
5204		clobberFlags: true,
5205		asm:          x86.AANDQ,
5206		reg: regInfo{
5207			inputs: []inputInfo{
5208				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5209				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5210			},
5211			outputs: []outputInfo{
5212				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5213			},
5214		},
5215	},
5216	{
5217		name:         "ANDL",
5218		argLen:       2,
5219		commutative:  true,
5220		resultInArg0: true,
5221		clobberFlags: true,
5222		asm:          x86.AANDL,
5223		reg: regInfo{
5224			inputs: []inputInfo{
5225				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5226				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5227			},
5228			outputs: []outputInfo{
5229				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5230			},
5231		},
5232	},
5233	{
5234		name:         "ANDQconst",
5235		auxType:      auxInt32,
5236		argLen:       1,
5237		resultInArg0: true,
5238		clobberFlags: true,
5239		asm:          x86.AANDQ,
5240		reg: regInfo{
5241			inputs: []inputInfo{
5242				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5243			},
5244			outputs: []outputInfo{
5245				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5246			},
5247		},
5248	},
5249	{
5250		name:         "ANDLconst",
5251		auxType:      auxInt32,
5252		argLen:       1,
5253		resultInArg0: true,
5254		clobberFlags: true,
5255		asm:          x86.AANDL,
5256		reg: regInfo{
5257			inputs: []inputInfo{
5258				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5259			},
5260			outputs: []outputInfo{
5261				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5262			},
5263		},
5264	},
5265	{
5266		name:         "ORQ",
5267		argLen:       2,
5268		commutative:  true,
5269		resultInArg0: true,
5270		clobberFlags: true,
5271		asm:          x86.AORQ,
5272		reg: regInfo{
5273			inputs: []inputInfo{
5274				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5275				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5276			},
5277			outputs: []outputInfo{
5278				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5279			},
5280		},
5281	},
5282	{
5283		name:         "ORL",
5284		argLen:       2,
5285		commutative:  true,
5286		resultInArg0: true,
5287		clobberFlags: true,
5288		asm:          x86.AORL,
5289		reg: regInfo{
5290			inputs: []inputInfo{
5291				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5292				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5293			},
5294			outputs: []outputInfo{
5295				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5296			},
5297		},
5298	},
5299	{
5300		name:         "ORQconst",
5301		auxType:      auxInt32,
5302		argLen:       1,
5303		resultInArg0: true,
5304		clobberFlags: true,
5305		asm:          x86.AORQ,
5306		reg: regInfo{
5307			inputs: []inputInfo{
5308				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5309			},
5310			outputs: []outputInfo{
5311				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5312			},
5313		},
5314	},
5315	{
5316		name:         "ORLconst",
5317		auxType:      auxInt32,
5318		argLen:       1,
5319		resultInArg0: true,
5320		clobberFlags: true,
5321		asm:          x86.AORL,
5322		reg: regInfo{
5323			inputs: []inputInfo{
5324				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5325			},
5326			outputs: []outputInfo{
5327				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5328			},
5329		},
5330	},
5331	{
5332		name:         "XORQ",
5333		argLen:       2,
5334		commutative:  true,
5335		resultInArg0: true,
5336		clobberFlags: true,
5337		asm:          x86.AXORQ,
5338		reg: regInfo{
5339			inputs: []inputInfo{
5340				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5341				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5342			},
5343			outputs: []outputInfo{
5344				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5345			},
5346		},
5347	},
5348	{
5349		name:         "XORL",
5350		argLen:       2,
5351		commutative:  true,
5352		resultInArg0: true,
5353		clobberFlags: true,
5354		asm:          x86.AXORL,
5355		reg: regInfo{
5356			inputs: []inputInfo{
5357				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5358				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5359			},
5360			outputs: []outputInfo{
5361				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5362			},
5363		},
5364	},
5365	{
5366		name:         "XORQconst",
5367		auxType:      auxInt32,
5368		argLen:       1,
5369		resultInArg0: true,
5370		clobberFlags: true,
5371		asm:          x86.AXORQ,
5372		reg: regInfo{
5373			inputs: []inputInfo{
5374				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5375			},
5376			outputs: []outputInfo{
5377				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5378			},
5379		},
5380	},
5381	{
5382		name:         "XORLconst",
5383		auxType:      auxInt32,
5384		argLen:       1,
5385		resultInArg0: true,
5386		clobberFlags: true,
5387		asm:          x86.AXORL,
5388		reg: regInfo{
5389			inputs: []inputInfo{
5390				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5391			},
5392			outputs: []outputInfo{
5393				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5394			},
5395		},
5396	},
5397	{
5398		name:   "CMPQ",
5399		argLen: 2,
5400		asm:    x86.ACMPQ,
5401		reg: regInfo{
5402			inputs: []inputInfo{
5403				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5404				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5405			},
5406		},
5407	},
5408	{
5409		name:   "CMPL",
5410		argLen: 2,
5411		asm:    x86.ACMPL,
5412		reg: regInfo{
5413			inputs: []inputInfo{
5414				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5415				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5416			},
5417		},
5418	},
5419	{
5420		name:   "CMPW",
5421		argLen: 2,
5422		asm:    x86.ACMPW,
5423		reg: regInfo{
5424			inputs: []inputInfo{
5425				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5426				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5427			},
5428		},
5429	},
5430	{
5431		name:   "CMPB",
5432		argLen: 2,
5433		asm:    x86.ACMPB,
5434		reg: regInfo{
5435			inputs: []inputInfo{
5436				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5437				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5438			},
5439		},
5440	},
5441	{
5442		name:    "CMPQconst",
5443		auxType: auxInt32,
5444		argLen:  1,
5445		asm:     x86.ACMPQ,
5446		reg: regInfo{
5447			inputs: []inputInfo{
5448				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5449			},
5450		},
5451	},
5452	{
5453		name:    "CMPLconst",
5454		auxType: auxInt32,
5455		argLen:  1,
5456		asm:     x86.ACMPL,
5457		reg: regInfo{
5458			inputs: []inputInfo{
5459				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5460			},
5461		},
5462	},
5463	{
5464		name:    "CMPWconst",
5465		auxType: auxInt16,
5466		argLen:  1,
5467		asm:     x86.ACMPW,
5468		reg: regInfo{
5469			inputs: []inputInfo{
5470				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5471			},
5472		},
5473	},
5474	{
5475		name:    "CMPBconst",
5476		auxType: auxInt8,
5477		argLen:  1,
5478		asm:     x86.ACMPB,
5479		reg: regInfo{
5480			inputs: []inputInfo{
5481				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5482			},
5483		},
5484	},
5485	{
5486		name:   "UCOMISS",
5487		argLen: 2,
5488		asm:    x86.AUCOMISS,
5489		reg: regInfo{
5490			inputs: []inputInfo{
5491				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
5492				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
5493			},
5494		},
5495	},
5496	{
5497		name:   "UCOMISD",
5498		argLen: 2,
5499		asm:    x86.AUCOMISD,
5500		reg: regInfo{
5501			inputs: []inputInfo{
5502				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
5503				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
5504			},
5505		},
5506	},
5507	{
5508		name:   "BTL",
5509		argLen: 2,
5510		asm:    x86.ABTL,
5511		reg: regInfo{
5512			inputs: []inputInfo{
5513				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5514				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5515			},
5516		},
5517	},
5518	{
5519		name:   "BTQ",
5520		argLen: 2,
5521		asm:    x86.ABTQ,
5522		reg: regInfo{
5523			inputs: []inputInfo{
5524				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5525				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5526			},
5527		},
5528	},
5529	{
5530		name:    "BTLconst",
5531		auxType: auxInt8,
5532		argLen:  1,
5533		asm:     x86.ABTL,
5534		reg: regInfo{
5535			inputs: []inputInfo{
5536				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5537			},
5538		},
5539	},
5540	{
5541		name:    "BTQconst",
5542		auxType: auxInt8,
5543		argLen:  1,
5544		asm:     x86.ABTQ,
5545		reg: regInfo{
5546			inputs: []inputInfo{
5547				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5548			},
5549		},
5550	},
5551	{
5552		name:        "TESTQ",
5553		argLen:      2,
5554		commutative: true,
5555		asm:         x86.ATESTQ,
5556		reg: regInfo{
5557			inputs: []inputInfo{
5558				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5559				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5560			},
5561		},
5562	},
5563	{
5564		name:        "TESTL",
5565		argLen:      2,
5566		commutative: true,
5567		asm:         x86.ATESTL,
5568		reg: regInfo{
5569			inputs: []inputInfo{
5570				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5571				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5572			},
5573		},
5574	},
5575	{
5576		name:        "TESTW",
5577		argLen:      2,
5578		commutative: true,
5579		asm:         x86.ATESTW,
5580		reg: regInfo{
5581			inputs: []inputInfo{
5582				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5583				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5584			},
5585		},
5586	},
5587	{
5588		name:        "TESTB",
5589		argLen:      2,
5590		commutative: true,
5591		asm:         x86.ATESTB,
5592		reg: regInfo{
5593			inputs: []inputInfo{
5594				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5595				{1, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5596			},
5597		},
5598	},
5599	{
5600		name:    "TESTQconst",
5601		auxType: auxInt32,
5602		argLen:  1,
5603		asm:     x86.ATESTQ,
5604		reg: regInfo{
5605			inputs: []inputInfo{
5606				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5607			},
5608		},
5609	},
5610	{
5611		name:    "TESTLconst",
5612		auxType: auxInt32,
5613		argLen:  1,
5614		asm:     x86.ATESTL,
5615		reg: regInfo{
5616			inputs: []inputInfo{
5617				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5618			},
5619		},
5620	},
5621	{
5622		name:    "TESTWconst",
5623		auxType: auxInt16,
5624		argLen:  1,
5625		asm:     x86.ATESTW,
5626		reg: regInfo{
5627			inputs: []inputInfo{
5628				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5629			},
5630		},
5631	},
5632	{
5633		name:    "TESTBconst",
5634		auxType: auxInt8,
5635		argLen:  1,
5636		asm:     x86.ATESTB,
5637		reg: regInfo{
5638			inputs: []inputInfo{
5639				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5640			},
5641		},
5642	},
5643	{
5644		name:         "SHLQ",
5645		argLen:       2,
5646		resultInArg0: true,
5647		clobberFlags: true,
5648		asm:          x86.ASHLQ,
5649		reg: regInfo{
5650			inputs: []inputInfo{
5651				{1, 2},     // CX
5652				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5653			},
5654			outputs: []outputInfo{
5655				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5656			},
5657		},
5658	},
5659	{
5660		name:         "SHLL",
5661		argLen:       2,
5662		resultInArg0: true,
5663		clobberFlags: true,
5664		asm:          x86.ASHLL,
5665		reg: regInfo{
5666			inputs: []inputInfo{
5667				{1, 2},     // CX
5668				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5669			},
5670			outputs: []outputInfo{
5671				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5672			},
5673		},
5674	},
5675	{
5676		name:         "SHLQconst",
5677		auxType:      auxInt8,
5678		argLen:       1,
5679		resultInArg0: true,
5680		clobberFlags: true,
5681		asm:          x86.ASHLQ,
5682		reg: regInfo{
5683			inputs: []inputInfo{
5684				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5685			},
5686			outputs: []outputInfo{
5687				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5688			},
5689		},
5690	},
5691	{
5692		name:         "SHLLconst",
5693		auxType:      auxInt8,
5694		argLen:       1,
5695		resultInArg0: true,
5696		clobberFlags: true,
5697		asm:          x86.ASHLL,
5698		reg: regInfo{
5699			inputs: []inputInfo{
5700				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5701			},
5702			outputs: []outputInfo{
5703				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5704			},
5705		},
5706	},
5707	{
5708		name:         "SHRQ",
5709		argLen:       2,
5710		resultInArg0: true,
5711		clobberFlags: true,
5712		asm:          x86.ASHRQ,
5713		reg: regInfo{
5714			inputs: []inputInfo{
5715				{1, 2},     // CX
5716				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5717			},
5718			outputs: []outputInfo{
5719				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5720			},
5721		},
5722	},
5723	{
5724		name:         "SHRL",
5725		argLen:       2,
5726		resultInArg0: true,
5727		clobberFlags: true,
5728		asm:          x86.ASHRL,
5729		reg: regInfo{
5730			inputs: []inputInfo{
5731				{1, 2},     // CX
5732				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5733			},
5734			outputs: []outputInfo{
5735				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5736			},
5737		},
5738	},
5739	{
5740		name:         "SHRW",
5741		argLen:       2,
5742		resultInArg0: true,
5743		clobberFlags: true,
5744		asm:          x86.ASHRW,
5745		reg: regInfo{
5746			inputs: []inputInfo{
5747				{1, 2},     // CX
5748				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5749			},
5750			outputs: []outputInfo{
5751				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5752			},
5753		},
5754	},
5755	{
5756		name:         "SHRB",
5757		argLen:       2,
5758		resultInArg0: true,
5759		clobberFlags: true,
5760		asm:          x86.ASHRB,
5761		reg: regInfo{
5762			inputs: []inputInfo{
5763				{1, 2},     // CX
5764				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5765			},
5766			outputs: []outputInfo{
5767				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5768			},
5769		},
5770	},
5771	{
5772		name:         "SHRQconst",
5773		auxType:      auxInt8,
5774		argLen:       1,
5775		resultInArg0: true,
5776		clobberFlags: true,
5777		asm:          x86.ASHRQ,
5778		reg: regInfo{
5779			inputs: []inputInfo{
5780				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5781			},
5782			outputs: []outputInfo{
5783				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5784			},
5785		},
5786	},
5787	{
5788		name:         "SHRLconst",
5789		auxType:      auxInt8,
5790		argLen:       1,
5791		resultInArg0: true,
5792		clobberFlags: true,
5793		asm:          x86.ASHRL,
5794		reg: regInfo{
5795			inputs: []inputInfo{
5796				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5797			},
5798			outputs: []outputInfo{
5799				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5800			},
5801		},
5802	},
5803	{
5804		name:         "SHRWconst",
5805		auxType:      auxInt8,
5806		argLen:       1,
5807		resultInArg0: true,
5808		clobberFlags: true,
5809		asm:          x86.ASHRW,
5810		reg: regInfo{
5811			inputs: []inputInfo{
5812				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5813			},
5814			outputs: []outputInfo{
5815				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5816			},
5817		},
5818	},
5819	{
5820		name:         "SHRBconst",
5821		auxType:      auxInt8,
5822		argLen:       1,
5823		resultInArg0: true,
5824		clobberFlags: true,
5825		asm:          x86.ASHRB,
5826		reg: regInfo{
5827			inputs: []inputInfo{
5828				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5829			},
5830			outputs: []outputInfo{
5831				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5832			},
5833		},
5834	},
5835	{
5836		name:         "SARQ",
5837		argLen:       2,
5838		resultInArg0: true,
5839		clobberFlags: true,
5840		asm:          x86.ASARQ,
5841		reg: regInfo{
5842			inputs: []inputInfo{
5843				{1, 2},     // CX
5844				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5845			},
5846			outputs: []outputInfo{
5847				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5848			},
5849		},
5850	},
5851	{
5852		name:         "SARL",
5853		argLen:       2,
5854		resultInArg0: true,
5855		clobberFlags: true,
5856		asm:          x86.ASARL,
5857		reg: regInfo{
5858			inputs: []inputInfo{
5859				{1, 2},     // CX
5860				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5861			},
5862			outputs: []outputInfo{
5863				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5864			},
5865		},
5866	},
5867	{
5868		name:         "SARW",
5869		argLen:       2,
5870		resultInArg0: true,
5871		clobberFlags: true,
5872		asm:          x86.ASARW,
5873		reg: regInfo{
5874			inputs: []inputInfo{
5875				{1, 2},     // CX
5876				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5877			},
5878			outputs: []outputInfo{
5879				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5880			},
5881		},
5882	},
5883	{
5884		name:         "SARB",
5885		argLen:       2,
5886		resultInArg0: true,
5887		clobberFlags: true,
5888		asm:          x86.ASARB,
5889		reg: regInfo{
5890			inputs: []inputInfo{
5891				{1, 2},     // CX
5892				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5893			},
5894			outputs: []outputInfo{
5895				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5896			},
5897		},
5898	},
5899	{
5900		name:         "SARQconst",
5901		auxType:      auxInt8,
5902		argLen:       1,
5903		resultInArg0: true,
5904		clobberFlags: true,
5905		asm:          x86.ASARQ,
5906		reg: regInfo{
5907			inputs: []inputInfo{
5908				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5909			},
5910			outputs: []outputInfo{
5911				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5912			},
5913		},
5914	},
5915	{
5916		name:         "SARLconst",
5917		auxType:      auxInt8,
5918		argLen:       1,
5919		resultInArg0: true,
5920		clobberFlags: true,
5921		asm:          x86.ASARL,
5922		reg: regInfo{
5923			inputs: []inputInfo{
5924				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5925			},
5926			outputs: []outputInfo{
5927				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5928			},
5929		},
5930	},
5931	{
5932		name:         "SARWconst",
5933		auxType:      auxInt8,
5934		argLen:       1,
5935		resultInArg0: true,
5936		clobberFlags: true,
5937		asm:          x86.ASARW,
5938		reg: regInfo{
5939			inputs: []inputInfo{
5940				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5941			},
5942			outputs: []outputInfo{
5943				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5944			},
5945		},
5946	},
5947	{
5948		name:         "SARBconst",
5949		auxType:      auxInt8,
5950		argLen:       1,
5951		resultInArg0: true,
5952		clobberFlags: true,
5953		asm:          x86.ASARB,
5954		reg: regInfo{
5955			inputs: []inputInfo{
5956				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5957			},
5958			outputs: []outputInfo{
5959				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5960			},
5961		},
5962	},
5963	{
5964		name:         "ROLQ",
5965		argLen:       2,
5966		resultInArg0: true,
5967		clobberFlags: true,
5968		asm:          x86.AROLQ,
5969		reg: regInfo{
5970			inputs: []inputInfo{
5971				{1, 2},     // CX
5972				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5973			},
5974			outputs: []outputInfo{
5975				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5976			},
5977		},
5978	},
5979	{
5980		name:         "ROLL",
5981		argLen:       2,
5982		resultInArg0: true,
5983		clobberFlags: true,
5984		asm:          x86.AROLL,
5985		reg: regInfo{
5986			inputs: []inputInfo{
5987				{1, 2},     // CX
5988				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5989			},
5990			outputs: []outputInfo{
5991				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
5992			},
5993		},
5994	},
5995	{
5996		name:         "ROLW",
5997		argLen:       2,
5998		resultInArg0: true,
5999		clobberFlags: true,
6000		asm:          x86.AROLW,
6001		reg: regInfo{
6002			inputs: []inputInfo{
6003				{1, 2},     // CX
6004				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6005			},
6006			outputs: []outputInfo{
6007				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6008			},
6009		},
6010	},
6011	{
6012		name:         "ROLB",
6013		argLen:       2,
6014		resultInArg0: true,
6015		clobberFlags: true,
6016		asm:          x86.AROLB,
6017		reg: regInfo{
6018			inputs: []inputInfo{
6019				{1, 2},     // CX
6020				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6021			},
6022			outputs: []outputInfo{
6023				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6024			},
6025		},
6026	},
6027	{
6028		name:         "RORQ",
6029		argLen:       2,
6030		resultInArg0: true,
6031		clobberFlags: true,
6032		asm:          x86.ARORQ,
6033		reg: regInfo{
6034			inputs: []inputInfo{
6035				{1, 2},     // CX
6036				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6037			},
6038			outputs: []outputInfo{
6039				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6040			},
6041		},
6042	},
6043	{
6044		name:         "RORL",
6045		argLen:       2,
6046		resultInArg0: true,
6047		clobberFlags: true,
6048		asm:          x86.ARORL,
6049		reg: regInfo{
6050			inputs: []inputInfo{
6051				{1, 2},     // CX
6052				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6053			},
6054			outputs: []outputInfo{
6055				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6056			},
6057		},
6058	},
6059	{
6060		name:         "RORW",
6061		argLen:       2,
6062		resultInArg0: true,
6063		clobberFlags: true,
6064		asm:          x86.ARORW,
6065		reg: regInfo{
6066			inputs: []inputInfo{
6067				{1, 2},     // CX
6068				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6069			},
6070			outputs: []outputInfo{
6071				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6072			},
6073		},
6074	},
6075	{
6076		name:         "RORB",
6077		argLen:       2,
6078		resultInArg0: true,
6079		clobberFlags: true,
6080		asm:          x86.ARORB,
6081		reg: regInfo{
6082			inputs: []inputInfo{
6083				{1, 2},     // CX
6084				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6085			},
6086			outputs: []outputInfo{
6087				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6088			},
6089		},
6090	},
6091	{
6092		name:         "ROLQconst",
6093		auxType:      auxInt8,
6094		argLen:       1,
6095		resultInArg0: true,
6096		clobberFlags: true,
6097		asm:          x86.AROLQ,
6098		reg: regInfo{
6099			inputs: []inputInfo{
6100				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6101			},
6102			outputs: []outputInfo{
6103				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6104			},
6105		},
6106	},
6107	{
6108		name:         "ROLLconst",
6109		auxType:      auxInt8,
6110		argLen:       1,
6111		resultInArg0: true,
6112		clobberFlags: true,
6113		asm:          x86.AROLL,
6114		reg: regInfo{
6115			inputs: []inputInfo{
6116				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6117			},
6118			outputs: []outputInfo{
6119				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6120			},
6121		},
6122	},
6123	{
6124		name:         "ROLWconst",
6125		auxType:      auxInt8,
6126		argLen:       1,
6127		resultInArg0: true,
6128		clobberFlags: true,
6129		asm:          x86.AROLW,
6130		reg: regInfo{
6131			inputs: []inputInfo{
6132				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6133			},
6134			outputs: []outputInfo{
6135				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6136			},
6137		},
6138	},
6139	{
6140		name:         "ROLBconst",
6141		auxType:      auxInt8,
6142		argLen:       1,
6143		resultInArg0: true,
6144		clobberFlags: true,
6145		asm:          x86.AROLB,
6146		reg: regInfo{
6147			inputs: []inputInfo{
6148				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6149			},
6150			outputs: []outputInfo{
6151				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6152			},
6153		},
6154	},
6155	{
6156		name:           "ADDLmem",
6157		auxType:        auxSymOff,
6158		argLen:         3,
6159		resultInArg0:   true,
6160		clobberFlags:   true,
6161		faultOnNilArg1: true,
6162		symEffect:      SymRead,
6163		asm:            x86.AADDL,
6164		reg: regInfo{
6165			inputs: []inputInfo{
6166				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6167				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6168			},
6169			outputs: []outputInfo{
6170				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6171			},
6172		},
6173	},
6174	{
6175		name:           "ADDQmem",
6176		auxType:        auxSymOff,
6177		argLen:         3,
6178		resultInArg0:   true,
6179		clobberFlags:   true,
6180		faultOnNilArg1: true,
6181		symEffect:      SymRead,
6182		asm:            x86.AADDQ,
6183		reg: regInfo{
6184			inputs: []inputInfo{
6185				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6186				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6187			},
6188			outputs: []outputInfo{
6189				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6190			},
6191		},
6192	},
6193	{
6194		name:           "SUBQmem",
6195		auxType:        auxSymOff,
6196		argLen:         3,
6197		resultInArg0:   true,
6198		clobberFlags:   true,
6199		faultOnNilArg1: true,
6200		symEffect:      SymRead,
6201		asm:            x86.ASUBQ,
6202		reg: regInfo{
6203			inputs: []inputInfo{
6204				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6205				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6206			},
6207			outputs: []outputInfo{
6208				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6209			},
6210		},
6211	},
6212	{
6213		name:           "SUBLmem",
6214		auxType:        auxSymOff,
6215		argLen:         3,
6216		resultInArg0:   true,
6217		clobberFlags:   true,
6218		faultOnNilArg1: true,
6219		symEffect:      SymRead,
6220		asm:            x86.ASUBL,
6221		reg: regInfo{
6222			inputs: []inputInfo{
6223				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6224				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6225			},
6226			outputs: []outputInfo{
6227				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6228			},
6229		},
6230	},
6231	{
6232		name:           "ANDLmem",
6233		auxType:        auxSymOff,
6234		argLen:         3,
6235		resultInArg0:   true,
6236		clobberFlags:   true,
6237		faultOnNilArg1: true,
6238		symEffect:      SymRead,
6239		asm:            x86.AANDL,
6240		reg: regInfo{
6241			inputs: []inputInfo{
6242				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6243				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6244			},
6245			outputs: []outputInfo{
6246				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6247			},
6248		},
6249	},
6250	{
6251		name:           "ANDQmem",
6252		auxType:        auxSymOff,
6253		argLen:         3,
6254		resultInArg0:   true,
6255		clobberFlags:   true,
6256		faultOnNilArg1: true,
6257		symEffect:      SymRead,
6258		asm:            x86.AANDQ,
6259		reg: regInfo{
6260			inputs: []inputInfo{
6261				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6262				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6263			},
6264			outputs: []outputInfo{
6265				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6266			},
6267		},
6268	},
6269	{
6270		name:           "ORQmem",
6271		auxType:        auxSymOff,
6272		argLen:         3,
6273		resultInArg0:   true,
6274		clobberFlags:   true,
6275		faultOnNilArg1: true,
6276		symEffect:      SymRead,
6277		asm:            x86.AORQ,
6278		reg: regInfo{
6279			inputs: []inputInfo{
6280				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6281				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6282			},
6283			outputs: []outputInfo{
6284				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6285			},
6286		},
6287	},
6288	{
6289		name:           "ORLmem",
6290		auxType:        auxSymOff,
6291		argLen:         3,
6292		resultInArg0:   true,
6293		clobberFlags:   true,
6294		faultOnNilArg1: true,
6295		symEffect:      SymRead,
6296		asm:            x86.AORL,
6297		reg: regInfo{
6298			inputs: []inputInfo{
6299				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6300				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6301			},
6302			outputs: []outputInfo{
6303				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6304			},
6305		},
6306	},
6307	{
6308		name:           "XORQmem",
6309		auxType:        auxSymOff,
6310		argLen:         3,
6311		resultInArg0:   true,
6312		clobberFlags:   true,
6313		faultOnNilArg1: true,
6314		symEffect:      SymRead,
6315		asm:            x86.AXORQ,
6316		reg: regInfo{
6317			inputs: []inputInfo{
6318				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6319				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6320			},
6321			outputs: []outputInfo{
6322				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6323			},
6324		},
6325	},
6326	{
6327		name:           "XORLmem",
6328		auxType:        auxSymOff,
6329		argLen:         3,
6330		resultInArg0:   true,
6331		clobberFlags:   true,
6332		faultOnNilArg1: true,
6333		symEffect:      SymRead,
6334		asm:            x86.AXORL,
6335		reg: regInfo{
6336			inputs: []inputInfo{
6337				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6338				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
6339			},
6340			outputs: []outputInfo{
6341				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6342			},
6343		},
6344	},
6345	{
6346		name:         "NEGQ",
6347		argLen:       1,
6348		resultInArg0: true,
6349		clobberFlags: true,
6350		asm:          x86.ANEGQ,
6351		reg: regInfo{
6352			inputs: []inputInfo{
6353				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6354			},
6355			outputs: []outputInfo{
6356				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6357			},
6358		},
6359	},
6360	{
6361		name:         "NEGL",
6362		argLen:       1,
6363		resultInArg0: true,
6364		clobberFlags: true,
6365		asm:          x86.ANEGL,
6366		reg: regInfo{
6367			inputs: []inputInfo{
6368				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6369			},
6370			outputs: []outputInfo{
6371				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6372			},
6373		},
6374	},
6375	{
6376		name:         "NOTQ",
6377		argLen:       1,
6378		resultInArg0: true,
6379		clobberFlags: true,
6380		asm:          x86.ANOTQ,
6381		reg: regInfo{
6382			inputs: []inputInfo{
6383				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6384			},
6385			outputs: []outputInfo{
6386				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6387			},
6388		},
6389	},
6390	{
6391		name:         "NOTL",
6392		argLen:       1,
6393		resultInArg0: true,
6394		clobberFlags: true,
6395		asm:          x86.ANOTL,
6396		reg: regInfo{
6397			inputs: []inputInfo{
6398				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6399			},
6400			outputs: []outputInfo{
6401				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6402			},
6403		},
6404	},
6405	{
6406		name:   "BSFQ",
6407		argLen: 1,
6408		asm:    x86.ABSFQ,
6409		reg: regInfo{
6410			inputs: []inputInfo{
6411				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6412			},
6413			outputs: []outputInfo{
6414				{1, 0},
6415				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6416			},
6417		},
6418	},
6419	{
6420		name:   "BSFL",
6421		argLen: 1,
6422		asm:    x86.ABSFL,
6423		reg: regInfo{
6424			inputs: []inputInfo{
6425				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6426			},
6427			outputs: []outputInfo{
6428				{1, 0},
6429				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6430			},
6431		},
6432	},
6433	{
6434		name:   "BSRQ",
6435		argLen: 1,
6436		asm:    x86.ABSRQ,
6437		reg: regInfo{
6438			inputs: []inputInfo{
6439				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6440			},
6441			outputs: []outputInfo{
6442				{1, 0},
6443				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6444			},
6445		},
6446	},
6447	{
6448		name:   "BSRL",
6449		argLen: 1,
6450		asm:    x86.ABSRL,
6451		reg: regInfo{
6452			inputs: []inputInfo{
6453				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6454			},
6455			outputs: []outputInfo{
6456				{1, 0},
6457				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6458			},
6459		},
6460	},
6461	{
6462		name:         "CMOVQEQ",
6463		argLen:       3,
6464		resultInArg0: true,
6465		asm:          x86.ACMOVQEQ,
6466		reg: regInfo{
6467			inputs: []inputInfo{
6468				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6469				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6470			},
6471			outputs: []outputInfo{
6472				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6473			},
6474		},
6475	},
6476	{
6477		name:         "CMOVLEQ",
6478		argLen:       3,
6479		resultInArg0: true,
6480		asm:          x86.ACMOVLEQ,
6481		reg: regInfo{
6482			inputs: []inputInfo{
6483				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6484				{1, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6485			},
6486			outputs: []outputInfo{
6487				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6488			},
6489		},
6490	},
6491	{
6492		name:         "BSWAPQ",
6493		argLen:       1,
6494		resultInArg0: true,
6495		clobberFlags: true,
6496		asm:          x86.ABSWAPQ,
6497		reg: regInfo{
6498			inputs: []inputInfo{
6499				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6500			},
6501			outputs: []outputInfo{
6502				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6503			},
6504		},
6505	},
6506	{
6507		name:         "BSWAPL",
6508		argLen:       1,
6509		resultInArg0: true,
6510		clobberFlags: true,
6511		asm:          x86.ABSWAPL,
6512		reg: regInfo{
6513			inputs: []inputInfo{
6514				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6515			},
6516			outputs: []outputInfo{
6517				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6518			},
6519		},
6520	},
6521	{
6522		name:         "POPCNTQ",
6523		argLen:       1,
6524		clobberFlags: true,
6525		asm:          x86.APOPCNTQ,
6526		reg: regInfo{
6527			inputs: []inputInfo{
6528				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6529			},
6530			outputs: []outputInfo{
6531				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6532			},
6533		},
6534	},
6535	{
6536		name:         "POPCNTL",
6537		argLen:       1,
6538		clobberFlags: true,
6539		asm:          x86.APOPCNTL,
6540		reg: regInfo{
6541			inputs: []inputInfo{
6542				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6543			},
6544			outputs: []outputInfo{
6545				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6546			},
6547		},
6548	},
6549	{
6550		name:   "SQRTSD",
6551		argLen: 1,
6552		asm:    x86.ASQRTSD,
6553		reg: regInfo{
6554			inputs: []inputInfo{
6555				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6556			},
6557			outputs: []outputInfo{
6558				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6559			},
6560		},
6561	},
6562	{
6563		name:   "SBBQcarrymask",
6564		argLen: 1,
6565		asm:    x86.ASBBQ,
6566		reg: regInfo{
6567			outputs: []outputInfo{
6568				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6569			},
6570		},
6571	},
6572	{
6573		name:   "SBBLcarrymask",
6574		argLen: 1,
6575		asm:    x86.ASBBL,
6576		reg: regInfo{
6577			outputs: []outputInfo{
6578				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6579			},
6580		},
6581	},
6582	{
6583		name:   "SETEQ",
6584		argLen: 1,
6585		asm:    x86.ASETEQ,
6586		reg: regInfo{
6587			outputs: []outputInfo{
6588				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6589			},
6590		},
6591	},
6592	{
6593		name:   "SETNE",
6594		argLen: 1,
6595		asm:    x86.ASETNE,
6596		reg: regInfo{
6597			outputs: []outputInfo{
6598				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6599			},
6600		},
6601	},
6602	{
6603		name:   "SETL",
6604		argLen: 1,
6605		asm:    x86.ASETLT,
6606		reg: regInfo{
6607			outputs: []outputInfo{
6608				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6609			},
6610		},
6611	},
6612	{
6613		name:   "SETLE",
6614		argLen: 1,
6615		asm:    x86.ASETLE,
6616		reg: regInfo{
6617			outputs: []outputInfo{
6618				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6619			},
6620		},
6621	},
6622	{
6623		name:   "SETG",
6624		argLen: 1,
6625		asm:    x86.ASETGT,
6626		reg: regInfo{
6627			outputs: []outputInfo{
6628				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6629			},
6630		},
6631	},
6632	{
6633		name:   "SETGE",
6634		argLen: 1,
6635		asm:    x86.ASETGE,
6636		reg: regInfo{
6637			outputs: []outputInfo{
6638				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6639			},
6640		},
6641	},
6642	{
6643		name:   "SETB",
6644		argLen: 1,
6645		asm:    x86.ASETCS,
6646		reg: regInfo{
6647			outputs: []outputInfo{
6648				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6649			},
6650		},
6651	},
6652	{
6653		name:   "SETBE",
6654		argLen: 1,
6655		asm:    x86.ASETLS,
6656		reg: regInfo{
6657			outputs: []outputInfo{
6658				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6659			},
6660		},
6661	},
6662	{
6663		name:   "SETA",
6664		argLen: 1,
6665		asm:    x86.ASETHI,
6666		reg: regInfo{
6667			outputs: []outputInfo{
6668				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6669			},
6670		},
6671	},
6672	{
6673		name:   "SETAE",
6674		argLen: 1,
6675		asm:    x86.ASETCC,
6676		reg: regInfo{
6677			outputs: []outputInfo{
6678				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6679			},
6680		},
6681	},
6682	{
6683		name:         "SETEQF",
6684		argLen:       1,
6685		clobberFlags: true,
6686		asm:          x86.ASETEQ,
6687		reg: regInfo{
6688			clobbers: 1, // AX
6689			outputs: []outputInfo{
6690				{0, 65518}, // CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6691			},
6692		},
6693	},
6694	{
6695		name:         "SETNEF",
6696		argLen:       1,
6697		clobberFlags: true,
6698		asm:          x86.ASETNE,
6699		reg: regInfo{
6700			clobbers: 1, // AX
6701			outputs: []outputInfo{
6702				{0, 65518}, // CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6703			},
6704		},
6705	},
6706	{
6707		name:   "SETORD",
6708		argLen: 1,
6709		asm:    x86.ASETPC,
6710		reg: regInfo{
6711			outputs: []outputInfo{
6712				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6713			},
6714		},
6715	},
6716	{
6717		name:   "SETNAN",
6718		argLen: 1,
6719		asm:    x86.ASETPS,
6720		reg: regInfo{
6721			outputs: []outputInfo{
6722				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6723			},
6724		},
6725	},
6726	{
6727		name:   "SETGF",
6728		argLen: 1,
6729		asm:    x86.ASETHI,
6730		reg: regInfo{
6731			outputs: []outputInfo{
6732				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6733			},
6734		},
6735	},
6736	{
6737		name:   "SETGEF",
6738		argLen: 1,
6739		asm:    x86.ASETCC,
6740		reg: regInfo{
6741			outputs: []outputInfo{
6742				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6743			},
6744		},
6745	},
6746	{
6747		name:   "MOVBQSX",
6748		argLen: 1,
6749		asm:    x86.AMOVBQSX,
6750		reg: regInfo{
6751			inputs: []inputInfo{
6752				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6753			},
6754			outputs: []outputInfo{
6755				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6756			},
6757		},
6758	},
6759	{
6760		name:   "MOVBQZX",
6761		argLen: 1,
6762		asm:    x86.AMOVBLZX,
6763		reg: regInfo{
6764			inputs: []inputInfo{
6765				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6766			},
6767			outputs: []outputInfo{
6768				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6769			},
6770		},
6771	},
6772	{
6773		name:   "MOVWQSX",
6774		argLen: 1,
6775		asm:    x86.AMOVWQSX,
6776		reg: regInfo{
6777			inputs: []inputInfo{
6778				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6779			},
6780			outputs: []outputInfo{
6781				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6782			},
6783		},
6784	},
6785	{
6786		name:   "MOVWQZX",
6787		argLen: 1,
6788		asm:    x86.AMOVWLZX,
6789		reg: regInfo{
6790			inputs: []inputInfo{
6791				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6792			},
6793			outputs: []outputInfo{
6794				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6795			},
6796		},
6797	},
6798	{
6799		name:   "MOVLQSX",
6800		argLen: 1,
6801		asm:    x86.AMOVLQSX,
6802		reg: regInfo{
6803			inputs: []inputInfo{
6804				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6805			},
6806			outputs: []outputInfo{
6807				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6808			},
6809		},
6810	},
6811	{
6812		name:   "MOVLQZX",
6813		argLen: 1,
6814		asm:    x86.AMOVL,
6815		reg: regInfo{
6816			inputs: []inputInfo{
6817				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6818			},
6819			outputs: []outputInfo{
6820				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6821			},
6822		},
6823	},
6824	{
6825		name:              "MOVLconst",
6826		auxType:           auxInt32,
6827		argLen:            0,
6828		rematerializeable: true,
6829		asm:               x86.AMOVL,
6830		reg: regInfo{
6831			outputs: []outputInfo{
6832				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6833			},
6834		},
6835	},
6836	{
6837		name:              "MOVQconst",
6838		auxType:           auxInt64,
6839		argLen:            0,
6840		rematerializeable: true,
6841		asm:               x86.AMOVQ,
6842		reg: regInfo{
6843			outputs: []outputInfo{
6844				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6845			},
6846		},
6847	},
6848	{
6849		name:   "CVTTSD2SL",
6850		argLen: 1,
6851		asm:    x86.ACVTTSD2SL,
6852		reg: regInfo{
6853			inputs: []inputInfo{
6854				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6855			},
6856			outputs: []outputInfo{
6857				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6858			},
6859		},
6860	},
6861	{
6862		name:   "CVTTSD2SQ",
6863		argLen: 1,
6864		asm:    x86.ACVTTSD2SQ,
6865		reg: regInfo{
6866			inputs: []inputInfo{
6867				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6868			},
6869			outputs: []outputInfo{
6870				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6871			},
6872		},
6873	},
6874	{
6875		name:   "CVTTSS2SL",
6876		argLen: 1,
6877		asm:    x86.ACVTTSS2SL,
6878		reg: regInfo{
6879			inputs: []inputInfo{
6880				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6881			},
6882			outputs: []outputInfo{
6883				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6884			},
6885		},
6886	},
6887	{
6888		name:   "CVTTSS2SQ",
6889		argLen: 1,
6890		asm:    x86.ACVTTSS2SQ,
6891		reg: regInfo{
6892			inputs: []inputInfo{
6893				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6894			},
6895			outputs: []outputInfo{
6896				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6897			},
6898		},
6899	},
6900	{
6901		name:   "CVTSL2SS",
6902		argLen: 1,
6903		asm:    x86.ACVTSL2SS,
6904		reg: regInfo{
6905			inputs: []inputInfo{
6906				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6907			},
6908			outputs: []outputInfo{
6909				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6910			},
6911		},
6912	},
6913	{
6914		name:   "CVTSL2SD",
6915		argLen: 1,
6916		asm:    x86.ACVTSL2SD,
6917		reg: regInfo{
6918			inputs: []inputInfo{
6919				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6920			},
6921			outputs: []outputInfo{
6922				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6923			},
6924		},
6925	},
6926	{
6927		name:   "CVTSQ2SS",
6928		argLen: 1,
6929		asm:    x86.ACVTSQ2SS,
6930		reg: regInfo{
6931			inputs: []inputInfo{
6932				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6933			},
6934			outputs: []outputInfo{
6935				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6936			},
6937		},
6938	},
6939	{
6940		name:   "CVTSQ2SD",
6941		argLen: 1,
6942		asm:    x86.ACVTSQ2SD,
6943		reg: regInfo{
6944			inputs: []inputInfo{
6945				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
6946			},
6947			outputs: []outputInfo{
6948				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6949			},
6950		},
6951	},
6952	{
6953		name:   "CVTSD2SS",
6954		argLen: 1,
6955		asm:    x86.ACVTSD2SS,
6956		reg: regInfo{
6957			inputs: []inputInfo{
6958				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6959			},
6960			outputs: []outputInfo{
6961				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6962			},
6963		},
6964	},
6965	{
6966		name:   "CVTSS2SD",
6967		argLen: 1,
6968		asm:    x86.ACVTSS2SD,
6969		reg: regInfo{
6970			inputs: []inputInfo{
6971				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6972			},
6973			outputs: []outputInfo{
6974				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6975			},
6976		},
6977	},
6978	{
6979		name:         "PXOR",
6980		argLen:       2,
6981		commutative:  true,
6982		resultInArg0: true,
6983		asm:          x86.APXOR,
6984		reg: regInfo{
6985			inputs: []inputInfo{
6986				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6987				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6988			},
6989			outputs: []outputInfo{
6990				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
6991			},
6992		},
6993	},
6994	{
6995		name:              "LEAQ",
6996		auxType:           auxSymOff,
6997		argLen:            1,
6998		rematerializeable: true,
6999		symEffect:         SymAddr,
7000		asm:               x86.ALEAQ,
7001		reg: regInfo{
7002			inputs: []inputInfo{
7003				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7004			},
7005			outputs: []outputInfo{
7006				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7007			},
7008		},
7009	},
7010	{
7011		name:        "LEAQ1",
7012		auxType:     auxSymOff,
7013		argLen:      2,
7014		commutative: true,
7015		symEffect:   SymAddr,
7016		reg: regInfo{
7017			inputs: []inputInfo{
7018				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7019				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7020			},
7021			outputs: []outputInfo{
7022				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7023			},
7024		},
7025	},
7026	{
7027		name:      "LEAQ2",
7028		auxType:   auxSymOff,
7029		argLen:    2,
7030		symEffect: SymAddr,
7031		reg: regInfo{
7032			inputs: []inputInfo{
7033				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7034				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7035			},
7036			outputs: []outputInfo{
7037				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7038			},
7039		},
7040	},
7041	{
7042		name:      "LEAQ4",
7043		auxType:   auxSymOff,
7044		argLen:    2,
7045		symEffect: SymAddr,
7046		reg: regInfo{
7047			inputs: []inputInfo{
7048				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7049				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7050			},
7051			outputs: []outputInfo{
7052				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7053			},
7054		},
7055	},
7056	{
7057		name:      "LEAQ8",
7058		auxType:   auxSymOff,
7059		argLen:    2,
7060		symEffect: SymAddr,
7061		reg: regInfo{
7062			inputs: []inputInfo{
7063				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7064				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7065			},
7066			outputs: []outputInfo{
7067				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7068			},
7069		},
7070	},
7071	{
7072		name:              "LEAL",
7073		auxType:           auxSymOff,
7074		argLen:            1,
7075		rematerializeable: true,
7076		symEffect:         SymAddr,
7077		asm:               x86.ALEAL,
7078		reg: regInfo{
7079			inputs: []inputInfo{
7080				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7081			},
7082			outputs: []outputInfo{
7083				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7084			},
7085		},
7086	},
7087	{
7088		name:           "MOVBload",
7089		auxType:        auxSymOff,
7090		argLen:         2,
7091		faultOnNilArg0: true,
7092		symEffect:      SymRead,
7093		asm:            x86.AMOVBLZX,
7094		reg: regInfo{
7095			inputs: []inputInfo{
7096				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7097			},
7098			outputs: []outputInfo{
7099				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7100			},
7101		},
7102	},
7103	{
7104		name:           "MOVBQSXload",
7105		auxType:        auxSymOff,
7106		argLen:         2,
7107		faultOnNilArg0: true,
7108		symEffect:      SymRead,
7109		asm:            x86.AMOVBQSX,
7110		reg: regInfo{
7111			inputs: []inputInfo{
7112				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7113			},
7114			outputs: []outputInfo{
7115				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7116			},
7117		},
7118	},
7119	{
7120		name:           "MOVWload",
7121		auxType:        auxSymOff,
7122		argLen:         2,
7123		faultOnNilArg0: true,
7124		symEffect:      SymRead,
7125		asm:            x86.AMOVWLZX,
7126		reg: regInfo{
7127			inputs: []inputInfo{
7128				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7129			},
7130			outputs: []outputInfo{
7131				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7132			},
7133		},
7134	},
7135	{
7136		name:           "MOVWQSXload",
7137		auxType:        auxSymOff,
7138		argLen:         2,
7139		faultOnNilArg0: true,
7140		symEffect:      SymRead,
7141		asm:            x86.AMOVWQSX,
7142		reg: regInfo{
7143			inputs: []inputInfo{
7144				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7145			},
7146			outputs: []outputInfo{
7147				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7148			},
7149		},
7150	},
7151	{
7152		name:           "MOVLload",
7153		auxType:        auxSymOff,
7154		argLen:         2,
7155		faultOnNilArg0: true,
7156		symEffect:      SymRead,
7157		asm:            x86.AMOVL,
7158		reg: regInfo{
7159			inputs: []inputInfo{
7160				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7161			},
7162			outputs: []outputInfo{
7163				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7164			},
7165		},
7166	},
7167	{
7168		name:           "MOVLQSXload",
7169		auxType:        auxSymOff,
7170		argLen:         2,
7171		faultOnNilArg0: true,
7172		symEffect:      SymRead,
7173		asm:            x86.AMOVLQSX,
7174		reg: regInfo{
7175			inputs: []inputInfo{
7176				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7177			},
7178			outputs: []outputInfo{
7179				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7180			},
7181		},
7182	},
7183	{
7184		name:           "MOVQload",
7185		auxType:        auxSymOff,
7186		argLen:         2,
7187		faultOnNilArg0: true,
7188		symEffect:      SymRead,
7189		asm:            x86.AMOVQ,
7190		reg: regInfo{
7191			inputs: []inputInfo{
7192				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7193			},
7194			outputs: []outputInfo{
7195				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7196			},
7197		},
7198	},
7199	{
7200		name:           "MOVBstore",
7201		auxType:        auxSymOff,
7202		argLen:         3,
7203		faultOnNilArg0: true,
7204		symEffect:      SymWrite,
7205		asm:            x86.AMOVB,
7206		reg: regInfo{
7207			inputs: []inputInfo{
7208				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7209				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7210			},
7211		},
7212	},
7213	{
7214		name:           "MOVWstore",
7215		auxType:        auxSymOff,
7216		argLen:         3,
7217		faultOnNilArg0: true,
7218		symEffect:      SymWrite,
7219		asm:            x86.AMOVW,
7220		reg: regInfo{
7221			inputs: []inputInfo{
7222				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7223				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7224			},
7225		},
7226	},
7227	{
7228		name:           "MOVLstore",
7229		auxType:        auxSymOff,
7230		argLen:         3,
7231		faultOnNilArg0: true,
7232		symEffect:      SymWrite,
7233		asm:            x86.AMOVL,
7234		reg: regInfo{
7235			inputs: []inputInfo{
7236				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7237				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7238			},
7239		},
7240	},
7241	{
7242		name:           "MOVQstore",
7243		auxType:        auxSymOff,
7244		argLen:         3,
7245		faultOnNilArg0: true,
7246		symEffect:      SymWrite,
7247		asm:            x86.AMOVQ,
7248		reg: regInfo{
7249			inputs: []inputInfo{
7250				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7251				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7252			},
7253		},
7254	},
7255	{
7256		name:           "MOVOload",
7257		auxType:        auxSymOff,
7258		argLen:         2,
7259		faultOnNilArg0: true,
7260		symEffect:      SymRead,
7261		asm:            x86.AMOVUPS,
7262		reg: regInfo{
7263			inputs: []inputInfo{
7264				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7265			},
7266			outputs: []outputInfo{
7267				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7268			},
7269		},
7270	},
7271	{
7272		name:           "MOVOstore",
7273		auxType:        auxSymOff,
7274		argLen:         3,
7275		faultOnNilArg0: true,
7276		symEffect:      SymWrite,
7277		asm:            x86.AMOVUPS,
7278		reg: regInfo{
7279			inputs: []inputInfo{
7280				{1, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7281				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7282			},
7283		},
7284	},
7285	{
7286		name:        "MOVBloadidx1",
7287		auxType:     auxSymOff,
7288		argLen:      3,
7289		commutative: true,
7290		symEffect:   SymRead,
7291		asm:         x86.AMOVBLZX,
7292		reg: regInfo{
7293			inputs: []inputInfo{
7294				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7295				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7296			},
7297			outputs: []outputInfo{
7298				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7299			},
7300		},
7301	},
7302	{
7303		name:        "MOVWloadidx1",
7304		auxType:     auxSymOff,
7305		argLen:      3,
7306		commutative: true,
7307		symEffect:   SymRead,
7308		asm:         x86.AMOVWLZX,
7309		reg: regInfo{
7310			inputs: []inputInfo{
7311				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7312				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7313			},
7314			outputs: []outputInfo{
7315				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7316			},
7317		},
7318	},
7319	{
7320		name:      "MOVWloadidx2",
7321		auxType:   auxSymOff,
7322		argLen:    3,
7323		symEffect: SymRead,
7324		asm:       x86.AMOVWLZX,
7325		reg: regInfo{
7326			inputs: []inputInfo{
7327				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7328				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7329			},
7330			outputs: []outputInfo{
7331				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7332			},
7333		},
7334	},
7335	{
7336		name:        "MOVLloadidx1",
7337		auxType:     auxSymOff,
7338		argLen:      3,
7339		commutative: true,
7340		symEffect:   SymRead,
7341		asm:         x86.AMOVL,
7342		reg: regInfo{
7343			inputs: []inputInfo{
7344				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7345				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7346			},
7347			outputs: []outputInfo{
7348				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7349			},
7350		},
7351	},
7352	{
7353		name:      "MOVLloadidx4",
7354		auxType:   auxSymOff,
7355		argLen:    3,
7356		symEffect: SymRead,
7357		asm:       x86.AMOVL,
7358		reg: regInfo{
7359			inputs: []inputInfo{
7360				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7361				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7362			},
7363			outputs: []outputInfo{
7364				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7365			},
7366		},
7367	},
7368	{
7369		name:        "MOVQloadidx1",
7370		auxType:     auxSymOff,
7371		argLen:      3,
7372		commutative: true,
7373		symEffect:   SymRead,
7374		asm:         x86.AMOVQ,
7375		reg: regInfo{
7376			inputs: []inputInfo{
7377				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7378				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7379			},
7380			outputs: []outputInfo{
7381				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7382			},
7383		},
7384	},
7385	{
7386		name:      "MOVQloadidx8",
7387		auxType:   auxSymOff,
7388		argLen:    3,
7389		symEffect: SymRead,
7390		asm:       x86.AMOVQ,
7391		reg: regInfo{
7392			inputs: []inputInfo{
7393				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7394				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7395			},
7396			outputs: []outputInfo{
7397				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7398			},
7399		},
7400	},
7401	{
7402		name:      "MOVBstoreidx1",
7403		auxType:   auxSymOff,
7404		argLen:    4,
7405		symEffect: SymWrite,
7406		asm:       x86.AMOVB,
7407		reg: regInfo{
7408			inputs: []inputInfo{
7409				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7410				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7411				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7412			},
7413		},
7414	},
7415	{
7416		name:      "MOVWstoreidx1",
7417		auxType:   auxSymOff,
7418		argLen:    4,
7419		symEffect: SymWrite,
7420		asm:       x86.AMOVW,
7421		reg: regInfo{
7422			inputs: []inputInfo{
7423				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7424				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7425				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7426			},
7427		},
7428	},
7429	{
7430		name:      "MOVWstoreidx2",
7431		auxType:   auxSymOff,
7432		argLen:    4,
7433		symEffect: SymWrite,
7434		asm:       x86.AMOVW,
7435		reg: regInfo{
7436			inputs: []inputInfo{
7437				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7438				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7439				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7440			},
7441		},
7442	},
7443	{
7444		name:      "MOVLstoreidx1",
7445		auxType:   auxSymOff,
7446		argLen:    4,
7447		symEffect: SymWrite,
7448		asm:       x86.AMOVL,
7449		reg: regInfo{
7450			inputs: []inputInfo{
7451				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7452				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7453				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7454			},
7455		},
7456	},
7457	{
7458		name:      "MOVLstoreidx4",
7459		auxType:   auxSymOff,
7460		argLen:    4,
7461		symEffect: SymWrite,
7462		asm:       x86.AMOVL,
7463		reg: regInfo{
7464			inputs: []inputInfo{
7465				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7466				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7467				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7468			},
7469		},
7470	},
7471	{
7472		name:      "MOVQstoreidx1",
7473		auxType:   auxSymOff,
7474		argLen:    4,
7475		symEffect: SymWrite,
7476		asm:       x86.AMOVQ,
7477		reg: regInfo{
7478			inputs: []inputInfo{
7479				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7480				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7481				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7482			},
7483		},
7484	},
7485	{
7486		name:      "MOVQstoreidx8",
7487		auxType:   auxSymOff,
7488		argLen:    4,
7489		symEffect: SymWrite,
7490		asm:       x86.AMOVQ,
7491		reg: regInfo{
7492			inputs: []inputInfo{
7493				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7494				{2, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7495				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7496			},
7497		},
7498	},
7499	{
7500		name:           "MOVBstoreconst",
7501		auxType:        auxSymValAndOff,
7502		argLen:         2,
7503		faultOnNilArg0: true,
7504		symEffect:      SymWrite,
7505		asm:            x86.AMOVB,
7506		reg: regInfo{
7507			inputs: []inputInfo{
7508				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7509			},
7510		},
7511	},
7512	{
7513		name:           "MOVWstoreconst",
7514		auxType:        auxSymValAndOff,
7515		argLen:         2,
7516		faultOnNilArg0: true,
7517		symEffect:      SymWrite,
7518		asm:            x86.AMOVW,
7519		reg: regInfo{
7520			inputs: []inputInfo{
7521				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7522			},
7523		},
7524	},
7525	{
7526		name:           "MOVLstoreconst",
7527		auxType:        auxSymValAndOff,
7528		argLen:         2,
7529		faultOnNilArg0: true,
7530		symEffect:      SymWrite,
7531		asm:            x86.AMOVL,
7532		reg: regInfo{
7533			inputs: []inputInfo{
7534				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7535			},
7536		},
7537	},
7538	{
7539		name:           "MOVQstoreconst",
7540		auxType:        auxSymValAndOff,
7541		argLen:         2,
7542		faultOnNilArg0: true,
7543		symEffect:      SymWrite,
7544		asm:            x86.AMOVQ,
7545		reg: regInfo{
7546			inputs: []inputInfo{
7547				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7548			},
7549		},
7550	},
7551	{
7552		name:      "MOVBstoreconstidx1",
7553		auxType:   auxSymValAndOff,
7554		argLen:    3,
7555		symEffect: SymWrite,
7556		asm:       x86.AMOVB,
7557		reg: regInfo{
7558			inputs: []inputInfo{
7559				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7560				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7561			},
7562		},
7563	},
7564	{
7565		name:      "MOVWstoreconstidx1",
7566		auxType:   auxSymValAndOff,
7567		argLen:    3,
7568		symEffect: SymWrite,
7569		asm:       x86.AMOVW,
7570		reg: regInfo{
7571			inputs: []inputInfo{
7572				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7573				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7574			},
7575		},
7576	},
7577	{
7578		name:      "MOVWstoreconstidx2",
7579		auxType:   auxSymValAndOff,
7580		argLen:    3,
7581		symEffect: SymWrite,
7582		asm:       x86.AMOVW,
7583		reg: regInfo{
7584			inputs: []inputInfo{
7585				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7586				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7587			},
7588		},
7589	},
7590	{
7591		name:      "MOVLstoreconstidx1",
7592		auxType:   auxSymValAndOff,
7593		argLen:    3,
7594		symEffect: SymWrite,
7595		asm:       x86.AMOVL,
7596		reg: regInfo{
7597			inputs: []inputInfo{
7598				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7599				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7600			},
7601		},
7602	},
7603	{
7604		name:      "MOVLstoreconstidx4",
7605		auxType:   auxSymValAndOff,
7606		argLen:    3,
7607		symEffect: SymWrite,
7608		asm:       x86.AMOVL,
7609		reg: regInfo{
7610			inputs: []inputInfo{
7611				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7612				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7613			},
7614		},
7615	},
7616	{
7617		name:      "MOVQstoreconstidx1",
7618		auxType:   auxSymValAndOff,
7619		argLen:    3,
7620		symEffect: SymWrite,
7621		asm:       x86.AMOVQ,
7622		reg: regInfo{
7623			inputs: []inputInfo{
7624				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7625				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7626			},
7627		},
7628	},
7629	{
7630		name:      "MOVQstoreconstidx8",
7631		auxType:   auxSymValAndOff,
7632		argLen:    3,
7633		symEffect: SymWrite,
7634		asm:       x86.AMOVQ,
7635		reg: regInfo{
7636			inputs: []inputInfo{
7637				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7638				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7639			},
7640		},
7641	},
7642	{
7643		name:           "DUFFZERO",
7644		auxType:        auxInt64,
7645		argLen:         3,
7646		clobberFlags:   true,
7647		faultOnNilArg0: true,
7648		reg: regInfo{
7649			inputs: []inputInfo{
7650				{0, 128},   // DI
7651				{1, 65536}, // X0
7652			},
7653			clobbers: 128, // DI
7654		},
7655	},
7656	{
7657		name:              "MOVOconst",
7658		auxType:           auxInt128,
7659		argLen:            0,
7660		rematerializeable: true,
7661		reg: regInfo{
7662			outputs: []outputInfo{
7663				{0, 4294901760}, // X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7664			},
7665		},
7666	},
7667	{
7668		name:           "REPSTOSQ",
7669		argLen:         4,
7670		faultOnNilArg0: true,
7671		reg: regInfo{
7672			inputs: []inputInfo{
7673				{0, 128}, // DI
7674				{1, 2},   // CX
7675				{2, 1},   // AX
7676			},
7677			clobbers: 130, // CX DI
7678		},
7679	},
7680	{
7681		name:         "CALLstatic",
7682		auxType:      auxSymOff,
7683		argLen:       1,
7684		clobberFlags: true,
7685		call:         true,
7686		symEffect:    SymNone,
7687		reg: regInfo{
7688			clobbers: 4294967279, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7689		},
7690	},
7691	{
7692		name:         "CALLclosure",
7693		auxType:      auxInt64,
7694		argLen:       3,
7695		clobberFlags: true,
7696		call:         true,
7697		reg: regInfo{
7698			inputs: []inputInfo{
7699				{1, 4},     // DX
7700				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7701			},
7702			clobbers: 4294967279, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7703		},
7704	},
7705	{
7706		name:         "CALLinter",
7707		auxType:      auxInt64,
7708		argLen:       2,
7709		clobberFlags: true,
7710		call:         true,
7711		reg: regInfo{
7712			inputs: []inputInfo{
7713				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7714			},
7715			clobbers: 4294967279, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15
7716		},
7717	},
7718	{
7719		name:           "DUFFCOPY",
7720		auxType:        auxInt64,
7721		argLen:         3,
7722		clobberFlags:   true,
7723		faultOnNilArg0: true,
7724		faultOnNilArg1: true,
7725		reg: regInfo{
7726			inputs: []inputInfo{
7727				{0, 128}, // DI
7728				{1, 64},  // SI
7729			},
7730			clobbers: 65728, // SI DI X0
7731		},
7732	},
7733	{
7734		name:           "REPMOVSQ",
7735		argLen:         4,
7736		faultOnNilArg0: true,
7737		faultOnNilArg1: true,
7738		reg: regInfo{
7739			inputs: []inputInfo{
7740				{0, 128}, // DI
7741				{1, 64},  // SI
7742				{2, 2},   // CX
7743			},
7744			clobbers: 194, // CX SI DI
7745		},
7746	},
7747	{
7748		name:   "InvertFlags",
7749		argLen: 1,
7750		reg:    regInfo{},
7751	},
7752	{
7753		name:   "LoweredGetG",
7754		argLen: 1,
7755		reg: regInfo{
7756			outputs: []outputInfo{
7757				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7758			},
7759		},
7760	},
7761	{
7762		name:   "LoweredGetClosurePtr",
7763		argLen: 0,
7764		reg: regInfo{
7765			outputs: []outputInfo{
7766				{0, 4}, // DX
7767			},
7768		},
7769	},
7770	{
7771		name:           "LoweredNilCheck",
7772		argLen:         2,
7773		clobberFlags:   true,
7774		nilCheck:       true,
7775		faultOnNilArg0: true,
7776		reg: regInfo{
7777			inputs: []inputInfo{
7778				{0, 65535}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7779			},
7780		},
7781	},
7782	{
7783		name:   "MOVQconvert",
7784		argLen: 2,
7785		asm:    x86.AMOVQ,
7786		reg: regInfo{
7787			inputs: []inputInfo{
7788				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7789			},
7790			outputs: []outputInfo{
7791				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7792			},
7793		},
7794	},
7795	{
7796		name:   "MOVLconvert",
7797		argLen: 2,
7798		asm:    x86.AMOVL,
7799		reg: regInfo{
7800			inputs: []inputInfo{
7801				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7802			},
7803			outputs: []outputInfo{
7804				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7805			},
7806		},
7807	},
7808	{
7809		name:   "FlagEQ",
7810		argLen: 0,
7811		reg:    regInfo{},
7812	},
7813	{
7814		name:   "FlagLT_ULT",
7815		argLen: 0,
7816		reg:    regInfo{},
7817	},
7818	{
7819		name:   "FlagLT_UGT",
7820		argLen: 0,
7821		reg:    regInfo{},
7822	},
7823	{
7824		name:   "FlagGT_UGT",
7825		argLen: 0,
7826		reg:    regInfo{},
7827	},
7828	{
7829		name:   "FlagGT_ULT",
7830		argLen: 0,
7831		reg:    regInfo{},
7832	},
7833	{
7834		name:           "MOVLatomicload",
7835		auxType:        auxSymOff,
7836		argLen:         2,
7837		faultOnNilArg0: true,
7838		symEffect:      SymRead,
7839		asm:            x86.AMOVL,
7840		reg: regInfo{
7841			inputs: []inputInfo{
7842				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7843			},
7844			outputs: []outputInfo{
7845				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7846			},
7847		},
7848	},
7849	{
7850		name:           "MOVQatomicload",
7851		auxType:        auxSymOff,
7852		argLen:         2,
7853		faultOnNilArg0: true,
7854		symEffect:      SymRead,
7855		asm:            x86.AMOVQ,
7856		reg: regInfo{
7857			inputs: []inputInfo{
7858				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7859			},
7860			outputs: []outputInfo{
7861				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7862			},
7863		},
7864	},
7865	{
7866		name:           "XCHGL",
7867		auxType:        auxSymOff,
7868		argLen:         3,
7869		resultInArg0:   true,
7870		faultOnNilArg1: true,
7871		hasSideEffects: true,
7872		symEffect:      SymRdWr,
7873		asm:            x86.AXCHGL,
7874		reg: regInfo{
7875			inputs: []inputInfo{
7876				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7877				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7878			},
7879			outputs: []outputInfo{
7880				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7881			},
7882		},
7883	},
7884	{
7885		name:           "XCHGQ",
7886		auxType:        auxSymOff,
7887		argLen:         3,
7888		resultInArg0:   true,
7889		faultOnNilArg1: true,
7890		hasSideEffects: true,
7891		symEffect:      SymRdWr,
7892		asm:            x86.AXCHGQ,
7893		reg: regInfo{
7894			inputs: []inputInfo{
7895				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7896				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7897			},
7898			outputs: []outputInfo{
7899				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7900			},
7901		},
7902	},
7903	{
7904		name:           "XADDLlock",
7905		auxType:        auxSymOff,
7906		argLen:         3,
7907		resultInArg0:   true,
7908		clobberFlags:   true,
7909		faultOnNilArg1: true,
7910		hasSideEffects: true,
7911		symEffect:      SymRdWr,
7912		asm:            x86.AXADDL,
7913		reg: regInfo{
7914			inputs: []inputInfo{
7915				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7916				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7917			},
7918			outputs: []outputInfo{
7919				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7920			},
7921		},
7922	},
7923	{
7924		name:           "XADDQlock",
7925		auxType:        auxSymOff,
7926		argLen:         3,
7927		resultInArg0:   true,
7928		clobberFlags:   true,
7929		faultOnNilArg1: true,
7930		hasSideEffects: true,
7931		symEffect:      SymRdWr,
7932		asm:            x86.AXADDQ,
7933		reg: regInfo{
7934			inputs: []inputInfo{
7935				{0, 65519},      // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7936				{1, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
7937			},
7938			outputs: []outputInfo{
7939				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7940			},
7941		},
7942	},
7943	{
7944		name:   "AddTupleFirst32",
7945		argLen: 2,
7946		reg:    regInfo{},
7947	},
7948	{
7949		name:   "AddTupleFirst64",
7950		argLen: 2,
7951		reg:    regInfo{},
7952	},
7953	{
7954		name:           "CMPXCHGLlock",
7955		auxType:        auxSymOff,
7956		argLen:         4,
7957		clobberFlags:   true,
7958		faultOnNilArg0: true,
7959		hasSideEffects: true,
7960		symEffect:      SymRdWr,
7961		asm:            x86.ACMPXCHGL,
7962		reg: regInfo{
7963			inputs: []inputInfo{
7964				{1, 1},     // AX
7965				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7966				{2, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7967			},
7968			clobbers: 1, // AX
7969			outputs: []outputInfo{
7970				{1, 0},
7971				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7972			},
7973		},
7974	},
7975	{
7976		name:           "CMPXCHGQlock",
7977		auxType:        auxSymOff,
7978		argLen:         4,
7979		clobberFlags:   true,
7980		faultOnNilArg0: true,
7981		hasSideEffects: true,
7982		symEffect:      SymRdWr,
7983		asm:            x86.ACMPXCHGQ,
7984		reg: regInfo{
7985			inputs: []inputInfo{
7986				{1, 1},     // AX
7987				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7988				{2, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7989			},
7990			clobbers: 1, // AX
7991			outputs: []outputInfo{
7992				{1, 0},
7993				{0, 65519}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
7994			},
7995		},
7996	},
7997	{
7998		name:           "ANDBlock",
7999		auxType:        auxSymOff,
8000		argLen:         3,
8001		clobberFlags:   true,
8002		faultOnNilArg0: true,
8003		hasSideEffects: true,
8004		symEffect:      SymRdWr,
8005		asm:            x86.AANDB,
8006		reg: regInfo{
8007			inputs: []inputInfo{
8008				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
8009				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
8010			},
8011		},
8012	},
8013	{
8014		name:           "ORBlock",
8015		auxType:        auxSymOff,
8016		argLen:         3,
8017		clobberFlags:   true,
8018		faultOnNilArg0: true,
8019		hasSideEffects: true,
8020		symEffect:      SymRdWr,
8021		asm:            x86.AORB,
8022		reg: regInfo{
8023			inputs: []inputInfo{
8024				{1, 65535},      // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15
8025				{0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R14 R15 SB
8026			},
8027		},
8028	},
8029
8030	{
8031		name:        "ADD",
8032		argLen:      2,
8033		commutative: true,
8034		asm:         arm.AADD,
8035		reg: regInfo{
8036			inputs: []inputInfo{
8037				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8038				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8039			},
8040			outputs: []outputInfo{
8041				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8042			},
8043		},
8044	},
8045	{
8046		name:    "ADDconst",
8047		auxType: auxInt32,
8048		argLen:  1,
8049		asm:     arm.AADD,
8050		reg: regInfo{
8051			inputs: []inputInfo{
8052				{0, 30719}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14
8053			},
8054			outputs: []outputInfo{
8055				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8056			},
8057		},
8058	},
8059	{
8060		name:   "SUB",
8061		argLen: 2,
8062		asm:    arm.ASUB,
8063		reg: regInfo{
8064			inputs: []inputInfo{
8065				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8066				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8067			},
8068			outputs: []outputInfo{
8069				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8070			},
8071		},
8072	},
8073	{
8074		name:    "SUBconst",
8075		auxType: auxInt32,
8076		argLen:  1,
8077		asm:     arm.ASUB,
8078		reg: regInfo{
8079			inputs: []inputInfo{
8080				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8081			},
8082			outputs: []outputInfo{
8083				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8084			},
8085		},
8086	},
8087	{
8088		name:   "RSB",
8089		argLen: 2,
8090		asm:    arm.ARSB,
8091		reg: regInfo{
8092			inputs: []inputInfo{
8093				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8094				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8095			},
8096			outputs: []outputInfo{
8097				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8098			},
8099		},
8100	},
8101	{
8102		name:    "RSBconst",
8103		auxType: auxInt32,
8104		argLen:  1,
8105		asm:     arm.ARSB,
8106		reg: regInfo{
8107			inputs: []inputInfo{
8108				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8109			},
8110			outputs: []outputInfo{
8111				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8112			},
8113		},
8114	},
8115	{
8116		name:        "MUL",
8117		argLen:      2,
8118		commutative: true,
8119		asm:         arm.AMUL,
8120		reg: regInfo{
8121			inputs: []inputInfo{
8122				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8123				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8124			},
8125			outputs: []outputInfo{
8126				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8127			},
8128		},
8129	},
8130	{
8131		name:        "HMUL",
8132		argLen:      2,
8133		commutative: true,
8134		asm:         arm.AMULL,
8135		reg: regInfo{
8136			inputs: []inputInfo{
8137				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8138				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8139			},
8140			outputs: []outputInfo{
8141				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8142			},
8143		},
8144	},
8145	{
8146		name:        "HMULU",
8147		argLen:      2,
8148		commutative: true,
8149		asm:         arm.AMULLU,
8150		reg: regInfo{
8151			inputs: []inputInfo{
8152				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8153				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8154			},
8155			outputs: []outputInfo{
8156				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8157			},
8158		},
8159	},
8160	{
8161		name:         "CALLudiv",
8162		argLen:       2,
8163		clobberFlags: true,
8164		reg: regInfo{
8165			inputs: []inputInfo{
8166				{0, 2}, // R1
8167				{1, 1}, // R0
8168			},
8169			clobbers: 16396, // R2 R3 R14
8170			outputs: []outputInfo{
8171				{0, 1}, // R0
8172				{1, 2}, // R1
8173			},
8174		},
8175	},
8176	{
8177		name:        "ADDS",
8178		argLen:      2,
8179		commutative: true,
8180		asm:         arm.AADD,
8181		reg: regInfo{
8182			inputs: []inputInfo{
8183				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8184				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8185			},
8186			outputs: []outputInfo{
8187				{1, 0},
8188				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8189			},
8190		},
8191	},
8192	{
8193		name:    "ADDSconst",
8194		auxType: auxInt32,
8195		argLen:  1,
8196		asm:     arm.AADD,
8197		reg: regInfo{
8198			inputs: []inputInfo{
8199				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8200			},
8201			outputs: []outputInfo{
8202				{1, 0},
8203				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8204			},
8205		},
8206	},
8207	{
8208		name:        "ADC",
8209		argLen:      3,
8210		commutative: true,
8211		asm:         arm.AADC,
8212		reg: regInfo{
8213			inputs: []inputInfo{
8214				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8215				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8216			},
8217			outputs: []outputInfo{
8218				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8219			},
8220		},
8221	},
8222	{
8223		name:    "ADCconst",
8224		auxType: auxInt32,
8225		argLen:  2,
8226		asm:     arm.AADC,
8227		reg: regInfo{
8228			inputs: []inputInfo{
8229				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8230			},
8231			outputs: []outputInfo{
8232				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8233			},
8234		},
8235	},
8236	{
8237		name:   "SUBS",
8238		argLen: 2,
8239		asm:    arm.ASUB,
8240		reg: regInfo{
8241			inputs: []inputInfo{
8242				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8243				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8244			},
8245			outputs: []outputInfo{
8246				{1, 0},
8247				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8248			},
8249		},
8250	},
8251	{
8252		name:    "SUBSconst",
8253		auxType: auxInt32,
8254		argLen:  1,
8255		asm:     arm.ASUB,
8256		reg: regInfo{
8257			inputs: []inputInfo{
8258				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8259			},
8260			outputs: []outputInfo{
8261				{1, 0},
8262				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8263			},
8264		},
8265	},
8266	{
8267		name:    "RSBSconst",
8268		auxType: auxInt32,
8269		argLen:  1,
8270		asm:     arm.ARSB,
8271		reg: regInfo{
8272			inputs: []inputInfo{
8273				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8274			},
8275			outputs: []outputInfo{
8276				{1, 0},
8277				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8278			},
8279		},
8280	},
8281	{
8282		name:   "SBC",
8283		argLen: 3,
8284		asm:    arm.ASBC,
8285		reg: regInfo{
8286			inputs: []inputInfo{
8287				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8288				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8289			},
8290			outputs: []outputInfo{
8291				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8292			},
8293		},
8294	},
8295	{
8296		name:    "SBCconst",
8297		auxType: auxInt32,
8298		argLen:  2,
8299		asm:     arm.ASBC,
8300		reg: regInfo{
8301			inputs: []inputInfo{
8302				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8303			},
8304			outputs: []outputInfo{
8305				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8306			},
8307		},
8308	},
8309	{
8310		name:    "RSCconst",
8311		auxType: auxInt32,
8312		argLen:  2,
8313		asm:     arm.ARSC,
8314		reg: regInfo{
8315			inputs: []inputInfo{
8316				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8317			},
8318			outputs: []outputInfo{
8319				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8320			},
8321		},
8322	},
8323	{
8324		name:        "MULLU",
8325		argLen:      2,
8326		commutative: true,
8327		asm:         arm.AMULLU,
8328		reg: regInfo{
8329			inputs: []inputInfo{
8330				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8331				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8332			},
8333			outputs: []outputInfo{
8334				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8335				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8336			},
8337		},
8338	},
8339	{
8340		name:   "MULA",
8341		argLen: 3,
8342		asm:    arm.AMULA,
8343		reg: regInfo{
8344			inputs: []inputInfo{
8345				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8346				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8347				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8348			},
8349			outputs: []outputInfo{
8350				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8351			},
8352		},
8353	},
8354	{
8355		name:        "ADDF",
8356		argLen:      2,
8357		commutative: true,
8358		asm:         arm.AADDF,
8359		reg: regInfo{
8360			inputs: []inputInfo{
8361				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8362				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8363			},
8364			outputs: []outputInfo{
8365				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8366			},
8367		},
8368	},
8369	{
8370		name:        "ADDD",
8371		argLen:      2,
8372		commutative: true,
8373		asm:         arm.AADDD,
8374		reg: regInfo{
8375			inputs: []inputInfo{
8376				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8377				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8378			},
8379			outputs: []outputInfo{
8380				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8381			},
8382		},
8383	},
8384	{
8385		name:   "SUBF",
8386		argLen: 2,
8387		asm:    arm.ASUBF,
8388		reg: regInfo{
8389			inputs: []inputInfo{
8390				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8391				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8392			},
8393			outputs: []outputInfo{
8394				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8395			},
8396		},
8397	},
8398	{
8399		name:   "SUBD",
8400		argLen: 2,
8401		asm:    arm.ASUBD,
8402		reg: regInfo{
8403			inputs: []inputInfo{
8404				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8405				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8406			},
8407			outputs: []outputInfo{
8408				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8409			},
8410		},
8411	},
8412	{
8413		name:        "MULF",
8414		argLen:      2,
8415		commutative: true,
8416		asm:         arm.AMULF,
8417		reg: regInfo{
8418			inputs: []inputInfo{
8419				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8420				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8421			},
8422			outputs: []outputInfo{
8423				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8424			},
8425		},
8426	},
8427	{
8428		name:        "MULD",
8429		argLen:      2,
8430		commutative: true,
8431		asm:         arm.AMULD,
8432		reg: regInfo{
8433			inputs: []inputInfo{
8434				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8435				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8436			},
8437			outputs: []outputInfo{
8438				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8439			},
8440		},
8441	},
8442	{
8443		name:   "DIVF",
8444		argLen: 2,
8445		asm:    arm.ADIVF,
8446		reg: regInfo{
8447			inputs: []inputInfo{
8448				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8449				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8450			},
8451			outputs: []outputInfo{
8452				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8453			},
8454		},
8455	},
8456	{
8457		name:   "DIVD",
8458		argLen: 2,
8459		asm:    arm.ADIVD,
8460		reg: regInfo{
8461			inputs: []inputInfo{
8462				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8463				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8464			},
8465			outputs: []outputInfo{
8466				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8467			},
8468		},
8469	},
8470	{
8471		name:        "AND",
8472		argLen:      2,
8473		commutative: true,
8474		asm:         arm.AAND,
8475		reg: regInfo{
8476			inputs: []inputInfo{
8477				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8478				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8479			},
8480			outputs: []outputInfo{
8481				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8482			},
8483		},
8484	},
8485	{
8486		name:    "ANDconst",
8487		auxType: auxInt32,
8488		argLen:  1,
8489		asm:     arm.AAND,
8490		reg: regInfo{
8491			inputs: []inputInfo{
8492				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8493			},
8494			outputs: []outputInfo{
8495				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8496			},
8497		},
8498	},
8499	{
8500		name:        "OR",
8501		argLen:      2,
8502		commutative: true,
8503		asm:         arm.AORR,
8504		reg: regInfo{
8505			inputs: []inputInfo{
8506				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8507				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8508			},
8509			outputs: []outputInfo{
8510				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8511			},
8512		},
8513	},
8514	{
8515		name:    "ORconst",
8516		auxType: auxInt32,
8517		argLen:  1,
8518		asm:     arm.AORR,
8519		reg: regInfo{
8520			inputs: []inputInfo{
8521				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8522			},
8523			outputs: []outputInfo{
8524				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8525			},
8526		},
8527	},
8528	{
8529		name:        "XOR",
8530		argLen:      2,
8531		commutative: true,
8532		asm:         arm.AEOR,
8533		reg: regInfo{
8534			inputs: []inputInfo{
8535				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8536				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8537			},
8538			outputs: []outputInfo{
8539				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8540			},
8541		},
8542	},
8543	{
8544		name:    "XORconst",
8545		auxType: auxInt32,
8546		argLen:  1,
8547		asm:     arm.AEOR,
8548		reg: regInfo{
8549			inputs: []inputInfo{
8550				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8551			},
8552			outputs: []outputInfo{
8553				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8554			},
8555		},
8556	},
8557	{
8558		name:   "BIC",
8559		argLen: 2,
8560		asm:    arm.ABIC,
8561		reg: regInfo{
8562			inputs: []inputInfo{
8563				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8564				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8565			},
8566			outputs: []outputInfo{
8567				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8568			},
8569		},
8570	},
8571	{
8572		name:    "BICconst",
8573		auxType: auxInt32,
8574		argLen:  1,
8575		asm:     arm.ABIC,
8576		reg: regInfo{
8577			inputs: []inputInfo{
8578				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8579			},
8580			outputs: []outputInfo{
8581				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8582			},
8583		},
8584	},
8585	{
8586		name:   "MVN",
8587		argLen: 1,
8588		asm:    arm.AMVN,
8589		reg: regInfo{
8590			inputs: []inputInfo{
8591				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8592			},
8593			outputs: []outputInfo{
8594				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8595			},
8596		},
8597	},
8598	{
8599		name:   "NEGF",
8600		argLen: 1,
8601		asm:    arm.ANEGF,
8602		reg: regInfo{
8603			inputs: []inputInfo{
8604				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8605			},
8606			outputs: []outputInfo{
8607				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8608			},
8609		},
8610	},
8611	{
8612		name:   "NEGD",
8613		argLen: 1,
8614		asm:    arm.ANEGD,
8615		reg: regInfo{
8616			inputs: []inputInfo{
8617				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8618			},
8619			outputs: []outputInfo{
8620				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8621			},
8622		},
8623	},
8624	{
8625		name:   "SQRTD",
8626		argLen: 1,
8627		asm:    arm.ASQRTD,
8628		reg: regInfo{
8629			inputs: []inputInfo{
8630				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8631			},
8632			outputs: []outputInfo{
8633				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
8634			},
8635		},
8636	},
8637	{
8638		name:   "CLZ",
8639		argLen: 1,
8640		asm:    arm.ACLZ,
8641		reg: regInfo{
8642			inputs: []inputInfo{
8643				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8644			},
8645			outputs: []outputInfo{
8646				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8647			},
8648		},
8649	},
8650	{
8651		name:   "REV",
8652		argLen: 1,
8653		asm:    arm.AREV,
8654		reg: regInfo{
8655			inputs: []inputInfo{
8656				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8657			},
8658			outputs: []outputInfo{
8659				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8660			},
8661		},
8662	},
8663	{
8664		name:   "RBIT",
8665		argLen: 1,
8666		asm:    arm.ARBIT,
8667		reg: regInfo{
8668			inputs: []inputInfo{
8669				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8670			},
8671			outputs: []outputInfo{
8672				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8673			},
8674		},
8675	},
8676	{
8677		name:   "SLL",
8678		argLen: 2,
8679		asm:    arm.ASLL,
8680		reg: regInfo{
8681			inputs: []inputInfo{
8682				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8683				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8684			},
8685			outputs: []outputInfo{
8686				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8687			},
8688		},
8689	},
8690	{
8691		name:    "SLLconst",
8692		auxType: auxInt32,
8693		argLen:  1,
8694		asm:     arm.ASLL,
8695		reg: regInfo{
8696			inputs: []inputInfo{
8697				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8698			},
8699			outputs: []outputInfo{
8700				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8701			},
8702		},
8703	},
8704	{
8705		name:   "SRL",
8706		argLen: 2,
8707		asm:    arm.ASRL,
8708		reg: regInfo{
8709			inputs: []inputInfo{
8710				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8711				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8712			},
8713			outputs: []outputInfo{
8714				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8715			},
8716		},
8717	},
8718	{
8719		name:    "SRLconst",
8720		auxType: auxInt32,
8721		argLen:  1,
8722		asm:     arm.ASRL,
8723		reg: regInfo{
8724			inputs: []inputInfo{
8725				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8726			},
8727			outputs: []outputInfo{
8728				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8729			},
8730		},
8731	},
8732	{
8733		name:   "SRA",
8734		argLen: 2,
8735		asm:    arm.ASRA,
8736		reg: regInfo{
8737			inputs: []inputInfo{
8738				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8739				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8740			},
8741			outputs: []outputInfo{
8742				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8743			},
8744		},
8745	},
8746	{
8747		name:    "SRAconst",
8748		auxType: auxInt32,
8749		argLen:  1,
8750		asm:     arm.ASRA,
8751		reg: regInfo{
8752			inputs: []inputInfo{
8753				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8754			},
8755			outputs: []outputInfo{
8756				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8757			},
8758		},
8759	},
8760	{
8761		name:    "SRRconst",
8762		auxType: auxInt32,
8763		argLen:  1,
8764		reg: regInfo{
8765			inputs: []inputInfo{
8766				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8767			},
8768			outputs: []outputInfo{
8769				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8770			},
8771		},
8772	},
8773	{
8774		name:    "ADDshiftLL",
8775		auxType: auxInt32,
8776		argLen:  2,
8777		asm:     arm.AADD,
8778		reg: regInfo{
8779			inputs: []inputInfo{
8780				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8781				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8782			},
8783			outputs: []outputInfo{
8784				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8785			},
8786		},
8787	},
8788	{
8789		name:    "ADDshiftRL",
8790		auxType: auxInt32,
8791		argLen:  2,
8792		asm:     arm.AADD,
8793		reg: regInfo{
8794			inputs: []inputInfo{
8795				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8796				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8797			},
8798			outputs: []outputInfo{
8799				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8800			},
8801		},
8802	},
8803	{
8804		name:    "ADDshiftRA",
8805		auxType: auxInt32,
8806		argLen:  2,
8807		asm:     arm.AADD,
8808		reg: regInfo{
8809			inputs: []inputInfo{
8810				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8811				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8812			},
8813			outputs: []outputInfo{
8814				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8815			},
8816		},
8817	},
8818	{
8819		name:    "SUBshiftLL",
8820		auxType: auxInt32,
8821		argLen:  2,
8822		asm:     arm.ASUB,
8823		reg: regInfo{
8824			inputs: []inputInfo{
8825				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8826				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8827			},
8828			outputs: []outputInfo{
8829				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8830			},
8831		},
8832	},
8833	{
8834		name:    "SUBshiftRL",
8835		auxType: auxInt32,
8836		argLen:  2,
8837		asm:     arm.ASUB,
8838		reg: regInfo{
8839			inputs: []inputInfo{
8840				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8841				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8842			},
8843			outputs: []outputInfo{
8844				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8845			},
8846		},
8847	},
8848	{
8849		name:    "SUBshiftRA",
8850		auxType: auxInt32,
8851		argLen:  2,
8852		asm:     arm.ASUB,
8853		reg: regInfo{
8854			inputs: []inputInfo{
8855				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8856				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8857			},
8858			outputs: []outputInfo{
8859				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8860			},
8861		},
8862	},
8863	{
8864		name:    "RSBshiftLL",
8865		auxType: auxInt32,
8866		argLen:  2,
8867		asm:     arm.ARSB,
8868		reg: regInfo{
8869			inputs: []inputInfo{
8870				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8871				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8872			},
8873			outputs: []outputInfo{
8874				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8875			},
8876		},
8877	},
8878	{
8879		name:    "RSBshiftRL",
8880		auxType: auxInt32,
8881		argLen:  2,
8882		asm:     arm.ARSB,
8883		reg: regInfo{
8884			inputs: []inputInfo{
8885				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8886				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8887			},
8888			outputs: []outputInfo{
8889				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8890			},
8891		},
8892	},
8893	{
8894		name:    "RSBshiftRA",
8895		auxType: auxInt32,
8896		argLen:  2,
8897		asm:     arm.ARSB,
8898		reg: regInfo{
8899			inputs: []inputInfo{
8900				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8901				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8902			},
8903			outputs: []outputInfo{
8904				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8905			},
8906		},
8907	},
8908	{
8909		name:    "ANDshiftLL",
8910		auxType: auxInt32,
8911		argLen:  2,
8912		asm:     arm.AAND,
8913		reg: regInfo{
8914			inputs: []inputInfo{
8915				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8916				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8917			},
8918			outputs: []outputInfo{
8919				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8920			},
8921		},
8922	},
8923	{
8924		name:    "ANDshiftRL",
8925		auxType: auxInt32,
8926		argLen:  2,
8927		asm:     arm.AAND,
8928		reg: regInfo{
8929			inputs: []inputInfo{
8930				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8931				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8932			},
8933			outputs: []outputInfo{
8934				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8935			},
8936		},
8937	},
8938	{
8939		name:    "ANDshiftRA",
8940		auxType: auxInt32,
8941		argLen:  2,
8942		asm:     arm.AAND,
8943		reg: regInfo{
8944			inputs: []inputInfo{
8945				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8946				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8947			},
8948			outputs: []outputInfo{
8949				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8950			},
8951		},
8952	},
8953	{
8954		name:    "ORshiftLL",
8955		auxType: auxInt32,
8956		argLen:  2,
8957		asm:     arm.AORR,
8958		reg: regInfo{
8959			inputs: []inputInfo{
8960				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8961				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8962			},
8963			outputs: []outputInfo{
8964				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8965			},
8966		},
8967	},
8968	{
8969		name:    "ORshiftRL",
8970		auxType: auxInt32,
8971		argLen:  2,
8972		asm:     arm.AORR,
8973		reg: regInfo{
8974			inputs: []inputInfo{
8975				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8976				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8977			},
8978			outputs: []outputInfo{
8979				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8980			},
8981		},
8982	},
8983	{
8984		name:    "ORshiftRA",
8985		auxType: auxInt32,
8986		argLen:  2,
8987		asm:     arm.AORR,
8988		reg: regInfo{
8989			inputs: []inputInfo{
8990				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8991				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
8992			},
8993			outputs: []outputInfo{
8994				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
8995			},
8996		},
8997	},
8998	{
8999		name:    "XORshiftLL",
9000		auxType: auxInt32,
9001		argLen:  2,
9002		asm:     arm.AEOR,
9003		reg: regInfo{
9004			inputs: []inputInfo{
9005				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9006				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9007			},
9008			outputs: []outputInfo{
9009				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9010			},
9011		},
9012	},
9013	{
9014		name:    "XORshiftRL",
9015		auxType: auxInt32,
9016		argLen:  2,
9017		asm:     arm.AEOR,
9018		reg: regInfo{
9019			inputs: []inputInfo{
9020				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9021				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9022			},
9023			outputs: []outputInfo{
9024				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9025			},
9026		},
9027	},
9028	{
9029		name:    "XORshiftRA",
9030		auxType: auxInt32,
9031		argLen:  2,
9032		asm:     arm.AEOR,
9033		reg: regInfo{
9034			inputs: []inputInfo{
9035				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9036				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9037			},
9038			outputs: []outputInfo{
9039				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9040			},
9041		},
9042	},
9043	{
9044		name:    "XORshiftRR",
9045		auxType: auxInt32,
9046		argLen:  2,
9047		asm:     arm.AEOR,
9048		reg: regInfo{
9049			inputs: []inputInfo{
9050				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9051				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9052			},
9053			outputs: []outputInfo{
9054				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9055			},
9056		},
9057	},
9058	{
9059		name:    "BICshiftLL",
9060		auxType: auxInt32,
9061		argLen:  2,
9062		asm:     arm.ABIC,
9063		reg: regInfo{
9064			inputs: []inputInfo{
9065				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9066				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9067			},
9068			outputs: []outputInfo{
9069				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9070			},
9071		},
9072	},
9073	{
9074		name:    "BICshiftRL",
9075		auxType: auxInt32,
9076		argLen:  2,
9077		asm:     arm.ABIC,
9078		reg: regInfo{
9079			inputs: []inputInfo{
9080				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9081				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9082			},
9083			outputs: []outputInfo{
9084				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9085			},
9086		},
9087	},
9088	{
9089		name:    "BICshiftRA",
9090		auxType: auxInt32,
9091		argLen:  2,
9092		asm:     arm.ABIC,
9093		reg: regInfo{
9094			inputs: []inputInfo{
9095				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9096				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9097			},
9098			outputs: []outputInfo{
9099				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9100			},
9101		},
9102	},
9103	{
9104		name:    "MVNshiftLL",
9105		auxType: auxInt32,
9106		argLen:  1,
9107		asm:     arm.AMVN,
9108		reg: regInfo{
9109			inputs: []inputInfo{
9110				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9111			},
9112			outputs: []outputInfo{
9113				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9114			},
9115		},
9116	},
9117	{
9118		name:    "MVNshiftRL",
9119		auxType: auxInt32,
9120		argLen:  1,
9121		asm:     arm.AMVN,
9122		reg: regInfo{
9123			inputs: []inputInfo{
9124				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9125			},
9126			outputs: []outputInfo{
9127				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9128			},
9129		},
9130	},
9131	{
9132		name:    "MVNshiftRA",
9133		auxType: auxInt32,
9134		argLen:  1,
9135		asm:     arm.AMVN,
9136		reg: regInfo{
9137			inputs: []inputInfo{
9138				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9139			},
9140			outputs: []outputInfo{
9141				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9142			},
9143		},
9144	},
9145	{
9146		name:    "ADCshiftLL",
9147		auxType: auxInt32,
9148		argLen:  3,
9149		asm:     arm.AADC,
9150		reg: regInfo{
9151			inputs: []inputInfo{
9152				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9153				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9154			},
9155			outputs: []outputInfo{
9156				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9157			},
9158		},
9159	},
9160	{
9161		name:    "ADCshiftRL",
9162		auxType: auxInt32,
9163		argLen:  3,
9164		asm:     arm.AADC,
9165		reg: regInfo{
9166			inputs: []inputInfo{
9167				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9168				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9169			},
9170			outputs: []outputInfo{
9171				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9172			},
9173		},
9174	},
9175	{
9176		name:    "ADCshiftRA",
9177		auxType: auxInt32,
9178		argLen:  3,
9179		asm:     arm.AADC,
9180		reg: regInfo{
9181			inputs: []inputInfo{
9182				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9183				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9184			},
9185			outputs: []outputInfo{
9186				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9187			},
9188		},
9189	},
9190	{
9191		name:    "SBCshiftLL",
9192		auxType: auxInt32,
9193		argLen:  3,
9194		asm:     arm.ASBC,
9195		reg: regInfo{
9196			inputs: []inputInfo{
9197				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9198				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9199			},
9200			outputs: []outputInfo{
9201				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9202			},
9203		},
9204	},
9205	{
9206		name:    "SBCshiftRL",
9207		auxType: auxInt32,
9208		argLen:  3,
9209		asm:     arm.ASBC,
9210		reg: regInfo{
9211			inputs: []inputInfo{
9212				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9213				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9214			},
9215			outputs: []outputInfo{
9216				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9217			},
9218		},
9219	},
9220	{
9221		name:    "SBCshiftRA",
9222		auxType: auxInt32,
9223		argLen:  3,
9224		asm:     arm.ASBC,
9225		reg: regInfo{
9226			inputs: []inputInfo{
9227				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9228				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9229			},
9230			outputs: []outputInfo{
9231				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9232			},
9233		},
9234	},
9235	{
9236		name:    "RSCshiftLL",
9237		auxType: auxInt32,
9238		argLen:  3,
9239		asm:     arm.ARSC,
9240		reg: regInfo{
9241			inputs: []inputInfo{
9242				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9243				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9244			},
9245			outputs: []outputInfo{
9246				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9247			},
9248		},
9249	},
9250	{
9251		name:    "RSCshiftRL",
9252		auxType: auxInt32,
9253		argLen:  3,
9254		asm:     arm.ARSC,
9255		reg: regInfo{
9256			inputs: []inputInfo{
9257				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9258				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9259			},
9260			outputs: []outputInfo{
9261				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9262			},
9263		},
9264	},
9265	{
9266		name:    "RSCshiftRA",
9267		auxType: auxInt32,
9268		argLen:  3,
9269		asm:     arm.ARSC,
9270		reg: regInfo{
9271			inputs: []inputInfo{
9272				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9273				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9274			},
9275			outputs: []outputInfo{
9276				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9277			},
9278		},
9279	},
9280	{
9281		name:    "ADDSshiftLL",
9282		auxType: auxInt32,
9283		argLen:  2,
9284		asm:     arm.AADD,
9285		reg: regInfo{
9286			inputs: []inputInfo{
9287				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9288				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9289			},
9290			outputs: []outputInfo{
9291				{1, 0},
9292				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9293			},
9294		},
9295	},
9296	{
9297		name:    "ADDSshiftRL",
9298		auxType: auxInt32,
9299		argLen:  2,
9300		asm:     arm.AADD,
9301		reg: regInfo{
9302			inputs: []inputInfo{
9303				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9304				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9305			},
9306			outputs: []outputInfo{
9307				{1, 0},
9308				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9309			},
9310		},
9311	},
9312	{
9313		name:    "ADDSshiftRA",
9314		auxType: auxInt32,
9315		argLen:  2,
9316		asm:     arm.AADD,
9317		reg: regInfo{
9318			inputs: []inputInfo{
9319				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9320				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9321			},
9322			outputs: []outputInfo{
9323				{1, 0},
9324				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9325			},
9326		},
9327	},
9328	{
9329		name:    "SUBSshiftLL",
9330		auxType: auxInt32,
9331		argLen:  2,
9332		asm:     arm.ASUB,
9333		reg: regInfo{
9334			inputs: []inputInfo{
9335				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9336				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9337			},
9338			outputs: []outputInfo{
9339				{1, 0},
9340				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9341			},
9342		},
9343	},
9344	{
9345		name:    "SUBSshiftRL",
9346		auxType: auxInt32,
9347		argLen:  2,
9348		asm:     arm.ASUB,
9349		reg: regInfo{
9350			inputs: []inputInfo{
9351				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9352				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9353			},
9354			outputs: []outputInfo{
9355				{1, 0},
9356				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9357			},
9358		},
9359	},
9360	{
9361		name:    "SUBSshiftRA",
9362		auxType: auxInt32,
9363		argLen:  2,
9364		asm:     arm.ASUB,
9365		reg: regInfo{
9366			inputs: []inputInfo{
9367				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9368				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9369			},
9370			outputs: []outputInfo{
9371				{1, 0},
9372				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9373			},
9374		},
9375	},
9376	{
9377		name:    "RSBSshiftLL",
9378		auxType: auxInt32,
9379		argLen:  2,
9380		asm:     arm.ARSB,
9381		reg: regInfo{
9382			inputs: []inputInfo{
9383				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9384				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9385			},
9386			outputs: []outputInfo{
9387				{1, 0},
9388				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9389			},
9390		},
9391	},
9392	{
9393		name:    "RSBSshiftRL",
9394		auxType: auxInt32,
9395		argLen:  2,
9396		asm:     arm.ARSB,
9397		reg: regInfo{
9398			inputs: []inputInfo{
9399				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9400				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9401			},
9402			outputs: []outputInfo{
9403				{1, 0},
9404				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9405			},
9406		},
9407	},
9408	{
9409		name:    "RSBSshiftRA",
9410		auxType: auxInt32,
9411		argLen:  2,
9412		asm:     arm.ARSB,
9413		reg: regInfo{
9414			inputs: []inputInfo{
9415				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9416				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9417			},
9418			outputs: []outputInfo{
9419				{1, 0},
9420				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9421			},
9422		},
9423	},
9424	{
9425		name:   "ADDshiftLLreg",
9426		argLen: 3,
9427		asm:    arm.AADD,
9428		reg: regInfo{
9429			inputs: []inputInfo{
9430				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9431				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9432				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9433			},
9434			outputs: []outputInfo{
9435				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9436			},
9437		},
9438	},
9439	{
9440		name:   "ADDshiftRLreg",
9441		argLen: 3,
9442		asm:    arm.AADD,
9443		reg: regInfo{
9444			inputs: []inputInfo{
9445				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9446				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9447				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9448			},
9449			outputs: []outputInfo{
9450				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9451			},
9452		},
9453	},
9454	{
9455		name:   "ADDshiftRAreg",
9456		argLen: 3,
9457		asm:    arm.AADD,
9458		reg: regInfo{
9459			inputs: []inputInfo{
9460				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9461				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9462				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9463			},
9464			outputs: []outputInfo{
9465				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9466			},
9467		},
9468	},
9469	{
9470		name:   "SUBshiftLLreg",
9471		argLen: 3,
9472		asm:    arm.ASUB,
9473		reg: regInfo{
9474			inputs: []inputInfo{
9475				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9476				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9477				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9478			},
9479			outputs: []outputInfo{
9480				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9481			},
9482		},
9483	},
9484	{
9485		name:   "SUBshiftRLreg",
9486		argLen: 3,
9487		asm:    arm.ASUB,
9488		reg: regInfo{
9489			inputs: []inputInfo{
9490				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9491				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9492				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9493			},
9494			outputs: []outputInfo{
9495				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9496			},
9497		},
9498	},
9499	{
9500		name:   "SUBshiftRAreg",
9501		argLen: 3,
9502		asm:    arm.ASUB,
9503		reg: regInfo{
9504			inputs: []inputInfo{
9505				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9506				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9507				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9508			},
9509			outputs: []outputInfo{
9510				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9511			},
9512		},
9513	},
9514	{
9515		name:   "RSBshiftLLreg",
9516		argLen: 3,
9517		asm:    arm.ARSB,
9518		reg: regInfo{
9519			inputs: []inputInfo{
9520				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9521				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9522				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9523			},
9524			outputs: []outputInfo{
9525				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9526			},
9527		},
9528	},
9529	{
9530		name:   "RSBshiftRLreg",
9531		argLen: 3,
9532		asm:    arm.ARSB,
9533		reg: regInfo{
9534			inputs: []inputInfo{
9535				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9536				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9537				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9538			},
9539			outputs: []outputInfo{
9540				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9541			},
9542		},
9543	},
9544	{
9545		name:   "RSBshiftRAreg",
9546		argLen: 3,
9547		asm:    arm.ARSB,
9548		reg: regInfo{
9549			inputs: []inputInfo{
9550				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9551				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9552				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9553			},
9554			outputs: []outputInfo{
9555				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9556			},
9557		},
9558	},
9559	{
9560		name:   "ANDshiftLLreg",
9561		argLen: 3,
9562		asm:    arm.AAND,
9563		reg: regInfo{
9564			inputs: []inputInfo{
9565				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9566				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9567				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9568			},
9569			outputs: []outputInfo{
9570				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9571			},
9572		},
9573	},
9574	{
9575		name:   "ANDshiftRLreg",
9576		argLen: 3,
9577		asm:    arm.AAND,
9578		reg: regInfo{
9579			inputs: []inputInfo{
9580				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9581				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9582				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9583			},
9584			outputs: []outputInfo{
9585				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9586			},
9587		},
9588	},
9589	{
9590		name:   "ANDshiftRAreg",
9591		argLen: 3,
9592		asm:    arm.AAND,
9593		reg: regInfo{
9594			inputs: []inputInfo{
9595				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9596				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9597				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9598			},
9599			outputs: []outputInfo{
9600				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9601			},
9602		},
9603	},
9604	{
9605		name:   "ORshiftLLreg",
9606		argLen: 3,
9607		asm:    arm.AORR,
9608		reg: regInfo{
9609			inputs: []inputInfo{
9610				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9611				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9612				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9613			},
9614			outputs: []outputInfo{
9615				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9616			},
9617		},
9618	},
9619	{
9620		name:   "ORshiftRLreg",
9621		argLen: 3,
9622		asm:    arm.AORR,
9623		reg: regInfo{
9624			inputs: []inputInfo{
9625				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9626				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9627				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9628			},
9629			outputs: []outputInfo{
9630				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9631			},
9632		},
9633	},
9634	{
9635		name:   "ORshiftRAreg",
9636		argLen: 3,
9637		asm:    arm.AORR,
9638		reg: regInfo{
9639			inputs: []inputInfo{
9640				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9641				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9642				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9643			},
9644			outputs: []outputInfo{
9645				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9646			},
9647		},
9648	},
9649	{
9650		name:   "XORshiftLLreg",
9651		argLen: 3,
9652		asm:    arm.AEOR,
9653		reg: regInfo{
9654			inputs: []inputInfo{
9655				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9656				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9657				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9658			},
9659			outputs: []outputInfo{
9660				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9661			},
9662		},
9663	},
9664	{
9665		name:   "XORshiftRLreg",
9666		argLen: 3,
9667		asm:    arm.AEOR,
9668		reg: regInfo{
9669			inputs: []inputInfo{
9670				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9671				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9672				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9673			},
9674			outputs: []outputInfo{
9675				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9676			},
9677		},
9678	},
9679	{
9680		name:   "XORshiftRAreg",
9681		argLen: 3,
9682		asm:    arm.AEOR,
9683		reg: regInfo{
9684			inputs: []inputInfo{
9685				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9686				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9687				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9688			},
9689			outputs: []outputInfo{
9690				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9691			},
9692		},
9693	},
9694	{
9695		name:   "BICshiftLLreg",
9696		argLen: 3,
9697		asm:    arm.ABIC,
9698		reg: regInfo{
9699			inputs: []inputInfo{
9700				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9701				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9702				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9703			},
9704			outputs: []outputInfo{
9705				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9706			},
9707		},
9708	},
9709	{
9710		name:   "BICshiftRLreg",
9711		argLen: 3,
9712		asm:    arm.ABIC,
9713		reg: regInfo{
9714			inputs: []inputInfo{
9715				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9716				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9717				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9718			},
9719			outputs: []outputInfo{
9720				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9721			},
9722		},
9723	},
9724	{
9725		name:   "BICshiftRAreg",
9726		argLen: 3,
9727		asm:    arm.ABIC,
9728		reg: regInfo{
9729			inputs: []inputInfo{
9730				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9731				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9732				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9733			},
9734			outputs: []outputInfo{
9735				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9736			},
9737		},
9738	},
9739	{
9740		name:   "MVNshiftLLreg",
9741		argLen: 2,
9742		asm:    arm.AMVN,
9743		reg: regInfo{
9744			inputs: []inputInfo{
9745				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9746				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9747			},
9748			outputs: []outputInfo{
9749				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9750			},
9751		},
9752	},
9753	{
9754		name:   "MVNshiftRLreg",
9755		argLen: 2,
9756		asm:    arm.AMVN,
9757		reg: regInfo{
9758			inputs: []inputInfo{
9759				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9760				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9761			},
9762			outputs: []outputInfo{
9763				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9764			},
9765		},
9766	},
9767	{
9768		name:   "MVNshiftRAreg",
9769		argLen: 2,
9770		asm:    arm.AMVN,
9771		reg: regInfo{
9772			inputs: []inputInfo{
9773				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9774				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
9775			},
9776			outputs: []outputInfo{
9777				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9778			},
9779		},
9780	},
9781	{
9782		name:   "ADCshiftLLreg",
9783		argLen: 4,
9784		asm:    arm.AADC,
9785		reg: regInfo{
9786			inputs: []inputInfo{
9787				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9788				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9789				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9790			},
9791			outputs: []outputInfo{
9792				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9793			},
9794		},
9795	},
9796	{
9797		name:   "ADCshiftRLreg",
9798		argLen: 4,
9799		asm:    arm.AADC,
9800		reg: regInfo{
9801			inputs: []inputInfo{
9802				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9803				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9804				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9805			},
9806			outputs: []outputInfo{
9807				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9808			},
9809		},
9810	},
9811	{
9812		name:   "ADCshiftRAreg",
9813		argLen: 4,
9814		asm:    arm.AADC,
9815		reg: regInfo{
9816			inputs: []inputInfo{
9817				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9818				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9819				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9820			},
9821			outputs: []outputInfo{
9822				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9823			},
9824		},
9825	},
9826	{
9827		name:   "SBCshiftLLreg",
9828		argLen: 4,
9829		asm:    arm.ASBC,
9830		reg: regInfo{
9831			inputs: []inputInfo{
9832				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9833				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9834				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9835			},
9836			outputs: []outputInfo{
9837				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9838			},
9839		},
9840	},
9841	{
9842		name:   "SBCshiftRLreg",
9843		argLen: 4,
9844		asm:    arm.ASBC,
9845		reg: regInfo{
9846			inputs: []inputInfo{
9847				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9848				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9849				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9850			},
9851			outputs: []outputInfo{
9852				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9853			},
9854		},
9855	},
9856	{
9857		name:   "SBCshiftRAreg",
9858		argLen: 4,
9859		asm:    arm.ASBC,
9860		reg: regInfo{
9861			inputs: []inputInfo{
9862				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9863				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9864				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9865			},
9866			outputs: []outputInfo{
9867				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9868			},
9869		},
9870	},
9871	{
9872		name:   "RSCshiftLLreg",
9873		argLen: 4,
9874		asm:    arm.ARSC,
9875		reg: regInfo{
9876			inputs: []inputInfo{
9877				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9878				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9879				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9880			},
9881			outputs: []outputInfo{
9882				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9883			},
9884		},
9885	},
9886	{
9887		name:   "RSCshiftRLreg",
9888		argLen: 4,
9889		asm:    arm.ARSC,
9890		reg: regInfo{
9891			inputs: []inputInfo{
9892				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9893				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9894				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9895			},
9896			outputs: []outputInfo{
9897				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9898			},
9899		},
9900	},
9901	{
9902		name:   "RSCshiftRAreg",
9903		argLen: 4,
9904		asm:    arm.ARSC,
9905		reg: regInfo{
9906			inputs: []inputInfo{
9907				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9908				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9909				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9910			},
9911			outputs: []outputInfo{
9912				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9913			},
9914		},
9915	},
9916	{
9917		name:   "ADDSshiftLLreg",
9918		argLen: 3,
9919		asm:    arm.AADD,
9920		reg: regInfo{
9921			inputs: []inputInfo{
9922				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9923				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9924				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9925			},
9926			outputs: []outputInfo{
9927				{1, 0},
9928				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9929			},
9930		},
9931	},
9932	{
9933		name:   "ADDSshiftRLreg",
9934		argLen: 3,
9935		asm:    arm.AADD,
9936		reg: regInfo{
9937			inputs: []inputInfo{
9938				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9939				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9940				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9941			},
9942			outputs: []outputInfo{
9943				{1, 0},
9944				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9945			},
9946		},
9947	},
9948	{
9949		name:   "ADDSshiftRAreg",
9950		argLen: 3,
9951		asm:    arm.AADD,
9952		reg: regInfo{
9953			inputs: []inputInfo{
9954				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9955				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9956				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9957			},
9958			outputs: []outputInfo{
9959				{1, 0},
9960				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9961			},
9962		},
9963	},
9964	{
9965		name:   "SUBSshiftLLreg",
9966		argLen: 3,
9967		asm:    arm.ASUB,
9968		reg: regInfo{
9969			inputs: []inputInfo{
9970				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9971				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9972				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9973			},
9974			outputs: []outputInfo{
9975				{1, 0},
9976				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9977			},
9978		},
9979	},
9980	{
9981		name:   "SUBSshiftRLreg",
9982		argLen: 3,
9983		asm:    arm.ASUB,
9984		reg: regInfo{
9985			inputs: []inputInfo{
9986				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9987				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9988				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9989			},
9990			outputs: []outputInfo{
9991				{1, 0},
9992				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
9993			},
9994		},
9995	},
9996	{
9997		name:   "SUBSshiftRAreg",
9998		argLen: 3,
9999		asm:    arm.ASUB,
10000		reg: regInfo{
10001			inputs: []inputInfo{
10002				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10003				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10004				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10005			},
10006			outputs: []outputInfo{
10007				{1, 0},
10008				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10009			},
10010		},
10011	},
10012	{
10013		name:   "RSBSshiftLLreg",
10014		argLen: 3,
10015		asm:    arm.ARSB,
10016		reg: regInfo{
10017			inputs: []inputInfo{
10018				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10019				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10020				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10021			},
10022			outputs: []outputInfo{
10023				{1, 0},
10024				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10025			},
10026		},
10027	},
10028	{
10029		name:   "RSBSshiftRLreg",
10030		argLen: 3,
10031		asm:    arm.ARSB,
10032		reg: regInfo{
10033			inputs: []inputInfo{
10034				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10035				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10036				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10037			},
10038			outputs: []outputInfo{
10039				{1, 0},
10040				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10041			},
10042		},
10043	},
10044	{
10045		name:   "RSBSshiftRAreg",
10046		argLen: 3,
10047		asm:    arm.ARSB,
10048		reg: regInfo{
10049			inputs: []inputInfo{
10050				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10051				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10052				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10053			},
10054			outputs: []outputInfo{
10055				{1, 0},
10056				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10057			},
10058		},
10059	},
10060	{
10061		name:   "CMP",
10062		argLen: 2,
10063		asm:    arm.ACMP,
10064		reg: regInfo{
10065			inputs: []inputInfo{
10066				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10067				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10068			},
10069		},
10070	},
10071	{
10072		name:    "CMPconst",
10073		auxType: auxInt32,
10074		argLen:  1,
10075		asm:     arm.ACMP,
10076		reg: regInfo{
10077			inputs: []inputInfo{
10078				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10079			},
10080		},
10081	},
10082	{
10083		name:   "CMN",
10084		argLen: 2,
10085		asm:    arm.ACMN,
10086		reg: regInfo{
10087			inputs: []inputInfo{
10088				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10089				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10090			},
10091		},
10092	},
10093	{
10094		name:    "CMNconst",
10095		auxType: auxInt32,
10096		argLen:  1,
10097		asm:     arm.ACMN,
10098		reg: regInfo{
10099			inputs: []inputInfo{
10100				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10101			},
10102		},
10103	},
10104	{
10105		name:        "TST",
10106		argLen:      2,
10107		commutative: true,
10108		asm:         arm.ATST,
10109		reg: regInfo{
10110			inputs: []inputInfo{
10111				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10112				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10113			},
10114		},
10115	},
10116	{
10117		name:    "TSTconst",
10118		auxType: auxInt32,
10119		argLen:  1,
10120		asm:     arm.ATST,
10121		reg: regInfo{
10122			inputs: []inputInfo{
10123				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10124			},
10125		},
10126	},
10127	{
10128		name:        "TEQ",
10129		argLen:      2,
10130		commutative: true,
10131		asm:         arm.ATEQ,
10132		reg: regInfo{
10133			inputs: []inputInfo{
10134				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10135				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10136			},
10137		},
10138	},
10139	{
10140		name:    "TEQconst",
10141		auxType: auxInt32,
10142		argLen:  1,
10143		asm:     arm.ATEQ,
10144		reg: regInfo{
10145			inputs: []inputInfo{
10146				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10147			},
10148		},
10149	},
10150	{
10151		name:   "CMPF",
10152		argLen: 2,
10153		asm:    arm.ACMPF,
10154		reg: regInfo{
10155			inputs: []inputInfo{
10156				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10157				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10158			},
10159		},
10160	},
10161	{
10162		name:   "CMPD",
10163		argLen: 2,
10164		asm:    arm.ACMPD,
10165		reg: regInfo{
10166			inputs: []inputInfo{
10167				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10168				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10169			},
10170		},
10171	},
10172	{
10173		name:    "CMPshiftLL",
10174		auxType: auxInt32,
10175		argLen:  2,
10176		asm:     arm.ACMP,
10177		reg: regInfo{
10178			inputs: []inputInfo{
10179				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10180				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10181			},
10182		},
10183	},
10184	{
10185		name:    "CMPshiftRL",
10186		auxType: auxInt32,
10187		argLen:  2,
10188		asm:     arm.ACMP,
10189		reg: regInfo{
10190			inputs: []inputInfo{
10191				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10192				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10193			},
10194		},
10195	},
10196	{
10197		name:    "CMPshiftRA",
10198		auxType: auxInt32,
10199		argLen:  2,
10200		asm:     arm.ACMP,
10201		reg: regInfo{
10202			inputs: []inputInfo{
10203				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10204				{1, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10205			},
10206		},
10207	},
10208	{
10209		name:   "CMPshiftLLreg",
10210		argLen: 3,
10211		asm:    arm.ACMP,
10212		reg: regInfo{
10213			inputs: []inputInfo{
10214				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10215				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10216				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10217			},
10218		},
10219	},
10220	{
10221		name:   "CMPshiftRLreg",
10222		argLen: 3,
10223		asm:    arm.ACMP,
10224		reg: regInfo{
10225			inputs: []inputInfo{
10226				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10227				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10228				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10229			},
10230		},
10231	},
10232	{
10233		name:   "CMPshiftRAreg",
10234		argLen: 3,
10235		asm:    arm.ACMP,
10236		reg: regInfo{
10237			inputs: []inputInfo{
10238				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10239				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10240				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10241			},
10242		},
10243	},
10244	{
10245		name:   "CMPF0",
10246		argLen: 1,
10247		asm:    arm.ACMPF,
10248		reg: regInfo{
10249			inputs: []inputInfo{
10250				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10251			},
10252		},
10253	},
10254	{
10255		name:   "CMPD0",
10256		argLen: 1,
10257		asm:    arm.ACMPD,
10258		reg: regInfo{
10259			inputs: []inputInfo{
10260				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10261			},
10262		},
10263	},
10264	{
10265		name:              "MOVWconst",
10266		auxType:           auxInt32,
10267		argLen:            0,
10268		rematerializeable: true,
10269		asm:               arm.AMOVW,
10270		reg: regInfo{
10271			outputs: []outputInfo{
10272				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10273			},
10274		},
10275	},
10276	{
10277		name:              "MOVFconst",
10278		auxType:           auxFloat64,
10279		argLen:            0,
10280		rematerializeable: true,
10281		asm:               arm.AMOVF,
10282		reg: regInfo{
10283			outputs: []outputInfo{
10284				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10285			},
10286		},
10287	},
10288	{
10289		name:              "MOVDconst",
10290		auxType:           auxFloat64,
10291		argLen:            0,
10292		rematerializeable: true,
10293		asm:               arm.AMOVD,
10294		reg: regInfo{
10295			outputs: []outputInfo{
10296				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10297			},
10298		},
10299	},
10300	{
10301		name:              "MOVWaddr",
10302		auxType:           auxSymOff,
10303		argLen:            1,
10304		rematerializeable: true,
10305		symEffect:         SymAddr,
10306		asm:               arm.AMOVW,
10307		reg: regInfo{
10308			inputs: []inputInfo{
10309				{0, 4294975488}, // SP SB
10310			},
10311			outputs: []outputInfo{
10312				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10313			},
10314		},
10315	},
10316	{
10317		name:           "MOVBload",
10318		auxType:        auxSymOff,
10319		argLen:         2,
10320		faultOnNilArg0: true,
10321		symEffect:      SymRead,
10322		asm:            arm.AMOVB,
10323		reg: regInfo{
10324			inputs: []inputInfo{
10325				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10326			},
10327			outputs: []outputInfo{
10328				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10329			},
10330		},
10331	},
10332	{
10333		name:           "MOVBUload",
10334		auxType:        auxSymOff,
10335		argLen:         2,
10336		faultOnNilArg0: true,
10337		symEffect:      SymRead,
10338		asm:            arm.AMOVBU,
10339		reg: regInfo{
10340			inputs: []inputInfo{
10341				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10342			},
10343			outputs: []outputInfo{
10344				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10345			},
10346		},
10347	},
10348	{
10349		name:           "MOVHload",
10350		auxType:        auxSymOff,
10351		argLen:         2,
10352		faultOnNilArg0: true,
10353		symEffect:      SymRead,
10354		asm:            arm.AMOVH,
10355		reg: regInfo{
10356			inputs: []inputInfo{
10357				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10358			},
10359			outputs: []outputInfo{
10360				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10361			},
10362		},
10363	},
10364	{
10365		name:           "MOVHUload",
10366		auxType:        auxSymOff,
10367		argLen:         2,
10368		faultOnNilArg0: true,
10369		symEffect:      SymRead,
10370		asm:            arm.AMOVHU,
10371		reg: regInfo{
10372			inputs: []inputInfo{
10373				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10374			},
10375			outputs: []outputInfo{
10376				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10377			},
10378		},
10379	},
10380	{
10381		name:           "MOVWload",
10382		auxType:        auxSymOff,
10383		argLen:         2,
10384		faultOnNilArg0: true,
10385		symEffect:      SymRead,
10386		asm:            arm.AMOVW,
10387		reg: regInfo{
10388			inputs: []inputInfo{
10389				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10390			},
10391			outputs: []outputInfo{
10392				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10393			},
10394		},
10395	},
10396	{
10397		name:           "MOVFload",
10398		auxType:        auxSymOff,
10399		argLen:         2,
10400		faultOnNilArg0: true,
10401		symEffect:      SymRead,
10402		asm:            arm.AMOVF,
10403		reg: regInfo{
10404			inputs: []inputInfo{
10405				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10406			},
10407			outputs: []outputInfo{
10408				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10409			},
10410		},
10411	},
10412	{
10413		name:           "MOVDload",
10414		auxType:        auxSymOff,
10415		argLen:         2,
10416		faultOnNilArg0: true,
10417		symEffect:      SymRead,
10418		asm:            arm.AMOVD,
10419		reg: regInfo{
10420			inputs: []inputInfo{
10421				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10422			},
10423			outputs: []outputInfo{
10424				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10425			},
10426		},
10427	},
10428	{
10429		name:           "MOVBstore",
10430		auxType:        auxSymOff,
10431		argLen:         3,
10432		faultOnNilArg0: true,
10433		symEffect:      SymWrite,
10434		asm:            arm.AMOVB,
10435		reg: regInfo{
10436			inputs: []inputInfo{
10437				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10438				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10439			},
10440		},
10441	},
10442	{
10443		name:           "MOVHstore",
10444		auxType:        auxSymOff,
10445		argLen:         3,
10446		faultOnNilArg0: true,
10447		symEffect:      SymWrite,
10448		asm:            arm.AMOVH,
10449		reg: regInfo{
10450			inputs: []inputInfo{
10451				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10452				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10453			},
10454		},
10455	},
10456	{
10457		name:           "MOVWstore",
10458		auxType:        auxSymOff,
10459		argLen:         3,
10460		faultOnNilArg0: true,
10461		symEffect:      SymWrite,
10462		asm:            arm.AMOVW,
10463		reg: regInfo{
10464			inputs: []inputInfo{
10465				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10466				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10467			},
10468		},
10469	},
10470	{
10471		name:           "MOVFstore",
10472		auxType:        auxSymOff,
10473		argLen:         3,
10474		faultOnNilArg0: true,
10475		symEffect:      SymWrite,
10476		asm:            arm.AMOVF,
10477		reg: regInfo{
10478			inputs: []inputInfo{
10479				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10480				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10481			},
10482		},
10483	},
10484	{
10485		name:           "MOVDstore",
10486		auxType:        auxSymOff,
10487		argLen:         3,
10488		faultOnNilArg0: true,
10489		symEffect:      SymWrite,
10490		asm:            arm.AMOVD,
10491		reg: regInfo{
10492			inputs: []inputInfo{
10493				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10494				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10495			},
10496		},
10497	},
10498	{
10499		name:   "MOVWloadidx",
10500		argLen: 3,
10501		asm:    arm.AMOVW,
10502		reg: regInfo{
10503			inputs: []inputInfo{
10504				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10505				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10506			},
10507			outputs: []outputInfo{
10508				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10509			},
10510		},
10511	},
10512	{
10513		name:    "MOVWloadshiftLL",
10514		auxType: auxInt32,
10515		argLen:  3,
10516		asm:     arm.AMOVW,
10517		reg: regInfo{
10518			inputs: []inputInfo{
10519				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10520				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10521			},
10522			outputs: []outputInfo{
10523				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10524			},
10525		},
10526	},
10527	{
10528		name:    "MOVWloadshiftRL",
10529		auxType: auxInt32,
10530		argLen:  3,
10531		asm:     arm.AMOVW,
10532		reg: regInfo{
10533			inputs: []inputInfo{
10534				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10535				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10536			},
10537			outputs: []outputInfo{
10538				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10539			},
10540		},
10541	},
10542	{
10543		name:    "MOVWloadshiftRA",
10544		auxType: auxInt32,
10545		argLen:  3,
10546		asm:     arm.AMOVW,
10547		reg: regInfo{
10548			inputs: []inputInfo{
10549				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10550				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10551			},
10552			outputs: []outputInfo{
10553				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10554			},
10555		},
10556	},
10557	{
10558		name:   "MOVWstoreidx",
10559		argLen: 4,
10560		asm:    arm.AMOVW,
10561		reg: regInfo{
10562			inputs: []inputInfo{
10563				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10564				{2, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10565				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10566			},
10567		},
10568	},
10569	{
10570		name:    "MOVWstoreshiftLL",
10571		auxType: auxInt32,
10572		argLen:  4,
10573		asm:     arm.AMOVW,
10574		reg: regInfo{
10575			inputs: []inputInfo{
10576				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10577				{2, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10578				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10579			},
10580		},
10581	},
10582	{
10583		name:    "MOVWstoreshiftRL",
10584		auxType: auxInt32,
10585		argLen:  4,
10586		asm:     arm.AMOVW,
10587		reg: regInfo{
10588			inputs: []inputInfo{
10589				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10590				{2, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10591				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10592			},
10593		},
10594	},
10595	{
10596		name:    "MOVWstoreshiftRA",
10597		auxType: auxInt32,
10598		argLen:  4,
10599		asm:     arm.AMOVW,
10600		reg: regInfo{
10601			inputs: []inputInfo{
10602				{1, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10603				{2, 22527},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10604				{0, 4294998015}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 SP R14 SB
10605			},
10606		},
10607	},
10608	{
10609		name:   "MOVBreg",
10610		argLen: 1,
10611		asm:    arm.AMOVBS,
10612		reg: regInfo{
10613			inputs: []inputInfo{
10614				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10615			},
10616			outputs: []outputInfo{
10617				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10618			},
10619		},
10620	},
10621	{
10622		name:   "MOVBUreg",
10623		argLen: 1,
10624		asm:    arm.AMOVBU,
10625		reg: regInfo{
10626			inputs: []inputInfo{
10627				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10628			},
10629			outputs: []outputInfo{
10630				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10631			},
10632		},
10633	},
10634	{
10635		name:   "MOVHreg",
10636		argLen: 1,
10637		asm:    arm.AMOVHS,
10638		reg: regInfo{
10639			inputs: []inputInfo{
10640				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10641			},
10642			outputs: []outputInfo{
10643				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10644			},
10645		},
10646	},
10647	{
10648		name:   "MOVHUreg",
10649		argLen: 1,
10650		asm:    arm.AMOVHU,
10651		reg: regInfo{
10652			inputs: []inputInfo{
10653				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10654			},
10655			outputs: []outputInfo{
10656				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10657			},
10658		},
10659	},
10660	{
10661		name:   "MOVWreg",
10662		argLen: 1,
10663		asm:    arm.AMOVW,
10664		reg: regInfo{
10665			inputs: []inputInfo{
10666				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10667			},
10668			outputs: []outputInfo{
10669				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10670			},
10671		},
10672	},
10673	{
10674		name:         "MOVWnop",
10675		argLen:       1,
10676		resultInArg0: true,
10677		reg: regInfo{
10678			inputs: []inputInfo{
10679				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10680			},
10681			outputs: []outputInfo{
10682				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10683			},
10684		},
10685	},
10686	{
10687		name:   "MOVWF",
10688		argLen: 1,
10689		asm:    arm.AMOVWF,
10690		reg: regInfo{
10691			inputs: []inputInfo{
10692				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10693			},
10694			clobbers: 2147483648, // F15
10695			outputs: []outputInfo{
10696				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10697			},
10698		},
10699	},
10700	{
10701		name:   "MOVWD",
10702		argLen: 1,
10703		asm:    arm.AMOVWD,
10704		reg: regInfo{
10705			inputs: []inputInfo{
10706				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10707			},
10708			clobbers: 2147483648, // F15
10709			outputs: []outputInfo{
10710				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10711			},
10712		},
10713	},
10714	{
10715		name:   "MOVWUF",
10716		argLen: 1,
10717		asm:    arm.AMOVWF,
10718		reg: regInfo{
10719			inputs: []inputInfo{
10720				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10721			},
10722			clobbers: 2147483648, // F15
10723			outputs: []outputInfo{
10724				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10725			},
10726		},
10727	},
10728	{
10729		name:   "MOVWUD",
10730		argLen: 1,
10731		asm:    arm.AMOVWD,
10732		reg: regInfo{
10733			inputs: []inputInfo{
10734				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10735			},
10736			clobbers: 2147483648, // F15
10737			outputs: []outputInfo{
10738				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10739			},
10740		},
10741	},
10742	{
10743		name:   "MOVFW",
10744		argLen: 1,
10745		asm:    arm.AMOVFW,
10746		reg: regInfo{
10747			inputs: []inputInfo{
10748				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10749			},
10750			clobbers: 2147483648, // F15
10751			outputs: []outputInfo{
10752				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10753			},
10754		},
10755	},
10756	{
10757		name:   "MOVDW",
10758		argLen: 1,
10759		asm:    arm.AMOVDW,
10760		reg: regInfo{
10761			inputs: []inputInfo{
10762				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10763			},
10764			clobbers: 2147483648, // F15
10765			outputs: []outputInfo{
10766				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10767			},
10768		},
10769	},
10770	{
10771		name:   "MOVFWU",
10772		argLen: 1,
10773		asm:    arm.AMOVFW,
10774		reg: regInfo{
10775			inputs: []inputInfo{
10776				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10777			},
10778			clobbers: 2147483648, // F15
10779			outputs: []outputInfo{
10780				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10781			},
10782		},
10783	},
10784	{
10785		name:   "MOVDWU",
10786		argLen: 1,
10787		asm:    arm.AMOVDW,
10788		reg: regInfo{
10789			inputs: []inputInfo{
10790				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10791			},
10792			clobbers: 2147483648, // F15
10793			outputs: []outputInfo{
10794				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10795			},
10796		},
10797	},
10798	{
10799		name:   "MOVFD",
10800		argLen: 1,
10801		asm:    arm.AMOVFD,
10802		reg: regInfo{
10803			inputs: []inputInfo{
10804				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10805			},
10806			outputs: []outputInfo{
10807				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10808			},
10809		},
10810	},
10811	{
10812		name:   "MOVDF",
10813		argLen: 1,
10814		asm:    arm.AMOVDF,
10815		reg: regInfo{
10816			inputs: []inputInfo{
10817				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10818			},
10819			outputs: []outputInfo{
10820				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10821			},
10822		},
10823	},
10824	{
10825		name:         "CMOVWHSconst",
10826		auxType:      auxInt32,
10827		argLen:       2,
10828		resultInArg0: true,
10829		asm:          arm.AMOVW,
10830		reg: regInfo{
10831			inputs: []inputInfo{
10832				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10833			},
10834			outputs: []outputInfo{
10835				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10836			},
10837		},
10838	},
10839	{
10840		name:         "CMOVWLSconst",
10841		auxType:      auxInt32,
10842		argLen:       2,
10843		resultInArg0: true,
10844		asm:          arm.AMOVW,
10845		reg: regInfo{
10846			inputs: []inputInfo{
10847				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10848			},
10849			outputs: []outputInfo{
10850				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10851			},
10852		},
10853	},
10854	{
10855		name:   "SRAcond",
10856		argLen: 3,
10857		asm:    arm.ASRA,
10858		reg: regInfo{
10859			inputs: []inputInfo{
10860				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10861				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10862			},
10863			outputs: []outputInfo{
10864				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10865			},
10866		},
10867	},
10868	{
10869		name:         "CALLstatic",
10870		auxType:      auxSymOff,
10871		argLen:       1,
10872		clobberFlags: true,
10873		call:         true,
10874		symEffect:    SymNone,
10875		reg: regInfo{
10876			clobbers: 4294924287, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10877		},
10878	},
10879	{
10880		name:         "CALLclosure",
10881		auxType:      auxInt64,
10882		argLen:       3,
10883		clobberFlags: true,
10884		call:         true,
10885		reg: regInfo{
10886			inputs: []inputInfo{
10887				{1, 128},   // R7
10888				{0, 29695}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 SP R14
10889			},
10890			clobbers: 4294924287, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10891		},
10892	},
10893	{
10894		name:         "CALLinter",
10895		auxType:      auxInt64,
10896		argLen:       2,
10897		clobberFlags: true,
10898		call:         true,
10899		reg: regInfo{
10900			inputs: []inputInfo{
10901				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10902			},
10903			clobbers: 4294924287, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
10904		},
10905	},
10906	{
10907		name:           "LoweredNilCheck",
10908		argLen:         2,
10909		nilCheck:       true,
10910		faultOnNilArg0: true,
10911		reg: regInfo{
10912			inputs: []inputInfo{
10913				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
10914			},
10915		},
10916	},
10917	{
10918		name:   "Equal",
10919		argLen: 1,
10920		reg: regInfo{
10921			outputs: []outputInfo{
10922				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10923			},
10924		},
10925	},
10926	{
10927		name:   "NotEqual",
10928		argLen: 1,
10929		reg: regInfo{
10930			outputs: []outputInfo{
10931				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10932			},
10933		},
10934	},
10935	{
10936		name:   "LessThan",
10937		argLen: 1,
10938		reg: regInfo{
10939			outputs: []outputInfo{
10940				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10941			},
10942		},
10943	},
10944	{
10945		name:   "LessEqual",
10946		argLen: 1,
10947		reg: regInfo{
10948			outputs: []outputInfo{
10949				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10950			},
10951		},
10952	},
10953	{
10954		name:   "GreaterThan",
10955		argLen: 1,
10956		reg: regInfo{
10957			outputs: []outputInfo{
10958				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10959			},
10960		},
10961	},
10962	{
10963		name:   "GreaterEqual",
10964		argLen: 1,
10965		reg: regInfo{
10966			outputs: []outputInfo{
10967				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10968			},
10969		},
10970	},
10971	{
10972		name:   "LessThanU",
10973		argLen: 1,
10974		reg: regInfo{
10975			outputs: []outputInfo{
10976				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10977			},
10978		},
10979	},
10980	{
10981		name:   "LessEqualU",
10982		argLen: 1,
10983		reg: regInfo{
10984			outputs: []outputInfo{
10985				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10986			},
10987		},
10988	},
10989	{
10990		name:   "GreaterThanU",
10991		argLen: 1,
10992		reg: regInfo{
10993			outputs: []outputInfo{
10994				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
10995			},
10996		},
10997	},
10998	{
10999		name:   "GreaterEqualU",
11000		argLen: 1,
11001		reg: regInfo{
11002			outputs: []outputInfo{
11003				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
11004			},
11005		},
11006	},
11007	{
11008		name:           "DUFFZERO",
11009		auxType:        auxInt64,
11010		argLen:         3,
11011		faultOnNilArg0: true,
11012		reg: regInfo{
11013			inputs: []inputInfo{
11014				{0, 2}, // R1
11015				{1, 1}, // R0
11016			},
11017			clobbers: 16386, // R1 R14
11018		},
11019	},
11020	{
11021		name:           "DUFFCOPY",
11022		auxType:        auxInt64,
11023		argLen:         3,
11024		faultOnNilArg0: true,
11025		faultOnNilArg1: true,
11026		reg: regInfo{
11027			inputs: []inputInfo{
11028				{0, 4}, // R2
11029				{1, 2}, // R1
11030			},
11031			clobbers: 16391, // R0 R1 R2 R14
11032		},
11033	},
11034	{
11035		name:           "LoweredZero",
11036		auxType:        auxInt64,
11037		argLen:         4,
11038		clobberFlags:   true,
11039		faultOnNilArg0: true,
11040		reg: regInfo{
11041			inputs: []inputInfo{
11042				{0, 2},     // R1
11043				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
11044				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
11045			},
11046			clobbers: 2, // R1
11047		},
11048	},
11049	{
11050		name:           "LoweredMove",
11051		auxType:        auxInt64,
11052		argLen:         4,
11053		clobberFlags:   true,
11054		faultOnNilArg0: true,
11055		faultOnNilArg1: true,
11056		reg: regInfo{
11057			inputs: []inputInfo{
11058				{0, 4},     // R2
11059				{1, 2},     // R1
11060				{2, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
11061			},
11062			clobbers: 6, // R1 R2
11063		},
11064	},
11065	{
11066		name:   "LoweredGetClosurePtr",
11067		argLen: 0,
11068		reg: regInfo{
11069			outputs: []outputInfo{
11070				{0, 128}, // R7
11071			},
11072		},
11073	},
11074	{
11075		name:   "MOVWconvert",
11076		argLen: 2,
11077		asm:    arm.AMOVW,
11078		reg: regInfo{
11079			inputs: []inputInfo{
11080				{0, 22527}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 g R12 R14
11081			},
11082			outputs: []outputInfo{
11083				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
11084			},
11085		},
11086	},
11087	{
11088		name:   "FlagEQ",
11089		argLen: 0,
11090		reg:    regInfo{},
11091	},
11092	{
11093		name:   "FlagLT_ULT",
11094		argLen: 0,
11095		reg:    regInfo{},
11096	},
11097	{
11098		name:   "FlagLT_UGT",
11099		argLen: 0,
11100		reg:    regInfo{},
11101	},
11102	{
11103		name:   "FlagGT_UGT",
11104		argLen: 0,
11105		reg:    regInfo{},
11106	},
11107	{
11108		name:   "FlagGT_ULT",
11109		argLen: 0,
11110		reg:    regInfo{},
11111	},
11112	{
11113		name:   "InvertFlags",
11114		argLen: 1,
11115		reg:    regInfo{},
11116	},
11117
11118	{
11119		name:        "ADD",
11120		argLen:      2,
11121		commutative: true,
11122		asm:         arm64.AADD,
11123		reg: regInfo{
11124			inputs: []inputInfo{
11125				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11126				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11127			},
11128			outputs: []outputInfo{
11129				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11130			},
11131		},
11132	},
11133	{
11134		name:    "ADDconst",
11135		auxType: auxInt64,
11136		argLen:  1,
11137		asm:     arm64.AADD,
11138		reg: regInfo{
11139			inputs: []inputInfo{
11140				{0, 1878786047}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP
11141			},
11142			outputs: []outputInfo{
11143				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11144			},
11145		},
11146	},
11147	{
11148		name:   "SUB",
11149		argLen: 2,
11150		asm:    arm64.ASUB,
11151		reg: regInfo{
11152			inputs: []inputInfo{
11153				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11154				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11155			},
11156			outputs: []outputInfo{
11157				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11158			},
11159		},
11160	},
11161	{
11162		name:    "SUBconst",
11163		auxType: auxInt64,
11164		argLen:  1,
11165		asm:     arm64.ASUB,
11166		reg: regInfo{
11167			inputs: []inputInfo{
11168				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11169			},
11170			outputs: []outputInfo{
11171				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11172			},
11173		},
11174	},
11175	{
11176		name:        "MUL",
11177		argLen:      2,
11178		commutative: true,
11179		asm:         arm64.AMUL,
11180		reg: regInfo{
11181			inputs: []inputInfo{
11182				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11183				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11184			},
11185			outputs: []outputInfo{
11186				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11187			},
11188		},
11189	},
11190	{
11191		name:        "MULW",
11192		argLen:      2,
11193		commutative: true,
11194		asm:         arm64.AMULW,
11195		reg: regInfo{
11196			inputs: []inputInfo{
11197				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11198				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11199			},
11200			outputs: []outputInfo{
11201				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11202			},
11203		},
11204	},
11205	{
11206		name:        "MULH",
11207		argLen:      2,
11208		commutative: true,
11209		asm:         arm64.ASMULH,
11210		reg: regInfo{
11211			inputs: []inputInfo{
11212				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11213				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11214			},
11215			outputs: []outputInfo{
11216				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11217			},
11218		},
11219	},
11220	{
11221		name:        "UMULH",
11222		argLen:      2,
11223		commutative: true,
11224		asm:         arm64.AUMULH,
11225		reg: regInfo{
11226			inputs: []inputInfo{
11227				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11228				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11229			},
11230			outputs: []outputInfo{
11231				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11232			},
11233		},
11234	},
11235	{
11236		name:        "MULL",
11237		argLen:      2,
11238		commutative: true,
11239		asm:         arm64.ASMULL,
11240		reg: regInfo{
11241			inputs: []inputInfo{
11242				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11243				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11244			},
11245			outputs: []outputInfo{
11246				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11247			},
11248		},
11249	},
11250	{
11251		name:        "UMULL",
11252		argLen:      2,
11253		commutative: true,
11254		asm:         arm64.AUMULL,
11255		reg: regInfo{
11256			inputs: []inputInfo{
11257				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11258				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11259			},
11260			outputs: []outputInfo{
11261				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11262			},
11263		},
11264	},
11265	{
11266		name:   "DIV",
11267		argLen: 2,
11268		asm:    arm64.ASDIV,
11269		reg: regInfo{
11270			inputs: []inputInfo{
11271				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11272				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11273			},
11274			outputs: []outputInfo{
11275				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11276			},
11277		},
11278	},
11279	{
11280		name:   "UDIV",
11281		argLen: 2,
11282		asm:    arm64.AUDIV,
11283		reg: regInfo{
11284			inputs: []inputInfo{
11285				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11286				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11287			},
11288			outputs: []outputInfo{
11289				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11290			},
11291		},
11292	},
11293	{
11294		name:   "DIVW",
11295		argLen: 2,
11296		asm:    arm64.ASDIVW,
11297		reg: regInfo{
11298			inputs: []inputInfo{
11299				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11300				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11301			},
11302			outputs: []outputInfo{
11303				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11304			},
11305		},
11306	},
11307	{
11308		name:   "UDIVW",
11309		argLen: 2,
11310		asm:    arm64.AUDIVW,
11311		reg: regInfo{
11312			inputs: []inputInfo{
11313				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11314				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11315			},
11316			outputs: []outputInfo{
11317				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11318			},
11319		},
11320	},
11321	{
11322		name:   "MOD",
11323		argLen: 2,
11324		asm:    arm64.AREM,
11325		reg: regInfo{
11326			inputs: []inputInfo{
11327				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11328				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11329			},
11330			outputs: []outputInfo{
11331				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11332			},
11333		},
11334	},
11335	{
11336		name:   "UMOD",
11337		argLen: 2,
11338		asm:    arm64.AUREM,
11339		reg: regInfo{
11340			inputs: []inputInfo{
11341				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11342				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11343			},
11344			outputs: []outputInfo{
11345				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11346			},
11347		},
11348	},
11349	{
11350		name:   "MODW",
11351		argLen: 2,
11352		asm:    arm64.AREMW,
11353		reg: regInfo{
11354			inputs: []inputInfo{
11355				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11356				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11357			},
11358			outputs: []outputInfo{
11359				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11360			},
11361		},
11362	},
11363	{
11364		name:   "UMODW",
11365		argLen: 2,
11366		asm:    arm64.AUREMW,
11367		reg: regInfo{
11368			inputs: []inputInfo{
11369				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11370				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11371			},
11372			outputs: []outputInfo{
11373				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11374			},
11375		},
11376	},
11377	{
11378		name:        "FADDS",
11379		argLen:      2,
11380		commutative: true,
11381		asm:         arm64.AFADDS,
11382		reg: regInfo{
11383			inputs: []inputInfo{
11384				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11385				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11386			},
11387			outputs: []outputInfo{
11388				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11389			},
11390		},
11391	},
11392	{
11393		name:        "FADDD",
11394		argLen:      2,
11395		commutative: true,
11396		asm:         arm64.AFADDD,
11397		reg: regInfo{
11398			inputs: []inputInfo{
11399				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11400				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11401			},
11402			outputs: []outputInfo{
11403				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11404			},
11405		},
11406	},
11407	{
11408		name:   "FSUBS",
11409		argLen: 2,
11410		asm:    arm64.AFSUBS,
11411		reg: regInfo{
11412			inputs: []inputInfo{
11413				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11414				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11415			},
11416			outputs: []outputInfo{
11417				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11418			},
11419		},
11420	},
11421	{
11422		name:   "FSUBD",
11423		argLen: 2,
11424		asm:    arm64.AFSUBD,
11425		reg: regInfo{
11426			inputs: []inputInfo{
11427				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11428				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11429			},
11430			outputs: []outputInfo{
11431				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11432			},
11433		},
11434	},
11435	{
11436		name:        "FMULS",
11437		argLen:      2,
11438		commutative: true,
11439		asm:         arm64.AFMULS,
11440		reg: regInfo{
11441			inputs: []inputInfo{
11442				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11443				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11444			},
11445			outputs: []outputInfo{
11446				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11447			},
11448		},
11449	},
11450	{
11451		name:        "FMULD",
11452		argLen:      2,
11453		commutative: true,
11454		asm:         arm64.AFMULD,
11455		reg: regInfo{
11456			inputs: []inputInfo{
11457				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11458				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11459			},
11460			outputs: []outputInfo{
11461				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11462			},
11463		},
11464	},
11465	{
11466		name:   "FDIVS",
11467		argLen: 2,
11468		asm:    arm64.AFDIVS,
11469		reg: regInfo{
11470			inputs: []inputInfo{
11471				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11472				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11473			},
11474			outputs: []outputInfo{
11475				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11476			},
11477		},
11478	},
11479	{
11480		name:   "FDIVD",
11481		argLen: 2,
11482		asm:    arm64.AFDIVD,
11483		reg: regInfo{
11484			inputs: []inputInfo{
11485				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11486				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11487			},
11488			outputs: []outputInfo{
11489				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11490			},
11491		},
11492	},
11493	{
11494		name:        "AND",
11495		argLen:      2,
11496		commutative: true,
11497		asm:         arm64.AAND,
11498		reg: regInfo{
11499			inputs: []inputInfo{
11500				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11501				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11502			},
11503			outputs: []outputInfo{
11504				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11505			},
11506		},
11507	},
11508	{
11509		name:    "ANDconst",
11510		auxType: auxInt64,
11511		argLen:  1,
11512		asm:     arm64.AAND,
11513		reg: regInfo{
11514			inputs: []inputInfo{
11515				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11516			},
11517			outputs: []outputInfo{
11518				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11519			},
11520		},
11521	},
11522	{
11523		name:        "OR",
11524		argLen:      2,
11525		commutative: true,
11526		asm:         arm64.AORR,
11527		reg: regInfo{
11528			inputs: []inputInfo{
11529				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11530				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11531			},
11532			outputs: []outputInfo{
11533				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11534			},
11535		},
11536	},
11537	{
11538		name:    "ORconst",
11539		auxType: auxInt64,
11540		argLen:  1,
11541		asm:     arm64.AORR,
11542		reg: regInfo{
11543			inputs: []inputInfo{
11544				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11545			},
11546			outputs: []outputInfo{
11547				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11548			},
11549		},
11550	},
11551	{
11552		name:        "XOR",
11553		argLen:      2,
11554		commutative: true,
11555		asm:         arm64.AEOR,
11556		reg: regInfo{
11557			inputs: []inputInfo{
11558				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11559				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11560			},
11561			outputs: []outputInfo{
11562				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11563			},
11564		},
11565	},
11566	{
11567		name:    "XORconst",
11568		auxType: auxInt64,
11569		argLen:  1,
11570		asm:     arm64.AEOR,
11571		reg: regInfo{
11572			inputs: []inputInfo{
11573				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11574			},
11575			outputs: []outputInfo{
11576				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11577			},
11578		},
11579	},
11580	{
11581		name:   "BIC",
11582		argLen: 2,
11583		asm:    arm64.ABIC,
11584		reg: regInfo{
11585			inputs: []inputInfo{
11586				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11587				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11588			},
11589			outputs: []outputInfo{
11590				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11591			},
11592		},
11593	},
11594	{
11595		name:    "BICconst",
11596		auxType: auxInt64,
11597		argLen:  1,
11598		asm:     arm64.ABIC,
11599		reg: regInfo{
11600			inputs: []inputInfo{
11601				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11602			},
11603			outputs: []outputInfo{
11604				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11605			},
11606		},
11607	},
11608	{
11609		name:   "MVN",
11610		argLen: 1,
11611		asm:    arm64.AMVN,
11612		reg: regInfo{
11613			inputs: []inputInfo{
11614				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11615			},
11616			outputs: []outputInfo{
11617				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11618			},
11619		},
11620	},
11621	{
11622		name:   "NEG",
11623		argLen: 1,
11624		asm:    arm64.ANEG,
11625		reg: regInfo{
11626			inputs: []inputInfo{
11627				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11628			},
11629			outputs: []outputInfo{
11630				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11631			},
11632		},
11633	},
11634	{
11635		name:   "FNEGS",
11636		argLen: 1,
11637		asm:    arm64.AFNEGS,
11638		reg: regInfo{
11639			inputs: []inputInfo{
11640				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11641			},
11642			outputs: []outputInfo{
11643				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11644			},
11645		},
11646	},
11647	{
11648		name:   "FNEGD",
11649		argLen: 1,
11650		asm:    arm64.AFNEGD,
11651		reg: regInfo{
11652			inputs: []inputInfo{
11653				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11654			},
11655			outputs: []outputInfo{
11656				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11657			},
11658		},
11659	},
11660	{
11661		name:   "FSQRTD",
11662		argLen: 1,
11663		asm:    arm64.AFSQRTD,
11664		reg: regInfo{
11665			inputs: []inputInfo{
11666				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11667			},
11668			outputs: []outputInfo{
11669				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11670			},
11671		},
11672	},
11673	{
11674		name:   "REV",
11675		argLen: 1,
11676		asm:    arm64.AREV,
11677		reg: regInfo{
11678			inputs: []inputInfo{
11679				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11680			},
11681			outputs: []outputInfo{
11682				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11683			},
11684		},
11685	},
11686	{
11687		name:   "REVW",
11688		argLen: 1,
11689		asm:    arm64.AREVW,
11690		reg: regInfo{
11691			inputs: []inputInfo{
11692				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11693			},
11694			outputs: []outputInfo{
11695				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11696			},
11697		},
11698	},
11699	{
11700		name:   "REV16W",
11701		argLen: 1,
11702		asm:    arm64.AREV16W,
11703		reg: regInfo{
11704			inputs: []inputInfo{
11705				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11706			},
11707			outputs: []outputInfo{
11708				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11709			},
11710		},
11711	},
11712	{
11713		name:   "RBIT",
11714		argLen: 1,
11715		asm:    arm64.ARBIT,
11716		reg: regInfo{
11717			inputs: []inputInfo{
11718				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11719			},
11720			outputs: []outputInfo{
11721				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11722			},
11723		},
11724	},
11725	{
11726		name:   "RBITW",
11727		argLen: 1,
11728		asm:    arm64.ARBITW,
11729		reg: regInfo{
11730			inputs: []inputInfo{
11731				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11732			},
11733			outputs: []outputInfo{
11734				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11735			},
11736		},
11737	},
11738	{
11739		name:   "CLZ",
11740		argLen: 1,
11741		asm:    arm64.ACLZ,
11742		reg: regInfo{
11743			inputs: []inputInfo{
11744				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11745			},
11746			outputs: []outputInfo{
11747				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11748			},
11749		},
11750	},
11751	{
11752		name:   "CLZW",
11753		argLen: 1,
11754		asm:    arm64.ACLZW,
11755		reg: regInfo{
11756			inputs: []inputInfo{
11757				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11758			},
11759			outputs: []outputInfo{
11760				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11761			},
11762		},
11763	},
11764	{
11765		name:   "SLL",
11766		argLen: 2,
11767		asm:    arm64.ALSL,
11768		reg: regInfo{
11769			inputs: []inputInfo{
11770				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11771				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11772			},
11773			outputs: []outputInfo{
11774				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11775			},
11776		},
11777	},
11778	{
11779		name:    "SLLconst",
11780		auxType: auxInt64,
11781		argLen:  1,
11782		asm:     arm64.ALSL,
11783		reg: regInfo{
11784			inputs: []inputInfo{
11785				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11786			},
11787			outputs: []outputInfo{
11788				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11789			},
11790		},
11791	},
11792	{
11793		name:   "SRL",
11794		argLen: 2,
11795		asm:    arm64.ALSR,
11796		reg: regInfo{
11797			inputs: []inputInfo{
11798				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11799				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11800			},
11801			outputs: []outputInfo{
11802				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11803			},
11804		},
11805	},
11806	{
11807		name:    "SRLconst",
11808		auxType: auxInt64,
11809		argLen:  1,
11810		asm:     arm64.ALSR,
11811		reg: regInfo{
11812			inputs: []inputInfo{
11813				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11814			},
11815			outputs: []outputInfo{
11816				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11817			},
11818		},
11819	},
11820	{
11821		name:   "SRA",
11822		argLen: 2,
11823		asm:    arm64.AASR,
11824		reg: regInfo{
11825			inputs: []inputInfo{
11826				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11827				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11828			},
11829			outputs: []outputInfo{
11830				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11831			},
11832		},
11833	},
11834	{
11835		name:    "SRAconst",
11836		auxType: auxInt64,
11837		argLen:  1,
11838		asm:     arm64.AASR,
11839		reg: regInfo{
11840			inputs: []inputInfo{
11841				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11842			},
11843			outputs: []outputInfo{
11844				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11845			},
11846		},
11847	},
11848	{
11849		name:    "RORconst",
11850		auxType: auxInt64,
11851		argLen:  1,
11852		asm:     arm64.AROR,
11853		reg: regInfo{
11854			inputs: []inputInfo{
11855				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11856			},
11857			outputs: []outputInfo{
11858				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11859			},
11860		},
11861	},
11862	{
11863		name:    "RORWconst",
11864		auxType: auxInt64,
11865		argLen:  1,
11866		asm:     arm64.ARORW,
11867		reg: regInfo{
11868			inputs: []inputInfo{
11869				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11870			},
11871			outputs: []outputInfo{
11872				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11873			},
11874		},
11875	},
11876	{
11877		name:   "CMP",
11878		argLen: 2,
11879		asm:    arm64.ACMP,
11880		reg: regInfo{
11881			inputs: []inputInfo{
11882				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11883				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11884			},
11885		},
11886	},
11887	{
11888		name:    "CMPconst",
11889		auxType: auxInt64,
11890		argLen:  1,
11891		asm:     arm64.ACMP,
11892		reg: regInfo{
11893			inputs: []inputInfo{
11894				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11895			},
11896		},
11897	},
11898	{
11899		name:   "CMPW",
11900		argLen: 2,
11901		asm:    arm64.ACMPW,
11902		reg: regInfo{
11903			inputs: []inputInfo{
11904				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11905				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11906			},
11907		},
11908	},
11909	{
11910		name:    "CMPWconst",
11911		auxType: auxInt32,
11912		argLen:  1,
11913		asm:     arm64.ACMPW,
11914		reg: regInfo{
11915			inputs: []inputInfo{
11916				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11917			},
11918		},
11919	},
11920	{
11921		name:   "CMN",
11922		argLen: 2,
11923		asm:    arm64.ACMN,
11924		reg: regInfo{
11925			inputs: []inputInfo{
11926				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11927				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11928			},
11929		},
11930	},
11931	{
11932		name:    "CMNconst",
11933		auxType: auxInt64,
11934		argLen:  1,
11935		asm:     arm64.ACMN,
11936		reg: regInfo{
11937			inputs: []inputInfo{
11938				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11939			},
11940		},
11941	},
11942	{
11943		name:   "CMNW",
11944		argLen: 2,
11945		asm:    arm64.ACMNW,
11946		reg: regInfo{
11947			inputs: []inputInfo{
11948				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11949				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11950			},
11951		},
11952	},
11953	{
11954		name:    "CMNWconst",
11955		auxType: auxInt32,
11956		argLen:  1,
11957		asm:     arm64.ACMNW,
11958		reg: regInfo{
11959			inputs: []inputInfo{
11960				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11961			},
11962		},
11963	},
11964	{
11965		name:   "FCMPS",
11966		argLen: 2,
11967		asm:    arm64.AFCMPS,
11968		reg: regInfo{
11969			inputs: []inputInfo{
11970				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11971				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11972			},
11973		},
11974	},
11975	{
11976		name:   "FCMPD",
11977		argLen: 2,
11978		asm:    arm64.AFCMPD,
11979		reg: regInfo{
11980			inputs: []inputInfo{
11981				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11982				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
11983			},
11984		},
11985	},
11986	{
11987		name:    "ADDshiftLL",
11988		auxType: auxInt64,
11989		argLen:  2,
11990		asm:     arm64.AADD,
11991		reg: regInfo{
11992			inputs: []inputInfo{
11993				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11994				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
11995			},
11996			outputs: []outputInfo{
11997				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
11998			},
11999		},
12000	},
12001	{
12002		name:    "ADDshiftRL",
12003		auxType: auxInt64,
12004		argLen:  2,
12005		asm:     arm64.AADD,
12006		reg: regInfo{
12007			inputs: []inputInfo{
12008				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12009				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12010			},
12011			outputs: []outputInfo{
12012				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12013			},
12014		},
12015	},
12016	{
12017		name:    "ADDshiftRA",
12018		auxType: auxInt64,
12019		argLen:  2,
12020		asm:     arm64.AADD,
12021		reg: regInfo{
12022			inputs: []inputInfo{
12023				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12024				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12025			},
12026			outputs: []outputInfo{
12027				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12028			},
12029		},
12030	},
12031	{
12032		name:    "SUBshiftLL",
12033		auxType: auxInt64,
12034		argLen:  2,
12035		asm:     arm64.ASUB,
12036		reg: regInfo{
12037			inputs: []inputInfo{
12038				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12039				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12040			},
12041			outputs: []outputInfo{
12042				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12043			},
12044		},
12045	},
12046	{
12047		name:    "SUBshiftRL",
12048		auxType: auxInt64,
12049		argLen:  2,
12050		asm:     arm64.ASUB,
12051		reg: regInfo{
12052			inputs: []inputInfo{
12053				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12054				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12055			},
12056			outputs: []outputInfo{
12057				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12058			},
12059		},
12060	},
12061	{
12062		name:    "SUBshiftRA",
12063		auxType: auxInt64,
12064		argLen:  2,
12065		asm:     arm64.ASUB,
12066		reg: regInfo{
12067			inputs: []inputInfo{
12068				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12069				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12070			},
12071			outputs: []outputInfo{
12072				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12073			},
12074		},
12075	},
12076	{
12077		name:    "ANDshiftLL",
12078		auxType: auxInt64,
12079		argLen:  2,
12080		asm:     arm64.AAND,
12081		reg: regInfo{
12082			inputs: []inputInfo{
12083				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12084				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12085			},
12086			outputs: []outputInfo{
12087				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12088			},
12089		},
12090	},
12091	{
12092		name:    "ANDshiftRL",
12093		auxType: auxInt64,
12094		argLen:  2,
12095		asm:     arm64.AAND,
12096		reg: regInfo{
12097			inputs: []inputInfo{
12098				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12099				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12100			},
12101			outputs: []outputInfo{
12102				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12103			},
12104		},
12105	},
12106	{
12107		name:    "ANDshiftRA",
12108		auxType: auxInt64,
12109		argLen:  2,
12110		asm:     arm64.AAND,
12111		reg: regInfo{
12112			inputs: []inputInfo{
12113				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12114				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12115			},
12116			outputs: []outputInfo{
12117				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12118			},
12119		},
12120	},
12121	{
12122		name:    "ORshiftLL",
12123		auxType: auxInt64,
12124		argLen:  2,
12125		asm:     arm64.AORR,
12126		reg: regInfo{
12127			inputs: []inputInfo{
12128				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12129				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12130			},
12131			outputs: []outputInfo{
12132				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12133			},
12134		},
12135	},
12136	{
12137		name:    "ORshiftRL",
12138		auxType: auxInt64,
12139		argLen:  2,
12140		asm:     arm64.AORR,
12141		reg: regInfo{
12142			inputs: []inputInfo{
12143				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12144				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12145			},
12146			outputs: []outputInfo{
12147				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12148			},
12149		},
12150	},
12151	{
12152		name:    "ORshiftRA",
12153		auxType: auxInt64,
12154		argLen:  2,
12155		asm:     arm64.AORR,
12156		reg: regInfo{
12157			inputs: []inputInfo{
12158				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12159				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12160			},
12161			outputs: []outputInfo{
12162				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12163			},
12164		},
12165	},
12166	{
12167		name:    "XORshiftLL",
12168		auxType: auxInt64,
12169		argLen:  2,
12170		asm:     arm64.AEOR,
12171		reg: regInfo{
12172			inputs: []inputInfo{
12173				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12174				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12175			},
12176			outputs: []outputInfo{
12177				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12178			},
12179		},
12180	},
12181	{
12182		name:    "XORshiftRL",
12183		auxType: auxInt64,
12184		argLen:  2,
12185		asm:     arm64.AEOR,
12186		reg: regInfo{
12187			inputs: []inputInfo{
12188				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12189				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12190			},
12191			outputs: []outputInfo{
12192				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12193			},
12194		},
12195	},
12196	{
12197		name:    "XORshiftRA",
12198		auxType: auxInt64,
12199		argLen:  2,
12200		asm:     arm64.AEOR,
12201		reg: regInfo{
12202			inputs: []inputInfo{
12203				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12204				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12205			},
12206			outputs: []outputInfo{
12207				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12208			},
12209		},
12210	},
12211	{
12212		name:    "BICshiftLL",
12213		auxType: auxInt64,
12214		argLen:  2,
12215		asm:     arm64.ABIC,
12216		reg: regInfo{
12217			inputs: []inputInfo{
12218				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12219				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12220			},
12221			outputs: []outputInfo{
12222				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12223			},
12224		},
12225	},
12226	{
12227		name:    "BICshiftRL",
12228		auxType: auxInt64,
12229		argLen:  2,
12230		asm:     arm64.ABIC,
12231		reg: regInfo{
12232			inputs: []inputInfo{
12233				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12234				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12235			},
12236			outputs: []outputInfo{
12237				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12238			},
12239		},
12240	},
12241	{
12242		name:    "BICshiftRA",
12243		auxType: auxInt64,
12244		argLen:  2,
12245		asm:     arm64.ABIC,
12246		reg: regInfo{
12247			inputs: []inputInfo{
12248				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12249				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12250			},
12251			outputs: []outputInfo{
12252				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12253			},
12254		},
12255	},
12256	{
12257		name:    "CMPshiftLL",
12258		auxType: auxInt64,
12259		argLen:  2,
12260		asm:     arm64.ACMP,
12261		reg: regInfo{
12262			inputs: []inputInfo{
12263				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12264				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12265			},
12266		},
12267	},
12268	{
12269		name:    "CMPshiftRL",
12270		auxType: auxInt64,
12271		argLen:  2,
12272		asm:     arm64.ACMP,
12273		reg: regInfo{
12274			inputs: []inputInfo{
12275				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12276				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12277			},
12278		},
12279	},
12280	{
12281		name:    "CMPshiftRA",
12282		auxType: auxInt64,
12283		argLen:  2,
12284		asm:     arm64.ACMP,
12285		reg: regInfo{
12286			inputs: []inputInfo{
12287				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12288				{1, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12289			},
12290		},
12291	},
12292	{
12293		name:              "MOVDconst",
12294		auxType:           auxInt64,
12295		argLen:            0,
12296		rematerializeable: true,
12297		asm:               arm64.AMOVD,
12298		reg: regInfo{
12299			outputs: []outputInfo{
12300				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12301			},
12302		},
12303	},
12304	{
12305		name:              "FMOVSconst",
12306		auxType:           auxFloat64,
12307		argLen:            0,
12308		rematerializeable: true,
12309		asm:               arm64.AFMOVS,
12310		reg: regInfo{
12311			outputs: []outputInfo{
12312				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12313			},
12314		},
12315	},
12316	{
12317		name:              "FMOVDconst",
12318		auxType:           auxFloat64,
12319		argLen:            0,
12320		rematerializeable: true,
12321		asm:               arm64.AFMOVD,
12322		reg: regInfo{
12323			outputs: []outputInfo{
12324				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12325			},
12326		},
12327	},
12328	{
12329		name:              "MOVDaddr",
12330		auxType:           auxSymOff,
12331		argLen:            1,
12332		rematerializeable: true,
12333		symEffect:         SymAddr,
12334		asm:               arm64.AMOVD,
12335		reg: regInfo{
12336			inputs: []inputInfo{
12337				{0, 9223372037928517632}, // SP SB
12338			},
12339			outputs: []outputInfo{
12340				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12341			},
12342		},
12343	},
12344	{
12345		name:           "MOVBload",
12346		auxType:        auxSymOff,
12347		argLen:         2,
12348		faultOnNilArg0: true,
12349		symEffect:      SymRead,
12350		asm:            arm64.AMOVB,
12351		reg: regInfo{
12352			inputs: []inputInfo{
12353				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12354			},
12355			outputs: []outputInfo{
12356				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12357			},
12358		},
12359	},
12360	{
12361		name:           "MOVBUload",
12362		auxType:        auxSymOff,
12363		argLen:         2,
12364		faultOnNilArg0: true,
12365		symEffect:      SymRead,
12366		asm:            arm64.AMOVBU,
12367		reg: regInfo{
12368			inputs: []inputInfo{
12369				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12370			},
12371			outputs: []outputInfo{
12372				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12373			},
12374		},
12375	},
12376	{
12377		name:           "MOVHload",
12378		auxType:        auxSymOff,
12379		argLen:         2,
12380		faultOnNilArg0: true,
12381		symEffect:      SymRead,
12382		asm:            arm64.AMOVH,
12383		reg: regInfo{
12384			inputs: []inputInfo{
12385				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12386			},
12387			outputs: []outputInfo{
12388				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12389			},
12390		},
12391	},
12392	{
12393		name:           "MOVHUload",
12394		auxType:        auxSymOff,
12395		argLen:         2,
12396		faultOnNilArg0: true,
12397		symEffect:      SymRead,
12398		asm:            arm64.AMOVHU,
12399		reg: regInfo{
12400			inputs: []inputInfo{
12401				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12402			},
12403			outputs: []outputInfo{
12404				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12405			},
12406		},
12407	},
12408	{
12409		name:           "MOVWload",
12410		auxType:        auxSymOff,
12411		argLen:         2,
12412		faultOnNilArg0: true,
12413		symEffect:      SymRead,
12414		asm:            arm64.AMOVW,
12415		reg: regInfo{
12416			inputs: []inputInfo{
12417				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12418			},
12419			outputs: []outputInfo{
12420				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12421			},
12422		},
12423	},
12424	{
12425		name:           "MOVWUload",
12426		auxType:        auxSymOff,
12427		argLen:         2,
12428		faultOnNilArg0: true,
12429		symEffect:      SymRead,
12430		asm:            arm64.AMOVWU,
12431		reg: regInfo{
12432			inputs: []inputInfo{
12433				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12434			},
12435			outputs: []outputInfo{
12436				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12437			},
12438		},
12439	},
12440	{
12441		name:           "MOVDload",
12442		auxType:        auxSymOff,
12443		argLen:         2,
12444		faultOnNilArg0: true,
12445		symEffect:      SymRead,
12446		asm:            arm64.AMOVD,
12447		reg: regInfo{
12448			inputs: []inputInfo{
12449				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12450			},
12451			outputs: []outputInfo{
12452				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12453			},
12454		},
12455	},
12456	{
12457		name:           "FMOVSload",
12458		auxType:        auxSymOff,
12459		argLen:         2,
12460		faultOnNilArg0: true,
12461		symEffect:      SymRead,
12462		asm:            arm64.AFMOVS,
12463		reg: regInfo{
12464			inputs: []inputInfo{
12465				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12466			},
12467			outputs: []outputInfo{
12468				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12469			},
12470		},
12471	},
12472	{
12473		name:           "FMOVDload",
12474		auxType:        auxSymOff,
12475		argLen:         2,
12476		faultOnNilArg0: true,
12477		symEffect:      SymRead,
12478		asm:            arm64.AFMOVD,
12479		reg: regInfo{
12480			inputs: []inputInfo{
12481				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12482			},
12483			outputs: []outputInfo{
12484				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12485			},
12486		},
12487	},
12488	{
12489		name:           "MOVBstore",
12490		auxType:        auxSymOff,
12491		argLen:         3,
12492		faultOnNilArg0: true,
12493		symEffect:      SymWrite,
12494		asm:            arm64.AMOVB,
12495		reg: regInfo{
12496			inputs: []inputInfo{
12497				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12498				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12499			},
12500		},
12501	},
12502	{
12503		name:           "MOVHstore",
12504		auxType:        auxSymOff,
12505		argLen:         3,
12506		faultOnNilArg0: true,
12507		symEffect:      SymWrite,
12508		asm:            arm64.AMOVH,
12509		reg: regInfo{
12510			inputs: []inputInfo{
12511				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12512				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12513			},
12514		},
12515	},
12516	{
12517		name:           "MOVWstore",
12518		auxType:        auxSymOff,
12519		argLen:         3,
12520		faultOnNilArg0: true,
12521		symEffect:      SymWrite,
12522		asm:            arm64.AMOVW,
12523		reg: regInfo{
12524			inputs: []inputInfo{
12525				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12526				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12527			},
12528		},
12529	},
12530	{
12531		name:           "MOVDstore",
12532		auxType:        auxSymOff,
12533		argLen:         3,
12534		faultOnNilArg0: true,
12535		symEffect:      SymWrite,
12536		asm:            arm64.AMOVD,
12537		reg: regInfo{
12538			inputs: []inputInfo{
12539				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12540				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12541			},
12542		},
12543	},
12544	{
12545		name:           "FMOVSstore",
12546		auxType:        auxSymOff,
12547		argLen:         3,
12548		faultOnNilArg0: true,
12549		symEffect:      SymWrite,
12550		asm:            arm64.AFMOVS,
12551		reg: regInfo{
12552			inputs: []inputInfo{
12553				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12554				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12555			},
12556		},
12557	},
12558	{
12559		name:           "FMOVDstore",
12560		auxType:        auxSymOff,
12561		argLen:         3,
12562		faultOnNilArg0: true,
12563		symEffect:      SymWrite,
12564		asm:            arm64.AFMOVD,
12565		reg: regInfo{
12566			inputs: []inputInfo{
12567				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12568				{1, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12569			},
12570		},
12571	},
12572	{
12573		name:           "MOVBstorezero",
12574		auxType:        auxSymOff,
12575		argLen:         2,
12576		faultOnNilArg0: true,
12577		symEffect:      SymWrite,
12578		asm:            arm64.AMOVB,
12579		reg: regInfo{
12580			inputs: []inputInfo{
12581				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12582			},
12583		},
12584	},
12585	{
12586		name:           "MOVHstorezero",
12587		auxType:        auxSymOff,
12588		argLen:         2,
12589		faultOnNilArg0: true,
12590		symEffect:      SymWrite,
12591		asm:            arm64.AMOVH,
12592		reg: regInfo{
12593			inputs: []inputInfo{
12594				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12595			},
12596		},
12597	},
12598	{
12599		name:           "MOVWstorezero",
12600		auxType:        auxSymOff,
12601		argLen:         2,
12602		faultOnNilArg0: true,
12603		symEffect:      SymWrite,
12604		asm:            arm64.AMOVW,
12605		reg: regInfo{
12606			inputs: []inputInfo{
12607				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12608			},
12609		},
12610	},
12611	{
12612		name:           "MOVDstorezero",
12613		auxType:        auxSymOff,
12614		argLen:         2,
12615		faultOnNilArg0: true,
12616		symEffect:      SymWrite,
12617		asm:            arm64.AMOVD,
12618		reg: regInfo{
12619			inputs: []inputInfo{
12620				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
12621			},
12622		},
12623	},
12624	{
12625		name:   "MOVBreg",
12626		argLen: 1,
12627		asm:    arm64.AMOVB,
12628		reg: regInfo{
12629			inputs: []inputInfo{
12630				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12631			},
12632			outputs: []outputInfo{
12633				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12634			},
12635		},
12636	},
12637	{
12638		name:   "MOVBUreg",
12639		argLen: 1,
12640		asm:    arm64.AMOVBU,
12641		reg: regInfo{
12642			inputs: []inputInfo{
12643				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12644			},
12645			outputs: []outputInfo{
12646				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12647			},
12648		},
12649	},
12650	{
12651		name:   "MOVHreg",
12652		argLen: 1,
12653		asm:    arm64.AMOVH,
12654		reg: regInfo{
12655			inputs: []inputInfo{
12656				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12657			},
12658			outputs: []outputInfo{
12659				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12660			},
12661		},
12662	},
12663	{
12664		name:   "MOVHUreg",
12665		argLen: 1,
12666		asm:    arm64.AMOVHU,
12667		reg: regInfo{
12668			inputs: []inputInfo{
12669				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12670			},
12671			outputs: []outputInfo{
12672				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12673			},
12674		},
12675	},
12676	{
12677		name:   "MOVWreg",
12678		argLen: 1,
12679		asm:    arm64.AMOVW,
12680		reg: regInfo{
12681			inputs: []inputInfo{
12682				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12683			},
12684			outputs: []outputInfo{
12685				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12686			},
12687		},
12688	},
12689	{
12690		name:   "MOVWUreg",
12691		argLen: 1,
12692		asm:    arm64.AMOVWU,
12693		reg: regInfo{
12694			inputs: []inputInfo{
12695				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12696			},
12697			outputs: []outputInfo{
12698				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12699			},
12700		},
12701	},
12702	{
12703		name:   "MOVDreg",
12704		argLen: 1,
12705		asm:    arm64.AMOVD,
12706		reg: regInfo{
12707			inputs: []inputInfo{
12708				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12709			},
12710			outputs: []outputInfo{
12711				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12712			},
12713		},
12714	},
12715	{
12716		name:         "MOVDnop",
12717		argLen:       1,
12718		resultInArg0: true,
12719		reg: regInfo{
12720			inputs: []inputInfo{
12721				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12722			},
12723			outputs: []outputInfo{
12724				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12725			},
12726		},
12727	},
12728	{
12729		name:   "SCVTFWS",
12730		argLen: 1,
12731		asm:    arm64.ASCVTFWS,
12732		reg: regInfo{
12733			inputs: []inputInfo{
12734				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12735			},
12736			outputs: []outputInfo{
12737				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12738			},
12739		},
12740	},
12741	{
12742		name:   "SCVTFWD",
12743		argLen: 1,
12744		asm:    arm64.ASCVTFWD,
12745		reg: regInfo{
12746			inputs: []inputInfo{
12747				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12748			},
12749			outputs: []outputInfo{
12750				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12751			},
12752		},
12753	},
12754	{
12755		name:   "UCVTFWS",
12756		argLen: 1,
12757		asm:    arm64.AUCVTFWS,
12758		reg: regInfo{
12759			inputs: []inputInfo{
12760				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12761			},
12762			outputs: []outputInfo{
12763				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12764			},
12765		},
12766	},
12767	{
12768		name:   "UCVTFWD",
12769		argLen: 1,
12770		asm:    arm64.AUCVTFWD,
12771		reg: regInfo{
12772			inputs: []inputInfo{
12773				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12774			},
12775			outputs: []outputInfo{
12776				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12777			},
12778		},
12779	},
12780	{
12781		name:   "SCVTFS",
12782		argLen: 1,
12783		asm:    arm64.ASCVTFS,
12784		reg: regInfo{
12785			inputs: []inputInfo{
12786				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12787			},
12788			outputs: []outputInfo{
12789				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12790			},
12791		},
12792	},
12793	{
12794		name:   "SCVTFD",
12795		argLen: 1,
12796		asm:    arm64.ASCVTFD,
12797		reg: regInfo{
12798			inputs: []inputInfo{
12799				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12800			},
12801			outputs: []outputInfo{
12802				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12803			},
12804		},
12805	},
12806	{
12807		name:   "UCVTFS",
12808		argLen: 1,
12809		asm:    arm64.AUCVTFS,
12810		reg: regInfo{
12811			inputs: []inputInfo{
12812				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12813			},
12814			outputs: []outputInfo{
12815				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12816			},
12817		},
12818	},
12819	{
12820		name:   "UCVTFD",
12821		argLen: 1,
12822		asm:    arm64.AUCVTFD,
12823		reg: regInfo{
12824			inputs: []inputInfo{
12825				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12826			},
12827			outputs: []outputInfo{
12828				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12829			},
12830		},
12831	},
12832	{
12833		name:   "FCVTZSSW",
12834		argLen: 1,
12835		asm:    arm64.AFCVTZSSW,
12836		reg: regInfo{
12837			inputs: []inputInfo{
12838				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12839			},
12840			outputs: []outputInfo{
12841				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12842			},
12843		},
12844	},
12845	{
12846		name:   "FCVTZSDW",
12847		argLen: 1,
12848		asm:    arm64.AFCVTZSDW,
12849		reg: regInfo{
12850			inputs: []inputInfo{
12851				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12852			},
12853			outputs: []outputInfo{
12854				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12855			},
12856		},
12857	},
12858	{
12859		name:   "FCVTZUSW",
12860		argLen: 1,
12861		asm:    arm64.AFCVTZUSW,
12862		reg: regInfo{
12863			inputs: []inputInfo{
12864				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12865			},
12866			outputs: []outputInfo{
12867				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12868			},
12869		},
12870	},
12871	{
12872		name:   "FCVTZUDW",
12873		argLen: 1,
12874		asm:    arm64.AFCVTZUDW,
12875		reg: regInfo{
12876			inputs: []inputInfo{
12877				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12878			},
12879			outputs: []outputInfo{
12880				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12881			},
12882		},
12883	},
12884	{
12885		name:   "FCVTZSS",
12886		argLen: 1,
12887		asm:    arm64.AFCVTZSS,
12888		reg: regInfo{
12889			inputs: []inputInfo{
12890				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12891			},
12892			outputs: []outputInfo{
12893				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12894			},
12895		},
12896	},
12897	{
12898		name:   "FCVTZSD",
12899		argLen: 1,
12900		asm:    arm64.AFCVTZSD,
12901		reg: regInfo{
12902			inputs: []inputInfo{
12903				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12904			},
12905			outputs: []outputInfo{
12906				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12907			},
12908		},
12909	},
12910	{
12911		name:   "FCVTZUS",
12912		argLen: 1,
12913		asm:    arm64.AFCVTZUS,
12914		reg: regInfo{
12915			inputs: []inputInfo{
12916				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12917			},
12918			outputs: []outputInfo{
12919				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12920			},
12921		},
12922	},
12923	{
12924		name:   "FCVTZUD",
12925		argLen: 1,
12926		asm:    arm64.AFCVTZUD,
12927		reg: regInfo{
12928			inputs: []inputInfo{
12929				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12930			},
12931			outputs: []outputInfo{
12932				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12933			},
12934		},
12935	},
12936	{
12937		name:   "FCVTSD",
12938		argLen: 1,
12939		asm:    arm64.AFCVTSD,
12940		reg: regInfo{
12941			inputs: []inputInfo{
12942				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12943			},
12944			outputs: []outputInfo{
12945				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12946			},
12947		},
12948	},
12949	{
12950		name:   "FCVTDS",
12951		argLen: 1,
12952		asm:    arm64.AFCVTDS,
12953		reg: regInfo{
12954			inputs: []inputInfo{
12955				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12956			},
12957			outputs: []outputInfo{
12958				{0, 9223372034707292160}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12959			},
12960		},
12961	},
12962	{
12963		name:   "CSELULT",
12964		argLen: 3,
12965		asm:    arm64.ACSEL,
12966		reg: regInfo{
12967			inputs: []inputInfo{
12968				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12969				{1, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12970			},
12971			outputs: []outputInfo{
12972				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12973			},
12974		},
12975	},
12976	{
12977		name:   "CSELULT0",
12978		argLen: 2,
12979		asm:    arm64.ACSEL,
12980		reg: regInfo{
12981			inputs: []inputInfo{
12982				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
12983			},
12984			outputs: []outputInfo{
12985				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
12986			},
12987		},
12988	},
12989	{
12990		name:         "CALLstatic",
12991		auxType:      auxSymOff,
12992		argLen:       1,
12993		clobberFlags: true,
12994		call:         true,
12995		symEffect:    SymNone,
12996		reg: regInfo{
12997			clobbers: 9223372035512336383, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
12998		},
12999	},
13000	{
13001		name:         "CALLclosure",
13002		auxType:      auxInt64,
13003		argLen:       3,
13004		clobberFlags: true,
13005		call:         true,
13006		reg: regInfo{
13007			inputs: []inputInfo{
13008				{1, 67108864},   // R26
13009				{0, 1744568319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30 SP
13010			},
13011			clobbers: 9223372035512336383, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
13012		},
13013	},
13014	{
13015		name:         "CALLinter",
13016		auxType:      auxInt64,
13017		argLen:       2,
13018		clobberFlags: true,
13019		call:         true,
13020		reg: regInfo{
13021			inputs: []inputInfo{
13022				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13023			},
13024			clobbers: 9223372035512336383, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
13025		},
13026	},
13027	{
13028		name:           "LoweredNilCheck",
13029		argLen:         2,
13030		nilCheck:       true,
13031		faultOnNilArg0: true,
13032		reg: regInfo{
13033			inputs: []inputInfo{
13034				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13035			},
13036		},
13037	},
13038	{
13039		name:   "Equal",
13040		argLen: 1,
13041		reg: regInfo{
13042			outputs: []outputInfo{
13043				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13044			},
13045		},
13046	},
13047	{
13048		name:   "NotEqual",
13049		argLen: 1,
13050		reg: regInfo{
13051			outputs: []outputInfo{
13052				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13053			},
13054		},
13055	},
13056	{
13057		name:   "LessThan",
13058		argLen: 1,
13059		reg: regInfo{
13060			outputs: []outputInfo{
13061				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13062			},
13063		},
13064	},
13065	{
13066		name:   "LessEqual",
13067		argLen: 1,
13068		reg: regInfo{
13069			outputs: []outputInfo{
13070				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13071			},
13072		},
13073	},
13074	{
13075		name:   "GreaterThan",
13076		argLen: 1,
13077		reg: regInfo{
13078			outputs: []outputInfo{
13079				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13080			},
13081		},
13082	},
13083	{
13084		name:   "GreaterEqual",
13085		argLen: 1,
13086		reg: regInfo{
13087			outputs: []outputInfo{
13088				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13089			},
13090		},
13091	},
13092	{
13093		name:   "LessThanU",
13094		argLen: 1,
13095		reg: regInfo{
13096			outputs: []outputInfo{
13097				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13098			},
13099		},
13100	},
13101	{
13102		name:   "LessEqualU",
13103		argLen: 1,
13104		reg: regInfo{
13105			outputs: []outputInfo{
13106				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13107			},
13108		},
13109	},
13110	{
13111		name:   "GreaterThanU",
13112		argLen: 1,
13113		reg: regInfo{
13114			outputs: []outputInfo{
13115				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13116			},
13117		},
13118	},
13119	{
13120		name:   "GreaterEqualU",
13121		argLen: 1,
13122		reg: regInfo{
13123			outputs: []outputInfo{
13124				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13125			},
13126		},
13127	},
13128	{
13129		name:           "DUFFZERO",
13130		auxType:        auxInt64,
13131		argLen:         2,
13132		faultOnNilArg0: true,
13133		reg: regInfo{
13134			inputs: []inputInfo{
13135				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13136			},
13137			clobbers: 536936448, // R16 R30
13138		},
13139	},
13140	{
13141		name:           "LoweredZero",
13142		argLen:         3,
13143		clobberFlags:   true,
13144		faultOnNilArg0: true,
13145		reg: regInfo{
13146			inputs: []inputInfo{
13147				{0, 65536},     // R16
13148				{1, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13149			},
13150			clobbers: 65536, // R16
13151		},
13152	},
13153	{
13154		name:           "DUFFCOPY",
13155		auxType:        auxInt64,
13156		argLen:         3,
13157		faultOnNilArg0: true,
13158		faultOnNilArg1: true,
13159		reg: regInfo{
13160			inputs: []inputInfo{
13161				{0, 131072}, // R17
13162				{1, 65536},  // R16
13163			},
13164			clobbers: 537067520, // R16 R17 R30
13165		},
13166	},
13167	{
13168		name:           "LoweredMove",
13169		argLen:         4,
13170		clobberFlags:   true,
13171		faultOnNilArg0: true,
13172		faultOnNilArg1: true,
13173		reg: regInfo{
13174			inputs: []inputInfo{
13175				{0, 131072},    // R17
13176				{1, 65536},     // R16
13177				{2, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13178			},
13179			clobbers: 196608, // R16 R17
13180		},
13181	},
13182	{
13183		name:   "LoweredGetClosurePtr",
13184		argLen: 0,
13185		reg: regInfo{
13186			outputs: []outputInfo{
13187				{0, 67108864}, // R26
13188			},
13189		},
13190	},
13191	{
13192		name:   "MOVDconvert",
13193		argLen: 2,
13194		asm:    arm64.AMOVD,
13195		reg: regInfo{
13196			inputs: []inputInfo{
13197				{0, 805044223}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13198			},
13199			outputs: []outputInfo{
13200				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13201			},
13202		},
13203	},
13204	{
13205		name:   "FlagEQ",
13206		argLen: 0,
13207		reg:    regInfo{},
13208	},
13209	{
13210		name:   "FlagLT_ULT",
13211		argLen: 0,
13212		reg:    regInfo{},
13213	},
13214	{
13215		name:   "FlagLT_UGT",
13216		argLen: 0,
13217		reg:    regInfo{},
13218	},
13219	{
13220		name:   "FlagGT_UGT",
13221		argLen: 0,
13222		reg:    regInfo{},
13223	},
13224	{
13225		name:   "FlagGT_ULT",
13226		argLen: 0,
13227		reg:    regInfo{},
13228	},
13229	{
13230		name:   "InvertFlags",
13231		argLen: 1,
13232		reg:    regInfo{},
13233	},
13234	{
13235		name:           "LDAR",
13236		argLen:         2,
13237		faultOnNilArg0: true,
13238		asm:            arm64.ALDAR,
13239		reg: regInfo{
13240			inputs: []inputInfo{
13241				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13242			},
13243			outputs: []outputInfo{
13244				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13245			},
13246		},
13247	},
13248	{
13249		name:           "LDARW",
13250		argLen:         2,
13251		faultOnNilArg0: true,
13252		asm:            arm64.ALDARW,
13253		reg: regInfo{
13254			inputs: []inputInfo{
13255				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13256			},
13257			outputs: []outputInfo{
13258				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13259			},
13260		},
13261	},
13262	{
13263		name:           "STLR",
13264		argLen:         3,
13265		faultOnNilArg0: true,
13266		hasSideEffects: true,
13267		asm:            arm64.ASTLR,
13268		reg: regInfo{
13269			inputs: []inputInfo{
13270				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13271				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13272			},
13273		},
13274	},
13275	{
13276		name:           "STLRW",
13277		argLen:         3,
13278		faultOnNilArg0: true,
13279		hasSideEffects: true,
13280		asm:            arm64.ASTLRW,
13281		reg: regInfo{
13282			inputs: []inputInfo{
13283				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13284				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13285			},
13286		},
13287	},
13288	{
13289		name:            "LoweredAtomicExchange64",
13290		argLen:          3,
13291		resultNotInArgs: true,
13292		faultOnNilArg0:  true,
13293		hasSideEffects:  true,
13294		reg: regInfo{
13295			inputs: []inputInfo{
13296				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13297				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13298			},
13299			outputs: []outputInfo{
13300				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13301			},
13302		},
13303	},
13304	{
13305		name:            "LoweredAtomicExchange32",
13306		argLen:          3,
13307		resultNotInArgs: true,
13308		faultOnNilArg0:  true,
13309		hasSideEffects:  true,
13310		reg: regInfo{
13311			inputs: []inputInfo{
13312				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13313				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13314			},
13315			outputs: []outputInfo{
13316				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13317			},
13318		},
13319	},
13320	{
13321		name:            "LoweredAtomicAdd64",
13322		argLen:          3,
13323		resultNotInArgs: true,
13324		faultOnNilArg0:  true,
13325		hasSideEffects:  true,
13326		reg: regInfo{
13327			inputs: []inputInfo{
13328				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13329				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13330			},
13331			outputs: []outputInfo{
13332				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13333			},
13334		},
13335	},
13336	{
13337		name:            "LoweredAtomicAdd32",
13338		argLen:          3,
13339		resultNotInArgs: true,
13340		faultOnNilArg0:  true,
13341		hasSideEffects:  true,
13342		reg: regInfo{
13343			inputs: []inputInfo{
13344				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13345				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13346			},
13347			outputs: []outputInfo{
13348				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13349			},
13350		},
13351	},
13352	{
13353		name:            "LoweredAtomicCas64",
13354		argLen:          4,
13355		resultNotInArgs: true,
13356		clobberFlags:    true,
13357		faultOnNilArg0:  true,
13358		hasSideEffects:  true,
13359		reg: regInfo{
13360			inputs: []inputInfo{
13361				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13362				{2, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13363				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13364			},
13365			outputs: []outputInfo{
13366				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13367			},
13368		},
13369	},
13370	{
13371		name:            "LoweredAtomicCas32",
13372		argLen:          4,
13373		resultNotInArgs: true,
13374		clobberFlags:    true,
13375		faultOnNilArg0:  true,
13376		hasSideEffects:  true,
13377		reg: regInfo{
13378			inputs: []inputInfo{
13379				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13380				{2, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13381				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13382			},
13383			outputs: []outputInfo{
13384				{0, 670826495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 R30
13385			},
13386		},
13387	},
13388	{
13389		name:           "LoweredAtomicAnd8",
13390		argLen:         3,
13391		faultOnNilArg0: true,
13392		hasSideEffects: true,
13393		asm:            arm64.AAND,
13394		reg: regInfo{
13395			inputs: []inputInfo{
13396				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13397				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13398			},
13399		},
13400	},
13401	{
13402		name:           "LoweredAtomicOr8",
13403		argLen:         3,
13404		faultOnNilArg0: true,
13405		hasSideEffects: true,
13406		asm:            arm64.AORR,
13407		reg: regInfo{
13408			inputs: []inputInfo{
13409				{1, 805044223},           // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30
13410				{0, 9223372038733561855}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R24 R25 R26 g R30 SP SB
13411			},
13412		},
13413	},
13414
13415	{
13416		name:        "ADD",
13417		argLen:      2,
13418		commutative: true,
13419		asm:         mips.AADDU,
13420		reg: regInfo{
13421			inputs: []inputInfo{
13422				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13423				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13424			},
13425			outputs: []outputInfo{
13426				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13427			},
13428		},
13429	},
13430	{
13431		name:    "ADDconst",
13432		auxType: auxInt32,
13433		argLen:  1,
13434		asm:     mips.AADDU,
13435		reg: regInfo{
13436			inputs: []inputInfo{
13437				{0, 536870910}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31
13438			},
13439			outputs: []outputInfo{
13440				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13441			},
13442		},
13443	},
13444	{
13445		name:   "SUB",
13446		argLen: 2,
13447		asm:    mips.ASUBU,
13448		reg: regInfo{
13449			inputs: []inputInfo{
13450				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13451				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13452			},
13453			outputs: []outputInfo{
13454				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13455			},
13456		},
13457	},
13458	{
13459		name:    "SUBconst",
13460		auxType: auxInt32,
13461		argLen:  1,
13462		asm:     mips.ASUBU,
13463		reg: regInfo{
13464			inputs: []inputInfo{
13465				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13466			},
13467			outputs: []outputInfo{
13468				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13469			},
13470		},
13471	},
13472	{
13473		name:        "MUL",
13474		argLen:      2,
13475		commutative: true,
13476		asm:         mips.AMUL,
13477		reg: regInfo{
13478			inputs: []inputInfo{
13479				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13480				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13481			},
13482			clobbers: 105553116266496, // HI LO
13483			outputs: []outputInfo{
13484				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13485			},
13486		},
13487	},
13488	{
13489		name:        "MULT",
13490		argLen:      2,
13491		commutative: true,
13492		asm:         mips.AMUL,
13493		reg: regInfo{
13494			inputs: []inputInfo{
13495				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13496				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13497			},
13498			outputs: []outputInfo{
13499				{0, 35184372088832}, // HI
13500				{1, 70368744177664}, // LO
13501			},
13502		},
13503	},
13504	{
13505		name:        "MULTU",
13506		argLen:      2,
13507		commutative: true,
13508		asm:         mips.AMULU,
13509		reg: regInfo{
13510			inputs: []inputInfo{
13511				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13512				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13513			},
13514			outputs: []outputInfo{
13515				{0, 35184372088832}, // HI
13516				{1, 70368744177664}, // LO
13517			},
13518		},
13519	},
13520	{
13521		name:   "DIV",
13522		argLen: 2,
13523		asm:    mips.ADIV,
13524		reg: regInfo{
13525			inputs: []inputInfo{
13526				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13527				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13528			},
13529			outputs: []outputInfo{
13530				{0, 35184372088832}, // HI
13531				{1, 70368744177664}, // LO
13532			},
13533		},
13534	},
13535	{
13536		name:   "DIVU",
13537		argLen: 2,
13538		asm:    mips.ADIVU,
13539		reg: regInfo{
13540			inputs: []inputInfo{
13541				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13542				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13543			},
13544			outputs: []outputInfo{
13545				{0, 35184372088832}, // HI
13546				{1, 70368744177664}, // LO
13547			},
13548		},
13549	},
13550	{
13551		name:        "ADDF",
13552		argLen:      2,
13553		commutative: true,
13554		asm:         mips.AADDF,
13555		reg: regInfo{
13556			inputs: []inputInfo{
13557				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13558				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13559			},
13560			outputs: []outputInfo{
13561				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13562			},
13563		},
13564	},
13565	{
13566		name:        "ADDD",
13567		argLen:      2,
13568		commutative: true,
13569		asm:         mips.AADDD,
13570		reg: regInfo{
13571			inputs: []inputInfo{
13572				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13573				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13574			},
13575			outputs: []outputInfo{
13576				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13577			},
13578		},
13579	},
13580	{
13581		name:   "SUBF",
13582		argLen: 2,
13583		asm:    mips.ASUBF,
13584		reg: regInfo{
13585			inputs: []inputInfo{
13586				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13587				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13588			},
13589			outputs: []outputInfo{
13590				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13591			},
13592		},
13593	},
13594	{
13595		name:   "SUBD",
13596		argLen: 2,
13597		asm:    mips.ASUBD,
13598		reg: regInfo{
13599			inputs: []inputInfo{
13600				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13601				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13602			},
13603			outputs: []outputInfo{
13604				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13605			},
13606		},
13607	},
13608	{
13609		name:        "MULF",
13610		argLen:      2,
13611		commutative: true,
13612		asm:         mips.AMULF,
13613		reg: regInfo{
13614			inputs: []inputInfo{
13615				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13616				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13617			},
13618			outputs: []outputInfo{
13619				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13620			},
13621		},
13622	},
13623	{
13624		name:        "MULD",
13625		argLen:      2,
13626		commutative: true,
13627		asm:         mips.AMULD,
13628		reg: regInfo{
13629			inputs: []inputInfo{
13630				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13631				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13632			},
13633			outputs: []outputInfo{
13634				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13635			},
13636		},
13637	},
13638	{
13639		name:   "DIVF",
13640		argLen: 2,
13641		asm:    mips.ADIVF,
13642		reg: regInfo{
13643			inputs: []inputInfo{
13644				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13645				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13646			},
13647			outputs: []outputInfo{
13648				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13649			},
13650		},
13651	},
13652	{
13653		name:   "DIVD",
13654		argLen: 2,
13655		asm:    mips.ADIVD,
13656		reg: regInfo{
13657			inputs: []inputInfo{
13658				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13659				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13660			},
13661			outputs: []outputInfo{
13662				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13663			},
13664		},
13665	},
13666	{
13667		name:        "AND",
13668		argLen:      2,
13669		commutative: true,
13670		asm:         mips.AAND,
13671		reg: regInfo{
13672			inputs: []inputInfo{
13673				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13674				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13675			},
13676			outputs: []outputInfo{
13677				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13678			},
13679		},
13680	},
13681	{
13682		name:    "ANDconst",
13683		auxType: auxInt32,
13684		argLen:  1,
13685		asm:     mips.AAND,
13686		reg: regInfo{
13687			inputs: []inputInfo{
13688				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13689			},
13690			outputs: []outputInfo{
13691				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13692			},
13693		},
13694	},
13695	{
13696		name:        "OR",
13697		argLen:      2,
13698		commutative: true,
13699		asm:         mips.AOR,
13700		reg: regInfo{
13701			inputs: []inputInfo{
13702				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13703				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13704			},
13705			outputs: []outputInfo{
13706				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13707			},
13708		},
13709	},
13710	{
13711		name:    "ORconst",
13712		auxType: auxInt32,
13713		argLen:  1,
13714		asm:     mips.AOR,
13715		reg: regInfo{
13716			inputs: []inputInfo{
13717				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13718			},
13719			outputs: []outputInfo{
13720				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13721			},
13722		},
13723	},
13724	{
13725		name:        "XOR",
13726		argLen:      2,
13727		commutative: true,
13728		asm:         mips.AXOR,
13729		reg: regInfo{
13730			inputs: []inputInfo{
13731				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13732				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13733			},
13734			outputs: []outputInfo{
13735				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13736			},
13737		},
13738	},
13739	{
13740		name:    "XORconst",
13741		auxType: auxInt32,
13742		argLen:  1,
13743		asm:     mips.AXOR,
13744		reg: regInfo{
13745			inputs: []inputInfo{
13746				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13747			},
13748			outputs: []outputInfo{
13749				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13750			},
13751		},
13752	},
13753	{
13754		name:        "NOR",
13755		argLen:      2,
13756		commutative: true,
13757		asm:         mips.ANOR,
13758		reg: regInfo{
13759			inputs: []inputInfo{
13760				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13761				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13762			},
13763			outputs: []outputInfo{
13764				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13765			},
13766		},
13767	},
13768	{
13769		name:    "NORconst",
13770		auxType: auxInt32,
13771		argLen:  1,
13772		asm:     mips.ANOR,
13773		reg: regInfo{
13774			inputs: []inputInfo{
13775				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13776			},
13777			outputs: []outputInfo{
13778				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13779			},
13780		},
13781	},
13782	{
13783		name:   "NEG",
13784		argLen: 1,
13785		reg: regInfo{
13786			inputs: []inputInfo{
13787				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13788			},
13789			outputs: []outputInfo{
13790				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13791			},
13792		},
13793	},
13794	{
13795		name:   "NEGF",
13796		argLen: 1,
13797		asm:    mips.ANEGF,
13798		reg: regInfo{
13799			inputs: []inputInfo{
13800				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13801			},
13802			outputs: []outputInfo{
13803				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13804			},
13805		},
13806	},
13807	{
13808		name:   "NEGD",
13809		argLen: 1,
13810		asm:    mips.ANEGD,
13811		reg: regInfo{
13812			inputs: []inputInfo{
13813				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13814			},
13815			outputs: []outputInfo{
13816				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13817			},
13818		},
13819	},
13820	{
13821		name:   "SQRTD",
13822		argLen: 1,
13823		asm:    mips.ASQRTD,
13824		reg: regInfo{
13825			inputs: []inputInfo{
13826				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13827			},
13828			outputs: []outputInfo{
13829				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
13830			},
13831		},
13832	},
13833	{
13834		name:   "SLL",
13835		argLen: 2,
13836		asm:    mips.ASLL,
13837		reg: regInfo{
13838			inputs: []inputInfo{
13839				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13840				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13841			},
13842			outputs: []outputInfo{
13843				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13844			},
13845		},
13846	},
13847	{
13848		name:    "SLLconst",
13849		auxType: auxInt32,
13850		argLen:  1,
13851		asm:     mips.ASLL,
13852		reg: regInfo{
13853			inputs: []inputInfo{
13854				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13855			},
13856			outputs: []outputInfo{
13857				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13858			},
13859		},
13860	},
13861	{
13862		name:   "SRL",
13863		argLen: 2,
13864		asm:    mips.ASRL,
13865		reg: regInfo{
13866			inputs: []inputInfo{
13867				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13868				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13869			},
13870			outputs: []outputInfo{
13871				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13872			},
13873		},
13874	},
13875	{
13876		name:    "SRLconst",
13877		auxType: auxInt32,
13878		argLen:  1,
13879		asm:     mips.ASRL,
13880		reg: regInfo{
13881			inputs: []inputInfo{
13882				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13883			},
13884			outputs: []outputInfo{
13885				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13886			},
13887		},
13888	},
13889	{
13890		name:   "SRA",
13891		argLen: 2,
13892		asm:    mips.ASRA,
13893		reg: regInfo{
13894			inputs: []inputInfo{
13895				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13896				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13897			},
13898			outputs: []outputInfo{
13899				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13900			},
13901		},
13902	},
13903	{
13904		name:    "SRAconst",
13905		auxType: auxInt32,
13906		argLen:  1,
13907		asm:     mips.ASRA,
13908		reg: regInfo{
13909			inputs: []inputInfo{
13910				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13911			},
13912			outputs: []outputInfo{
13913				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13914			},
13915		},
13916	},
13917	{
13918		name:   "CLZ",
13919		argLen: 1,
13920		asm:    mips.ACLZ,
13921		reg: regInfo{
13922			inputs: []inputInfo{
13923				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13924			},
13925			outputs: []outputInfo{
13926				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13927			},
13928		},
13929	},
13930	{
13931		name:   "SGT",
13932		argLen: 2,
13933		asm:    mips.ASGT,
13934		reg: regInfo{
13935			inputs: []inputInfo{
13936				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13937				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13938			},
13939			outputs: []outputInfo{
13940				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13941			},
13942		},
13943	},
13944	{
13945		name:    "SGTconst",
13946		auxType: auxInt32,
13947		argLen:  1,
13948		asm:     mips.ASGT,
13949		reg: regInfo{
13950			inputs: []inputInfo{
13951				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13952			},
13953			outputs: []outputInfo{
13954				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13955			},
13956		},
13957	},
13958	{
13959		name:   "SGTzero",
13960		argLen: 1,
13961		asm:    mips.ASGT,
13962		reg: regInfo{
13963			inputs: []inputInfo{
13964				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13965			},
13966			outputs: []outputInfo{
13967				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13968			},
13969		},
13970	},
13971	{
13972		name:   "SGTU",
13973		argLen: 2,
13974		asm:    mips.ASGTU,
13975		reg: regInfo{
13976			inputs: []inputInfo{
13977				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13978				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13979			},
13980			outputs: []outputInfo{
13981				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13982			},
13983		},
13984	},
13985	{
13986		name:    "SGTUconst",
13987		auxType: auxInt32,
13988		argLen:  1,
13989		asm:     mips.ASGTU,
13990		reg: regInfo{
13991			inputs: []inputInfo{
13992				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
13993			},
13994			outputs: []outputInfo{
13995				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
13996			},
13997		},
13998	},
13999	{
14000		name:   "SGTUzero",
14001		argLen: 1,
14002		asm:    mips.ASGTU,
14003		reg: regInfo{
14004			inputs: []inputInfo{
14005				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14006			},
14007			outputs: []outputInfo{
14008				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14009			},
14010		},
14011	},
14012	{
14013		name:   "CMPEQF",
14014		argLen: 2,
14015		asm:    mips.ACMPEQF,
14016		reg: regInfo{
14017			inputs: []inputInfo{
14018				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14019				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14020			},
14021		},
14022	},
14023	{
14024		name:   "CMPEQD",
14025		argLen: 2,
14026		asm:    mips.ACMPEQD,
14027		reg: regInfo{
14028			inputs: []inputInfo{
14029				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14030				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14031			},
14032		},
14033	},
14034	{
14035		name:   "CMPGEF",
14036		argLen: 2,
14037		asm:    mips.ACMPGEF,
14038		reg: regInfo{
14039			inputs: []inputInfo{
14040				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14041				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14042			},
14043		},
14044	},
14045	{
14046		name:   "CMPGED",
14047		argLen: 2,
14048		asm:    mips.ACMPGED,
14049		reg: regInfo{
14050			inputs: []inputInfo{
14051				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14052				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14053			},
14054		},
14055	},
14056	{
14057		name:   "CMPGTF",
14058		argLen: 2,
14059		asm:    mips.ACMPGTF,
14060		reg: regInfo{
14061			inputs: []inputInfo{
14062				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14063				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14064			},
14065		},
14066	},
14067	{
14068		name:   "CMPGTD",
14069		argLen: 2,
14070		asm:    mips.ACMPGTD,
14071		reg: regInfo{
14072			inputs: []inputInfo{
14073				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14074				{1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14075			},
14076		},
14077	},
14078	{
14079		name:              "MOVWconst",
14080		auxType:           auxInt32,
14081		argLen:            0,
14082		rematerializeable: true,
14083		asm:               mips.AMOVW,
14084		reg: regInfo{
14085			outputs: []outputInfo{
14086				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14087			},
14088		},
14089	},
14090	{
14091		name:              "MOVFconst",
14092		auxType:           auxFloat32,
14093		argLen:            0,
14094		rematerializeable: true,
14095		asm:               mips.AMOVF,
14096		reg: regInfo{
14097			outputs: []outputInfo{
14098				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14099			},
14100		},
14101	},
14102	{
14103		name:              "MOVDconst",
14104		auxType:           auxFloat64,
14105		argLen:            0,
14106		rematerializeable: true,
14107		asm:               mips.AMOVD,
14108		reg: regInfo{
14109			outputs: []outputInfo{
14110				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14111			},
14112		},
14113	},
14114	{
14115		name:              "MOVWaddr",
14116		auxType:           auxSymOff,
14117		argLen:            1,
14118		rematerializeable: true,
14119		symEffect:         SymAddr,
14120		asm:               mips.AMOVW,
14121		reg: regInfo{
14122			inputs: []inputInfo{
14123				{0, 140737555464192}, // SP SB
14124			},
14125			outputs: []outputInfo{
14126				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14127			},
14128		},
14129	},
14130	{
14131		name:           "MOVBload",
14132		auxType:        auxSymOff,
14133		argLen:         2,
14134		faultOnNilArg0: true,
14135		symEffect:      SymRead,
14136		asm:            mips.AMOVB,
14137		reg: regInfo{
14138			inputs: []inputInfo{
14139				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14140			},
14141			outputs: []outputInfo{
14142				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14143			},
14144		},
14145	},
14146	{
14147		name:           "MOVBUload",
14148		auxType:        auxSymOff,
14149		argLen:         2,
14150		faultOnNilArg0: true,
14151		symEffect:      SymRead,
14152		asm:            mips.AMOVBU,
14153		reg: regInfo{
14154			inputs: []inputInfo{
14155				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14156			},
14157			outputs: []outputInfo{
14158				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14159			},
14160		},
14161	},
14162	{
14163		name:           "MOVHload",
14164		auxType:        auxSymOff,
14165		argLen:         2,
14166		faultOnNilArg0: true,
14167		symEffect:      SymRead,
14168		asm:            mips.AMOVH,
14169		reg: regInfo{
14170			inputs: []inputInfo{
14171				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14172			},
14173			outputs: []outputInfo{
14174				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14175			},
14176		},
14177	},
14178	{
14179		name:           "MOVHUload",
14180		auxType:        auxSymOff,
14181		argLen:         2,
14182		faultOnNilArg0: true,
14183		symEffect:      SymRead,
14184		asm:            mips.AMOVHU,
14185		reg: regInfo{
14186			inputs: []inputInfo{
14187				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14188			},
14189			outputs: []outputInfo{
14190				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14191			},
14192		},
14193	},
14194	{
14195		name:           "MOVWload",
14196		auxType:        auxSymOff,
14197		argLen:         2,
14198		faultOnNilArg0: true,
14199		symEffect:      SymRead,
14200		asm:            mips.AMOVW,
14201		reg: regInfo{
14202			inputs: []inputInfo{
14203				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14204			},
14205			outputs: []outputInfo{
14206				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14207			},
14208		},
14209	},
14210	{
14211		name:           "MOVFload",
14212		auxType:        auxSymOff,
14213		argLen:         2,
14214		faultOnNilArg0: true,
14215		symEffect:      SymRead,
14216		asm:            mips.AMOVF,
14217		reg: regInfo{
14218			inputs: []inputInfo{
14219				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14220			},
14221			outputs: []outputInfo{
14222				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14223			},
14224		},
14225	},
14226	{
14227		name:           "MOVDload",
14228		auxType:        auxSymOff,
14229		argLen:         2,
14230		faultOnNilArg0: true,
14231		symEffect:      SymRead,
14232		asm:            mips.AMOVD,
14233		reg: regInfo{
14234			inputs: []inputInfo{
14235				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14236			},
14237			outputs: []outputInfo{
14238				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14239			},
14240		},
14241	},
14242	{
14243		name:           "MOVBstore",
14244		auxType:        auxSymOff,
14245		argLen:         3,
14246		faultOnNilArg0: true,
14247		symEffect:      SymWrite,
14248		asm:            mips.AMOVB,
14249		reg: regInfo{
14250			inputs: []inputInfo{
14251				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14252				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14253			},
14254		},
14255	},
14256	{
14257		name:           "MOVHstore",
14258		auxType:        auxSymOff,
14259		argLen:         3,
14260		faultOnNilArg0: true,
14261		symEffect:      SymWrite,
14262		asm:            mips.AMOVH,
14263		reg: regInfo{
14264			inputs: []inputInfo{
14265				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14266				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14267			},
14268		},
14269	},
14270	{
14271		name:           "MOVWstore",
14272		auxType:        auxSymOff,
14273		argLen:         3,
14274		faultOnNilArg0: true,
14275		symEffect:      SymWrite,
14276		asm:            mips.AMOVW,
14277		reg: regInfo{
14278			inputs: []inputInfo{
14279				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14280				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14281			},
14282		},
14283	},
14284	{
14285		name:           "MOVFstore",
14286		auxType:        auxSymOff,
14287		argLen:         3,
14288		faultOnNilArg0: true,
14289		symEffect:      SymWrite,
14290		asm:            mips.AMOVF,
14291		reg: regInfo{
14292			inputs: []inputInfo{
14293				{1, 35183835217920},  // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14294				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14295			},
14296		},
14297	},
14298	{
14299		name:           "MOVDstore",
14300		auxType:        auxSymOff,
14301		argLen:         3,
14302		faultOnNilArg0: true,
14303		symEffect:      SymWrite,
14304		asm:            mips.AMOVD,
14305		reg: regInfo{
14306			inputs: []inputInfo{
14307				{1, 35183835217920},  // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14308				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14309			},
14310		},
14311	},
14312	{
14313		name:           "MOVBstorezero",
14314		auxType:        auxSymOff,
14315		argLen:         2,
14316		faultOnNilArg0: true,
14317		symEffect:      SymWrite,
14318		asm:            mips.AMOVB,
14319		reg: regInfo{
14320			inputs: []inputInfo{
14321				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14322			},
14323		},
14324	},
14325	{
14326		name:           "MOVHstorezero",
14327		auxType:        auxSymOff,
14328		argLen:         2,
14329		faultOnNilArg0: true,
14330		symEffect:      SymWrite,
14331		asm:            mips.AMOVH,
14332		reg: regInfo{
14333			inputs: []inputInfo{
14334				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14335			},
14336		},
14337	},
14338	{
14339		name:           "MOVWstorezero",
14340		auxType:        auxSymOff,
14341		argLen:         2,
14342		faultOnNilArg0: true,
14343		symEffect:      SymWrite,
14344		asm:            mips.AMOVW,
14345		reg: regInfo{
14346			inputs: []inputInfo{
14347				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14348			},
14349		},
14350	},
14351	{
14352		name:   "MOVBreg",
14353		argLen: 1,
14354		asm:    mips.AMOVB,
14355		reg: regInfo{
14356			inputs: []inputInfo{
14357				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14358			},
14359			outputs: []outputInfo{
14360				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14361			},
14362		},
14363	},
14364	{
14365		name:   "MOVBUreg",
14366		argLen: 1,
14367		asm:    mips.AMOVBU,
14368		reg: regInfo{
14369			inputs: []inputInfo{
14370				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14371			},
14372			outputs: []outputInfo{
14373				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14374			},
14375		},
14376	},
14377	{
14378		name:   "MOVHreg",
14379		argLen: 1,
14380		asm:    mips.AMOVH,
14381		reg: regInfo{
14382			inputs: []inputInfo{
14383				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14384			},
14385			outputs: []outputInfo{
14386				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14387			},
14388		},
14389	},
14390	{
14391		name:   "MOVHUreg",
14392		argLen: 1,
14393		asm:    mips.AMOVHU,
14394		reg: regInfo{
14395			inputs: []inputInfo{
14396				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14397			},
14398			outputs: []outputInfo{
14399				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14400			},
14401		},
14402	},
14403	{
14404		name:   "MOVWreg",
14405		argLen: 1,
14406		asm:    mips.AMOVW,
14407		reg: regInfo{
14408			inputs: []inputInfo{
14409				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14410			},
14411			outputs: []outputInfo{
14412				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14413			},
14414		},
14415	},
14416	{
14417		name:         "MOVWnop",
14418		argLen:       1,
14419		resultInArg0: true,
14420		reg: regInfo{
14421			inputs: []inputInfo{
14422				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14423			},
14424			outputs: []outputInfo{
14425				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14426			},
14427		},
14428	},
14429	{
14430		name:         "CMOVZ",
14431		argLen:       3,
14432		resultInArg0: true,
14433		asm:          mips.ACMOVZ,
14434		reg: regInfo{
14435			inputs: []inputInfo{
14436				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14437				{1, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14438				{2, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14439			},
14440			outputs: []outputInfo{
14441				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14442			},
14443		},
14444	},
14445	{
14446		name:         "CMOVZzero",
14447		argLen:       2,
14448		resultInArg0: true,
14449		asm:          mips.ACMOVZ,
14450		reg: regInfo{
14451			inputs: []inputInfo{
14452				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14453				{1, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14454			},
14455			outputs: []outputInfo{
14456				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14457			},
14458		},
14459	},
14460	{
14461		name:   "MOVWF",
14462		argLen: 1,
14463		asm:    mips.AMOVWF,
14464		reg: regInfo{
14465			inputs: []inputInfo{
14466				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14467			},
14468			outputs: []outputInfo{
14469				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14470			},
14471		},
14472	},
14473	{
14474		name:   "MOVWD",
14475		argLen: 1,
14476		asm:    mips.AMOVWD,
14477		reg: regInfo{
14478			inputs: []inputInfo{
14479				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14480			},
14481			outputs: []outputInfo{
14482				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14483			},
14484		},
14485	},
14486	{
14487		name:   "TRUNCFW",
14488		argLen: 1,
14489		asm:    mips.ATRUNCFW,
14490		reg: regInfo{
14491			inputs: []inputInfo{
14492				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14493			},
14494			outputs: []outputInfo{
14495				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14496			},
14497		},
14498	},
14499	{
14500		name:   "TRUNCDW",
14501		argLen: 1,
14502		asm:    mips.ATRUNCDW,
14503		reg: regInfo{
14504			inputs: []inputInfo{
14505				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14506			},
14507			outputs: []outputInfo{
14508				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14509			},
14510		},
14511	},
14512	{
14513		name:   "MOVFD",
14514		argLen: 1,
14515		asm:    mips.AMOVFD,
14516		reg: regInfo{
14517			inputs: []inputInfo{
14518				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14519			},
14520			outputs: []outputInfo{
14521				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14522			},
14523		},
14524	},
14525	{
14526		name:   "MOVDF",
14527		argLen: 1,
14528		asm:    mips.AMOVDF,
14529		reg: regInfo{
14530			inputs: []inputInfo{
14531				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14532			},
14533			outputs: []outputInfo{
14534				{0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
14535			},
14536		},
14537	},
14538	{
14539		name:         "CALLstatic",
14540		auxType:      auxSymOff,
14541		argLen:       1,
14542		clobberFlags: true,
14543		call:         true,
14544		symEffect:    SymNone,
14545		reg: regInfo{
14546			clobbers: 140737421246462, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30 HI LO
14547		},
14548	},
14549	{
14550		name:         "CALLclosure",
14551		auxType:      auxInt64,
14552		argLen:       3,
14553		clobberFlags: true,
14554		call:         true,
14555		reg: regInfo{
14556			inputs: []inputInfo{
14557				{1, 4194304},   // R22
14558				{0, 402653182}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP R31
14559			},
14560			clobbers: 140737421246462, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30 HI LO
14561		},
14562	},
14563	{
14564		name:         "CALLinter",
14565		auxType:      auxInt64,
14566		argLen:       2,
14567		clobberFlags: true,
14568		call:         true,
14569		reg: regInfo{
14570			inputs: []inputInfo{
14571				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14572			},
14573			clobbers: 140737421246462, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31 F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30 HI LO
14574		},
14575	},
14576	{
14577		name:           "LoweredAtomicLoad",
14578		argLen:         2,
14579		faultOnNilArg0: true,
14580		reg: regInfo{
14581			inputs: []inputInfo{
14582				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14583			},
14584			outputs: []outputInfo{
14585				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14586			},
14587		},
14588	},
14589	{
14590		name:           "LoweredAtomicStore",
14591		argLen:         3,
14592		faultOnNilArg0: true,
14593		hasSideEffects: true,
14594		reg: regInfo{
14595			inputs: []inputInfo{
14596				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14597				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14598			},
14599		},
14600	},
14601	{
14602		name:           "LoweredAtomicStorezero",
14603		argLen:         2,
14604		faultOnNilArg0: true,
14605		hasSideEffects: true,
14606		reg: regInfo{
14607			inputs: []inputInfo{
14608				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14609			},
14610		},
14611	},
14612	{
14613		name:            "LoweredAtomicExchange",
14614		argLen:          3,
14615		resultNotInArgs: true,
14616		faultOnNilArg0:  true,
14617		hasSideEffects:  true,
14618		reg: regInfo{
14619			inputs: []inputInfo{
14620				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14621				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14622			},
14623			outputs: []outputInfo{
14624				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14625			},
14626		},
14627	},
14628	{
14629		name:            "LoweredAtomicAdd",
14630		argLen:          3,
14631		resultNotInArgs: true,
14632		faultOnNilArg0:  true,
14633		hasSideEffects:  true,
14634		reg: regInfo{
14635			inputs: []inputInfo{
14636				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14637				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14638			},
14639			outputs: []outputInfo{
14640				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14641			},
14642		},
14643	},
14644	{
14645		name:            "LoweredAtomicAddconst",
14646		auxType:         auxInt32,
14647		argLen:          2,
14648		resultNotInArgs: true,
14649		faultOnNilArg0:  true,
14650		hasSideEffects:  true,
14651		reg: regInfo{
14652			inputs: []inputInfo{
14653				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14654			},
14655			outputs: []outputInfo{
14656				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14657			},
14658		},
14659	},
14660	{
14661		name:            "LoweredAtomicCas",
14662		argLen:          4,
14663		resultNotInArgs: true,
14664		faultOnNilArg0:  true,
14665		hasSideEffects:  true,
14666		reg: regInfo{
14667			inputs: []inputInfo{
14668				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14669				{2, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14670				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14671			},
14672			outputs: []outputInfo{
14673				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14674			},
14675		},
14676	},
14677	{
14678		name:           "LoweredAtomicAnd",
14679		argLen:         3,
14680		faultOnNilArg0: true,
14681		hasSideEffects: true,
14682		asm:            mips.AAND,
14683		reg: regInfo{
14684			inputs: []inputInfo{
14685				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14686				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14687			},
14688		},
14689	},
14690	{
14691		name:           "LoweredAtomicOr",
14692		argLen:         3,
14693		faultOnNilArg0: true,
14694		hasSideEffects: true,
14695		asm:            mips.AOR,
14696		reg: regInfo{
14697			inputs: []inputInfo{
14698				{1, 469762046},       // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14699				{0, 140738025226238}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 SP g R31 SB
14700			},
14701		},
14702	},
14703	{
14704		name:           "LoweredZero",
14705		auxType:        auxInt32,
14706		argLen:         3,
14707		faultOnNilArg0: true,
14708		reg: regInfo{
14709			inputs: []inputInfo{
14710				{0, 2},         // R1
14711				{1, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14712			},
14713			clobbers: 2, // R1
14714		},
14715	},
14716	{
14717		name:           "LoweredMove",
14718		auxType:        auxInt32,
14719		argLen:         4,
14720		faultOnNilArg0: true,
14721		faultOnNilArg1: true,
14722		reg: regInfo{
14723			inputs: []inputInfo{
14724				{0, 4},         // R2
14725				{1, 2},         // R1
14726				{2, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14727			},
14728			clobbers: 6, // R1 R2
14729		},
14730	},
14731	{
14732		name:           "LoweredNilCheck",
14733		argLen:         2,
14734		nilCheck:       true,
14735		faultOnNilArg0: true,
14736		reg: regInfo{
14737			inputs: []inputInfo{
14738				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14739			},
14740		},
14741	},
14742	{
14743		name:   "FPFlagTrue",
14744		argLen: 1,
14745		reg: regInfo{
14746			outputs: []outputInfo{
14747				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14748			},
14749		},
14750	},
14751	{
14752		name:   "FPFlagFalse",
14753		argLen: 1,
14754		reg: regInfo{
14755			outputs: []outputInfo{
14756				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14757			},
14758		},
14759	},
14760	{
14761		name:   "LoweredGetClosurePtr",
14762		argLen: 0,
14763		reg: regInfo{
14764			outputs: []outputInfo{
14765				{0, 4194304}, // R22
14766			},
14767		},
14768	},
14769	{
14770		name:   "MOVWconvert",
14771		argLen: 2,
14772		asm:    mips.AMOVW,
14773		reg: regInfo{
14774			inputs: []inputInfo{
14775				{0, 469762046}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 g R31
14776			},
14777			outputs: []outputInfo{
14778				{0, 335544318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R28 R31
14779			},
14780		},
14781	},
14782
14783	{
14784		name:        "ADDV",
14785		argLen:      2,
14786		commutative: true,
14787		asm:         mips.AADDVU,
14788		reg: regInfo{
14789			inputs: []inputInfo{
14790				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14791				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14792			},
14793			outputs: []outputInfo{
14794				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
14795			},
14796		},
14797	},
14798	{
14799		name:    "ADDVconst",
14800		auxType: auxInt64,
14801		argLen:  1,
14802		asm:     mips.AADDVU,
14803		reg: regInfo{
14804			inputs: []inputInfo{
14805				{0, 268435454}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31
14806			},
14807			outputs: []outputInfo{
14808				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
14809			},
14810		},
14811	},
14812	{
14813		name:   "SUBV",
14814		argLen: 2,
14815		asm:    mips.ASUBVU,
14816		reg: regInfo{
14817			inputs: []inputInfo{
14818				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14819				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14820			},
14821			outputs: []outputInfo{
14822				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
14823			},
14824		},
14825	},
14826	{
14827		name:    "SUBVconst",
14828		auxType: auxInt64,
14829		argLen:  1,
14830		asm:     mips.ASUBVU,
14831		reg: regInfo{
14832			inputs: []inputInfo{
14833				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14834			},
14835			outputs: []outputInfo{
14836				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
14837			},
14838		},
14839	},
14840	{
14841		name:        "MULV",
14842		argLen:      2,
14843		commutative: true,
14844		asm:         mips.AMULV,
14845		reg: regInfo{
14846			inputs: []inputInfo{
14847				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14848				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14849			},
14850			outputs: []outputInfo{
14851				{0, 1152921504606846976}, // HI
14852				{1, 2305843009213693952}, // LO
14853			},
14854		},
14855	},
14856	{
14857		name:        "MULVU",
14858		argLen:      2,
14859		commutative: true,
14860		asm:         mips.AMULVU,
14861		reg: regInfo{
14862			inputs: []inputInfo{
14863				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14864				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14865			},
14866			outputs: []outputInfo{
14867				{0, 1152921504606846976}, // HI
14868				{1, 2305843009213693952}, // LO
14869			},
14870		},
14871	},
14872	{
14873		name:   "DIVV",
14874		argLen: 2,
14875		asm:    mips.ADIVV,
14876		reg: regInfo{
14877			inputs: []inputInfo{
14878				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14879				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14880			},
14881			outputs: []outputInfo{
14882				{0, 1152921504606846976}, // HI
14883				{1, 2305843009213693952}, // LO
14884			},
14885		},
14886	},
14887	{
14888		name:   "DIVVU",
14889		argLen: 2,
14890		asm:    mips.ADIVVU,
14891		reg: regInfo{
14892			inputs: []inputInfo{
14893				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14894				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
14895			},
14896			outputs: []outputInfo{
14897				{0, 1152921504606846976}, // HI
14898				{1, 2305843009213693952}, // LO
14899			},
14900		},
14901	},
14902	{
14903		name:        "ADDF",
14904		argLen:      2,
14905		commutative: true,
14906		asm:         mips.AADDF,
14907		reg: regInfo{
14908			inputs: []inputInfo{
14909				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14910				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14911			},
14912			outputs: []outputInfo{
14913				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14914			},
14915		},
14916	},
14917	{
14918		name:        "ADDD",
14919		argLen:      2,
14920		commutative: true,
14921		asm:         mips.AADDD,
14922		reg: regInfo{
14923			inputs: []inputInfo{
14924				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14925				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14926			},
14927			outputs: []outputInfo{
14928				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14929			},
14930		},
14931	},
14932	{
14933		name:   "SUBF",
14934		argLen: 2,
14935		asm:    mips.ASUBF,
14936		reg: regInfo{
14937			inputs: []inputInfo{
14938				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14939				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14940			},
14941			outputs: []outputInfo{
14942				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14943			},
14944		},
14945	},
14946	{
14947		name:   "SUBD",
14948		argLen: 2,
14949		asm:    mips.ASUBD,
14950		reg: regInfo{
14951			inputs: []inputInfo{
14952				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14953				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14954			},
14955			outputs: []outputInfo{
14956				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14957			},
14958		},
14959	},
14960	{
14961		name:        "MULF",
14962		argLen:      2,
14963		commutative: true,
14964		asm:         mips.AMULF,
14965		reg: regInfo{
14966			inputs: []inputInfo{
14967				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14968				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14969			},
14970			outputs: []outputInfo{
14971				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14972			},
14973		},
14974	},
14975	{
14976		name:        "MULD",
14977		argLen:      2,
14978		commutative: true,
14979		asm:         mips.AMULD,
14980		reg: regInfo{
14981			inputs: []inputInfo{
14982				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14983				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14984			},
14985			outputs: []outputInfo{
14986				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14987			},
14988		},
14989	},
14990	{
14991		name:   "DIVF",
14992		argLen: 2,
14993		asm:    mips.ADIVF,
14994		reg: regInfo{
14995			inputs: []inputInfo{
14996				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14997				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
14998			},
14999			outputs: []outputInfo{
15000				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15001			},
15002		},
15003	},
15004	{
15005		name:   "DIVD",
15006		argLen: 2,
15007		asm:    mips.ADIVD,
15008		reg: regInfo{
15009			inputs: []inputInfo{
15010				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15011				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15012			},
15013			outputs: []outputInfo{
15014				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15015			},
15016		},
15017	},
15018	{
15019		name:        "AND",
15020		argLen:      2,
15021		commutative: true,
15022		asm:         mips.AAND,
15023		reg: regInfo{
15024			inputs: []inputInfo{
15025				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15026				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15027			},
15028			outputs: []outputInfo{
15029				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15030			},
15031		},
15032	},
15033	{
15034		name:    "ANDconst",
15035		auxType: auxInt64,
15036		argLen:  1,
15037		asm:     mips.AAND,
15038		reg: regInfo{
15039			inputs: []inputInfo{
15040				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15041			},
15042			outputs: []outputInfo{
15043				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15044			},
15045		},
15046	},
15047	{
15048		name:        "OR",
15049		argLen:      2,
15050		commutative: true,
15051		asm:         mips.AOR,
15052		reg: regInfo{
15053			inputs: []inputInfo{
15054				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15055				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15056			},
15057			outputs: []outputInfo{
15058				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15059			},
15060		},
15061	},
15062	{
15063		name:    "ORconst",
15064		auxType: auxInt64,
15065		argLen:  1,
15066		asm:     mips.AOR,
15067		reg: regInfo{
15068			inputs: []inputInfo{
15069				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15070			},
15071			outputs: []outputInfo{
15072				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15073			},
15074		},
15075	},
15076	{
15077		name:        "XOR",
15078		argLen:      2,
15079		commutative: true,
15080		asm:         mips.AXOR,
15081		reg: regInfo{
15082			inputs: []inputInfo{
15083				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15084				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15085			},
15086			outputs: []outputInfo{
15087				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15088			},
15089		},
15090	},
15091	{
15092		name:    "XORconst",
15093		auxType: auxInt64,
15094		argLen:  1,
15095		asm:     mips.AXOR,
15096		reg: regInfo{
15097			inputs: []inputInfo{
15098				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15099			},
15100			outputs: []outputInfo{
15101				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15102			},
15103		},
15104	},
15105	{
15106		name:        "NOR",
15107		argLen:      2,
15108		commutative: true,
15109		asm:         mips.ANOR,
15110		reg: regInfo{
15111			inputs: []inputInfo{
15112				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15113				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15114			},
15115			outputs: []outputInfo{
15116				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15117			},
15118		},
15119	},
15120	{
15121		name:    "NORconst",
15122		auxType: auxInt64,
15123		argLen:  1,
15124		asm:     mips.ANOR,
15125		reg: regInfo{
15126			inputs: []inputInfo{
15127				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15128			},
15129			outputs: []outputInfo{
15130				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15131			},
15132		},
15133	},
15134	{
15135		name:   "NEGV",
15136		argLen: 1,
15137		reg: regInfo{
15138			inputs: []inputInfo{
15139				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15140			},
15141			outputs: []outputInfo{
15142				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15143			},
15144		},
15145	},
15146	{
15147		name:   "NEGF",
15148		argLen: 1,
15149		asm:    mips.ANEGF,
15150		reg: regInfo{
15151			inputs: []inputInfo{
15152				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15153			},
15154			outputs: []outputInfo{
15155				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15156			},
15157		},
15158	},
15159	{
15160		name:   "NEGD",
15161		argLen: 1,
15162		asm:    mips.ANEGD,
15163		reg: regInfo{
15164			inputs: []inputInfo{
15165				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15166			},
15167			outputs: []outputInfo{
15168				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15169			},
15170		},
15171	},
15172	{
15173		name:   "SLLV",
15174		argLen: 2,
15175		asm:    mips.ASLLV,
15176		reg: regInfo{
15177			inputs: []inputInfo{
15178				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15179				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15180			},
15181			outputs: []outputInfo{
15182				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15183			},
15184		},
15185	},
15186	{
15187		name:    "SLLVconst",
15188		auxType: auxInt64,
15189		argLen:  1,
15190		asm:     mips.ASLLV,
15191		reg: regInfo{
15192			inputs: []inputInfo{
15193				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15194			},
15195			outputs: []outputInfo{
15196				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15197			},
15198		},
15199	},
15200	{
15201		name:   "SRLV",
15202		argLen: 2,
15203		asm:    mips.ASRLV,
15204		reg: regInfo{
15205			inputs: []inputInfo{
15206				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15207				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15208			},
15209			outputs: []outputInfo{
15210				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15211			},
15212		},
15213	},
15214	{
15215		name:    "SRLVconst",
15216		auxType: auxInt64,
15217		argLen:  1,
15218		asm:     mips.ASRLV,
15219		reg: regInfo{
15220			inputs: []inputInfo{
15221				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15222			},
15223			outputs: []outputInfo{
15224				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15225			},
15226		},
15227	},
15228	{
15229		name:   "SRAV",
15230		argLen: 2,
15231		asm:    mips.ASRAV,
15232		reg: regInfo{
15233			inputs: []inputInfo{
15234				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15235				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15236			},
15237			outputs: []outputInfo{
15238				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15239			},
15240		},
15241	},
15242	{
15243		name:    "SRAVconst",
15244		auxType: auxInt64,
15245		argLen:  1,
15246		asm:     mips.ASRAV,
15247		reg: regInfo{
15248			inputs: []inputInfo{
15249				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15250			},
15251			outputs: []outputInfo{
15252				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15253			},
15254		},
15255	},
15256	{
15257		name:   "SGT",
15258		argLen: 2,
15259		asm:    mips.ASGT,
15260		reg: regInfo{
15261			inputs: []inputInfo{
15262				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15263				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15264			},
15265			outputs: []outputInfo{
15266				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15267			},
15268		},
15269	},
15270	{
15271		name:    "SGTconst",
15272		auxType: auxInt64,
15273		argLen:  1,
15274		asm:     mips.ASGT,
15275		reg: regInfo{
15276			inputs: []inputInfo{
15277				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15278			},
15279			outputs: []outputInfo{
15280				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15281			},
15282		},
15283	},
15284	{
15285		name:   "SGTU",
15286		argLen: 2,
15287		asm:    mips.ASGTU,
15288		reg: regInfo{
15289			inputs: []inputInfo{
15290				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15291				{1, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15292			},
15293			outputs: []outputInfo{
15294				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15295			},
15296		},
15297	},
15298	{
15299		name:    "SGTUconst",
15300		auxType: auxInt64,
15301		argLen:  1,
15302		asm:     mips.ASGTU,
15303		reg: regInfo{
15304			inputs: []inputInfo{
15305				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15306			},
15307			outputs: []outputInfo{
15308				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15309			},
15310		},
15311	},
15312	{
15313		name:   "CMPEQF",
15314		argLen: 2,
15315		asm:    mips.ACMPEQF,
15316		reg: regInfo{
15317			inputs: []inputInfo{
15318				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15319				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15320			},
15321		},
15322	},
15323	{
15324		name:   "CMPEQD",
15325		argLen: 2,
15326		asm:    mips.ACMPEQD,
15327		reg: regInfo{
15328			inputs: []inputInfo{
15329				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15330				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15331			},
15332		},
15333	},
15334	{
15335		name:   "CMPGEF",
15336		argLen: 2,
15337		asm:    mips.ACMPGEF,
15338		reg: regInfo{
15339			inputs: []inputInfo{
15340				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15341				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15342			},
15343		},
15344	},
15345	{
15346		name:   "CMPGED",
15347		argLen: 2,
15348		asm:    mips.ACMPGED,
15349		reg: regInfo{
15350			inputs: []inputInfo{
15351				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15352				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15353			},
15354		},
15355	},
15356	{
15357		name:   "CMPGTF",
15358		argLen: 2,
15359		asm:    mips.ACMPGTF,
15360		reg: regInfo{
15361			inputs: []inputInfo{
15362				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15363				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15364			},
15365		},
15366	},
15367	{
15368		name:   "CMPGTD",
15369		argLen: 2,
15370		asm:    mips.ACMPGTD,
15371		reg: regInfo{
15372			inputs: []inputInfo{
15373				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15374				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15375			},
15376		},
15377	},
15378	{
15379		name:              "MOVVconst",
15380		auxType:           auxInt64,
15381		argLen:            0,
15382		rematerializeable: true,
15383		asm:               mips.AMOVV,
15384		reg: regInfo{
15385			outputs: []outputInfo{
15386				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15387			},
15388		},
15389	},
15390	{
15391		name:              "MOVFconst",
15392		auxType:           auxFloat64,
15393		argLen:            0,
15394		rematerializeable: true,
15395		asm:               mips.AMOVF,
15396		reg: regInfo{
15397			outputs: []outputInfo{
15398				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15399			},
15400		},
15401	},
15402	{
15403		name:              "MOVDconst",
15404		auxType:           auxFloat64,
15405		argLen:            0,
15406		rematerializeable: true,
15407		asm:               mips.AMOVD,
15408		reg: regInfo{
15409			outputs: []outputInfo{
15410				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15411			},
15412		},
15413	},
15414	{
15415		name:              "MOVVaddr",
15416		auxType:           auxSymOff,
15417		argLen:            1,
15418		rematerializeable: true,
15419		symEffect:         SymAddr,
15420		asm:               mips.AMOVV,
15421		reg: regInfo{
15422			inputs: []inputInfo{
15423				{0, 4611686018460942336}, // SP SB
15424			},
15425			outputs: []outputInfo{
15426				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15427			},
15428		},
15429	},
15430	{
15431		name:           "MOVBload",
15432		auxType:        auxSymOff,
15433		argLen:         2,
15434		faultOnNilArg0: true,
15435		symEffect:      SymRead,
15436		asm:            mips.AMOVB,
15437		reg: regInfo{
15438			inputs: []inputInfo{
15439				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15440			},
15441			outputs: []outputInfo{
15442				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15443			},
15444		},
15445	},
15446	{
15447		name:           "MOVBUload",
15448		auxType:        auxSymOff,
15449		argLen:         2,
15450		faultOnNilArg0: true,
15451		symEffect:      SymRead,
15452		asm:            mips.AMOVBU,
15453		reg: regInfo{
15454			inputs: []inputInfo{
15455				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15456			},
15457			outputs: []outputInfo{
15458				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15459			},
15460		},
15461	},
15462	{
15463		name:           "MOVHload",
15464		auxType:        auxSymOff,
15465		argLen:         2,
15466		faultOnNilArg0: true,
15467		symEffect:      SymRead,
15468		asm:            mips.AMOVH,
15469		reg: regInfo{
15470			inputs: []inputInfo{
15471				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15472			},
15473			outputs: []outputInfo{
15474				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15475			},
15476		},
15477	},
15478	{
15479		name:           "MOVHUload",
15480		auxType:        auxSymOff,
15481		argLen:         2,
15482		faultOnNilArg0: true,
15483		symEffect:      SymRead,
15484		asm:            mips.AMOVHU,
15485		reg: regInfo{
15486			inputs: []inputInfo{
15487				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15488			},
15489			outputs: []outputInfo{
15490				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15491			},
15492		},
15493	},
15494	{
15495		name:           "MOVWload",
15496		auxType:        auxSymOff,
15497		argLen:         2,
15498		faultOnNilArg0: true,
15499		symEffect:      SymRead,
15500		asm:            mips.AMOVW,
15501		reg: regInfo{
15502			inputs: []inputInfo{
15503				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15504			},
15505			outputs: []outputInfo{
15506				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15507			},
15508		},
15509	},
15510	{
15511		name:           "MOVWUload",
15512		auxType:        auxSymOff,
15513		argLen:         2,
15514		faultOnNilArg0: true,
15515		symEffect:      SymRead,
15516		asm:            mips.AMOVWU,
15517		reg: regInfo{
15518			inputs: []inputInfo{
15519				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15520			},
15521			outputs: []outputInfo{
15522				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15523			},
15524		},
15525	},
15526	{
15527		name:           "MOVVload",
15528		auxType:        auxSymOff,
15529		argLen:         2,
15530		faultOnNilArg0: true,
15531		symEffect:      SymRead,
15532		asm:            mips.AMOVV,
15533		reg: regInfo{
15534			inputs: []inputInfo{
15535				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15536			},
15537			outputs: []outputInfo{
15538				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15539			},
15540		},
15541	},
15542	{
15543		name:           "MOVFload",
15544		auxType:        auxSymOff,
15545		argLen:         2,
15546		faultOnNilArg0: true,
15547		symEffect:      SymRead,
15548		asm:            mips.AMOVF,
15549		reg: regInfo{
15550			inputs: []inputInfo{
15551				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15552			},
15553			outputs: []outputInfo{
15554				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15555			},
15556		},
15557	},
15558	{
15559		name:           "MOVDload",
15560		auxType:        auxSymOff,
15561		argLen:         2,
15562		faultOnNilArg0: true,
15563		symEffect:      SymRead,
15564		asm:            mips.AMOVD,
15565		reg: regInfo{
15566			inputs: []inputInfo{
15567				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15568			},
15569			outputs: []outputInfo{
15570				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15571			},
15572		},
15573	},
15574	{
15575		name:           "MOVBstore",
15576		auxType:        auxSymOff,
15577		argLen:         3,
15578		faultOnNilArg0: true,
15579		symEffect:      SymWrite,
15580		asm:            mips.AMOVB,
15581		reg: regInfo{
15582			inputs: []inputInfo{
15583				{1, 234881022},           // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15584				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15585			},
15586		},
15587	},
15588	{
15589		name:           "MOVHstore",
15590		auxType:        auxSymOff,
15591		argLen:         3,
15592		faultOnNilArg0: true,
15593		symEffect:      SymWrite,
15594		asm:            mips.AMOVH,
15595		reg: regInfo{
15596			inputs: []inputInfo{
15597				{1, 234881022},           // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15598				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15599			},
15600		},
15601	},
15602	{
15603		name:           "MOVWstore",
15604		auxType:        auxSymOff,
15605		argLen:         3,
15606		faultOnNilArg0: true,
15607		symEffect:      SymWrite,
15608		asm:            mips.AMOVW,
15609		reg: regInfo{
15610			inputs: []inputInfo{
15611				{1, 234881022},           // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15612				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15613			},
15614		},
15615	},
15616	{
15617		name:           "MOVVstore",
15618		auxType:        auxSymOff,
15619		argLen:         3,
15620		faultOnNilArg0: true,
15621		symEffect:      SymWrite,
15622		asm:            mips.AMOVV,
15623		reg: regInfo{
15624			inputs: []inputInfo{
15625				{1, 234881022},           // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15626				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15627			},
15628		},
15629	},
15630	{
15631		name:           "MOVFstore",
15632		auxType:        auxSymOff,
15633		argLen:         3,
15634		faultOnNilArg0: true,
15635		symEffect:      SymWrite,
15636		asm:            mips.AMOVF,
15637		reg: regInfo{
15638			inputs: []inputInfo{
15639				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15640				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15641			},
15642		},
15643	},
15644	{
15645		name:           "MOVDstore",
15646		auxType:        auxSymOff,
15647		argLen:         3,
15648		faultOnNilArg0: true,
15649		symEffect:      SymWrite,
15650		asm:            mips.AMOVD,
15651		reg: regInfo{
15652			inputs: []inputInfo{
15653				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15654				{1, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15655			},
15656		},
15657	},
15658	{
15659		name:           "MOVBstorezero",
15660		auxType:        auxSymOff,
15661		argLen:         2,
15662		faultOnNilArg0: true,
15663		symEffect:      SymWrite,
15664		asm:            mips.AMOVB,
15665		reg: regInfo{
15666			inputs: []inputInfo{
15667				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15668			},
15669		},
15670	},
15671	{
15672		name:           "MOVHstorezero",
15673		auxType:        auxSymOff,
15674		argLen:         2,
15675		faultOnNilArg0: true,
15676		symEffect:      SymWrite,
15677		asm:            mips.AMOVH,
15678		reg: regInfo{
15679			inputs: []inputInfo{
15680				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15681			},
15682		},
15683	},
15684	{
15685		name:           "MOVWstorezero",
15686		auxType:        auxSymOff,
15687		argLen:         2,
15688		faultOnNilArg0: true,
15689		symEffect:      SymWrite,
15690		asm:            mips.AMOVW,
15691		reg: regInfo{
15692			inputs: []inputInfo{
15693				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15694			},
15695		},
15696	},
15697	{
15698		name:           "MOVVstorezero",
15699		auxType:        auxSymOff,
15700		argLen:         2,
15701		faultOnNilArg0: true,
15702		symEffect:      SymWrite,
15703		asm:            mips.AMOVV,
15704		reg: regInfo{
15705			inputs: []inputInfo{
15706				{0, 4611686018695823358}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP g R31 SB
15707			},
15708		},
15709	},
15710	{
15711		name:   "MOVBreg",
15712		argLen: 1,
15713		asm:    mips.AMOVB,
15714		reg: regInfo{
15715			inputs: []inputInfo{
15716				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15717			},
15718			outputs: []outputInfo{
15719				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15720			},
15721		},
15722	},
15723	{
15724		name:   "MOVBUreg",
15725		argLen: 1,
15726		asm:    mips.AMOVBU,
15727		reg: regInfo{
15728			inputs: []inputInfo{
15729				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15730			},
15731			outputs: []outputInfo{
15732				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15733			},
15734		},
15735	},
15736	{
15737		name:   "MOVHreg",
15738		argLen: 1,
15739		asm:    mips.AMOVH,
15740		reg: regInfo{
15741			inputs: []inputInfo{
15742				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15743			},
15744			outputs: []outputInfo{
15745				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15746			},
15747		},
15748	},
15749	{
15750		name:   "MOVHUreg",
15751		argLen: 1,
15752		asm:    mips.AMOVHU,
15753		reg: regInfo{
15754			inputs: []inputInfo{
15755				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15756			},
15757			outputs: []outputInfo{
15758				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15759			},
15760		},
15761	},
15762	{
15763		name:   "MOVWreg",
15764		argLen: 1,
15765		asm:    mips.AMOVW,
15766		reg: regInfo{
15767			inputs: []inputInfo{
15768				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15769			},
15770			outputs: []outputInfo{
15771				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15772			},
15773		},
15774	},
15775	{
15776		name:   "MOVWUreg",
15777		argLen: 1,
15778		asm:    mips.AMOVWU,
15779		reg: regInfo{
15780			inputs: []inputInfo{
15781				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15782			},
15783			outputs: []outputInfo{
15784				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15785			},
15786		},
15787	},
15788	{
15789		name:   "MOVVreg",
15790		argLen: 1,
15791		asm:    mips.AMOVV,
15792		reg: regInfo{
15793			inputs: []inputInfo{
15794				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
15795			},
15796			outputs: []outputInfo{
15797				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15798			},
15799		},
15800	},
15801	{
15802		name:         "MOVVnop",
15803		argLen:       1,
15804		resultInArg0: true,
15805		reg: regInfo{
15806			inputs: []inputInfo{
15807				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15808			},
15809			outputs: []outputInfo{
15810				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15811			},
15812		},
15813	},
15814	{
15815		name:   "MOVWF",
15816		argLen: 1,
15817		asm:    mips.AMOVWF,
15818		reg: regInfo{
15819			inputs: []inputInfo{
15820				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15821			},
15822			outputs: []outputInfo{
15823				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15824			},
15825		},
15826	},
15827	{
15828		name:   "MOVWD",
15829		argLen: 1,
15830		asm:    mips.AMOVWD,
15831		reg: regInfo{
15832			inputs: []inputInfo{
15833				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15834			},
15835			outputs: []outputInfo{
15836				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15837			},
15838		},
15839	},
15840	{
15841		name:   "MOVVF",
15842		argLen: 1,
15843		asm:    mips.AMOVVF,
15844		reg: regInfo{
15845			inputs: []inputInfo{
15846				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15847			},
15848			outputs: []outputInfo{
15849				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15850			},
15851		},
15852	},
15853	{
15854		name:   "MOVVD",
15855		argLen: 1,
15856		asm:    mips.AMOVVD,
15857		reg: regInfo{
15858			inputs: []inputInfo{
15859				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15860			},
15861			outputs: []outputInfo{
15862				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15863			},
15864		},
15865	},
15866	{
15867		name:   "TRUNCFW",
15868		argLen: 1,
15869		asm:    mips.ATRUNCFW,
15870		reg: regInfo{
15871			inputs: []inputInfo{
15872				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15873			},
15874			outputs: []outputInfo{
15875				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15876			},
15877		},
15878	},
15879	{
15880		name:   "TRUNCDW",
15881		argLen: 1,
15882		asm:    mips.ATRUNCDW,
15883		reg: regInfo{
15884			inputs: []inputInfo{
15885				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15886			},
15887			outputs: []outputInfo{
15888				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15889			},
15890		},
15891	},
15892	{
15893		name:   "TRUNCFV",
15894		argLen: 1,
15895		asm:    mips.ATRUNCFV,
15896		reg: regInfo{
15897			inputs: []inputInfo{
15898				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15899			},
15900			outputs: []outputInfo{
15901				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15902			},
15903		},
15904	},
15905	{
15906		name:   "TRUNCDV",
15907		argLen: 1,
15908		asm:    mips.ATRUNCDV,
15909		reg: regInfo{
15910			inputs: []inputInfo{
15911				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15912			},
15913			outputs: []outputInfo{
15914				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15915			},
15916		},
15917	},
15918	{
15919		name:   "MOVFD",
15920		argLen: 1,
15921		asm:    mips.AMOVFD,
15922		reg: regInfo{
15923			inputs: []inputInfo{
15924				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15925			},
15926			outputs: []outputInfo{
15927				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15928			},
15929		},
15930	},
15931	{
15932		name:   "MOVDF",
15933		argLen: 1,
15934		asm:    mips.AMOVDF,
15935		reg: regInfo{
15936			inputs: []inputInfo{
15937				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15938			},
15939			outputs: []outputInfo{
15940				{0, 1152921504338411520}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
15941			},
15942		},
15943	},
15944	{
15945		name:         "CALLstatic",
15946		auxType:      auxSymOff,
15947		argLen:       1,
15948		clobberFlags: true,
15949		call:         true,
15950		symEffect:    SymNone,
15951		reg: regInfo{
15952			clobbers: 4611686018393833470, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31 HI LO
15953		},
15954	},
15955	{
15956		name:         "CALLclosure",
15957		auxType:      auxInt64,
15958		argLen:       3,
15959		clobberFlags: true,
15960		call:         true,
15961		reg: regInfo{
15962			inputs: []inputInfo{
15963				{1, 4194304},   // R22
15964				{0, 201326590}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 SP R31
15965			},
15966			clobbers: 4611686018393833470, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31 HI LO
15967		},
15968	},
15969	{
15970		name:         "CALLinter",
15971		auxType:      auxInt64,
15972		argLen:       2,
15973		clobberFlags: true,
15974		call:         true,
15975		reg: regInfo{
15976			inputs: []inputInfo{
15977				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15978			},
15979			clobbers: 4611686018393833470, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31 HI LO
15980		},
15981	},
15982	{
15983		name:           "DUFFZERO",
15984		auxType:        auxInt64,
15985		argLen:         2,
15986		faultOnNilArg0: true,
15987		reg: regInfo{
15988			inputs: []inputInfo{
15989				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
15990			},
15991			clobbers: 134217730, // R1 R31
15992		},
15993	},
15994	{
15995		name:           "LoweredZero",
15996		auxType:        auxInt64,
15997		argLen:         3,
15998		clobberFlags:   true,
15999		faultOnNilArg0: true,
16000		reg: regInfo{
16001			inputs: []inputInfo{
16002				{0, 2},         // R1
16003				{1, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
16004			},
16005			clobbers: 2, // R1
16006		},
16007	},
16008	{
16009		name:           "LoweredMove",
16010		auxType:        auxInt64,
16011		argLen:         4,
16012		clobberFlags:   true,
16013		faultOnNilArg0: true,
16014		faultOnNilArg1: true,
16015		reg: regInfo{
16016			inputs: []inputInfo{
16017				{0, 4},         // R2
16018				{1, 2},         // R1
16019				{2, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
16020			},
16021			clobbers: 6, // R1 R2
16022		},
16023	},
16024	{
16025		name:           "LoweredNilCheck",
16026		argLen:         2,
16027		nilCheck:       true,
16028		faultOnNilArg0: true,
16029		reg: regInfo{
16030			inputs: []inputInfo{
16031				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
16032			},
16033		},
16034	},
16035	{
16036		name:   "FPFlagTrue",
16037		argLen: 1,
16038		reg: regInfo{
16039			outputs: []outputInfo{
16040				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
16041			},
16042		},
16043	},
16044	{
16045		name:   "FPFlagFalse",
16046		argLen: 1,
16047		reg: regInfo{
16048			outputs: []outputInfo{
16049				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
16050			},
16051		},
16052	},
16053	{
16054		name:   "LoweredGetClosurePtr",
16055		argLen: 0,
16056		reg: regInfo{
16057			outputs: []outputInfo{
16058				{0, 4194304}, // R22
16059			},
16060		},
16061	},
16062	{
16063		name:   "MOVVconvert",
16064		argLen: 2,
16065		asm:    mips.AMOVV,
16066		reg: regInfo{
16067			inputs: []inputInfo{
16068				{0, 234881022}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 g R31
16069			},
16070			outputs: []outputInfo{
16071				{0, 167772158}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R24 R25 R31
16072			},
16073		},
16074	},
16075
16076	{
16077		name:        "ADD",
16078		argLen:      2,
16079		commutative: true,
16080		asm:         ppc64.AADD,
16081		reg: regInfo{
16082			inputs: []inputInfo{
16083				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16084				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16085			},
16086			outputs: []outputInfo{
16087				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16088			},
16089		},
16090	},
16091	{
16092		name:      "ADDconst",
16093		auxType:   auxSymOff,
16094		argLen:    1,
16095		symEffect: SymAddr,
16096		asm:       ppc64.AADD,
16097		reg: regInfo{
16098			inputs: []inputInfo{
16099				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16100			},
16101			outputs: []outputInfo{
16102				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16103			},
16104		},
16105	},
16106	{
16107		name:        "FADD",
16108		argLen:      2,
16109		commutative: true,
16110		asm:         ppc64.AFADD,
16111		reg: regInfo{
16112			inputs: []inputInfo{
16113				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16114				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16115			},
16116			outputs: []outputInfo{
16117				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16118			},
16119		},
16120	},
16121	{
16122		name:        "FADDS",
16123		argLen:      2,
16124		commutative: true,
16125		asm:         ppc64.AFADDS,
16126		reg: regInfo{
16127			inputs: []inputInfo{
16128				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16129				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16130			},
16131			outputs: []outputInfo{
16132				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16133			},
16134		},
16135	},
16136	{
16137		name:   "SUB",
16138		argLen: 2,
16139		asm:    ppc64.ASUB,
16140		reg: regInfo{
16141			inputs: []inputInfo{
16142				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16143				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16144			},
16145			outputs: []outputInfo{
16146				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16147			},
16148		},
16149	},
16150	{
16151		name:   "FSUB",
16152		argLen: 2,
16153		asm:    ppc64.AFSUB,
16154		reg: regInfo{
16155			inputs: []inputInfo{
16156				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16157				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16158			},
16159			outputs: []outputInfo{
16160				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16161			},
16162		},
16163	},
16164	{
16165		name:   "FSUBS",
16166		argLen: 2,
16167		asm:    ppc64.AFSUBS,
16168		reg: regInfo{
16169			inputs: []inputInfo{
16170				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16171				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16172			},
16173			outputs: []outputInfo{
16174				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16175			},
16176		},
16177	},
16178	{
16179		name:        "MULLD",
16180		argLen:      2,
16181		commutative: true,
16182		asm:         ppc64.AMULLD,
16183		reg: regInfo{
16184			inputs: []inputInfo{
16185				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16186				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16187			},
16188			outputs: []outputInfo{
16189				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16190			},
16191		},
16192	},
16193	{
16194		name:        "MULLW",
16195		argLen:      2,
16196		commutative: true,
16197		asm:         ppc64.AMULLW,
16198		reg: regInfo{
16199			inputs: []inputInfo{
16200				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16201				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16202			},
16203			outputs: []outputInfo{
16204				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16205			},
16206		},
16207	},
16208	{
16209		name:        "MULHD",
16210		argLen:      2,
16211		commutative: true,
16212		asm:         ppc64.AMULHD,
16213		reg: regInfo{
16214			inputs: []inputInfo{
16215				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16216				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16217			},
16218			outputs: []outputInfo{
16219				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16220			},
16221		},
16222	},
16223	{
16224		name:        "MULHW",
16225		argLen:      2,
16226		commutative: true,
16227		asm:         ppc64.AMULHW,
16228		reg: regInfo{
16229			inputs: []inputInfo{
16230				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16231				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16232			},
16233			outputs: []outputInfo{
16234				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16235			},
16236		},
16237	},
16238	{
16239		name:        "MULHDU",
16240		argLen:      2,
16241		commutative: true,
16242		asm:         ppc64.AMULHDU,
16243		reg: regInfo{
16244			inputs: []inputInfo{
16245				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16246				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16247			},
16248			outputs: []outputInfo{
16249				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16250			},
16251		},
16252	},
16253	{
16254		name:        "MULHWU",
16255		argLen:      2,
16256		commutative: true,
16257		asm:         ppc64.AMULHWU,
16258		reg: regInfo{
16259			inputs: []inputInfo{
16260				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16261				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16262			},
16263			outputs: []outputInfo{
16264				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16265			},
16266		},
16267	},
16268	{
16269		name:        "FMUL",
16270		argLen:      2,
16271		commutative: true,
16272		asm:         ppc64.AFMUL,
16273		reg: regInfo{
16274			inputs: []inputInfo{
16275				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16276				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16277			},
16278			outputs: []outputInfo{
16279				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16280			},
16281		},
16282	},
16283	{
16284		name:        "FMULS",
16285		argLen:      2,
16286		commutative: true,
16287		asm:         ppc64.AFMULS,
16288		reg: regInfo{
16289			inputs: []inputInfo{
16290				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16291				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16292			},
16293			outputs: []outputInfo{
16294				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16295			},
16296		},
16297	},
16298	{
16299		name:   "FMADD",
16300		argLen: 3,
16301		asm:    ppc64.AFMADD,
16302		reg: regInfo{
16303			inputs: []inputInfo{
16304				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16305				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16306				{2, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16307			},
16308			outputs: []outputInfo{
16309				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16310			},
16311		},
16312	},
16313	{
16314		name:   "FMADDS",
16315		argLen: 3,
16316		asm:    ppc64.AFMADDS,
16317		reg: regInfo{
16318			inputs: []inputInfo{
16319				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16320				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16321				{2, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16322			},
16323			outputs: []outputInfo{
16324				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16325			},
16326		},
16327	},
16328	{
16329		name:   "FMSUB",
16330		argLen: 3,
16331		asm:    ppc64.AFMSUB,
16332		reg: regInfo{
16333			inputs: []inputInfo{
16334				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16335				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16336				{2, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16337			},
16338			outputs: []outputInfo{
16339				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16340			},
16341		},
16342	},
16343	{
16344		name:   "FMSUBS",
16345		argLen: 3,
16346		asm:    ppc64.AFMSUBS,
16347		reg: regInfo{
16348			inputs: []inputInfo{
16349				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16350				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16351				{2, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16352			},
16353			outputs: []outputInfo{
16354				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16355			},
16356		},
16357	},
16358	{
16359		name:   "SRAD",
16360		argLen: 2,
16361		asm:    ppc64.ASRAD,
16362		reg: regInfo{
16363			inputs: []inputInfo{
16364				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16365				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16366			},
16367			outputs: []outputInfo{
16368				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16369			},
16370		},
16371	},
16372	{
16373		name:   "SRAW",
16374		argLen: 2,
16375		asm:    ppc64.ASRAW,
16376		reg: regInfo{
16377			inputs: []inputInfo{
16378				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16379				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16380			},
16381			outputs: []outputInfo{
16382				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16383			},
16384		},
16385	},
16386	{
16387		name:   "SRD",
16388		argLen: 2,
16389		asm:    ppc64.ASRD,
16390		reg: regInfo{
16391			inputs: []inputInfo{
16392				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16393				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16394			},
16395			outputs: []outputInfo{
16396				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16397			},
16398		},
16399	},
16400	{
16401		name:   "SRW",
16402		argLen: 2,
16403		asm:    ppc64.ASRW,
16404		reg: regInfo{
16405			inputs: []inputInfo{
16406				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16407				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16408			},
16409			outputs: []outputInfo{
16410				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16411			},
16412		},
16413	},
16414	{
16415		name:   "SLD",
16416		argLen: 2,
16417		asm:    ppc64.ASLD,
16418		reg: regInfo{
16419			inputs: []inputInfo{
16420				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16421				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16422			},
16423			outputs: []outputInfo{
16424				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16425			},
16426		},
16427	},
16428	{
16429		name:   "SLW",
16430		argLen: 2,
16431		asm:    ppc64.ASLW,
16432		reg: regInfo{
16433			inputs: []inputInfo{
16434				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16435				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16436			},
16437			outputs: []outputInfo{
16438				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16439			},
16440		},
16441	},
16442	{
16443		name:    "ADDconstForCarry",
16444		auxType: auxInt16,
16445		argLen:  1,
16446		asm:     ppc64.AADDC,
16447		reg: regInfo{
16448			inputs: []inputInfo{
16449				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16450			},
16451			clobbers: 2147483648, // R31
16452		},
16453	},
16454	{
16455		name:   "MaskIfNotCarry",
16456		argLen: 1,
16457		asm:    ppc64.AADDME,
16458		reg: regInfo{
16459			outputs: []outputInfo{
16460				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16461			},
16462		},
16463	},
16464	{
16465		name:    "SRADconst",
16466		auxType: auxInt64,
16467		argLen:  1,
16468		asm:     ppc64.ASRAD,
16469		reg: regInfo{
16470			inputs: []inputInfo{
16471				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16472			},
16473			outputs: []outputInfo{
16474				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16475			},
16476		},
16477	},
16478	{
16479		name:    "SRAWconst",
16480		auxType: auxInt64,
16481		argLen:  1,
16482		asm:     ppc64.ASRAW,
16483		reg: regInfo{
16484			inputs: []inputInfo{
16485				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16486			},
16487			outputs: []outputInfo{
16488				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16489			},
16490		},
16491	},
16492	{
16493		name:    "SRDconst",
16494		auxType: auxInt64,
16495		argLen:  1,
16496		asm:     ppc64.ASRD,
16497		reg: regInfo{
16498			inputs: []inputInfo{
16499				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16500			},
16501			outputs: []outputInfo{
16502				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16503			},
16504		},
16505	},
16506	{
16507		name:    "SRWconst",
16508		auxType: auxInt64,
16509		argLen:  1,
16510		asm:     ppc64.ASRW,
16511		reg: regInfo{
16512			inputs: []inputInfo{
16513				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16514			},
16515			outputs: []outputInfo{
16516				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16517			},
16518		},
16519	},
16520	{
16521		name:    "SLDconst",
16522		auxType: auxInt64,
16523		argLen:  1,
16524		asm:     ppc64.ASLD,
16525		reg: regInfo{
16526			inputs: []inputInfo{
16527				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16528			},
16529			outputs: []outputInfo{
16530				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16531			},
16532		},
16533	},
16534	{
16535		name:    "SLWconst",
16536		auxType: auxInt64,
16537		argLen:  1,
16538		asm:     ppc64.ASLW,
16539		reg: regInfo{
16540			inputs: []inputInfo{
16541				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16542			},
16543			outputs: []outputInfo{
16544				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16545			},
16546		},
16547	},
16548	{
16549		name:    "ROTLconst",
16550		auxType: auxInt64,
16551		argLen:  1,
16552		asm:     ppc64.AROTL,
16553		reg: regInfo{
16554			inputs: []inputInfo{
16555				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16556			},
16557			outputs: []outputInfo{
16558				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16559			},
16560		},
16561	},
16562	{
16563		name:    "ROTLWconst",
16564		auxType: auxInt64,
16565		argLen:  1,
16566		asm:     ppc64.AROTLW,
16567		reg: regInfo{
16568			inputs: []inputInfo{
16569				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16570			},
16571			outputs: []outputInfo{
16572				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16573			},
16574		},
16575	},
16576	{
16577		name:         "CNTLZD",
16578		argLen:       1,
16579		clobberFlags: true,
16580		asm:          ppc64.ACNTLZD,
16581		reg: regInfo{
16582			inputs: []inputInfo{
16583				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16584			},
16585			outputs: []outputInfo{
16586				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16587			},
16588		},
16589	},
16590	{
16591		name:         "CNTLZW",
16592		argLen:       1,
16593		clobberFlags: true,
16594		asm:          ppc64.ACNTLZW,
16595		reg: regInfo{
16596			inputs: []inputInfo{
16597				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16598			},
16599			outputs: []outputInfo{
16600				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16601			},
16602		},
16603	},
16604	{
16605		name:   "POPCNTD",
16606		argLen: 1,
16607		asm:    ppc64.APOPCNTD,
16608		reg: regInfo{
16609			inputs: []inputInfo{
16610				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16611			},
16612			outputs: []outputInfo{
16613				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16614			},
16615		},
16616	},
16617	{
16618		name:   "POPCNTW",
16619		argLen: 1,
16620		asm:    ppc64.APOPCNTW,
16621		reg: regInfo{
16622			inputs: []inputInfo{
16623				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16624			},
16625			outputs: []outputInfo{
16626				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16627			},
16628		},
16629	},
16630	{
16631		name:   "POPCNTB",
16632		argLen: 1,
16633		asm:    ppc64.APOPCNTB,
16634		reg: regInfo{
16635			inputs: []inputInfo{
16636				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16637			},
16638			outputs: []outputInfo{
16639				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16640			},
16641		},
16642	},
16643	{
16644		name:   "FDIV",
16645		argLen: 2,
16646		asm:    ppc64.AFDIV,
16647		reg: regInfo{
16648			inputs: []inputInfo{
16649				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16650				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16651			},
16652			outputs: []outputInfo{
16653				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16654			},
16655		},
16656	},
16657	{
16658		name:   "FDIVS",
16659		argLen: 2,
16660		asm:    ppc64.AFDIVS,
16661		reg: regInfo{
16662			inputs: []inputInfo{
16663				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16664				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16665			},
16666			outputs: []outputInfo{
16667				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16668			},
16669		},
16670	},
16671	{
16672		name:   "DIVD",
16673		argLen: 2,
16674		asm:    ppc64.ADIVD,
16675		reg: regInfo{
16676			inputs: []inputInfo{
16677				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16678				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16679			},
16680			outputs: []outputInfo{
16681				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16682			},
16683		},
16684	},
16685	{
16686		name:   "DIVW",
16687		argLen: 2,
16688		asm:    ppc64.ADIVW,
16689		reg: regInfo{
16690			inputs: []inputInfo{
16691				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16692				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16693			},
16694			outputs: []outputInfo{
16695				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16696			},
16697		},
16698	},
16699	{
16700		name:   "DIVDU",
16701		argLen: 2,
16702		asm:    ppc64.ADIVDU,
16703		reg: regInfo{
16704			inputs: []inputInfo{
16705				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16706				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16707			},
16708			outputs: []outputInfo{
16709				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16710			},
16711		},
16712	},
16713	{
16714		name:   "DIVWU",
16715		argLen: 2,
16716		asm:    ppc64.ADIVWU,
16717		reg: regInfo{
16718			inputs: []inputInfo{
16719				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16720				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16721			},
16722			outputs: []outputInfo{
16723				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16724			},
16725		},
16726	},
16727	{
16728		name:   "FCTIDZ",
16729		argLen: 1,
16730		asm:    ppc64.AFCTIDZ,
16731		reg: regInfo{
16732			inputs: []inputInfo{
16733				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16734			},
16735			outputs: []outputInfo{
16736				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16737			},
16738		},
16739	},
16740	{
16741		name:   "FCTIWZ",
16742		argLen: 1,
16743		asm:    ppc64.AFCTIWZ,
16744		reg: regInfo{
16745			inputs: []inputInfo{
16746				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16747			},
16748			outputs: []outputInfo{
16749				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16750			},
16751		},
16752	},
16753	{
16754		name:   "FCFID",
16755		argLen: 1,
16756		asm:    ppc64.AFCFID,
16757		reg: regInfo{
16758			inputs: []inputInfo{
16759				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16760			},
16761			outputs: []outputInfo{
16762				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16763			},
16764		},
16765	},
16766	{
16767		name:   "FRSP",
16768		argLen: 1,
16769		asm:    ppc64.AFRSP,
16770		reg: regInfo{
16771			inputs: []inputInfo{
16772				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16773			},
16774			outputs: []outputInfo{
16775				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16776			},
16777		},
16778	},
16779	{
16780		name:   "Xf2i64",
16781		argLen: 1,
16782		reg: regInfo{
16783			inputs: []inputInfo{
16784				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16785			},
16786			outputs: []outputInfo{
16787				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16788			},
16789		},
16790	},
16791	{
16792		name:   "Xi2f64",
16793		argLen: 1,
16794		reg: regInfo{
16795			inputs: []inputInfo{
16796				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16797			},
16798			outputs: []outputInfo{
16799				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16800			},
16801		},
16802	},
16803	{
16804		name:        "AND",
16805		argLen:      2,
16806		commutative: true,
16807		asm:         ppc64.AAND,
16808		reg: regInfo{
16809			inputs: []inputInfo{
16810				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16811				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16812			},
16813			outputs: []outputInfo{
16814				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16815			},
16816		},
16817	},
16818	{
16819		name:   "ANDN",
16820		argLen: 2,
16821		asm:    ppc64.AANDN,
16822		reg: regInfo{
16823			inputs: []inputInfo{
16824				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16825				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16826			},
16827			outputs: []outputInfo{
16828				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16829			},
16830		},
16831	},
16832	{
16833		name:        "OR",
16834		argLen:      2,
16835		commutative: true,
16836		asm:         ppc64.AOR,
16837		reg: regInfo{
16838			inputs: []inputInfo{
16839				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16840				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16841			},
16842			outputs: []outputInfo{
16843				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16844			},
16845		},
16846	},
16847	{
16848		name:   "ORN",
16849		argLen: 2,
16850		asm:    ppc64.AORN,
16851		reg: regInfo{
16852			inputs: []inputInfo{
16853				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16854				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16855			},
16856			outputs: []outputInfo{
16857				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16858			},
16859		},
16860	},
16861	{
16862		name:        "NOR",
16863		argLen:      2,
16864		commutative: true,
16865		asm:         ppc64.ANOR,
16866		reg: regInfo{
16867			inputs: []inputInfo{
16868				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16869				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16870			},
16871			outputs: []outputInfo{
16872				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16873			},
16874		},
16875	},
16876	{
16877		name:        "XOR",
16878		argLen:      2,
16879		commutative: true,
16880		asm:         ppc64.AXOR,
16881		reg: regInfo{
16882			inputs: []inputInfo{
16883				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16884				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16885			},
16886			outputs: []outputInfo{
16887				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16888			},
16889		},
16890	},
16891	{
16892		name:        "EQV",
16893		argLen:      2,
16894		commutative: true,
16895		asm:         ppc64.AEQV,
16896		reg: regInfo{
16897			inputs: []inputInfo{
16898				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16899				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16900			},
16901			outputs: []outputInfo{
16902				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16903			},
16904		},
16905	},
16906	{
16907		name:   "NEG",
16908		argLen: 1,
16909		asm:    ppc64.ANEG,
16910		reg: regInfo{
16911			inputs: []inputInfo{
16912				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16913			},
16914			outputs: []outputInfo{
16915				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16916			},
16917		},
16918	},
16919	{
16920		name:   "FNEG",
16921		argLen: 1,
16922		asm:    ppc64.AFNEG,
16923		reg: regInfo{
16924			inputs: []inputInfo{
16925				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16926			},
16927			outputs: []outputInfo{
16928				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16929			},
16930		},
16931	},
16932	{
16933		name:   "FSQRT",
16934		argLen: 1,
16935		asm:    ppc64.AFSQRT,
16936		reg: regInfo{
16937			inputs: []inputInfo{
16938				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16939			},
16940			outputs: []outputInfo{
16941				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16942			},
16943		},
16944	},
16945	{
16946		name:   "FSQRTS",
16947		argLen: 1,
16948		asm:    ppc64.AFSQRTS,
16949		reg: regInfo{
16950			inputs: []inputInfo{
16951				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16952			},
16953			outputs: []outputInfo{
16954				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
16955			},
16956		},
16957	},
16958	{
16959		name:    "ORconst",
16960		auxType: auxInt64,
16961		argLen:  1,
16962		asm:     ppc64.AOR,
16963		reg: regInfo{
16964			inputs: []inputInfo{
16965				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16966			},
16967			outputs: []outputInfo{
16968				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16969			},
16970		},
16971	},
16972	{
16973		name:    "XORconst",
16974		auxType: auxInt64,
16975		argLen:  1,
16976		asm:     ppc64.AXOR,
16977		reg: regInfo{
16978			inputs: []inputInfo{
16979				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16980			},
16981			outputs: []outputInfo{
16982				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16983			},
16984		},
16985	},
16986	{
16987		name:         "ANDconst",
16988		auxType:      auxInt64,
16989		argLen:       1,
16990		clobberFlags: true,
16991		asm:          ppc64.AANDCC,
16992		reg: regInfo{
16993			inputs: []inputInfo{
16994				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16995			},
16996			outputs: []outputInfo{
16997				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
16998			},
16999		},
17000	},
17001	{
17002		name:    "ANDCCconst",
17003		auxType: auxInt64,
17004		argLen:  1,
17005		asm:     ppc64.AANDCC,
17006		reg: regInfo{
17007			inputs: []inputInfo{
17008				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17009			},
17010		},
17011	},
17012	{
17013		name:   "MOVBreg",
17014		argLen: 1,
17015		asm:    ppc64.AMOVB,
17016		reg: regInfo{
17017			inputs: []inputInfo{
17018				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17019			},
17020			outputs: []outputInfo{
17021				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17022			},
17023		},
17024	},
17025	{
17026		name:   "MOVBZreg",
17027		argLen: 1,
17028		asm:    ppc64.AMOVBZ,
17029		reg: regInfo{
17030			inputs: []inputInfo{
17031				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17032			},
17033			outputs: []outputInfo{
17034				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17035			},
17036		},
17037	},
17038	{
17039		name:   "MOVHreg",
17040		argLen: 1,
17041		asm:    ppc64.AMOVH,
17042		reg: regInfo{
17043			inputs: []inputInfo{
17044				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17045			},
17046			outputs: []outputInfo{
17047				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17048			},
17049		},
17050	},
17051	{
17052		name:   "MOVHZreg",
17053		argLen: 1,
17054		asm:    ppc64.AMOVHZ,
17055		reg: regInfo{
17056			inputs: []inputInfo{
17057				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17058			},
17059			outputs: []outputInfo{
17060				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17061			},
17062		},
17063	},
17064	{
17065		name:   "MOVWreg",
17066		argLen: 1,
17067		asm:    ppc64.AMOVW,
17068		reg: regInfo{
17069			inputs: []inputInfo{
17070				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17071			},
17072			outputs: []outputInfo{
17073				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17074			},
17075		},
17076	},
17077	{
17078		name:   "MOVWZreg",
17079		argLen: 1,
17080		asm:    ppc64.AMOVWZ,
17081		reg: regInfo{
17082			inputs: []inputInfo{
17083				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17084			},
17085			outputs: []outputInfo{
17086				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17087			},
17088		},
17089	},
17090	{
17091		name:           "MOVBZload",
17092		auxType:        auxSymOff,
17093		argLen:         2,
17094		faultOnNilArg0: true,
17095		symEffect:      SymRead,
17096		asm:            ppc64.AMOVBZ,
17097		reg: regInfo{
17098			inputs: []inputInfo{
17099				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17100			},
17101			outputs: []outputInfo{
17102				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17103			},
17104		},
17105	},
17106	{
17107		name:           "MOVHload",
17108		auxType:        auxSymOff,
17109		argLen:         2,
17110		faultOnNilArg0: true,
17111		symEffect:      SymRead,
17112		asm:            ppc64.AMOVH,
17113		reg: regInfo{
17114			inputs: []inputInfo{
17115				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17116			},
17117			outputs: []outputInfo{
17118				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17119			},
17120		},
17121	},
17122	{
17123		name:           "MOVHZload",
17124		auxType:        auxSymOff,
17125		argLen:         2,
17126		faultOnNilArg0: true,
17127		symEffect:      SymRead,
17128		asm:            ppc64.AMOVHZ,
17129		reg: regInfo{
17130			inputs: []inputInfo{
17131				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17132			},
17133			outputs: []outputInfo{
17134				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17135			},
17136		},
17137	},
17138	{
17139		name:           "MOVWload",
17140		auxType:        auxSymOff,
17141		argLen:         2,
17142		faultOnNilArg0: true,
17143		symEffect:      SymRead,
17144		asm:            ppc64.AMOVW,
17145		reg: regInfo{
17146			inputs: []inputInfo{
17147				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17148			},
17149			outputs: []outputInfo{
17150				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17151			},
17152		},
17153	},
17154	{
17155		name:           "MOVWZload",
17156		auxType:        auxSymOff,
17157		argLen:         2,
17158		faultOnNilArg0: true,
17159		symEffect:      SymRead,
17160		asm:            ppc64.AMOVWZ,
17161		reg: regInfo{
17162			inputs: []inputInfo{
17163				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17164			},
17165			outputs: []outputInfo{
17166				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17167			},
17168		},
17169	},
17170	{
17171		name:           "MOVDload",
17172		auxType:        auxSymOff,
17173		argLen:         2,
17174		faultOnNilArg0: true,
17175		symEffect:      SymRead,
17176		asm:            ppc64.AMOVD,
17177		reg: regInfo{
17178			inputs: []inputInfo{
17179				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17180			},
17181			outputs: []outputInfo{
17182				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17183			},
17184		},
17185	},
17186	{
17187		name:           "FMOVDload",
17188		auxType:        auxSymOff,
17189		argLen:         2,
17190		faultOnNilArg0: true,
17191		symEffect:      SymRead,
17192		asm:            ppc64.AFMOVD,
17193		reg: regInfo{
17194			inputs: []inputInfo{
17195				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17196			},
17197			outputs: []outputInfo{
17198				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17199			},
17200		},
17201	},
17202	{
17203		name:           "FMOVSload",
17204		auxType:        auxSymOff,
17205		argLen:         2,
17206		faultOnNilArg0: true,
17207		symEffect:      SymRead,
17208		asm:            ppc64.AFMOVS,
17209		reg: regInfo{
17210			inputs: []inputInfo{
17211				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17212			},
17213			outputs: []outputInfo{
17214				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17215			},
17216		},
17217	},
17218	{
17219		name:           "MOVBstore",
17220		auxType:        auxSymOff,
17221		argLen:         3,
17222		faultOnNilArg0: true,
17223		symEffect:      SymWrite,
17224		asm:            ppc64.AMOVB,
17225		reg: regInfo{
17226			inputs: []inputInfo{
17227				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17228				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17229			},
17230		},
17231	},
17232	{
17233		name:           "MOVHstore",
17234		auxType:        auxSymOff,
17235		argLen:         3,
17236		faultOnNilArg0: true,
17237		symEffect:      SymWrite,
17238		asm:            ppc64.AMOVH,
17239		reg: regInfo{
17240			inputs: []inputInfo{
17241				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17242				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17243			},
17244		},
17245	},
17246	{
17247		name:           "MOVWstore",
17248		auxType:        auxSymOff,
17249		argLen:         3,
17250		faultOnNilArg0: true,
17251		symEffect:      SymWrite,
17252		asm:            ppc64.AMOVW,
17253		reg: regInfo{
17254			inputs: []inputInfo{
17255				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17256				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17257			},
17258		},
17259	},
17260	{
17261		name:           "MOVDstore",
17262		auxType:        auxSymOff,
17263		argLen:         3,
17264		faultOnNilArg0: true,
17265		symEffect:      SymWrite,
17266		asm:            ppc64.AMOVD,
17267		reg: regInfo{
17268			inputs: []inputInfo{
17269				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17270				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17271			},
17272		},
17273	},
17274	{
17275		name:           "FMOVDstore",
17276		auxType:        auxSymOff,
17277		argLen:         3,
17278		faultOnNilArg0: true,
17279		symEffect:      SymWrite,
17280		asm:            ppc64.AFMOVD,
17281		reg: regInfo{
17282			inputs: []inputInfo{
17283				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17284				{0, 1073733630},         // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17285			},
17286		},
17287	},
17288	{
17289		name:           "FMOVSstore",
17290		auxType:        auxSymOff,
17291		argLen:         3,
17292		faultOnNilArg0: true,
17293		symEffect:      SymWrite,
17294		asm:            ppc64.AFMOVS,
17295		reg: regInfo{
17296			inputs: []inputInfo{
17297				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17298				{0, 1073733630},         // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17299			},
17300		},
17301	},
17302	{
17303		name:           "MOVBstorezero",
17304		auxType:        auxSymOff,
17305		argLen:         2,
17306		faultOnNilArg0: true,
17307		symEffect:      SymWrite,
17308		asm:            ppc64.AMOVB,
17309		reg: regInfo{
17310			inputs: []inputInfo{
17311				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17312			},
17313		},
17314	},
17315	{
17316		name:           "MOVHstorezero",
17317		auxType:        auxSymOff,
17318		argLen:         2,
17319		faultOnNilArg0: true,
17320		symEffect:      SymWrite,
17321		asm:            ppc64.AMOVH,
17322		reg: regInfo{
17323			inputs: []inputInfo{
17324				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17325			},
17326		},
17327	},
17328	{
17329		name:           "MOVWstorezero",
17330		auxType:        auxSymOff,
17331		argLen:         2,
17332		faultOnNilArg0: true,
17333		symEffect:      SymWrite,
17334		asm:            ppc64.AMOVW,
17335		reg: regInfo{
17336			inputs: []inputInfo{
17337				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17338			},
17339		},
17340	},
17341	{
17342		name:           "MOVDstorezero",
17343		auxType:        auxSymOff,
17344		argLen:         2,
17345		faultOnNilArg0: true,
17346		symEffect:      SymWrite,
17347		asm:            ppc64.AMOVD,
17348		reg: regInfo{
17349			inputs: []inputInfo{
17350				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17351			},
17352		},
17353	},
17354	{
17355		name:              "MOVDaddr",
17356		auxType:           auxSymOff,
17357		argLen:            1,
17358		rematerializeable: true,
17359		symEffect:         SymAddr,
17360		asm:               ppc64.AMOVD,
17361		reg: regInfo{
17362			inputs: []inputInfo{
17363				{0, 6}, // SP SB
17364			},
17365			outputs: []outputInfo{
17366				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17367			},
17368		},
17369	},
17370	{
17371		name:              "MOVDconst",
17372		auxType:           auxInt64,
17373		argLen:            0,
17374		rematerializeable: true,
17375		asm:               ppc64.AMOVD,
17376		reg: regInfo{
17377			outputs: []outputInfo{
17378				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17379			},
17380		},
17381	},
17382	{
17383		name:              "FMOVDconst",
17384		auxType:           auxFloat64,
17385		argLen:            0,
17386		rematerializeable: true,
17387		asm:               ppc64.AFMOVD,
17388		reg: regInfo{
17389			outputs: []outputInfo{
17390				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17391			},
17392		},
17393	},
17394	{
17395		name:              "FMOVSconst",
17396		auxType:           auxFloat32,
17397		argLen:            0,
17398		rematerializeable: true,
17399		asm:               ppc64.AFMOVS,
17400		reg: regInfo{
17401			outputs: []outputInfo{
17402				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17403			},
17404		},
17405	},
17406	{
17407		name:   "FCMPU",
17408		argLen: 2,
17409		asm:    ppc64.AFCMPU,
17410		reg: regInfo{
17411			inputs: []inputInfo{
17412				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17413				{1, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17414			},
17415		},
17416	},
17417	{
17418		name:   "CMP",
17419		argLen: 2,
17420		asm:    ppc64.ACMP,
17421		reg: regInfo{
17422			inputs: []inputInfo{
17423				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17424				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17425			},
17426		},
17427	},
17428	{
17429		name:   "CMPU",
17430		argLen: 2,
17431		asm:    ppc64.ACMPU,
17432		reg: regInfo{
17433			inputs: []inputInfo{
17434				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17435				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17436			},
17437		},
17438	},
17439	{
17440		name:   "CMPW",
17441		argLen: 2,
17442		asm:    ppc64.ACMPW,
17443		reg: regInfo{
17444			inputs: []inputInfo{
17445				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17446				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17447			},
17448		},
17449	},
17450	{
17451		name:   "CMPWU",
17452		argLen: 2,
17453		asm:    ppc64.ACMPWU,
17454		reg: regInfo{
17455			inputs: []inputInfo{
17456				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17457				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17458			},
17459		},
17460	},
17461	{
17462		name:    "CMPconst",
17463		auxType: auxInt64,
17464		argLen:  1,
17465		asm:     ppc64.ACMP,
17466		reg: regInfo{
17467			inputs: []inputInfo{
17468				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17469			},
17470		},
17471	},
17472	{
17473		name:    "CMPUconst",
17474		auxType: auxInt64,
17475		argLen:  1,
17476		asm:     ppc64.ACMPU,
17477		reg: regInfo{
17478			inputs: []inputInfo{
17479				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17480			},
17481		},
17482	},
17483	{
17484		name:    "CMPWconst",
17485		auxType: auxInt32,
17486		argLen:  1,
17487		asm:     ppc64.ACMPW,
17488		reg: regInfo{
17489			inputs: []inputInfo{
17490				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17491			},
17492		},
17493	},
17494	{
17495		name:    "CMPWUconst",
17496		auxType: auxInt32,
17497		argLen:  1,
17498		asm:     ppc64.ACMPWU,
17499		reg: regInfo{
17500			inputs: []inputInfo{
17501				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17502			},
17503		},
17504	},
17505	{
17506		name:   "Equal",
17507		argLen: 1,
17508		reg: regInfo{
17509			outputs: []outputInfo{
17510				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17511			},
17512		},
17513	},
17514	{
17515		name:   "NotEqual",
17516		argLen: 1,
17517		reg: regInfo{
17518			outputs: []outputInfo{
17519				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17520			},
17521		},
17522	},
17523	{
17524		name:   "LessThan",
17525		argLen: 1,
17526		reg: regInfo{
17527			outputs: []outputInfo{
17528				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17529			},
17530		},
17531	},
17532	{
17533		name:   "FLessThan",
17534		argLen: 1,
17535		reg: regInfo{
17536			outputs: []outputInfo{
17537				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17538			},
17539		},
17540	},
17541	{
17542		name:   "LessEqual",
17543		argLen: 1,
17544		reg: regInfo{
17545			outputs: []outputInfo{
17546				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17547			},
17548		},
17549	},
17550	{
17551		name:   "FLessEqual",
17552		argLen: 1,
17553		reg: regInfo{
17554			outputs: []outputInfo{
17555				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17556			},
17557		},
17558	},
17559	{
17560		name:   "GreaterThan",
17561		argLen: 1,
17562		reg: regInfo{
17563			outputs: []outputInfo{
17564				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17565			},
17566		},
17567	},
17568	{
17569		name:   "FGreaterThan",
17570		argLen: 1,
17571		reg: regInfo{
17572			outputs: []outputInfo{
17573				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17574			},
17575		},
17576	},
17577	{
17578		name:   "GreaterEqual",
17579		argLen: 1,
17580		reg: regInfo{
17581			outputs: []outputInfo{
17582				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17583			},
17584		},
17585	},
17586	{
17587		name:   "FGreaterEqual",
17588		argLen: 1,
17589		reg: regInfo{
17590			outputs: []outputInfo{
17591				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17592			},
17593		},
17594	},
17595	{
17596		name:   "LoweredGetClosurePtr",
17597		argLen: 0,
17598		reg: regInfo{
17599			outputs: []outputInfo{
17600				{0, 2048}, // R11
17601			},
17602		},
17603	},
17604	{
17605		name:           "LoweredNilCheck",
17606		argLen:         2,
17607		clobberFlags:   true,
17608		nilCheck:       true,
17609		faultOnNilArg0: true,
17610		reg: regInfo{
17611			inputs: []inputInfo{
17612				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17613			},
17614			clobbers: 2147483648, // R31
17615		},
17616	},
17617	{
17618		name:         "LoweredRound32F",
17619		argLen:       1,
17620		resultInArg0: true,
17621		reg: regInfo{
17622			inputs: []inputInfo{
17623				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17624			},
17625			outputs: []outputInfo{
17626				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17627			},
17628		},
17629	},
17630	{
17631		name:         "LoweredRound64F",
17632		argLen:       1,
17633		resultInArg0: true,
17634		reg: regInfo{
17635			inputs: []inputInfo{
17636				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17637			},
17638			outputs: []outputInfo{
17639				{0, 576460743713488896}, // F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17640			},
17641		},
17642	},
17643	{
17644		name:   "MOVDconvert",
17645		argLen: 2,
17646		asm:    ppc64.AMOVD,
17647		reg: regInfo{
17648			inputs: []inputInfo{
17649				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17650			},
17651			outputs: []outputInfo{
17652				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17653			},
17654		},
17655	},
17656	{
17657		name:         "CALLstatic",
17658		auxType:      auxSymOff,
17659		argLen:       1,
17660		clobberFlags: true,
17661		call:         true,
17662		symEffect:    SymNone,
17663		reg: regInfo{
17664			clobbers: 576460745860964344, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17665		},
17666	},
17667	{
17668		name:         "CALLclosure",
17669		auxType:      auxInt64,
17670		argLen:       3,
17671		clobberFlags: true,
17672		call:         true,
17673		reg: regInfo{
17674			inputs: []inputInfo{
17675				{1, 2048},       // R11
17676				{0, 1073733626}, // SP R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17677			},
17678			clobbers: 576460745860964344, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17679		},
17680	},
17681	{
17682		name:         "CALLinter",
17683		auxType:      auxInt64,
17684		argLen:       2,
17685		clobberFlags: true,
17686		call:         true,
17687		reg: regInfo{
17688			inputs: []inputInfo{
17689				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17690			},
17691			clobbers: 576460745860964344, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26
17692		},
17693	},
17694	{
17695		name:           "LoweredZero",
17696		auxType:        auxInt64,
17697		argLen:         2,
17698		clobberFlags:   true,
17699		faultOnNilArg0: true,
17700		reg: regInfo{
17701			inputs: []inputInfo{
17702				{0, 8}, // R3
17703			},
17704			clobbers: 8, // R3
17705		},
17706	},
17707	{
17708		name:           "LoweredMove",
17709		auxType:        auxInt64,
17710		argLen:         3,
17711		clobberFlags:   true,
17712		faultOnNilArg0: true,
17713		faultOnNilArg1: true,
17714		reg: regInfo{
17715			inputs: []inputInfo{
17716				{0, 8},  // R3
17717				{1, 16}, // R4
17718			},
17719			clobbers: 1944, // R3 R4 R7 R8 R9 R10
17720		},
17721	},
17722	{
17723		name:           "LoweredAtomicStore32",
17724		argLen:         3,
17725		faultOnNilArg0: true,
17726		hasSideEffects: true,
17727		reg: regInfo{
17728			inputs: []inputInfo{
17729				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17730				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17731			},
17732		},
17733	},
17734	{
17735		name:           "LoweredAtomicStore64",
17736		argLen:         3,
17737		faultOnNilArg0: true,
17738		hasSideEffects: true,
17739		reg: regInfo{
17740			inputs: []inputInfo{
17741				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17742				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17743			},
17744		},
17745	},
17746	{
17747		name:           "LoweredAtomicLoad32",
17748		argLen:         2,
17749		clobberFlags:   true,
17750		faultOnNilArg0: true,
17751		reg: regInfo{
17752			inputs: []inputInfo{
17753				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17754			},
17755			outputs: []outputInfo{
17756				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17757			},
17758		},
17759	},
17760	{
17761		name:           "LoweredAtomicLoad64",
17762		argLen:         2,
17763		clobberFlags:   true,
17764		faultOnNilArg0: true,
17765		reg: regInfo{
17766			inputs: []inputInfo{
17767				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17768			},
17769			outputs: []outputInfo{
17770				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17771			},
17772		},
17773	},
17774	{
17775		name:           "LoweredAtomicLoadPtr",
17776		argLen:         2,
17777		clobberFlags:   true,
17778		faultOnNilArg0: true,
17779		reg: regInfo{
17780			inputs: []inputInfo{
17781				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17782			},
17783			outputs: []outputInfo{
17784				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17785			},
17786		},
17787	},
17788	{
17789		name:            "LoweredAtomicAdd32",
17790		argLen:          3,
17791		resultNotInArgs: true,
17792		clobberFlags:    true,
17793		faultOnNilArg0:  true,
17794		hasSideEffects:  true,
17795		reg: regInfo{
17796			inputs: []inputInfo{
17797				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17798				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17799			},
17800			outputs: []outputInfo{
17801				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17802			},
17803		},
17804	},
17805	{
17806		name:            "LoweredAtomicAdd64",
17807		argLen:          3,
17808		resultNotInArgs: true,
17809		clobberFlags:    true,
17810		faultOnNilArg0:  true,
17811		hasSideEffects:  true,
17812		reg: regInfo{
17813			inputs: []inputInfo{
17814				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17815				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17816			},
17817			outputs: []outputInfo{
17818				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17819			},
17820		},
17821	},
17822	{
17823		name:            "LoweredAtomicExchange32",
17824		argLen:          3,
17825		resultNotInArgs: true,
17826		clobberFlags:    true,
17827		faultOnNilArg0:  true,
17828		hasSideEffects:  true,
17829		reg: regInfo{
17830			inputs: []inputInfo{
17831				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17832				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17833			},
17834			outputs: []outputInfo{
17835				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17836			},
17837		},
17838	},
17839	{
17840		name:            "LoweredAtomicExchange64",
17841		argLen:          3,
17842		resultNotInArgs: true,
17843		clobberFlags:    true,
17844		faultOnNilArg0:  true,
17845		hasSideEffects:  true,
17846		reg: regInfo{
17847			inputs: []inputInfo{
17848				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17849				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17850			},
17851			outputs: []outputInfo{
17852				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17853			},
17854		},
17855	},
17856	{
17857		name:            "LoweredAtomicCas64",
17858		argLen:          4,
17859		resultNotInArgs: true,
17860		clobberFlags:    true,
17861		faultOnNilArg0:  true,
17862		hasSideEffects:  true,
17863		reg: regInfo{
17864			inputs: []inputInfo{
17865				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17866				{2, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17867				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17868			},
17869			outputs: []outputInfo{
17870				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17871			},
17872		},
17873	},
17874	{
17875		name:            "LoweredAtomicCas32",
17876		argLen:          4,
17877		resultNotInArgs: true,
17878		clobberFlags:    true,
17879		faultOnNilArg0:  true,
17880		hasSideEffects:  true,
17881		reg: regInfo{
17882			inputs: []inputInfo{
17883				{1, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17884				{2, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17885				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17886			},
17887			outputs: []outputInfo{
17888				{0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17889			},
17890		},
17891	},
17892	{
17893		name:           "LoweredAtomicAnd8",
17894		argLen:         3,
17895		faultOnNilArg0: true,
17896		hasSideEffects: true,
17897		asm:            ppc64.AAND,
17898		reg: regInfo{
17899			inputs: []inputInfo{
17900				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17901				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17902			},
17903		},
17904	},
17905	{
17906		name:           "LoweredAtomicOr8",
17907		argLen:         3,
17908		faultOnNilArg0: true,
17909		hasSideEffects: true,
17910		asm:            ppc64.AOR,
17911		reg: regInfo{
17912			inputs: []inputInfo{
17913				{0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17914				{1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29
17915			},
17916		},
17917	},
17918	{
17919		name:   "InvertFlags",
17920		argLen: 1,
17921		reg:    regInfo{},
17922	},
17923	{
17924		name:   "FlagEQ",
17925		argLen: 0,
17926		reg:    regInfo{},
17927	},
17928	{
17929		name:   "FlagLT",
17930		argLen: 0,
17931		reg:    regInfo{},
17932	},
17933	{
17934		name:   "FlagGT",
17935		argLen: 0,
17936		reg:    regInfo{},
17937	},
17938
17939	{
17940		name:         "FADDS",
17941		argLen:       2,
17942		commutative:  true,
17943		resultInArg0: true,
17944		clobberFlags: true,
17945		asm:          s390x.AFADDS,
17946		reg: regInfo{
17947			inputs: []inputInfo{
17948				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17949				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17950			},
17951			outputs: []outputInfo{
17952				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17953			},
17954		},
17955	},
17956	{
17957		name:         "FADD",
17958		argLen:       2,
17959		commutative:  true,
17960		resultInArg0: true,
17961		clobberFlags: true,
17962		asm:          s390x.AFADD,
17963		reg: regInfo{
17964			inputs: []inputInfo{
17965				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17966				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17967			},
17968			outputs: []outputInfo{
17969				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17970			},
17971		},
17972	},
17973	{
17974		name:         "FSUBS",
17975		argLen:       2,
17976		resultInArg0: true,
17977		clobberFlags: true,
17978		asm:          s390x.AFSUBS,
17979		reg: regInfo{
17980			inputs: []inputInfo{
17981				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17982				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17983			},
17984			outputs: []outputInfo{
17985				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17986			},
17987		},
17988	},
17989	{
17990		name:         "FSUB",
17991		argLen:       2,
17992		resultInArg0: true,
17993		clobberFlags: true,
17994		asm:          s390x.AFSUB,
17995		reg: regInfo{
17996			inputs: []inputInfo{
17997				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17998				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
17999			},
18000			outputs: []outputInfo{
18001				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18002			},
18003		},
18004	},
18005	{
18006		name:         "FMULS",
18007		argLen:       2,
18008		commutative:  true,
18009		resultInArg0: true,
18010		asm:          s390x.AFMULS,
18011		reg: regInfo{
18012			inputs: []inputInfo{
18013				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18014				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18015			},
18016			outputs: []outputInfo{
18017				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18018			},
18019		},
18020	},
18021	{
18022		name:         "FMUL",
18023		argLen:       2,
18024		commutative:  true,
18025		resultInArg0: true,
18026		asm:          s390x.AFMUL,
18027		reg: regInfo{
18028			inputs: []inputInfo{
18029				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18030				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18031			},
18032			outputs: []outputInfo{
18033				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18034			},
18035		},
18036	},
18037	{
18038		name:         "FDIVS",
18039		argLen:       2,
18040		resultInArg0: true,
18041		asm:          s390x.AFDIVS,
18042		reg: regInfo{
18043			inputs: []inputInfo{
18044				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18045				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18046			},
18047			outputs: []outputInfo{
18048				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18049			},
18050		},
18051	},
18052	{
18053		name:         "FDIV",
18054		argLen:       2,
18055		resultInArg0: true,
18056		asm:          s390x.AFDIV,
18057		reg: regInfo{
18058			inputs: []inputInfo{
18059				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18060				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18061			},
18062			outputs: []outputInfo{
18063				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18064			},
18065		},
18066	},
18067	{
18068		name:         "FNEGS",
18069		argLen:       1,
18070		clobberFlags: true,
18071		asm:          s390x.AFNEGS,
18072		reg: regInfo{
18073			inputs: []inputInfo{
18074				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18075			},
18076			outputs: []outputInfo{
18077				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18078			},
18079		},
18080	},
18081	{
18082		name:         "FNEG",
18083		argLen:       1,
18084		clobberFlags: true,
18085		asm:          s390x.AFNEG,
18086		reg: regInfo{
18087			inputs: []inputInfo{
18088				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18089			},
18090			outputs: []outputInfo{
18091				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18092			},
18093		},
18094	},
18095	{
18096		name:         "FMADDS",
18097		argLen:       3,
18098		resultInArg0: true,
18099		asm:          s390x.AFMADDS,
18100		reg: regInfo{
18101			inputs: []inputInfo{
18102				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18103				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18104				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18105			},
18106			outputs: []outputInfo{
18107				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18108			},
18109		},
18110	},
18111	{
18112		name:         "FMADD",
18113		argLen:       3,
18114		resultInArg0: true,
18115		asm:          s390x.AFMADD,
18116		reg: regInfo{
18117			inputs: []inputInfo{
18118				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18119				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18120				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18121			},
18122			outputs: []outputInfo{
18123				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18124			},
18125		},
18126	},
18127	{
18128		name:         "FMSUBS",
18129		argLen:       3,
18130		resultInArg0: true,
18131		asm:          s390x.AFMSUBS,
18132		reg: regInfo{
18133			inputs: []inputInfo{
18134				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18135				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18136				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18137			},
18138			outputs: []outputInfo{
18139				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18140			},
18141		},
18142	},
18143	{
18144		name:         "FMSUB",
18145		argLen:       3,
18146		resultInArg0: true,
18147		asm:          s390x.AFMSUB,
18148		reg: regInfo{
18149			inputs: []inputInfo{
18150				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18151				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18152				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18153			},
18154			outputs: []outputInfo{
18155				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18156			},
18157		},
18158	},
18159	{
18160		name:           "FMOVSload",
18161		auxType:        auxSymOff,
18162		argLen:         2,
18163		faultOnNilArg0: true,
18164		symEffect:      SymRead,
18165		asm:            s390x.AFMOVS,
18166		reg: regInfo{
18167			inputs: []inputInfo{
18168				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
18169			},
18170			outputs: []outputInfo{
18171				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18172			},
18173		},
18174	},
18175	{
18176		name:           "FMOVDload",
18177		auxType:        auxSymOff,
18178		argLen:         2,
18179		faultOnNilArg0: true,
18180		symEffect:      SymRead,
18181		asm:            s390x.AFMOVD,
18182		reg: regInfo{
18183			inputs: []inputInfo{
18184				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
18185			},
18186			outputs: []outputInfo{
18187				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18188			},
18189		},
18190	},
18191	{
18192		name:              "FMOVSconst",
18193		auxType:           auxFloat32,
18194		argLen:            0,
18195		rematerializeable: true,
18196		asm:               s390x.AFMOVS,
18197		reg: regInfo{
18198			outputs: []outputInfo{
18199				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18200			},
18201		},
18202	},
18203	{
18204		name:              "FMOVDconst",
18205		auxType:           auxFloat64,
18206		argLen:            0,
18207		rematerializeable: true,
18208		asm:               s390x.AFMOVD,
18209		reg: regInfo{
18210			outputs: []outputInfo{
18211				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18212			},
18213		},
18214	},
18215	{
18216		name:      "FMOVSloadidx",
18217		auxType:   auxSymOff,
18218		argLen:    3,
18219		symEffect: SymRead,
18220		asm:       s390x.AFMOVS,
18221		reg: regInfo{
18222			inputs: []inputInfo{
18223				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18224				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18225			},
18226			outputs: []outputInfo{
18227				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18228			},
18229		},
18230	},
18231	{
18232		name:      "FMOVDloadidx",
18233		auxType:   auxSymOff,
18234		argLen:    3,
18235		symEffect: SymRead,
18236		asm:       s390x.AFMOVD,
18237		reg: regInfo{
18238			inputs: []inputInfo{
18239				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18240				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18241			},
18242			outputs: []outputInfo{
18243				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18244			},
18245		},
18246	},
18247	{
18248		name:           "FMOVSstore",
18249		auxType:        auxSymOff,
18250		argLen:         3,
18251		faultOnNilArg0: true,
18252		symEffect:      SymWrite,
18253		asm:            s390x.AFMOVS,
18254		reg: regInfo{
18255			inputs: []inputInfo{
18256				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
18257				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18258			},
18259		},
18260	},
18261	{
18262		name:           "FMOVDstore",
18263		auxType:        auxSymOff,
18264		argLen:         3,
18265		faultOnNilArg0: true,
18266		symEffect:      SymWrite,
18267		asm:            s390x.AFMOVD,
18268		reg: regInfo{
18269			inputs: []inputInfo{
18270				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
18271				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18272			},
18273		},
18274	},
18275	{
18276		name:      "FMOVSstoreidx",
18277		auxType:   auxSymOff,
18278		argLen:    4,
18279		symEffect: SymWrite,
18280		asm:       s390x.AFMOVS,
18281		reg: regInfo{
18282			inputs: []inputInfo{
18283				{0, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18284				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18285				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18286			},
18287		},
18288	},
18289	{
18290		name:      "FMOVDstoreidx",
18291		auxType:   auxSymOff,
18292		argLen:    4,
18293		symEffect: SymWrite,
18294		asm:       s390x.AFMOVD,
18295		reg: regInfo{
18296			inputs: []inputInfo{
18297				{0, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18298				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18299				{2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
18300			},
18301		},
18302	},
18303	{
18304		name:         "ADD",
18305		argLen:       2,
18306		commutative:  true,
18307		clobberFlags: true,
18308		asm:          s390x.AADD,
18309		reg: regInfo{
18310			inputs: []inputInfo{
18311				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18312				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18313			},
18314			outputs: []outputInfo{
18315				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18316			},
18317		},
18318	},
18319	{
18320		name:         "ADDW",
18321		argLen:       2,
18322		commutative:  true,
18323		clobberFlags: true,
18324		asm:          s390x.AADDW,
18325		reg: regInfo{
18326			inputs: []inputInfo{
18327				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18328				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18329			},
18330			outputs: []outputInfo{
18331				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18332			},
18333		},
18334	},
18335	{
18336		name:         "ADDconst",
18337		auxType:      auxInt64,
18338		argLen:       1,
18339		clobberFlags: true,
18340		asm:          s390x.AADD,
18341		reg: regInfo{
18342			inputs: []inputInfo{
18343				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18344			},
18345			outputs: []outputInfo{
18346				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18347			},
18348		},
18349	},
18350	{
18351		name:         "ADDWconst",
18352		auxType:      auxInt32,
18353		argLen:       1,
18354		clobberFlags: true,
18355		asm:          s390x.AADDW,
18356		reg: regInfo{
18357			inputs: []inputInfo{
18358				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18359			},
18360			outputs: []outputInfo{
18361				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18362			},
18363		},
18364	},
18365	{
18366		name:           "ADDload",
18367		auxType:        auxSymOff,
18368		argLen:         3,
18369		resultInArg0:   true,
18370		clobberFlags:   true,
18371		faultOnNilArg1: true,
18372		symEffect:      SymRead,
18373		asm:            s390x.AADD,
18374		reg: regInfo{
18375			inputs: []inputInfo{
18376				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18377				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18378			},
18379			outputs: []outputInfo{
18380				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18381			},
18382		},
18383	},
18384	{
18385		name:           "ADDWload",
18386		auxType:        auxSymOff,
18387		argLen:         3,
18388		resultInArg0:   true,
18389		clobberFlags:   true,
18390		faultOnNilArg1: true,
18391		symEffect:      SymRead,
18392		asm:            s390x.AADDW,
18393		reg: regInfo{
18394			inputs: []inputInfo{
18395				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18396				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18397			},
18398			outputs: []outputInfo{
18399				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18400			},
18401		},
18402	},
18403	{
18404		name:         "SUB",
18405		argLen:       2,
18406		clobberFlags: true,
18407		asm:          s390x.ASUB,
18408		reg: regInfo{
18409			inputs: []inputInfo{
18410				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18411				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18412			},
18413			outputs: []outputInfo{
18414				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18415			},
18416		},
18417	},
18418	{
18419		name:         "SUBW",
18420		argLen:       2,
18421		clobberFlags: true,
18422		asm:          s390x.ASUBW,
18423		reg: regInfo{
18424			inputs: []inputInfo{
18425				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18426				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18427			},
18428			outputs: []outputInfo{
18429				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18430			},
18431		},
18432	},
18433	{
18434		name:         "SUBconst",
18435		auxType:      auxInt64,
18436		argLen:       1,
18437		resultInArg0: true,
18438		clobberFlags: true,
18439		asm:          s390x.ASUB,
18440		reg: regInfo{
18441			inputs: []inputInfo{
18442				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18443			},
18444			outputs: []outputInfo{
18445				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18446			},
18447		},
18448	},
18449	{
18450		name:         "SUBWconst",
18451		auxType:      auxInt32,
18452		argLen:       1,
18453		resultInArg0: true,
18454		clobberFlags: true,
18455		asm:          s390x.ASUBW,
18456		reg: regInfo{
18457			inputs: []inputInfo{
18458				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18459			},
18460			outputs: []outputInfo{
18461				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18462			},
18463		},
18464	},
18465	{
18466		name:           "SUBload",
18467		auxType:        auxSymOff,
18468		argLen:         3,
18469		resultInArg0:   true,
18470		clobberFlags:   true,
18471		faultOnNilArg1: true,
18472		symEffect:      SymRead,
18473		asm:            s390x.ASUB,
18474		reg: regInfo{
18475			inputs: []inputInfo{
18476				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18477				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18478			},
18479			outputs: []outputInfo{
18480				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18481			},
18482		},
18483	},
18484	{
18485		name:           "SUBWload",
18486		auxType:        auxSymOff,
18487		argLen:         3,
18488		resultInArg0:   true,
18489		clobberFlags:   true,
18490		faultOnNilArg1: true,
18491		symEffect:      SymRead,
18492		asm:            s390x.ASUBW,
18493		reg: regInfo{
18494			inputs: []inputInfo{
18495				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18496				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18497			},
18498			outputs: []outputInfo{
18499				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18500			},
18501		},
18502	},
18503	{
18504		name:         "MULLD",
18505		argLen:       2,
18506		commutative:  true,
18507		resultInArg0: true,
18508		clobberFlags: true,
18509		asm:          s390x.AMULLD,
18510		reg: regInfo{
18511			inputs: []inputInfo{
18512				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18513				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18514			},
18515			outputs: []outputInfo{
18516				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18517			},
18518		},
18519	},
18520	{
18521		name:         "MULLW",
18522		argLen:       2,
18523		commutative:  true,
18524		resultInArg0: true,
18525		clobberFlags: true,
18526		asm:          s390x.AMULLW,
18527		reg: regInfo{
18528			inputs: []inputInfo{
18529				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18530				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18531			},
18532			outputs: []outputInfo{
18533				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18534			},
18535		},
18536	},
18537	{
18538		name:         "MULLDconst",
18539		auxType:      auxInt64,
18540		argLen:       1,
18541		resultInArg0: true,
18542		clobberFlags: true,
18543		asm:          s390x.AMULLD,
18544		reg: regInfo{
18545			inputs: []inputInfo{
18546				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18547			},
18548			outputs: []outputInfo{
18549				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18550			},
18551		},
18552	},
18553	{
18554		name:         "MULLWconst",
18555		auxType:      auxInt32,
18556		argLen:       1,
18557		resultInArg0: true,
18558		clobberFlags: true,
18559		asm:          s390x.AMULLW,
18560		reg: regInfo{
18561			inputs: []inputInfo{
18562				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18563			},
18564			outputs: []outputInfo{
18565				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18566			},
18567		},
18568	},
18569	{
18570		name:           "MULLDload",
18571		auxType:        auxSymOff,
18572		argLen:         3,
18573		resultInArg0:   true,
18574		clobberFlags:   true,
18575		faultOnNilArg1: true,
18576		symEffect:      SymRead,
18577		asm:            s390x.AMULLD,
18578		reg: regInfo{
18579			inputs: []inputInfo{
18580				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18581				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18582			},
18583			outputs: []outputInfo{
18584				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18585			},
18586		},
18587	},
18588	{
18589		name:           "MULLWload",
18590		auxType:        auxSymOff,
18591		argLen:         3,
18592		resultInArg0:   true,
18593		clobberFlags:   true,
18594		faultOnNilArg1: true,
18595		symEffect:      SymRead,
18596		asm:            s390x.AMULLW,
18597		reg: regInfo{
18598			inputs: []inputInfo{
18599				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18600				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18601			},
18602			outputs: []outputInfo{
18603				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18604			},
18605		},
18606	},
18607	{
18608		name:         "MULHD",
18609		argLen:       2,
18610		commutative:  true,
18611		resultInArg0: true,
18612		clobberFlags: true,
18613		asm:          s390x.AMULHD,
18614		reg: regInfo{
18615			inputs: []inputInfo{
18616				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18617				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18618			},
18619			outputs: []outputInfo{
18620				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18621			},
18622		},
18623	},
18624	{
18625		name:         "MULHDU",
18626		argLen:       2,
18627		commutative:  true,
18628		resultInArg0: true,
18629		clobberFlags: true,
18630		asm:          s390x.AMULHDU,
18631		reg: regInfo{
18632			inputs: []inputInfo{
18633				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18634				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18635			},
18636			outputs: []outputInfo{
18637				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18638			},
18639		},
18640	},
18641	{
18642		name:         "DIVD",
18643		argLen:       2,
18644		resultInArg0: true,
18645		clobberFlags: true,
18646		asm:          s390x.ADIVD,
18647		reg: regInfo{
18648			inputs: []inputInfo{
18649				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18650				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18651			},
18652			outputs: []outputInfo{
18653				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18654			},
18655		},
18656	},
18657	{
18658		name:         "DIVW",
18659		argLen:       2,
18660		resultInArg0: true,
18661		clobberFlags: true,
18662		asm:          s390x.ADIVW,
18663		reg: regInfo{
18664			inputs: []inputInfo{
18665				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18666				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18667			},
18668			outputs: []outputInfo{
18669				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18670			},
18671		},
18672	},
18673	{
18674		name:         "DIVDU",
18675		argLen:       2,
18676		resultInArg0: true,
18677		clobberFlags: true,
18678		asm:          s390x.ADIVDU,
18679		reg: regInfo{
18680			inputs: []inputInfo{
18681				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18682				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18683			},
18684			outputs: []outputInfo{
18685				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18686			},
18687		},
18688	},
18689	{
18690		name:         "DIVWU",
18691		argLen:       2,
18692		resultInArg0: true,
18693		clobberFlags: true,
18694		asm:          s390x.ADIVWU,
18695		reg: regInfo{
18696			inputs: []inputInfo{
18697				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18698				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18699			},
18700			outputs: []outputInfo{
18701				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18702			},
18703		},
18704	},
18705	{
18706		name:         "MODD",
18707		argLen:       2,
18708		resultInArg0: true,
18709		clobberFlags: true,
18710		asm:          s390x.AMODD,
18711		reg: regInfo{
18712			inputs: []inputInfo{
18713				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18714				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18715			},
18716			outputs: []outputInfo{
18717				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18718			},
18719		},
18720	},
18721	{
18722		name:         "MODW",
18723		argLen:       2,
18724		resultInArg0: true,
18725		clobberFlags: true,
18726		asm:          s390x.AMODW,
18727		reg: regInfo{
18728			inputs: []inputInfo{
18729				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18730				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18731			},
18732			outputs: []outputInfo{
18733				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18734			},
18735		},
18736	},
18737	{
18738		name:         "MODDU",
18739		argLen:       2,
18740		resultInArg0: true,
18741		clobberFlags: true,
18742		asm:          s390x.AMODDU,
18743		reg: regInfo{
18744			inputs: []inputInfo{
18745				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18746				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18747			},
18748			outputs: []outputInfo{
18749				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18750			},
18751		},
18752	},
18753	{
18754		name:         "MODWU",
18755		argLen:       2,
18756		resultInArg0: true,
18757		clobberFlags: true,
18758		asm:          s390x.AMODWU,
18759		reg: regInfo{
18760			inputs: []inputInfo{
18761				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18762				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18763			},
18764			outputs: []outputInfo{
18765				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18766			},
18767		},
18768	},
18769	{
18770		name:         "AND",
18771		argLen:       2,
18772		commutative:  true,
18773		clobberFlags: true,
18774		asm:          s390x.AAND,
18775		reg: regInfo{
18776			inputs: []inputInfo{
18777				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18778				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18779			},
18780			outputs: []outputInfo{
18781				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18782			},
18783		},
18784	},
18785	{
18786		name:         "ANDW",
18787		argLen:       2,
18788		commutative:  true,
18789		clobberFlags: true,
18790		asm:          s390x.AANDW,
18791		reg: regInfo{
18792			inputs: []inputInfo{
18793				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18794				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18795			},
18796			outputs: []outputInfo{
18797				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18798			},
18799		},
18800	},
18801	{
18802		name:         "ANDconst",
18803		auxType:      auxInt64,
18804		argLen:       1,
18805		resultInArg0: true,
18806		clobberFlags: true,
18807		asm:          s390x.AAND,
18808		reg: regInfo{
18809			inputs: []inputInfo{
18810				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18811			},
18812			outputs: []outputInfo{
18813				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18814			},
18815		},
18816	},
18817	{
18818		name:         "ANDWconst",
18819		auxType:      auxInt32,
18820		argLen:       1,
18821		resultInArg0: true,
18822		clobberFlags: true,
18823		asm:          s390x.AANDW,
18824		reg: regInfo{
18825			inputs: []inputInfo{
18826				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18827			},
18828			outputs: []outputInfo{
18829				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18830			},
18831		},
18832	},
18833	{
18834		name:           "ANDload",
18835		auxType:        auxSymOff,
18836		argLen:         3,
18837		resultInArg0:   true,
18838		clobberFlags:   true,
18839		faultOnNilArg1: true,
18840		symEffect:      SymRead,
18841		asm:            s390x.AAND,
18842		reg: regInfo{
18843			inputs: []inputInfo{
18844				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18845				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18846			},
18847			outputs: []outputInfo{
18848				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18849			},
18850		},
18851	},
18852	{
18853		name:           "ANDWload",
18854		auxType:        auxSymOff,
18855		argLen:         3,
18856		resultInArg0:   true,
18857		clobberFlags:   true,
18858		faultOnNilArg1: true,
18859		symEffect:      SymRead,
18860		asm:            s390x.AANDW,
18861		reg: regInfo{
18862			inputs: []inputInfo{
18863				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18864				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18865			},
18866			outputs: []outputInfo{
18867				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18868			},
18869		},
18870	},
18871	{
18872		name:         "OR",
18873		argLen:       2,
18874		commutative:  true,
18875		clobberFlags: true,
18876		asm:          s390x.AOR,
18877		reg: regInfo{
18878			inputs: []inputInfo{
18879				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18880				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18881			},
18882			outputs: []outputInfo{
18883				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18884			},
18885		},
18886	},
18887	{
18888		name:         "ORW",
18889		argLen:       2,
18890		commutative:  true,
18891		clobberFlags: true,
18892		asm:          s390x.AORW,
18893		reg: regInfo{
18894			inputs: []inputInfo{
18895				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18896				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18897			},
18898			outputs: []outputInfo{
18899				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18900			},
18901		},
18902	},
18903	{
18904		name:         "ORconst",
18905		auxType:      auxInt64,
18906		argLen:       1,
18907		resultInArg0: true,
18908		clobberFlags: true,
18909		asm:          s390x.AOR,
18910		reg: regInfo{
18911			inputs: []inputInfo{
18912				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18913			},
18914			outputs: []outputInfo{
18915				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18916			},
18917		},
18918	},
18919	{
18920		name:         "ORWconst",
18921		auxType:      auxInt32,
18922		argLen:       1,
18923		resultInArg0: true,
18924		clobberFlags: true,
18925		asm:          s390x.AORW,
18926		reg: regInfo{
18927			inputs: []inputInfo{
18928				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18929			},
18930			outputs: []outputInfo{
18931				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18932			},
18933		},
18934	},
18935	{
18936		name:           "ORload",
18937		auxType:        auxSymOff,
18938		argLen:         3,
18939		resultInArg0:   true,
18940		clobberFlags:   true,
18941		faultOnNilArg1: true,
18942		symEffect:      SymRead,
18943		asm:            s390x.AOR,
18944		reg: regInfo{
18945			inputs: []inputInfo{
18946				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18947				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18948			},
18949			outputs: []outputInfo{
18950				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18951			},
18952		},
18953	},
18954	{
18955		name:           "ORWload",
18956		auxType:        auxSymOff,
18957		argLen:         3,
18958		resultInArg0:   true,
18959		clobberFlags:   true,
18960		faultOnNilArg1: true,
18961		symEffect:      SymRead,
18962		asm:            s390x.AORW,
18963		reg: regInfo{
18964			inputs: []inputInfo{
18965				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18966				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
18967			},
18968			outputs: []outputInfo{
18969				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18970			},
18971		},
18972	},
18973	{
18974		name:         "XOR",
18975		argLen:       2,
18976		commutative:  true,
18977		clobberFlags: true,
18978		asm:          s390x.AXOR,
18979		reg: regInfo{
18980			inputs: []inputInfo{
18981				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18982				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18983			},
18984			outputs: []outputInfo{
18985				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18986			},
18987		},
18988	},
18989	{
18990		name:         "XORW",
18991		argLen:       2,
18992		commutative:  true,
18993		clobberFlags: true,
18994		asm:          s390x.AXORW,
18995		reg: regInfo{
18996			inputs: []inputInfo{
18997				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18998				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
18999			},
19000			outputs: []outputInfo{
19001				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19002			},
19003		},
19004	},
19005	{
19006		name:         "XORconst",
19007		auxType:      auxInt64,
19008		argLen:       1,
19009		resultInArg0: true,
19010		clobberFlags: true,
19011		asm:          s390x.AXOR,
19012		reg: regInfo{
19013			inputs: []inputInfo{
19014				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19015			},
19016			outputs: []outputInfo{
19017				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19018			},
19019		},
19020	},
19021	{
19022		name:         "XORWconst",
19023		auxType:      auxInt32,
19024		argLen:       1,
19025		resultInArg0: true,
19026		clobberFlags: true,
19027		asm:          s390x.AXORW,
19028		reg: regInfo{
19029			inputs: []inputInfo{
19030				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19031			},
19032			outputs: []outputInfo{
19033				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19034			},
19035		},
19036	},
19037	{
19038		name:           "XORload",
19039		auxType:        auxSymOff,
19040		argLen:         3,
19041		resultInArg0:   true,
19042		clobberFlags:   true,
19043		faultOnNilArg1: true,
19044		symEffect:      SymRead,
19045		asm:            s390x.AXOR,
19046		reg: regInfo{
19047			inputs: []inputInfo{
19048				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19049				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19050			},
19051			outputs: []outputInfo{
19052				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19053			},
19054		},
19055	},
19056	{
19057		name:           "XORWload",
19058		auxType:        auxSymOff,
19059		argLen:         3,
19060		resultInArg0:   true,
19061		clobberFlags:   true,
19062		faultOnNilArg1: true,
19063		symEffect:      SymRead,
19064		asm:            s390x.AXORW,
19065		reg: regInfo{
19066			inputs: []inputInfo{
19067				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19068				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19069			},
19070			outputs: []outputInfo{
19071				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19072			},
19073		},
19074	},
19075	{
19076		name:   "CMP",
19077		argLen: 2,
19078		asm:    s390x.ACMP,
19079		reg: regInfo{
19080			inputs: []inputInfo{
19081				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19082				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19083			},
19084		},
19085	},
19086	{
19087		name:   "CMPW",
19088		argLen: 2,
19089		asm:    s390x.ACMPW,
19090		reg: regInfo{
19091			inputs: []inputInfo{
19092				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19093				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19094			},
19095		},
19096	},
19097	{
19098		name:   "CMPU",
19099		argLen: 2,
19100		asm:    s390x.ACMPU,
19101		reg: regInfo{
19102			inputs: []inputInfo{
19103				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19104				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19105			},
19106		},
19107	},
19108	{
19109		name:   "CMPWU",
19110		argLen: 2,
19111		asm:    s390x.ACMPWU,
19112		reg: regInfo{
19113			inputs: []inputInfo{
19114				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19115				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19116			},
19117		},
19118	},
19119	{
19120		name:    "CMPconst",
19121		auxType: auxInt64,
19122		argLen:  1,
19123		asm:     s390x.ACMP,
19124		reg: regInfo{
19125			inputs: []inputInfo{
19126				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19127			},
19128		},
19129	},
19130	{
19131		name:    "CMPWconst",
19132		auxType: auxInt32,
19133		argLen:  1,
19134		asm:     s390x.ACMPW,
19135		reg: regInfo{
19136			inputs: []inputInfo{
19137				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19138			},
19139		},
19140	},
19141	{
19142		name:    "CMPUconst",
19143		auxType: auxInt64,
19144		argLen:  1,
19145		asm:     s390x.ACMPU,
19146		reg: regInfo{
19147			inputs: []inputInfo{
19148				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19149			},
19150		},
19151	},
19152	{
19153		name:    "CMPWUconst",
19154		auxType: auxInt32,
19155		argLen:  1,
19156		asm:     s390x.ACMPWU,
19157		reg: regInfo{
19158			inputs: []inputInfo{
19159				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19160			},
19161		},
19162	},
19163	{
19164		name:   "FCMPS",
19165		argLen: 2,
19166		asm:    s390x.ACEBR,
19167		reg: regInfo{
19168			inputs: []inputInfo{
19169				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19170				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19171			},
19172		},
19173	},
19174	{
19175		name:   "FCMP",
19176		argLen: 2,
19177		asm:    s390x.AFCMPU,
19178		reg: regInfo{
19179			inputs: []inputInfo{
19180				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19181				{1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19182			},
19183		},
19184	},
19185	{
19186		name:   "SLD",
19187		argLen: 2,
19188		asm:    s390x.ASLD,
19189		reg: regInfo{
19190			inputs: []inputInfo{
19191				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19192				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19193			},
19194			outputs: []outputInfo{
19195				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19196			},
19197		},
19198	},
19199	{
19200		name:   "SLW",
19201		argLen: 2,
19202		asm:    s390x.ASLW,
19203		reg: regInfo{
19204			inputs: []inputInfo{
19205				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19206				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19207			},
19208			outputs: []outputInfo{
19209				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19210			},
19211		},
19212	},
19213	{
19214		name:    "SLDconst",
19215		auxType: auxInt8,
19216		argLen:  1,
19217		asm:     s390x.ASLD,
19218		reg: regInfo{
19219			inputs: []inputInfo{
19220				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19221			},
19222			outputs: []outputInfo{
19223				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19224			},
19225		},
19226	},
19227	{
19228		name:    "SLWconst",
19229		auxType: auxInt8,
19230		argLen:  1,
19231		asm:     s390x.ASLW,
19232		reg: regInfo{
19233			inputs: []inputInfo{
19234				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19235			},
19236			outputs: []outputInfo{
19237				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19238			},
19239		},
19240	},
19241	{
19242		name:   "SRD",
19243		argLen: 2,
19244		asm:    s390x.ASRD,
19245		reg: regInfo{
19246			inputs: []inputInfo{
19247				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19248				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19249			},
19250			outputs: []outputInfo{
19251				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19252			},
19253		},
19254	},
19255	{
19256		name:   "SRW",
19257		argLen: 2,
19258		asm:    s390x.ASRW,
19259		reg: regInfo{
19260			inputs: []inputInfo{
19261				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19262				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19263			},
19264			outputs: []outputInfo{
19265				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19266			},
19267		},
19268	},
19269	{
19270		name:    "SRDconst",
19271		auxType: auxInt8,
19272		argLen:  1,
19273		asm:     s390x.ASRD,
19274		reg: regInfo{
19275			inputs: []inputInfo{
19276				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19277			},
19278			outputs: []outputInfo{
19279				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19280			},
19281		},
19282	},
19283	{
19284		name:    "SRWconst",
19285		auxType: auxInt8,
19286		argLen:  1,
19287		asm:     s390x.ASRW,
19288		reg: regInfo{
19289			inputs: []inputInfo{
19290				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19291			},
19292			outputs: []outputInfo{
19293				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19294			},
19295		},
19296	},
19297	{
19298		name:         "SRAD",
19299		argLen:       2,
19300		clobberFlags: true,
19301		asm:          s390x.ASRAD,
19302		reg: regInfo{
19303			inputs: []inputInfo{
19304				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19305				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19306			},
19307			outputs: []outputInfo{
19308				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19309			},
19310		},
19311	},
19312	{
19313		name:         "SRAW",
19314		argLen:       2,
19315		clobberFlags: true,
19316		asm:          s390x.ASRAW,
19317		reg: regInfo{
19318			inputs: []inputInfo{
19319				{1, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19320				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19321			},
19322			outputs: []outputInfo{
19323				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19324			},
19325		},
19326	},
19327	{
19328		name:         "SRADconst",
19329		auxType:      auxInt8,
19330		argLen:       1,
19331		clobberFlags: true,
19332		asm:          s390x.ASRAD,
19333		reg: regInfo{
19334			inputs: []inputInfo{
19335				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19336			},
19337			outputs: []outputInfo{
19338				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19339			},
19340		},
19341	},
19342	{
19343		name:         "SRAWconst",
19344		auxType:      auxInt8,
19345		argLen:       1,
19346		clobberFlags: true,
19347		asm:          s390x.ASRAW,
19348		reg: regInfo{
19349			inputs: []inputInfo{
19350				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19351			},
19352			outputs: []outputInfo{
19353				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19354			},
19355		},
19356	},
19357	{
19358		name:    "RLLGconst",
19359		auxType: auxInt8,
19360		argLen:  1,
19361		asm:     s390x.ARLLG,
19362		reg: regInfo{
19363			inputs: []inputInfo{
19364				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19365			},
19366			outputs: []outputInfo{
19367				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19368			},
19369		},
19370	},
19371	{
19372		name:    "RLLconst",
19373		auxType: auxInt8,
19374		argLen:  1,
19375		asm:     s390x.ARLL,
19376		reg: regInfo{
19377			inputs: []inputInfo{
19378				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19379			},
19380			outputs: []outputInfo{
19381				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19382			},
19383		},
19384	},
19385	{
19386		name:         "NEG",
19387		argLen:       1,
19388		clobberFlags: true,
19389		asm:          s390x.ANEG,
19390		reg: regInfo{
19391			inputs: []inputInfo{
19392				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19393			},
19394			outputs: []outputInfo{
19395				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19396			},
19397		},
19398	},
19399	{
19400		name:         "NEGW",
19401		argLen:       1,
19402		clobberFlags: true,
19403		asm:          s390x.ANEGW,
19404		reg: regInfo{
19405			inputs: []inputInfo{
19406				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19407			},
19408			outputs: []outputInfo{
19409				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19410			},
19411		},
19412	},
19413	{
19414		name:         "NOT",
19415		argLen:       1,
19416		resultInArg0: true,
19417		clobberFlags: true,
19418		reg: regInfo{
19419			inputs: []inputInfo{
19420				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19421			},
19422			outputs: []outputInfo{
19423				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19424			},
19425		},
19426	},
19427	{
19428		name:         "NOTW",
19429		argLen:       1,
19430		resultInArg0: true,
19431		clobberFlags: true,
19432		reg: regInfo{
19433			inputs: []inputInfo{
19434				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19435			},
19436			outputs: []outputInfo{
19437				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19438			},
19439		},
19440	},
19441	{
19442		name:   "FSQRT",
19443		argLen: 1,
19444		asm:    s390x.AFSQRT,
19445		reg: regInfo{
19446			inputs: []inputInfo{
19447				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19448			},
19449			outputs: []outputInfo{
19450				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19451			},
19452		},
19453	},
19454	{
19455		name:   "SUBEcarrymask",
19456		argLen: 1,
19457		asm:    s390x.ASUBE,
19458		reg: regInfo{
19459			outputs: []outputInfo{
19460				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19461			},
19462		},
19463	},
19464	{
19465		name:   "SUBEWcarrymask",
19466		argLen: 1,
19467		asm:    s390x.ASUBE,
19468		reg: regInfo{
19469			outputs: []outputInfo{
19470				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19471			},
19472		},
19473	},
19474	{
19475		name:         "MOVDEQ",
19476		argLen:       3,
19477		resultInArg0: true,
19478		asm:          s390x.AMOVDEQ,
19479		reg: regInfo{
19480			inputs: []inputInfo{
19481				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19482				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19483			},
19484			outputs: []outputInfo{
19485				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19486			},
19487		},
19488	},
19489	{
19490		name:         "MOVDNE",
19491		argLen:       3,
19492		resultInArg0: true,
19493		asm:          s390x.AMOVDNE,
19494		reg: regInfo{
19495			inputs: []inputInfo{
19496				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19497				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19498			},
19499			outputs: []outputInfo{
19500				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19501			},
19502		},
19503	},
19504	{
19505		name:         "MOVDLT",
19506		argLen:       3,
19507		resultInArg0: true,
19508		asm:          s390x.AMOVDLT,
19509		reg: regInfo{
19510			inputs: []inputInfo{
19511				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19512				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19513			},
19514			outputs: []outputInfo{
19515				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19516			},
19517		},
19518	},
19519	{
19520		name:         "MOVDLE",
19521		argLen:       3,
19522		resultInArg0: true,
19523		asm:          s390x.AMOVDLE,
19524		reg: regInfo{
19525			inputs: []inputInfo{
19526				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19527				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19528			},
19529			outputs: []outputInfo{
19530				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19531			},
19532		},
19533	},
19534	{
19535		name:         "MOVDGT",
19536		argLen:       3,
19537		resultInArg0: true,
19538		asm:          s390x.AMOVDGT,
19539		reg: regInfo{
19540			inputs: []inputInfo{
19541				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19542				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19543			},
19544			outputs: []outputInfo{
19545				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19546			},
19547		},
19548	},
19549	{
19550		name:         "MOVDGE",
19551		argLen:       3,
19552		resultInArg0: true,
19553		asm:          s390x.AMOVDGE,
19554		reg: regInfo{
19555			inputs: []inputInfo{
19556				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19557				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19558			},
19559			outputs: []outputInfo{
19560				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19561			},
19562		},
19563	},
19564	{
19565		name:         "MOVDGTnoinv",
19566		argLen:       3,
19567		resultInArg0: true,
19568		asm:          s390x.AMOVDGT,
19569		reg: regInfo{
19570			inputs: []inputInfo{
19571				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19572				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19573			},
19574			outputs: []outputInfo{
19575				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19576			},
19577		},
19578	},
19579	{
19580		name:         "MOVDGEnoinv",
19581		argLen:       3,
19582		resultInArg0: true,
19583		asm:          s390x.AMOVDGE,
19584		reg: regInfo{
19585			inputs: []inputInfo{
19586				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19587				{1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19588			},
19589			outputs: []outputInfo{
19590				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19591			},
19592		},
19593	},
19594	{
19595		name:   "MOVBreg",
19596		argLen: 1,
19597		asm:    s390x.AMOVB,
19598		reg: regInfo{
19599			inputs: []inputInfo{
19600				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19601			},
19602			outputs: []outputInfo{
19603				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19604			},
19605		},
19606	},
19607	{
19608		name:   "MOVBZreg",
19609		argLen: 1,
19610		asm:    s390x.AMOVBZ,
19611		reg: regInfo{
19612			inputs: []inputInfo{
19613				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19614			},
19615			outputs: []outputInfo{
19616				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19617			},
19618		},
19619	},
19620	{
19621		name:   "MOVHreg",
19622		argLen: 1,
19623		asm:    s390x.AMOVH,
19624		reg: regInfo{
19625			inputs: []inputInfo{
19626				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19627			},
19628			outputs: []outputInfo{
19629				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19630			},
19631		},
19632	},
19633	{
19634		name:   "MOVHZreg",
19635		argLen: 1,
19636		asm:    s390x.AMOVHZ,
19637		reg: regInfo{
19638			inputs: []inputInfo{
19639				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19640			},
19641			outputs: []outputInfo{
19642				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19643			},
19644		},
19645	},
19646	{
19647		name:   "MOVWreg",
19648		argLen: 1,
19649		asm:    s390x.AMOVW,
19650		reg: regInfo{
19651			inputs: []inputInfo{
19652				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19653			},
19654			outputs: []outputInfo{
19655				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19656			},
19657		},
19658	},
19659	{
19660		name:   "MOVWZreg",
19661		argLen: 1,
19662		asm:    s390x.AMOVWZ,
19663		reg: regInfo{
19664			inputs: []inputInfo{
19665				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19666			},
19667			outputs: []outputInfo{
19668				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19669			},
19670		},
19671	},
19672	{
19673		name:   "MOVDreg",
19674		argLen: 1,
19675		asm:    s390x.AMOVD,
19676		reg: regInfo{
19677			inputs: []inputInfo{
19678				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19679			},
19680			outputs: []outputInfo{
19681				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19682			},
19683		},
19684	},
19685	{
19686		name:         "MOVDnop",
19687		argLen:       1,
19688		resultInArg0: true,
19689		reg: regInfo{
19690			inputs: []inputInfo{
19691				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19692			},
19693			outputs: []outputInfo{
19694				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19695			},
19696		},
19697	},
19698	{
19699		name:              "MOVDconst",
19700		auxType:           auxInt64,
19701		argLen:            0,
19702		rematerializeable: true,
19703		asm:               s390x.AMOVD,
19704		reg: regInfo{
19705			outputs: []outputInfo{
19706				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19707			},
19708		},
19709	},
19710	{
19711		name:   "CFDBRA",
19712		argLen: 1,
19713		asm:    s390x.ACFDBRA,
19714		reg: regInfo{
19715			inputs: []inputInfo{
19716				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19717			},
19718			outputs: []outputInfo{
19719				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19720			},
19721		},
19722	},
19723	{
19724		name:   "CGDBRA",
19725		argLen: 1,
19726		asm:    s390x.ACGDBRA,
19727		reg: regInfo{
19728			inputs: []inputInfo{
19729				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19730			},
19731			outputs: []outputInfo{
19732				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19733			},
19734		},
19735	},
19736	{
19737		name:   "CFEBRA",
19738		argLen: 1,
19739		asm:    s390x.ACFEBRA,
19740		reg: regInfo{
19741			inputs: []inputInfo{
19742				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19743			},
19744			outputs: []outputInfo{
19745				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19746			},
19747		},
19748	},
19749	{
19750		name:   "CGEBRA",
19751		argLen: 1,
19752		asm:    s390x.ACGEBRA,
19753		reg: regInfo{
19754			inputs: []inputInfo{
19755				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19756			},
19757			outputs: []outputInfo{
19758				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19759			},
19760		},
19761	},
19762	{
19763		name:   "CEFBRA",
19764		argLen: 1,
19765		asm:    s390x.ACEFBRA,
19766		reg: regInfo{
19767			inputs: []inputInfo{
19768				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19769			},
19770			outputs: []outputInfo{
19771				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19772			},
19773		},
19774	},
19775	{
19776		name:   "CDFBRA",
19777		argLen: 1,
19778		asm:    s390x.ACDFBRA,
19779		reg: regInfo{
19780			inputs: []inputInfo{
19781				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19782			},
19783			outputs: []outputInfo{
19784				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19785			},
19786		},
19787	},
19788	{
19789		name:   "CEGBRA",
19790		argLen: 1,
19791		asm:    s390x.ACEGBRA,
19792		reg: regInfo{
19793			inputs: []inputInfo{
19794				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19795			},
19796			outputs: []outputInfo{
19797				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19798			},
19799		},
19800	},
19801	{
19802		name:   "CDGBRA",
19803		argLen: 1,
19804		asm:    s390x.ACDGBRA,
19805		reg: regInfo{
19806			inputs: []inputInfo{
19807				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19808			},
19809			outputs: []outputInfo{
19810				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19811			},
19812		},
19813	},
19814	{
19815		name:   "LEDBR",
19816		argLen: 1,
19817		asm:    s390x.ALEDBR,
19818		reg: regInfo{
19819			inputs: []inputInfo{
19820				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19821			},
19822			outputs: []outputInfo{
19823				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19824			},
19825		},
19826	},
19827	{
19828		name:   "LDEBR",
19829		argLen: 1,
19830		asm:    s390x.ALDEBR,
19831		reg: regInfo{
19832			inputs: []inputInfo{
19833				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19834			},
19835			outputs: []outputInfo{
19836				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
19837			},
19838		},
19839	},
19840	{
19841		name:              "MOVDaddr",
19842		auxType:           auxSymOff,
19843		argLen:            1,
19844		rematerializeable: true,
19845		clobberFlags:      true,
19846		symEffect:         SymRead,
19847		reg: regInfo{
19848			inputs: []inputInfo{
19849				{0, 4295000064}, // SP SB
19850			},
19851			outputs: []outputInfo{
19852				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19853			},
19854		},
19855	},
19856	{
19857		name:         "MOVDaddridx",
19858		auxType:      auxSymOff,
19859		argLen:       2,
19860		clobberFlags: true,
19861		symEffect:    SymRead,
19862		reg: regInfo{
19863			inputs: []inputInfo{
19864				{0, 4295000064}, // SP SB
19865				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
19866			},
19867			outputs: []outputInfo{
19868				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19869			},
19870		},
19871	},
19872	{
19873		name:           "MOVBZload",
19874		auxType:        auxSymOff,
19875		argLen:         2,
19876		clobberFlags:   true,
19877		faultOnNilArg0: true,
19878		symEffect:      SymRead,
19879		asm:            s390x.AMOVBZ,
19880		reg: regInfo{
19881			inputs: []inputInfo{
19882				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19883			},
19884			outputs: []outputInfo{
19885				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19886			},
19887		},
19888	},
19889	{
19890		name:           "MOVBload",
19891		auxType:        auxSymOff,
19892		argLen:         2,
19893		clobberFlags:   true,
19894		faultOnNilArg0: true,
19895		symEffect:      SymRead,
19896		asm:            s390x.AMOVB,
19897		reg: regInfo{
19898			inputs: []inputInfo{
19899				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19900			},
19901			outputs: []outputInfo{
19902				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19903			},
19904		},
19905	},
19906	{
19907		name:           "MOVHZload",
19908		auxType:        auxSymOff,
19909		argLen:         2,
19910		clobberFlags:   true,
19911		faultOnNilArg0: true,
19912		symEffect:      SymRead,
19913		asm:            s390x.AMOVHZ,
19914		reg: regInfo{
19915			inputs: []inputInfo{
19916				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19917			},
19918			outputs: []outputInfo{
19919				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19920			},
19921		},
19922	},
19923	{
19924		name:           "MOVHload",
19925		auxType:        auxSymOff,
19926		argLen:         2,
19927		clobberFlags:   true,
19928		faultOnNilArg0: true,
19929		symEffect:      SymRead,
19930		asm:            s390x.AMOVH,
19931		reg: regInfo{
19932			inputs: []inputInfo{
19933				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19934			},
19935			outputs: []outputInfo{
19936				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19937			},
19938		},
19939	},
19940	{
19941		name:           "MOVWZload",
19942		auxType:        auxSymOff,
19943		argLen:         2,
19944		clobberFlags:   true,
19945		faultOnNilArg0: true,
19946		symEffect:      SymRead,
19947		asm:            s390x.AMOVWZ,
19948		reg: regInfo{
19949			inputs: []inputInfo{
19950				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19951			},
19952			outputs: []outputInfo{
19953				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19954			},
19955		},
19956	},
19957	{
19958		name:           "MOVWload",
19959		auxType:        auxSymOff,
19960		argLen:         2,
19961		clobberFlags:   true,
19962		faultOnNilArg0: true,
19963		symEffect:      SymRead,
19964		asm:            s390x.AMOVW,
19965		reg: regInfo{
19966			inputs: []inputInfo{
19967				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19968			},
19969			outputs: []outputInfo{
19970				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19971			},
19972		},
19973	},
19974	{
19975		name:           "MOVDload",
19976		auxType:        auxSymOff,
19977		argLen:         2,
19978		clobberFlags:   true,
19979		faultOnNilArg0: true,
19980		symEffect:      SymRead,
19981		asm:            s390x.AMOVD,
19982		reg: regInfo{
19983			inputs: []inputInfo{
19984				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
19985			},
19986			outputs: []outputInfo{
19987				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19988			},
19989		},
19990	},
19991	{
19992		name:   "MOVWBR",
19993		argLen: 1,
19994		asm:    s390x.AMOVWBR,
19995		reg: regInfo{
19996			inputs: []inputInfo{
19997				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
19998			},
19999			outputs: []outputInfo{
20000				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20001			},
20002		},
20003	},
20004	{
20005		name:   "MOVDBR",
20006		argLen: 1,
20007		asm:    s390x.AMOVDBR,
20008		reg: regInfo{
20009			inputs: []inputInfo{
20010				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20011			},
20012			outputs: []outputInfo{
20013				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20014			},
20015		},
20016	},
20017	{
20018		name:           "MOVHBRload",
20019		auxType:        auxSymOff,
20020		argLen:         2,
20021		clobberFlags:   true,
20022		faultOnNilArg0: true,
20023		symEffect:      SymRead,
20024		asm:            s390x.AMOVHBR,
20025		reg: regInfo{
20026			inputs: []inputInfo{
20027				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20028			},
20029			outputs: []outputInfo{
20030				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20031			},
20032		},
20033	},
20034	{
20035		name:           "MOVWBRload",
20036		auxType:        auxSymOff,
20037		argLen:         2,
20038		clobberFlags:   true,
20039		faultOnNilArg0: true,
20040		symEffect:      SymRead,
20041		asm:            s390x.AMOVWBR,
20042		reg: regInfo{
20043			inputs: []inputInfo{
20044				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20045			},
20046			outputs: []outputInfo{
20047				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20048			},
20049		},
20050	},
20051	{
20052		name:           "MOVDBRload",
20053		auxType:        auxSymOff,
20054		argLen:         2,
20055		clobberFlags:   true,
20056		faultOnNilArg0: true,
20057		symEffect:      SymRead,
20058		asm:            s390x.AMOVDBR,
20059		reg: regInfo{
20060			inputs: []inputInfo{
20061				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20062			},
20063			outputs: []outputInfo{
20064				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20065			},
20066		},
20067	},
20068	{
20069		name:           "MOVBstore",
20070		auxType:        auxSymOff,
20071		argLen:         3,
20072		clobberFlags:   true,
20073		faultOnNilArg0: true,
20074		symEffect:      SymWrite,
20075		asm:            s390x.AMOVB,
20076		reg: regInfo{
20077			inputs: []inputInfo{
20078				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20079				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20080			},
20081		},
20082	},
20083	{
20084		name:           "MOVHstore",
20085		auxType:        auxSymOff,
20086		argLen:         3,
20087		clobberFlags:   true,
20088		faultOnNilArg0: true,
20089		symEffect:      SymWrite,
20090		asm:            s390x.AMOVH,
20091		reg: regInfo{
20092			inputs: []inputInfo{
20093				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20094				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20095			},
20096		},
20097	},
20098	{
20099		name:           "MOVWstore",
20100		auxType:        auxSymOff,
20101		argLen:         3,
20102		clobberFlags:   true,
20103		faultOnNilArg0: true,
20104		symEffect:      SymWrite,
20105		asm:            s390x.AMOVW,
20106		reg: regInfo{
20107			inputs: []inputInfo{
20108				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20109				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20110			},
20111		},
20112	},
20113	{
20114		name:           "MOVDstore",
20115		auxType:        auxSymOff,
20116		argLen:         3,
20117		clobberFlags:   true,
20118		faultOnNilArg0: true,
20119		symEffect:      SymWrite,
20120		asm:            s390x.AMOVD,
20121		reg: regInfo{
20122			inputs: []inputInfo{
20123				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20124				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20125			},
20126		},
20127	},
20128	{
20129		name:           "MOVHBRstore",
20130		auxType:        auxSymOff,
20131		argLen:         3,
20132		clobberFlags:   true,
20133		faultOnNilArg0: true,
20134		symEffect:      SymWrite,
20135		asm:            s390x.AMOVHBR,
20136		reg: regInfo{
20137			inputs: []inputInfo{
20138				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20139				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20140			},
20141		},
20142	},
20143	{
20144		name:           "MOVWBRstore",
20145		auxType:        auxSymOff,
20146		argLen:         3,
20147		clobberFlags:   true,
20148		faultOnNilArg0: true,
20149		symEffect:      SymWrite,
20150		asm:            s390x.AMOVWBR,
20151		reg: regInfo{
20152			inputs: []inputInfo{
20153				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20154				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20155			},
20156		},
20157	},
20158	{
20159		name:           "MOVDBRstore",
20160		auxType:        auxSymOff,
20161		argLen:         3,
20162		clobberFlags:   true,
20163		faultOnNilArg0: true,
20164		symEffect:      SymWrite,
20165		asm:            s390x.AMOVDBR,
20166		reg: regInfo{
20167			inputs: []inputInfo{
20168				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20169				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20170			},
20171		},
20172	},
20173	{
20174		name:           "MVC",
20175		auxType:        auxSymValAndOff,
20176		argLen:         3,
20177		clobberFlags:   true,
20178		faultOnNilArg0: true,
20179		faultOnNilArg1: true,
20180		symEffect:      SymNone,
20181		asm:            s390x.AMVC,
20182		reg: regInfo{
20183			inputs: []inputInfo{
20184				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20185				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20186			},
20187		},
20188	},
20189	{
20190		name:         "MOVBZloadidx",
20191		auxType:      auxSymOff,
20192		argLen:       3,
20193		commutative:  true,
20194		clobberFlags: true,
20195		symEffect:    SymRead,
20196		asm:          s390x.AMOVBZ,
20197		reg: regInfo{
20198			inputs: []inputInfo{
20199				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20200				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20201			},
20202			outputs: []outputInfo{
20203				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20204			},
20205		},
20206	},
20207	{
20208		name:         "MOVHZloadidx",
20209		auxType:      auxSymOff,
20210		argLen:       3,
20211		commutative:  true,
20212		clobberFlags: true,
20213		symEffect:    SymRead,
20214		asm:          s390x.AMOVHZ,
20215		reg: regInfo{
20216			inputs: []inputInfo{
20217				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20218				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20219			},
20220			outputs: []outputInfo{
20221				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20222			},
20223		},
20224	},
20225	{
20226		name:         "MOVWZloadidx",
20227		auxType:      auxSymOff,
20228		argLen:       3,
20229		commutative:  true,
20230		clobberFlags: true,
20231		symEffect:    SymRead,
20232		asm:          s390x.AMOVWZ,
20233		reg: regInfo{
20234			inputs: []inputInfo{
20235				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20236				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20237			},
20238			outputs: []outputInfo{
20239				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20240			},
20241		},
20242	},
20243	{
20244		name:         "MOVDloadidx",
20245		auxType:      auxSymOff,
20246		argLen:       3,
20247		commutative:  true,
20248		clobberFlags: true,
20249		symEffect:    SymRead,
20250		asm:          s390x.AMOVD,
20251		reg: regInfo{
20252			inputs: []inputInfo{
20253				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20254				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20255			},
20256			outputs: []outputInfo{
20257				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20258			},
20259		},
20260	},
20261	{
20262		name:         "MOVHBRloadidx",
20263		auxType:      auxSymOff,
20264		argLen:       3,
20265		commutative:  true,
20266		clobberFlags: true,
20267		symEffect:    SymRead,
20268		asm:          s390x.AMOVHBR,
20269		reg: regInfo{
20270			inputs: []inputInfo{
20271				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20272				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20273			},
20274			outputs: []outputInfo{
20275				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20276			},
20277		},
20278	},
20279	{
20280		name:         "MOVWBRloadidx",
20281		auxType:      auxSymOff,
20282		argLen:       3,
20283		commutative:  true,
20284		clobberFlags: true,
20285		symEffect:    SymRead,
20286		asm:          s390x.AMOVWBR,
20287		reg: regInfo{
20288			inputs: []inputInfo{
20289				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20290				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20291			},
20292			outputs: []outputInfo{
20293				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20294			},
20295		},
20296	},
20297	{
20298		name:         "MOVDBRloadidx",
20299		auxType:      auxSymOff,
20300		argLen:       3,
20301		commutative:  true,
20302		clobberFlags: true,
20303		symEffect:    SymRead,
20304		asm:          s390x.AMOVDBR,
20305		reg: regInfo{
20306			inputs: []inputInfo{
20307				{1, 54270},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20308				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20309			},
20310			outputs: []outputInfo{
20311				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20312			},
20313		},
20314	},
20315	{
20316		name:         "MOVBstoreidx",
20317		auxType:      auxSymOff,
20318		argLen:       4,
20319		commutative:  true,
20320		clobberFlags: true,
20321		symEffect:    SymWrite,
20322		asm:          s390x.AMOVB,
20323		reg: regInfo{
20324			inputs: []inputInfo{
20325				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20326				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20327				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20328			},
20329		},
20330	},
20331	{
20332		name:         "MOVHstoreidx",
20333		auxType:      auxSymOff,
20334		argLen:       4,
20335		commutative:  true,
20336		clobberFlags: true,
20337		symEffect:    SymWrite,
20338		asm:          s390x.AMOVH,
20339		reg: regInfo{
20340			inputs: []inputInfo{
20341				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20342				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20343				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20344			},
20345		},
20346	},
20347	{
20348		name:         "MOVWstoreidx",
20349		auxType:      auxSymOff,
20350		argLen:       4,
20351		commutative:  true,
20352		clobberFlags: true,
20353		symEffect:    SymWrite,
20354		asm:          s390x.AMOVW,
20355		reg: regInfo{
20356			inputs: []inputInfo{
20357				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20358				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20359				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20360			},
20361		},
20362	},
20363	{
20364		name:         "MOVDstoreidx",
20365		auxType:      auxSymOff,
20366		argLen:       4,
20367		commutative:  true,
20368		clobberFlags: true,
20369		symEffect:    SymWrite,
20370		asm:          s390x.AMOVD,
20371		reg: regInfo{
20372			inputs: []inputInfo{
20373				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20374				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20375				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20376			},
20377		},
20378	},
20379	{
20380		name:         "MOVHBRstoreidx",
20381		auxType:      auxSymOff,
20382		argLen:       4,
20383		commutative:  true,
20384		clobberFlags: true,
20385		symEffect:    SymWrite,
20386		asm:          s390x.AMOVHBR,
20387		reg: regInfo{
20388			inputs: []inputInfo{
20389				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20390				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20391				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20392			},
20393		},
20394	},
20395	{
20396		name:         "MOVWBRstoreidx",
20397		auxType:      auxSymOff,
20398		argLen:       4,
20399		commutative:  true,
20400		clobberFlags: true,
20401		symEffect:    SymWrite,
20402		asm:          s390x.AMOVWBR,
20403		reg: regInfo{
20404			inputs: []inputInfo{
20405				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20406				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20407				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20408			},
20409		},
20410	},
20411	{
20412		name:         "MOVDBRstoreidx",
20413		auxType:      auxSymOff,
20414		argLen:       4,
20415		commutative:  true,
20416		clobberFlags: true,
20417		symEffect:    SymWrite,
20418		asm:          s390x.AMOVDBR,
20419		reg: regInfo{
20420			inputs: []inputInfo{
20421				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20422				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20423				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20424			},
20425		},
20426	},
20427	{
20428		name:           "MOVBstoreconst",
20429		auxType:        auxSymValAndOff,
20430		argLen:         2,
20431		faultOnNilArg0: true,
20432		symEffect:      SymWrite,
20433		asm:            s390x.AMOVB,
20434		reg: regInfo{
20435			inputs: []inputInfo{
20436				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20437			},
20438		},
20439	},
20440	{
20441		name:           "MOVHstoreconst",
20442		auxType:        auxSymValAndOff,
20443		argLen:         2,
20444		faultOnNilArg0: true,
20445		symEffect:      SymWrite,
20446		asm:            s390x.AMOVH,
20447		reg: regInfo{
20448			inputs: []inputInfo{
20449				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20450			},
20451		},
20452	},
20453	{
20454		name:           "MOVWstoreconst",
20455		auxType:        auxSymValAndOff,
20456		argLen:         2,
20457		faultOnNilArg0: true,
20458		symEffect:      SymWrite,
20459		asm:            s390x.AMOVW,
20460		reg: regInfo{
20461			inputs: []inputInfo{
20462				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20463			},
20464		},
20465	},
20466	{
20467		name:           "MOVDstoreconst",
20468		auxType:        auxSymValAndOff,
20469		argLen:         2,
20470		faultOnNilArg0: true,
20471		symEffect:      SymWrite,
20472		asm:            s390x.AMOVD,
20473		reg: regInfo{
20474			inputs: []inputInfo{
20475				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20476			},
20477		},
20478	},
20479	{
20480		name:           "CLEAR",
20481		auxType:        auxSymValAndOff,
20482		argLen:         2,
20483		clobberFlags:   true,
20484		faultOnNilArg0: true,
20485		symEffect:      SymWrite,
20486		asm:            s390x.ACLEAR,
20487		reg: regInfo{
20488			inputs: []inputInfo{
20489				{0, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20490			},
20491		},
20492	},
20493	{
20494		name:         "CALLstatic",
20495		auxType:      auxSymOff,
20496		argLen:       1,
20497		clobberFlags: true,
20498		call:         true,
20499		symEffect:    SymNone,
20500		reg: regInfo{
20501			clobbers: 4294923263, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20502		},
20503	},
20504	{
20505		name:         "CALLclosure",
20506		auxType:      auxInt64,
20507		argLen:       3,
20508		clobberFlags: true,
20509		call:         true,
20510		reg: regInfo{
20511			inputs: []inputInfo{
20512				{1, 4096},  // R12
20513				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20514			},
20515			clobbers: 4294923263, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20516		},
20517	},
20518	{
20519		name:         "CALLinter",
20520		auxType:      auxInt64,
20521		argLen:       2,
20522		clobberFlags: true,
20523		call:         true,
20524		reg: regInfo{
20525			inputs: []inputInfo{
20526				{0, 21502}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20527			},
20528			clobbers: 4294923263, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20529		},
20530	},
20531	{
20532		name:   "InvertFlags",
20533		argLen: 1,
20534		reg:    regInfo{},
20535	},
20536	{
20537		name:   "LoweredGetG",
20538		argLen: 1,
20539		reg: regInfo{
20540			outputs: []outputInfo{
20541				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20542			},
20543		},
20544	},
20545	{
20546		name:   "LoweredGetClosurePtr",
20547		argLen: 0,
20548		reg: regInfo{
20549			outputs: []outputInfo{
20550				{0, 4096}, // R12
20551			},
20552		},
20553	},
20554	{
20555		name:           "LoweredNilCheck",
20556		argLen:         2,
20557		clobberFlags:   true,
20558		nilCheck:       true,
20559		faultOnNilArg0: true,
20560		reg: regInfo{
20561			inputs: []inputInfo{
20562				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20563			},
20564		},
20565	},
20566	{
20567		name:         "LoweredRound32F",
20568		argLen:       1,
20569		resultInArg0: true,
20570		reg: regInfo{
20571			inputs: []inputInfo{
20572				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20573			},
20574			outputs: []outputInfo{
20575				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20576			},
20577		},
20578	},
20579	{
20580		name:         "LoweredRound64F",
20581		argLen:       1,
20582		resultInArg0: true,
20583		reg: regInfo{
20584			inputs: []inputInfo{
20585				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20586			},
20587			outputs: []outputInfo{
20588				{0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
20589			},
20590		},
20591	},
20592	{
20593		name:   "MOVDconvert",
20594		argLen: 2,
20595		asm:    s390x.AMOVD,
20596		reg: regInfo{
20597			inputs: []inputInfo{
20598				{0, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20599			},
20600			outputs: []outputInfo{
20601				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20602			},
20603		},
20604	},
20605	{
20606		name:   "FlagEQ",
20607		argLen: 0,
20608		reg:    regInfo{},
20609	},
20610	{
20611		name:   "FlagLT",
20612		argLen: 0,
20613		reg:    regInfo{},
20614	},
20615	{
20616		name:   "FlagGT",
20617		argLen: 0,
20618		reg:    regInfo{},
20619	},
20620	{
20621		name:           "MOVWZatomicload",
20622		auxType:        auxSymOff,
20623		argLen:         2,
20624		faultOnNilArg0: true,
20625		symEffect:      SymRead,
20626		asm:            s390x.AMOVWZ,
20627		reg: regInfo{
20628			inputs: []inputInfo{
20629				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20630			},
20631			outputs: []outputInfo{
20632				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20633			},
20634		},
20635	},
20636	{
20637		name:           "MOVDatomicload",
20638		auxType:        auxSymOff,
20639		argLen:         2,
20640		faultOnNilArg0: true,
20641		symEffect:      SymRead,
20642		asm:            s390x.AMOVD,
20643		reg: regInfo{
20644			inputs: []inputInfo{
20645				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20646			},
20647			outputs: []outputInfo{
20648				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20649			},
20650		},
20651	},
20652	{
20653		name:           "MOVWatomicstore",
20654		auxType:        auxSymOff,
20655		argLen:         3,
20656		clobberFlags:   true,
20657		faultOnNilArg0: true,
20658		hasSideEffects: true,
20659		symEffect:      SymWrite,
20660		asm:            s390x.AMOVW,
20661		reg: regInfo{
20662			inputs: []inputInfo{
20663				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20664				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20665			},
20666		},
20667	},
20668	{
20669		name:           "MOVDatomicstore",
20670		auxType:        auxSymOff,
20671		argLen:         3,
20672		clobberFlags:   true,
20673		faultOnNilArg0: true,
20674		hasSideEffects: true,
20675		symEffect:      SymWrite,
20676		asm:            s390x.AMOVD,
20677		reg: regInfo{
20678			inputs: []inputInfo{
20679				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20680				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20681			},
20682		},
20683	},
20684	{
20685		name:           "LAA",
20686		auxType:        auxSymOff,
20687		argLen:         3,
20688		faultOnNilArg0: true,
20689		hasSideEffects: true,
20690		symEffect:      SymRdWr,
20691		asm:            s390x.ALAA,
20692		reg: regInfo{
20693			inputs: []inputInfo{
20694				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20695				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20696			},
20697			outputs: []outputInfo{
20698				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20699			},
20700		},
20701	},
20702	{
20703		name:           "LAAG",
20704		auxType:        auxSymOff,
20705		argLen:         3,
20706		faultOnNilArg0: true,
20707		hasSideEffects: true,
20708		symEffect:      SymRdWr,
20709		asm:            s390x.ALAAG,
20710		reg: regInfo{
20711			inputs: []inputInfo{
20712				{0, 4295021566}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP SB
20713				{1, 54271},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20714			},
20715			outputs: []outputInfo{
20716				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20717			},
20718		},
20719	},
20720	{
20721		name:   "AddTupleFirst32",
20722		argLen: 2,
20723		reg:    regInfo{},
20724	},
20725	{
20726		name:   "AddTupleFirst64",
20727		argLen: 2,
20728		reg:    regInfo{},
20729	},
20730	{
20731		name:           "LoweredAtomicCas32",
20732		auxType:        auxSymOff,
20733		argLen:         4,
20734		clobberFlags:   true,
20735		faultOnNilArg0: true,
20736		hasSideEffects: true,
20737		symEffect:      SymRdWr,
20738		asm:            s390x.ACS,
20739		reg: regInfo{
20740			inputs: []inputInfo{
20741				{1, 1},     // R0
20742				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20743				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20744			},
20745			clobbers: 1, // R0
20746			outputs: []outputInfo{
20747				{1, 0},
20748				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20749			},
20750		},
20751	},
20752	{
20753		name:           "LoweredAtomicCas64",
20754		auxType:        auxSymOff,
20755		argLen:         4,
20756		clobberFlags:   true,
20757		faultOnNilArg0: true,
20758		hasSideEffects: true,
20759		symEffect:      SymRdWr,
20760		asm:            s390x.ACSG,
20761		reg: regInfo{
20762			inputs: []inputInfo{
20763				{1, 1},     // R0
20764				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20765				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20766			},
20767			clobbers: 1, // R0
20768			outputs: []outputInfo{
20769				{1, 0},
20770				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20771			},
20772		},
20773	},
20774	{
20775		name:           "LoweredAtomicExchange32",
20776		auxType:        auxSymOff,
20777		argLen:         3,
20778		clobberFlags:   true,
20779		faultOnNilArg0: true,
20780		hasSideEffects: true,
20781		symEffect:      SymRdWr,
20782		asm:            s390x.ACS,
20783		reg: regInfo{
20784			inputs: []inputInfo{
20785				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20786				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20787			},
20788			outputs: []outputInfo{
20789				{1, 0},
20790				{0, 1}, // R0
20791			},
20792		},
20793	},
20794	{
20795		name:           "LoweredAtomicExchange64",
20796		auxType:        auxSymOff,
20797		argLen:         3,
20798		clobberFlags:   true,
20799		faultOnNilArg0: true,
20800		hasSideEffects: true,
20801		symEffect:      SymRdWr,
20802		asm:            s390x.ACSG,
20803		reg: regInfo{
20804			inputs: []inputInfo{
20805				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20806				{1, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20807			},
20808			outputs: []outputInfo{
20809				{1, 0},
20810				{0, 1}, // R0
20811			},
20812		},
20813	},
20814	{
20815		name:         "FLOGR",
20816		argLen:       1,
20817		clobberFlags: true,
20818		asm:          s390x.AFLOGR,
20819		reg: regInfo{
20820			inputs: []inputInfo{
20821				{0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
20822			},
20823			clobbers: 2, // R1
20824			outputs: []outputInfo{
20825				{0, 1}, // R0
20826			},
20827		},
20828	},
20829	{
20830		name:           "STMG2",
20831		auxType:        auxSymOff,
20832		argLen:         4,
20833		faultOnNilArg0: true,
20834		symEffect:      SymWrite,
20835		asm:            s390x.ASTMG,
20836		reg: regInfo{
20837			inputs: []inputInfo{
20838				{1, 2},     // R1
20839				{2, 4},     // R2
20840				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20841			},
20842		},
20843	},
20844	{
20845		name:           "STMG3",
20846		auxType:        auxSymOff,
20847		argLen:         5,
20848		faultOnNilArg0: true,
20849		symEffect:      SymWrite,
20850		asm:            s390x.ASTMG,
20851		reg: regInfo{
20852			inputs: []inputInfo{
20853				{1, 2},     // R1
20854				{2, 4},     // R2
20855				{3, 8},     // R3
20856				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20857			},
20858		},
20859	},
20860	{
20861		name:           "STMG4",
20862		auxType:        auxSymOff,
20863		argLen:         6,
20864		faultOnNilArg0: true,
20865		symEffect:      SymWrite,
20866		asm:            s390x.ASTMG,
20867		reg: regInfo{
20868			inputs: []inputInfo{
20869				{1, 2},     // R1
20870				{2, 4},     // R2
20871				{3, 8},     // R3
20872				{4, 16},    // R4
20873				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20874			},
20875		},
20876	},
20877	{
20878		name:           "STM2",
20879		auxType:        auxSymOff,
20880		argLen:         4,
20881		faultOnNilArg0: true,
20882		symEffect:      SymWrite,
20883		asm:            s390x.ASTMY,
20884		reg: regInfo{
20885			inputs: []inputInfo{
20886				{1, 2},     // R1
20887				{2, 4},     // R2
20888				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20889			},
20890		},
20891	},
20892	{
20893		name:           "STM3",
20894		auxType:        auxSymOff,
20895		argLen:         5,
20896		faultOnNilArg0: true,
20897		symEffect:      SymWrite,
20898		asm:            s390x.ASTMY,
20899		reg: regInfo{
20900			inputs: []inputInfo{
20901				{1, 2},     // R1
20902				{2, 4},     // R2
20903				{3, 8},     // R3
20904				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20905			},
20906		},
20907	},
20908	{
20909		name:           "STM4",
20910		auxType:        auxSymOff,
20911		argLen:         6,
20912		faultOnNilArg0: true,
20913		symEffect:      SymWrite,
20914		asm:            s390x.ASTMY,
20915		reg: regInfo{
20916			inputs: []inputInfo{
20917				{1, 2},     // R1
20918				{2, 4},     // R2
20919				{3, 8},     // R3
20920				{4, 16},    // R4
20921				{0, 54270}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20922			},
20923		},
20924	},
20925	{
20926		name:           "LoweredMove",
20927		auxType:        auxInt64,
20928		argLen:         4,
20929		clobberFlags:   true,
20930		faultOnNilArg0: true,
20931		faultOnNilArg1: true,
20932		reg: regInfo{
20933			inputs: []inputInfo{
20934				{0, 2},     // R1
20935				{1, 4},     // R2
20936				{2, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20937			},
20938			clobbers: 6, // R1 R2
20939		},
20940	},
20941	{
20942		name:           "LoweredZero",
20943		auxType:        auxInt64,
20944		argLen:         3,
20945		clobberFlags:   true,
20946		faultOnNilArg0: true,
20947		reg: regInfo{
20948			inputs: []inputInfo{
20949				{0, 2},     // R1
20950				{1, 54271}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14 SP
20951			},
20952			clobbers: 2, // R1
20953		},
20954	},
20955
20956	{
20957		name:        "Add8",
20958		argLen:      2,
20959		commutative: true,
20960		generic:     true,
20961	},
20962	{
20963		name:        "Add16",
20964		argLen:      2,
20965		commutative: true,
20966		generic:     true,
20967	},
20968	{
20969		name:        "Add32",
20970		argLen:      2,
20971		commutative: true,
20972		generic:     true,
20973	},
20974	{
20975		name:        "Add64",
20976		argLen:      2,
20977		commutative: true,
20978		generic:     true,
20979	},
20980	{
20981		name:    "AddPtr",
20982		argLen:  2,
20983		generic: true,
20984	},
20985	{
20986		name:        "Add32F",
20987		argLen:      2,
20988		commutative: true,
20989		generic:     true,
20990	},
20991	{
20992		name:        "Add64F",
20993		argLen:      2,
20994		commutative: true,
20995		generic:     true,
20996	},
20997	{
20998		name:    "Sub8",
20999		argLen:  2,
21000		generic: true,
21001	},
21002	{
21003		name:    "Sub16",
21004		argLen:  2,
21005		generic: true,
21006	},
21007	{
21008		name:    "Sub32",
21009		argLen:  2,
21010		generic: true,
21011	},
21012	{
21013		name:    "Sub64",
21014		argLen:  2,
21015		generic: true,
21016	},
21017	{
21018		name:    "SubPtr",
21019		argLen:  2,
21020		generic: true,
21021	},
21022	{
21023		name:    "Sub32F",
21024		argLen:  2,
21025		generic: true,
21026	},
21027	{
21028		name:    "Sub64F",
21029		argLen:  2,
21030		generic: true,
21031	},
21032	{
21033		name:        "Mul8",
21034		argLen:      2,
21035		commutative: true,
21036		generic:     true,
21037	},
21038	{
21039		name:        "Mul16",
21040		argLen:      2,
21041		commutative: true,
21042		generic:     true,
21043	},
21044	{
21045		name:        "Mul32",
21046		argLen:      2,
21047		commutative: true,
21048		generic:     true,
21049	},
21050	{
21051		name:        "Mul64",
21052		argLen:      2,
21053		commutative: true,
21054		generic:     true,
21055	},
21056	{
21057		name:        "Mul32F",
21058		argLen:      2,
21059		commutative: true,
21060		generic:     true,
21061	},
21062	{
21063		name:        "Mul64F",
21064		argLen:      2,
21065		commutative: true,
21066		generic:     true,
21067	},
21068	{
21069		name:    "Div32F",
21070		argLen:  2,
21071		generic: true,
21072	},
21073	{
21074		name:    "Div64F",
21075		argLen:  2,
21076		generic: true,
21077	},
21078	{
21079		name:        "Hmul32",
21080		argLen:      2,
21081		commutative: true,
21082		generic:     true,
21083	},
21084	{
21085		name:        "Hmul32u",
21086		argLen:      2,
21087		commutative: true,
21088		generic:     true,
21089	},
21090	{
21091		name:        "Hmul64",
21092		argLen:      2,
21093		commutative: true,
21094		generic:     true,
21095	},
21096	{
21097		name:        "Hmul64u",
21098		argLen:      2,
21099		commutative: true,
21100		generic:     true,
21101	},
21102	{
21103		name:        "Mul32uhilo",
21104		argLen:      2,
21105		commutative: true,
21106		generic:     true,
21107	},
21108	{
21109		name:        "Mul64uhilo",
21110		argLen:      2,
21111		commutative: true,
21112		generic:     true,
21113	},
21114	{
21115		name:    "Avg32u",
21116		argLen:  2,
21117		generic: true,
21118	},
21119	{
21120		name:    "Avg64u",
21121		argLen:  2,
21122		generic: true,
21123	},
21124	{
21125		name:    "Div8",
21126		argLen:  2,
21127		generic: true,
21128	},
21129	{
21130		name:    "Div8u",
21131		argLen:  2,
21132		generic: true,
21133	},
21134	{
21135		name:    "Div16",
21136		argLen:  2,
21137		generic: true,
21138	},
21139	{
21140		name:    "Div16u",
21141		argLen:  2,
21142		generic: true,
21143	},
21144	{
21145		name:    "Div32",
21146		argLen:  2,
21147		generic: true,
21148	},
21149	{
21150		name:    "Div32u",
21151		argLen:  2,
21152		generic: true,
21153	},
21154	{
21155		name:    "Div64",
21156		argLen:  2,
21157		generic: true,
21158	},
21159	{
21160		name:    "Div64u",
21161		argLen:  2,
21162		generic: true,
21163	},
21164	{
21165		name:    "Div128u",
21166		argLen:  3,
21167		generic: true,
21168	},
21169	{
21170		name:    "Mod8",
21171		argLen:  2,
21172		generic: true,
21173	},
21174	{
21175		name:    "Mod8u",
21176		argLen:  2,
21177		generic: true,
21178	},
21179	{
21180		name:    "Mod16",
21181		argLen:  2,
21182		generic: true,
21183	},
21184	{
21185		name:    "Mod16u",
21186		argLen:  2,
21187		generic: true,
21188	},
21189	{
21190		name:    "Mod32",
21191		argLen:  2,
21192		generic: true,
21193	},
21194	{
21195		name:    "Mod32u",
21196		argLen:  2,
21197		generic: true,
21198	},
21199	{
21200		name:    "Mod64",
21201		argLen:  2,
21202		generic: true,
21203	},
21204	{
21205		name:    "Mod64u",
21206		argLen:  2,
21207		generic: true,
21208	},
21209	{
21210		name:        "And8",
21211		argLen:      2,
21212		commutative: true,
21213		generic:     true,
21214	},
21215	{
21216		name:        "And16",
21217		argLen:      2,
21218		commutative: true,
21219		generic:     true,
21220	},
21221	{
21222		name:        "And32",
21223		argLen:      2,
21224		commutative: true,
21225		generic:     true,
21226	},
21227	{
21228		name:        "And64",
21229		argLen:      2,
21230		commutative: true,
21231		generic:     true,
21232	},
21233	{
21234		name:        "Or8",
21235		argLen:      2,
21236		commutative: true,
21237		generic:     true,
21238	},
21239	{
21240		name:        "Or16",
21241		argLen:      2,
21242		commutative: true,
21243		generic:     true,
21244	},
21245	{
21246		name:        "Or32",
21247		argLen:      2,
21248		commutative: true,
21249		generic:     true,
21250	},
21251	{
21252		name:        "Or64",
21253		argLen:      2,
21254		commutative: true,
21255		generic:     true,
21256	},
21257	{
21258		name:        "Xor8",
21259		argLen:      2,
21260		commutative: true,
21261		generic:     true,
21262	},
21263	{
21264		name:        "Xor16",
21265		argLen:      2,
21266		commutative: true,
21267		generic:     true,
21268	},
21269	{
21270		name:        "Xor32",
21271		argLen:      2,
21272		commutative: true,
21273		generic:     true,
21274	},
21275	{
21276		name:        "Xor64",
21277		argLen:      2,
21278		commutative: true,
21279		generic:     true,
21280	},
21281	{
21282		name:    "Lsh8x8",
21283		argLen:  2,
21284		generic: true,
21285	},
21286	{
21287		name:    "Lsh8x16",
21288		argLen:  2,
21289		generic: true,
21290	},
21291	{
21292		name:    "Lsh8x32",
21293		argLen:  2,
21294		generic: true,
21295	},
21296	{
21297		name:    "Lsh8x64",
21298		argLen:  2,
21299		generic: true,
21300	},
21301	{
21302		name:    "Lsh16x8",
21303		argLen:  2,
21304		generic: true,
21305	},
21306	{
21307		name:    "Lsh16x16",
21308		argLen:  2,
21309		generic: true,
21310	},
21311	{
21312		name:    "Lsh16x32",
21313		argLen:  2,
21314		generic: true,
21315	},
21316	{
21317		name:    "Lsh16x64",
21318		argLen:  2,
21319		generic: true,
21320	},
21321	{
21322		name:    "Lsh32x8",
21323		argLen:  2,
21324		generic: true,
21325	},
21326	{
21327		name:    "Lsh32x16",
21328		argLen:  2,
21329		generic: true,
21330	},
21331	{
21332		name:    "Lsh32x32",
21333		argLen:  2,
21334		generic: true,
21335	},
21336	{
21337		name:    "Lsh32x64",
21338		argLen:  2,
21339		generic: true,
21340	},
21341	{
21342		name:    "Lsh64x8",
21343		argLen:  2,
21344		generic: true,
21345	},
21346	{
21347		name:    "Lsh64x16",
21348		argLen:  2,
21349		generic: true,
21350	},
21351	{
21352		name:    "Lsh64x32",
21353		argLen:  2,
21354		generic: true,
21355	},
21356	{
21357		name:    "Lsh64x64",
21358		argLen:  2,
21359		generic: true,
21360	},
21361	{
21362		name:    "Rsh8x8",
21363		argLen:  2,
21364		generic: true,
21365	},
21366	{
21367		name:    "Rsh8x16",
21368		argLen:  2,
21369		generic: true,
21370	},
21371	{
21372		name:    "Rsh8x32",
21373		argLen:  2,
21374		generic: true,
21375	},
21376	{
21377		name:    "Rsh8x64",
21378		argLen:  2,
21379		generic: true,
21380	},
21381	{
21382		name:    "Rsh16x8",
21383		argLen:  2,
21384		generic: true,
21385	},
21386	{
21387		name:    "Rsh16x16",
21388		argLen:  2,
21389		generic: true,
21390	},
21391	{
21392		name:    "Rsh16x32",
21393		argLen:  2,
21394		generic: true,
21395	},
21396	{
21397		name:    "Rsh16x64",
21398		argLen:  2,
21399		generic: true,
21400	},
21401	{
21402		name:    "Rsh32x8",
21403		argLen:  2,
21404		generic: true,
21405	},
21406	{
21407		name:    "Rsh32x16",
21408		argLen:  2,
21409		generic: true,
21410	},
21411	{
21412		name:    "Rsh32x32",
21413		argLen:  2,
21414		generic: true,
21415	},
21416	{
21417		name:    "Rsh32x64",
21418		argLen:  2,
21419		generic: true,
21420	},
21421	{
21422		name:    "Rsh64x8",
21423		argLen:  2,
21424		generic: true,
21425	},
21426	{
21427		name:    "Rsh64x16",
21428		argLen:  2,
21429		generic: true,
21430	},
21431	{
21432		name:    "Rsh64x32",
21433		argLen:  2,
21434		generic: true,
21435	},
21436	{
21437		name:    "Rsh64x64",
21438		argLen:  2,
21439		generic: true,
21440	},
21441	{
21442		name:    "Rsh8Ux8",
21443		argLen:  2,
21444		generic: true,
21445	},
21446	{
21447		name:    "Rsh8Ux16",
21448		argLen:  2,
21449		generic: true,
21450	},
21451	{
21452		name:    "Rsh8Ux32",
21453		argLen:  2,
21454		generic: true,
21455	},
21456	{
21457		name:    "Rsh8Ux64",
21458		argLen:  2,
21459		generic: true,
21460	},
21461	{
21462		name:    "Rsh16Ux8",
21463		argLen:  2,
21464		generic: true,
21465	},
21466	{
21467		name:    "Rsh16Ux16",
21468		argLen:  2,
21469		generic: true,
21470	},
21471	{
21472		name:    "Rsh16Ux32",
21473		argLen:  2,
21474		generic: true,
21475	},
21476	{
21477		name:    "Rsh16Ux64",
21478		argLen:  2,
21479		generic: true,
21480	},
21481	{
21482		name:    "Rsh32Ux8",
21483		argLen:  2,
21484		generic: true,
21485	},
21486	{
21487		name:    "Rsh32Ux16",
21488		argLen:  2,
21489		generic: true,
21490	},
21491	{
21492		name:    "Rsh32Ux32",
21493		argLen:  2,
21494		generic: true,
21495	},
21496	{
21497		name:    "Rsh32Ux64",
21498		argLen:  2,
21499		generic: true,
21500	},
21501	{
21502		name:    "Rsh64Ux8",
21503		argLen:  2,
21504		generic: true,
21505	},
21506	{
21507		name:    "Rsh64Ux16",
21508		argLen:  2,
21509		generic: true,
21510	},
21511	{
21512		name:    "Rsh64Ux32",
21513		argLen:  2,
21514		generic: true,
21515	},
21516	{
21517		name:    "Rsh64Ux64",
21518		argLen:  2,
21519		generic: true,
21520	},
21521	{
21522		name:        "Eq8",
21523		argLen:      2,
21524		commutative: true,
21525		generic:     true,
21526	},
21527	{
21528		name:        "Eq16",
21529		argLen:      2,
21530		commutative: true,
21531		generic:     true,
21532	},
21533	{
21534		name:        "Eq32",
21535		argLen:      2,
21536		commutative: true,
21537		generic:     true,
21538	},
21539	{
21540		name:        "Eq64",
21541		argLen:      2,
21542		commutative: true,
21543		generic:     true,
21544	},
21545	{
21546		name:        "EqPtr",
21547		argLen:      2,
21548		commutative: true,
21549		generic:     true,
21550	},
21551	{
21552		name:    "EqInter",
21553		argLen:  2,
21554		generic: true,
21555	},
21556	{
21557		name:    "EqSlice",
21558		argLen:  2,
21559		generic: true,
21560	},
21561	{
21562		name:        "Eq32F",
21563		argLen:      2,
21564		commutative: true,
21565		generic:     true,
21566	},
21567	{
21568		name:        "Eq64F",
21569		argLen:      2,
21570		commutative: true,
21571		generic:     true,
21572	},
21573	{
21574		name:        "Neq8",
21575		argLen:      2,
21576		commutative: true,
21577		generic:     true,
21578	},
21579	{
21580		name:        "Neq16",
21581		argLen:      2,
21582		commutative: true,
21583		generic:     true,
21584	},
21585	{
21586		name:        "Neq32",
21587		argLen:      2,
21588		commutative: true,
21589		generic:     true,
21590	},
21591	{
21592		name:        "Neq64",
21593		argLen:      2,
21594		commutative: true,
21595		generic:     true,
21596	},
21597	{
21598		name:        "NeqPtr",
21599		argLen:      2,
21600		commutative: true,
21601		generic:     true,
21602	},
21603	{
21604		name:    "NeqInter",
21605		argLen:  2,
21606		generic: true,
21607	},
21608	{
21609		name:    "NeqSlice",
21610		argLen:  2,
21611		generic: true,
21612	},
21613	{
21614		name:        "Neq32F",
21615		argLen:      2,
21616		commutative: true,
21617		generic:     true,
21618	},
21619	{
21620		name:        "Neq64F",
21621		argLen:      2,
21622		commutative: true,
21623		generic:     true,
21624	},
21625	{
21626		name:    "Less8",
21627		argLen:  2,
21628		generic: true,
21629	},
21630	{
21631		name:    "Less8U",
21632		argLen:  2,
21633		generic: true,
21634	},
21635	{
21636		name:    "Less16",
21637		argLen:  2,
21638		generic: true,
21639	},
21640	{
21641		name:    "Less16U",
21642		argLen:  2,
21643		generic: true,
21644	},
21645	{
21646		name:    "Less32",
21647		argLen:  2,
21648		generic: true,
21649	},
21650	{
21651		name:    "Less32U",
21652		argLen:  2,
21653		generic: true,
21654	},
21655	{
21656		name:    "Less64",
21657		argLen:  2,
21658		generic: true,
21659	},
21660	{
21661		name:    "Less64U",
21662		argLen:  2,
21663		generic: true,
21664	},
21665	{
21666		name:    "Less32F",
21667		argLen:  2,
21668		generic: true,
21669	},
21670	{
21671		name:    "Less64F",
21672		argLen:  2,
21673		generic: true,
21674	},
21675	{
21676		name:    "Leq8",
21677		argLen:  2,
21678		generic: true,
21679	},
21680	{
21681		name:    "Leq8U",
21682		argLen:  2,
21683		generic: true,
21684	},
21685	{
21686		name:    "Leq16",
21687		argLen:  2,
21688		generic: true,
21689	},
21690	{
21691		name:    "Leq16U",
21692		argLen:  2,
21693		generic: true,
21694	},
21695	{
21696		name:    "Leq32",
21697		argLen:  2,
21698		generic: true,
21699	},
21700	{
21701		name:    "Leq32U",
21702		argLen:  2,
21703		generic: true,
21704	},
21705	{
21706		name:    "Leq64",
21707		argLen:  2,
21708		generic: true,
21709	},
21710	{
21711		name:    "Leq64U",
21712		argLen:  2,
21713		generic: true,
21714	},
21715	{
21716		name:    "Leq32F",
21717		argLen:  2,
21718		generic: true,
21719	},
21720	{
21721		name:    "Leq64F",
21722		argLen:  2,
21723		generic: true,
21724	},
21725	{
21726		name:    "Greater8",
21727		argLen:  2,
21728		generic: true,
21729	},
21730	{
21731		name:    "Greater8U",
21732		argLen:  2,
21733		generic: true,
21734	},
21735	{
21736		name:    "Greater16",
21737		argLen:  2,
21738		generic: true,
21739	},
21740	{
21741		name:    "Greater16U",
21742		argLen:  2,
21743		generic: true,
21744	},
21745	{
21746		name:    "Greater32",
21747		argLen:  2,
21748		generic: true,
21749	},
21750	{
21751		name:    "Greater32U",
21752		argLen:  2,
21753		generic: true,
21754	},
21755	{
21756		name:    "Greater64",
21757		argLen:  2,
21758		generic: true,
21759	},
21760	{
21761		name:    "Greater64U",
21762		argLen:  2,
21763		generic: true,
21764	},
21765	{
21766		name:    "Greater32F",
21767		argLen:  2,
21768		generic: true,
21769	},
21770	{
21771		name:    "Greater64F",
21772		argLen:  2,
21773		generic: true,
21774	},
21775	{
21776		name:    "Geq8",
21777		argLen:  2,
21778		generic: true,
21779	},
21780	{
21781		name:    "Geq8U",
21782		argLen:  2,
21783		generic: true,
21784	},
21785	{
21786		name:    "Geq16",
21787		argLen:  2,
21788		generic: true,
21789	},
21790	{
21791		name:    "Geq16U",
21792		argLen:  2,
21793		generic: true,
21794	},
21795	{
21796		name:    "Geq32",
21797		argLen:  2,
21798		generic: true,
21799	},
21800	{
21801		name:    "Geq32U",
21802		argLen:  2,
21803		generic: true,
21804	},
21805	{
21806		name:    "Geq64",
21807		argLen:  2,
21808		generic: true,
21809	},
21810	{
21811		name:    "Geq64U",
21812		argLen:  2,
21813		generic: true,
21814	},
21815	{
21816		name:    "Geq32F",
21817		argLen:  2,
21818		generic: true,
21819	},
21820	{
21821		name:    "Geq64F",
21822		argLen:  2,
21823		generic: true,
21824	},
21825	{
21826		name:        "AndB",
21827		argLen:      2,
21828		commutative: true,
21829		generic:     true,
21830	},
21831	{
21832		name:        "OrB",
21833		argLen:      2,
21834		commutative: true,
21835		generic:     true,
21836	},
21837	{
21838		name:        "EqB",
21839		argLen:      2,
21840		commutative: true,
21841		generic:     true,
21842	},
21843	{
21844		name:        "NeqB",
21845		argLen:      2,
21846		commutative: true,
21847		generic:     true,
21848	},
21849	{
21850		name:    "Not",
21851		argLen:  1,
21852		generic: true,
21853	},
21854	{
21855		name:    "Neg8",
21856		argLen:  1,
21857		generic: true,
21858	},
21859	{
21860		name:    "Neg16",
21861		argLen:  1,
21862		generic: true,
21863	},
21864	{
21865		name:    "Neg32",
21866		argLen:  1,
21867		generic: true,
21868	},
21869	{
21870		name:    "Neg64",
21871		argLen:  1,
21872		generic: true,
21873	},
21874	{
21875		name:    "Neg32F",
21876		argLen:  1,
21877		generic: true,
21878	},
21879	{
21880		name:    "Neg64F",
21881		argLen:  1,
21882		generic: true,
21883	},
21884	{
21885		name:    "Com8",
21886		argLen:  1,
21887		generic: true,
21888	},
21889	{
21890		name:    "Com16",
21891		argLen:  1,
21892		generic: true,
21893	},
21894	{
21895		name:    "Com32",
21896		argLen:  1,
21897		generic: true,
21898	},
21899	{
21900		name:    "Com64",
21901		argLen:  1,
21902		generic: true,
21903	},
21904	{
21905		name:    "Ctz32",
21906		argLen:  1,
21907		generic: true,
21908	},
21909	{
21910		name:    "Ctz64",
21911		argLen:  1,
21912		generic: true,
21913	},
21914	{
21915		name:    "BitLen32",
21916		argLen:  1,
21917		generic: true,
21918	},
21919	{
21920		name:    "BitLen64",
21921		argLen:  1,
21922		generic: true,
21923	},
21924	{
21925		name:    "Bswap32",
21926		argLen:  1,
21927		generic: true,
21928	},
21929	{
21930		name:    "Bswap64",
21931		argLen:  1,
21932		generic: true,
21933	},
21934	{
21935		name:    "BitRev8",
21936		argLen:  1,
21937		generic: true,
21938	},
21939	{
21940		name:    "BitRev16",
21941		argLen:  1,
21942		generic: true,
21943	},
21944	{
21945		name:    "BitRev32",
21946		argLen:  1,
21947		generic: true,
21948	},
21949	{
21950		name:    "BitRev64",
21951		argLen:  1,
21952		generic: true,
21953	},
21954	{
21955		name:    "PopCount8",
21956		argLen:  1,
21957		generic: true,
21958	},
21959	{
21960		name:    "PopCount16",
21961		argLen:  1,
21962		generic: true,
21963	},
21964	{
21965		name:    "PopCount32",
21966		argLen:  1,
21967		generic: true,
21968	},
21969	{
21970		name:    "PopCount64",
21971		argLen:  1,
21972		generic: true,
21973	},
21974	{
21975		name:    "Sqrt",
21976		argLen:  1,
21977		generic: true,
21978	},
21979	{
21980		name:    "Phi",
21981		argLen:  -1,
21982		generic: true,
21983	},
21984	{
21985		name:    "Copy",
21986		argLen:  1,
21987		generic: true,
21988	},
21989	{
21990		name:    "Convert",
21991		argLen:  2,
21992		generic: true,
21993	},
21994	{
21995		name:    "ConstBool",
21996		auxType: auxBool,
21997		argLen:  0,
21998		generic: true,
21999	},
22000	{
22001		name:    "ConstString",
22002		auxType: auxString,
22003		argLen:  0,
22004		generic: true,
22005	},
22006	{
22007		name:    "ConstNil",
22008		argLen:  0,
22009		generic: true,
22010	},
22011	{
22012		name:    "Const8",
22013		auxType: auxInt8,
22014		argLen:  0,
22015		generic: true,
22016	},
22017	{
22018		name:    "Const16",
22019		auxType: auxInt16,
22020		argLen:  0,
22021		generic: true,
22022	},
22023	{
22024		name:    "Const32",
22025		auxType: auxInt32,
22026		argLen:  0,
22027		generic: true,
22028	},
22029	{
22030		name:    "Const64",
22031		auxType: auxInt64,
22032		argLen:  0,
22033		generic: true,
22034	},
22035	{
22036		name:    "Const32F",
22037		auxType: auxFloat32,
22038		argLen:  0,
22039		generic: true,
22040	},
22041	{
22042		name:    "Const64F",
22043		auxType: auxFloat64,
22044		argLen:  0,
22045		generic: true,
22046	},
22047	{
22048		name:    "ConstInterface",
22049		argLen:  0,
22050		generic: true,
22051	},
22052	{
22053		name:    "ConstSlice",
22054		argLen:  0,
22055		generic: true,
22056	},
22057	{
22058		name:    "InitMem",
22059		argLen:  0,
22060		generic: true,
22061	},
22062	{
22063		name:      "Arg",
22064		auxType:   auxSymOff,
22065		argLen:    0,
22066		symEffect: SymNone,
22067		generic:   true,
22068	},
22069	{
22070		name:      "Addr",
22071		auxType:   auxSym,
22072		argLen:    1,
22073		symEffect: SymAddr,
22074		generic:   true,
22075	},
22076	{
22077		name:    "SP",
22078		argLen:  0,
22079		generic: true,
22080	},
22081	{
22082		name:    "SB",
22083		argLen:  0,
22084		generic: true,
22085	},
22086	{
22087		name:    "Load",
22088		argLen:  2,
22089		generic: true,
22090	},
22091	{
22092		name:    "Store",
22093		auxType: auxTyp,
22094		argLen:  3,
22095		generic: true,
22096	},
22097	{
22098		name:    "Move",
22099		auxType: auxTypSize,
22100		argLen:  3,
22101		generic: true,
22102	},
22103	{
22104		name:    "Zero",
22105		auxType: auxTypSize,
22106		argLen:  2,
22107		generic: true,
22108	},
22109	{
22110		name:    "StoreWB",
22111		auxType: auxTyp,
22112		argLen:  3,
22113		generic: true,
22114	},
22115	{
22116		name:    "MoveWB",
22117		auxType: auxTypSize,
22118		argLen:  3,
22119		generic: true,
22120	},
22121	{
22122		name:    "ZeroWB",
22123		auxType: auxTypSize,
22124		argLen:  2,
22125		generic: true,
22126	},
22127	{
22128		name:    "ClosureCall",
22129		auxType: auxInt64,
22130		argLen:  3,
22131		call:    true,
22132		generic: true,
22133	},
22134	{
22135		name:      "StaticCall",
22136		auxType:   auxSymOff,
22137		argLen:    1,
22138		call:      true,
22139		symEffect: SymNone,
22140		generic:   true,
22141	},
22142	{
22143		name:    "InterCall",
22144		auxType: auxInt64,
22145		argLen:  2,
22146		call:    true,
22147		generic: true,
22148	},
22149	{
22150		name:    "SignExt8to16",
22151		argLen:  1,
22152		generic: true,
22153	},
22154	{
22155		name:    "SignExt8to32",
22156		argLen:  1,
22157		generic: true,
22158	},
22159	{
22160		name:    "SignExt8to64",
22161		argLen:  1,
22162		generic: true,
22163	},
22164	{
22165		name:    "SignExt16to32",
22166		argLen:  1,
22167		generic: true,
22168	},
22169	{
22170		name:    "SignExt16to64",
22171		argLen:  1,
22172		generic: true,
22173	},
22174	{
22175		name:    "SignExt32to64",
22176		argLen:  1,
22177		generic: true,
22178	},
22179	{
22180		name:    "ZeroExt8to16",
22181		argLen:  1,
22182		generic: true,
22183	},
22184	{
22185		name:    "ZeroExt8to32",
22186		argLen:  1,
22187		generic: true,
22188	},
22189	{
22190		name:    "ZeroExt8to64",
22191		argLen:  1,
22192		generic: true,
22193	},
22194	{
22195		name:    "ZeroExt16to32",
22196		argLen:  1,
22197		generic: true,
22198	},
22199	{
22200		name:    "ZeroExt16to64",
22201		argLen:  1,
22202		generic: true,
22203	},
22204	{
22205		name:    "ZeroExt32to64",
22206		argLen:  1,
22207		generic: true,
22208	},
22209	{
22210		name:    "Trunc16to8",
22211		argLen:  1,
22212		generic: true,
22213	},
22214	{
22215		name:    "Trunc32to8",
22216		argLen:  1,
22217		generic: true,
22218	},
22219	{
22220		name:    "Trunc32to16",
22221		argLen:  1,
22222		generic: true,
22223	},
22224	{
22225		name:    "Trunc64to8",
22226		argLen:  1,
22227		generic: true,
22228	},
22229	{
22230		name:    "Trunc64to16",
22231		argLen:  1,
22232		generic: true,
22233	},
22234	{
22235		name:    "Trunc64to32",
22236		argLen:  1,
22237		generic: true,
22238	},
22239	{
22240		name:    "Cvt32to32F",
22241		argLen:  1,
22242		generic: true,
22243	},
22244	{
22245		name:    "Cvt32to64F",
22246		argLen:  1,
22247		generic: true,
22248	},
22249	{
22250		name:    "Cvt64to32F",
22251		argLen:  1,
22252		generic: true,
22253	},
22254	{
22255		name:    "Cvt64to64F",
22256		argLen:  1,
22257		generic: true,
22258	},
22259	{
22260		name:    "Cvt32Fto32",
22261		argLen:  1,
22262		generic: true,
22263	},
22264	{
22265		name:    "Cvt32Fto64",
22266		argLen:  1,
22267		generic: true,
22268	},
22269	{
22270		name:    "Cvt64Fto32",
22271		argLen:  1,
22272		generic: true,
22273	},
22274	{
22275		name:    "Cvt64Fto64",
22276		argLen:  1,
22277		generic: true,
22278	},
22279	{
22280		name:    "Cvt32Fto64F",
22281		argLen:  1,
22282		generic: true,
22283	},
22284	{
22285		name:    "Cvt64Fto32F",
22286		argLen:  1,
22287		generic: true,
22288	},
22289	{
22290		name:    "Round32F",
22291		argLen:  1,
22292		generic: true,
22293	},
22294	{
22295		name:    "Round64F",
22296		argLen:  1,
22297		generic: true,
22298	},
22299	{
22300		name:    "IsNonNil",
22301		argLen:  1,
22302		generic: true,
22303	},
22304	{
22305		name:    "IsInBounds",
22306		argLen:  2,
22307		generic: true,
22308	},
22309	{
22310		name:    "IsSliceInBounds",
22311		argLen:  2,
22312		generic: true,
22313	},
22314	{
22315		name:    "NilCheck",
22316		argLen:  2,
22317		generic: true,
22318	},
22319	{
22320		name:    "GetG",
22321		argLen:  1,
22322		generic: true,
22323	},
22324	{
22325		name:    "GetClosurePtr",
22326		argLen:  0,
22327		generic: true,
22328	},
22329	{
22330		name:    "PtrIndex",
22331		argLen:  2,
22332		generic: true,
22333	},
22334	{
22335		name:    "OffPtr",
22336		auxType: auxInt64,
22337		argLen:  1,
22338		generic: true,
22339	},
22340	{
22341		name:    "SliceMake",
22342		argLen:  3,
22343		generic: true,
22344	},
22345	{
22346		name:    "SlicePtr",
22347		argLen:  1,
22348		generic: true,
22349	},
22350	{
22351		name:    "SliceLen",
22352		argLen:  1,
22353		generic: true,
22354	},
22355	{
22356		name:    "SliceCap",
22357		argLen:  1,
22358		generic: true,
22359	},
22360	{
22361		name:    "ComplexMake",
22362		argLen:  2,
22363		generic: true,
22364	},
22365	{
22366		name:    "ComplexReal",
22367		argLen:  1,
22368		generic: true,
22369	},
22370	{
22371		name:    "ComplexImag",
22372		argLen:  1,
22373		generic: true,
22374	},
22375	{
22376		name:    "StringMake",
22377		argLen:  2,
22378		generic: true,
22379	},
22380	{
22381		name:    "StringPtr",
22382		argLen:  1,
22383		generic: true,
22384	},
22385	{
22386		name:    "StringLen",
22387		argLen:  1,
22388		generic: true,
22389	},
22390	{
22391		name:    "IMake",
22392		argLen:  2,
22393		generic: true,
22394	},
22395	{
22396		name:    "ITab",
22397		argLen:  1,
22398		generic: true,
22399	},
22400	{
22401		name:    "IData",
22402		argLen:  1,
22403		generic: true,
22404	},
22405	{
22406		name:    "StructMake0",
22407		argLen:  0,
22408		generic: true,
22409	},
22410	{
22411		name:    "StructMake1",
22412		argLen:  1,
22413		generic: true,
22414	},
22415	{
22416		name:    "StructMake2",
22417		argLen:  2,
22418		generic: true,
22419	},
22420	{
22421		name:    "StructMake3",
22422		argLen:  3,
22423		generic: true,
22424	},
22425	{
22426		name:    "StructMake4",
22427		argLen:  4,
22428		generic: true,
22429	},
22430	{
22431		name:    "StructSelect",
22432		auxType: auxInt64,
22433		argLen:  1,
22434		generic: true,
22435	},
22436	{
22437		name:    "ArrayMake0",
22438		argLen:  0,
22439		generic: true,
22440	},
22441	{
22442		name:    "ArrayMake1",
22443		argLen:  1,
22444		generic: true,
22445	},
22446	{
22447		name:    "ArraySelect",
22448		auxType: auxInt64,
22449		argLen:  1,
22450		generic: true,
22451	},
22452	{
22453		name:    "StoreReg",
22454		argLen:  1,
22455		generic: true,
22456	},
22457	{
22458		name:    "LoadReg",
22459		argLen:  1,
22460		generic: true,
22461	},
22462	{
22463		name:      "FwdRef",
22464		auxType:   auxSym,
22465		argLen:    0,
22466		symEffect: SymNone,
22467		generic:   true,
22468	},
22469	{
22470		name:    "Unknown",
22471		argLen:  0,
22472		generic: true,
22473	},
22474	{
22475		name:      "VarDef",
22476		auxType:   auxSym,
22477		argLen:    1,
22478		symEffect: SymNone,
22479		generic:   true,
22480	},
22481	{
22482		name:      "VarKill",
22483		auxType:   auxSym,
22484		argLen:    1,
22485		symEffect: SymNone,
22486		generic:   true,
22487	},
22488	{
22489		name:      "VarLive",
22490		auxType:   auxSym,
22491		argLen:    1,
22492		symEffect: SymNone,
22493		generic:   true,
22494	},
22495	{
22496		name:    "KeepAlive",
22497		argLen:  2,
22498		generic: true,
22499	},
22500	{
22501		name:    "Int64Make",
22502		argLen:  2,
22503		generic: true,
22504	},
22505	{
22506		name:    "Int64Hi",
22507		argLen:  1,
22508		generic: true,
22509	},
22510	{
22511		name:    "Int64Lo",
22512		argLen:  1,
22513		generic: true,
22514	},
22515	{
22516		name:        "Add32carry",
22517		argLen:      2,
22518		commutative: true,
22519		generic:     true,
22520	},
22521	{
22522		name:        "Add32withcarry",
22523		argLen:      3,
22524		commutative: true,
22525		generic:     true,
22526	},
22527	{
22528		name:    "Sub32carry",
22529		argLen:  2,
22530		generic: true,
22531	},
22532	{
22533		name:    "Sub32withcarry",
22534		argLen:  3,
22535		generic: true,
22536	},
22537	{
22538		name:    "Signmask",
22539		argLen:  1,
22540		generic: true,
22541	},
22542	{
22543		name:    "Zeromask",
22544		argLen:  1,
22545		generic: true,
22546	},
22547	{
22548		name:    "Slicemask",
22549		argLen:  1,
22550		generic: true,
22551	},
22552	{
22553		name:    "Cvt32Uto32F",
22554		argLen:  1,
22555		generic: true,
22556	},
22557	{
22558		name:    "Cvt32Uto64F",
22559		argLen:  1,
22560		generic: true,
22561	},
22562	{
22563		name:    "Cvt32Fto32U",
22564		argLen:  1,
22565		generic: true,
22566	},
22567	{
22568		name:    "Cvt64Fto32U",
22569		argLen:  1,
22570		generic: true,
22571	},
22572	{
22573		name:    "Cvt64Uto32F",
22574		argLen:  1,
22575		generic: true,
22576	},
22577	{
22578		name:    "Cvt64Uto64F",
22579		argLen:  1,
22580		generic: true,
22581	},
22582	{
22583		name:    "Cvt32Fto64U",
22584		argLen:  1,
22585		generic: true,
22586	},
22587	{
22588		name:    "Cvt64Fto64U",
22589		argLen:  1,
22590		generic: true,
22591	},
22592	{
22593		name:    "Select0",
22594		argLen:  1,
22595		generic: true,
22596	},
22597	{
22598		name:    "Select1",
22599		argLen:  1,
22600		generic: true,
22601	},
22602	{
22603		name:    "AtomicLoad32",
22604		argLen:  2,
22605		generic: true,
22606	},
22607	{
22608		name:    "AtomicLoad64",
22609		argLen:  2,
22610		generic: true,
22611	},
22612	{
22613		name:    "AtomicLoadPtr",
22614		argLen:  2,
22615		generic: true,
22616	},
22617	{
22618		name:           "AtomicStore32",
22619		argLen:         3,
22620		hasSideEffects: true,
22621		generic:        true,
22622	},
22623	{
22624		name:           "AtomicStore64",
22625		argLen:         3,
22626		hasSideEffects: true,
22627		generic:        true,
22628	},
22629	{
22630		name:           "AtomicStorePtrNoWB",
22631		argLen:         3,
22632		hasSideEffects: true,
22633		generic:        true,
22634	},
22635	{
22636		name:           "AtomicExchange32",
22637		argLen:         3,
22638		hasSideEffects: true,
22639		generic:        true,
22640	},
22641	{
22642		name:           "AtomicExchange64",
22643		argLen:         3,
22644		hasSideEffects: true,
22645		generic:        true,
22646	},
22647	{
22648		name:           "AtomicAdd32",
22649		argLen:         3,
22650		hasSideEffects: true,
22651		generic:        true,
22652	},
22653	{
22654		name:           "AtomicAdd64",
22655		argLen:         3,
22656		hasSideEffects: true,
22657		generic:        true,
22658	},
22659	{
22660		name:           "AtomicCompareAndSwap32",
22661		argLen:         4,
22662		hasSideEffects: true,
22663		generic:        true,
22664	},
22665	{
22666		name:           "AtomicCompareAndSwap64",
22667		argLen:         4,
22668		hasSideEffects: true,
22669		generic:        true,
22670	},
22671	{
22672		name:           "AtomicAnd8",
22673		argLen:         3,
22674		hasSideEffects: true,
22675		generic:        true,
22676	},
22677	{
22678		name:           "AtomicOr8",
22679		argLen:         3,
22680		hasSideEffects: true,
22681		generic:        true,
22682	},
22683	{
22684		name:      "Clobber",
22685		auxType:   auxSymOff,
22686		argLen:    0,
22687		symEffect: SymNone,
22688		generic:   true,
22689	},
22690}
22691
22692func (o Op) Asm() obj.As          { return opcodeTable[o].asm }
22693func (o Op) String() string       { return opcodeTable[o].name }
22694func (o Op) UsesScratch() bool    { return opcodeTable[o].usesScratch }
22695func (o Op) SymEffect() SymEffect { return opcodeTable[o].symEffect }
22696func (o Op) IsCall() bool         { return opcodeTable[o].call }
22697
22698var registers386 = [...]Register{
22699	{0, x86.REG_AX, "AX"},
22700	{1, x86.REG_CX, "CX"},
22701	{2, x86.REG_DX, "DX"},
22702	{3, x86.REG_BX, "BX"},
22703	{4, x86.REGSP, "SP"},
22704	{5, x86.REG_BP, "BP"},
22705	{6, x86.REG_SI, "SI"},
22706	{7, x86.REG_DI, "DI"},
22707	{8, x86.REG_X0, "X0"},
22708	{9, x86.REG_X1, "X1"},
22709	{10, x86.REG_X2, "X2"},
22710	{11, x86.REG_X3, "X3"},
22711	{12, x86.REG_X4, "X4"},
22712	{13, x86.REG_X5, "X5"},
22713	{14, x86.REG_X6, "X6"},
22714	{15, x86.REG_X7, "X7"},
22715	{16, 0, "SB"},
22716}
22717var gpRegMask386 = regMask(239)
22718var fpRegMask386 = regMask(65280)
22719var specialRegMask386 = regMask(0)
22720var framepointerReg386 = int8(5)
22721var linkReg386 = int8(-1)
22722var registersAMD64 = [...]Register{
22723	{0, x86.REG_AX, "AX"},
22724	{1, x86.REG_CX, "CX"},
22725	{2, x86.REG_DX, "DX"},
22726	{3, x86.REG_BX, "BX"},
22727	{4, x86.REGSP, "SP"},
22728	{5, x86.REG_BP, "BP"},
22729	{6, x86.REG_SI, "SI"},
22730	{7, x86.REG_DI, "DI"},
22731	{8, x86.REG_R8, "R8"},
22732	{9, x86.REG_R9, "R9"},
22733	{10, x86.REG_R10, "R10"},
22734	{11, x86.REG_R11, "R11"},
22735	{12, x86.REG_R12, "R12"},
22736	{13, x86.REG_R13, "R13"},
22737	{14, x86.REG_R14, "R14"},
22738	{15, x86.REG_R15, "R15"},
22739	{16, x86.REG_X0, "X0"},
22740	{17, x86.REG_X1, "X1"},
22741	{18, x86.REG_X2, "X2"},
22742	{19, x86.REG_X3, "X3"},
22743	{20, x86.REG_X4, "X4"},
22744	{21, x86.REG_X5, "X5"},
22745	{22, x86.REG_X6, "X6"},
22746	{23, x86.REG_X7, "X7"},
22747	{24, x86.REG_X8, "X8"},
22748	{25, x86.REG_X9, "X9"},
22749	{26, x86.REG_X10, "X10"},
22750	{27, x86.REG_X11, "X11"},
22751	{28, x86.REG_X12, "X12"},
22752	{29, x86.REG_X13, "X13"},
22753	{30, x86.REG_X14, "X14"},
22754	{31, x86.REG_X15, "X15"},
22755	{32, 0, "SB"},
22756}
22757var gpRegMaskAMD64 = regMask(65519)
22758var fpRegMaskAMD64 = regMask(4294901760)
22759var specialRegMaskAMD64 = regMask(0)
22760var framepointerRegAMD64 = int8(5)
22761var linkRegAMD64 = int8(-1)
22762var registersARM = [...]Register{
22763	{0, arm.REG_R0, "R0"},
22764	{1, arm.REG_R1, "R1"},
22765	{2, arm.REG_R2, "R2"},
22766	{3, arm.REG_R3, "R3"},
22767	{4, arm.REG_R4, "R4"},
22768	{5, arm.REG_R5, "R5"},
22769	{6, arm.REG_R6, "R6"},
22770	{7, arm.REG_R7, "R7"},
22771	{8, arm.REG_R8, "R8"},
22772	{9, arm.REG_R9, "R9"},
22773	{10, arm.REGG, "g"},
22774	{11, arm.REG_R11, "R11"},
22775	{12, arm.REG_R12, "R12"},
22776	{13, arm.REGSP, "SP"},
22777	{14, arm.REG_R14, "R14"},
22778	{15, arm.REG_R15, "R15"},
22779	{16, arm.REG_F0, "F0"},
22780	{17, arm.REG_F1, "F1"},
22781	{18, arm.REG_F2, "F2"},
22782	{19, arm.REG_F3, "F3"},
22783	{20, arm.REG_F4, "F4"},
22784	{21, arm.REG_F5, "F5"},
22785	{22, arm.REG_F6, "F6"},
22786	{23, arm.REG_F7, "F7"},
22787	{24, arm.REG_F8, "F8"},
22788	{25, arm.REG_F9, "F9"},
22789	{26, arm.REG_F10, "F10"},
22790	{27, arm.REG_F11, "F11"},
22791	{28, arm.REG_F12, "F12"},
22792	{29, arm.REG_F13, "F13"},
22793	{30, arm.REG_F14, "F14"},
22794	{31, arm.REG_F15, "F15"},
22795	{32, 0, "SB"},
22796}
22797var gpRegMaskARM = regMask(21503)
22798var fpRegMaskARM = regMask(4294901760)
22799var specialRegMaskARM = regMask(0)
22800var framepointerRegARM = int8(-1)
22801var linkRegARM = int8(14)
22802var registersARM64 = [...]Register{
22803	{0, arm64.REG_R0, "R0"},
22804	{1, arm64.REG_R1, "R1"},
22805	{2, arm64.REG_R2, "R2"},
22806	{3, arm64.REG_R3, "R3"},
22807	{4, arm64.REG_R4, "R4"},
22808	{5, arm64.REG_R5, "R5"},
22809	{6, arm64.REG_R6, "R6"},
22810	{7, arm64.REG_R7, "R7"},
22811	{8, arm64.REG_R8, "R8"},
22812	{9, arm64.REG_R9, "R9"},
22813	{10, arm64.REG_R10, "R10"},
22814	{11, arm64.REG_R11, "R11"},
22815	{12, arm64.REG_R12, "R12"},
22816	{13, arm64.REG_R13, "R13"},
22817	{14, arm64.REG_R14, "R14"},
22818	{15, arm64.REG_R15, "R15"},
22819	{16, arm64.REG_R16, "R16"},
22820	{17, arm64.REG_R17, "R17"},
22821	{18, arm64.REG_R18, "R18"},
22822	{19, arm64.REG_R19, "R19"},
22823	{20, arm64.REG_R20, "R20"},
22824	{21, arm64.REG_R21, "R21"},
22825	{22, arm64.REG_R22, "R22"},
22826	{23, arm64.REG_R23, "R23"},
22827	{24, arm64.REG_R24, "R24"},
22828	{25, arm64.REG_R25, "R25"},
22829	{26, arm64.REG_R26, "R26"},
22830	{27, arm64.REGG, "g"},
22831	{28, arm64.REG_R29, "R29"},
22832	{29, arm64.REG_R30, "R30"},
22833	{30, arm64.REGSP, "SP"},
22834	{31, arm64.REG_F0, "F0"},
22835	{32, arm64.REG_F1, "F1"},
22836	{33, arm64.REG_F2, "F2"},
22837	{34, arm64.REG_F3, "F3"},
22838	{35, arm64.REG_F4, "F4"},
22839	{36, arm64.REG_F5, "F5"},
22840	{37, arm64.REG_F6, "F6"},
22841	{38, arm64.REG_F7, "F7"},
22842	{39, arm64.REG_F8, "F8"},
22843	{40, arm64.REG_F9, "F9"},
22844	{41, arm64.REG_F10, "F10"},
22845	{42, arm64.REG_F11, "F11"},
22846	{43, arm64.REG_F12, "F12"},
22847	{44, arm64.REG_F13, "F13"},
22848	{45, arm64.REG_F14, "F14"},
22849	{46, arm64.REG_F15, "F15"},
22850	{47, arm64.REG_F16, "F16"},
22851	{48, arm64.REG_F17, "F17"},
22852	{49, arm64.REG_F18, "F18"},
22853	{50, arm64.REG_F19, "F19"},
22854	{51, arm64.REG_F20, "F20"},
22855	{52, arm64.REG_F21, "F21"},
22856	{53, arm64.REG_F22, "F22"},
22857	{54, arm64.REG_F23, "F23"},
22858	{55, arm64.REG_F24, "F24"},
22859	{56, arm64.REG_F25, "F25"},
22860	{57, arm64.REG_F26, "F26"},
22861	{58, arm64.REG_F27, "F27"},
22862	{59, arm64.REG_F28, "F28"},
22863	{60, arm64.REG_F29, "F29"},
22864	{61, arm64.REG_F30, "F30"},
22865	{62, arm64.REG_F31, "F31"},
22866	{63, 0, "SB"},
22867}
22868var gpRegMaskARM64 = regMask(670826495)
22869var fpRegMaskARM64 = regMask(9223372034707292160)
22870var specialRegMaskARM64 = regMask(0)
22871var framepointerRegARM64 = int8(-1)
22872var linkRegARM64 = int8(29)
22873var registersMIPS = [...]Register{
22874	{0, mips.REG_R0, "R0"},
22875	{1, mips.REG_R1, "R1"},
22876	{2, mips.REG_R2, "R2"},
22877	{3, mips.REG_R3, "R3"},
22878	{4, mips.REG_R4, "R4"},
22879	{5, mips.REG_R5, "R5"},
22880	{6, mips.REG_R6, "R6"},
22881	{7, mips.REG_R7, "R7"},
22882	{8, mips.REG_R8, "R8"},
22883	{9, mips.REG_R9, "R9"},
22884	{10, mips.REG_R10, "R10"},
22885	{11, mips.REG_R11, "R11"},
22886	{12, mips.REG_R12, "R12"},
22887	{13, mips.REG_R13, "R13"},
22888	{14, mips.REG_R14, "R14"},
22889	{15, mips.REG_R15, "R15"},
22890	{16, mips.REG_R16, "R16"},
22891	{17, mips.REG_R17, "R17"},
22892	{18, mips.REG_R18, "R18"},
22893	{19, mips.REG_R19, "R19"},
22894	{20, mips.REG_R20, "R20"},
22895	{21, mips.REG_R21, "R21"},
22896	{22, mips.REG_R22, "R22"},
22897	{23, mips.REG_R24, "R24"},
22898	{24, mips.REG_R25, "R25"},
22899	{25, mips.REG_R28, "R28"},
22900	{26, mips.REGSP, "SP"},
22901	{27, mips.REGG, "g"},
22902	{28, mips.REG_R31, "R31"},
22903	{29, mips.REG_F0, "F0"},
22904	{30, mips.REG_F2, "F2"},
22905	{31, mips.REG_F4, "F4"},
22906	{32, mips.REG_F6, "F6"},
22907	{33, mips.REG_F8, "F8"},
22908	{34, mips.REG_F10, "F10"},
22909	{35, mips.REG_F12, "F12"},
22910	{36, mips.REG_F14, "F14"},
22911	{37, mips.REG_F16, "F16"},
22912	{38, mips.REG_F18, "F18"},
22913	{39, mips.REG_F20, "F20"},
22914	{40, mips.REG_F22, "F22"},
22915	{41, mips.REG_F24, "F24"},
22916	{42, mips.REG_F26, "F26"},
22917	{43, mips.REG_F28, "F28"},
22918	{44, mips.REG_F30, "F30"},
22919	{45, mips.REG_HI, "HI"},
22920	{46, mips.REG_LO, "LO"},
22921	{47, 0, "SB"},
22922}
22923var gpRegMaskMIPS = regMask(335544318)
22924var fpRegMaskMIPS = regMask(35183835217920)
22925var specialRegMaskMIPS = regMask(105553116266496)
22926var framepointerRegMIPS = int8(-1)
22927var linkRegMIPS = int8(28)
22928var registersMIPS64 = [...]Register{
22929	{0, mips.REG_R0, "R0"},
22930	{1, mips.REG_R1, "R1"},
22931	{2, mips.REG_R2, "R2"},
22932	{3, mips.REG_R3, "R3"},
22933	{4, mips.REG_R4, "R4"},
22934	{5, mips.REG_R5, "R5"},
22935	{6, mips.REG_R6, "R6"},
22936	{7, mips.REG_R7, "R7"},
22937	{8, mips.REG_R8, "R8"},
22938	{9, mips.REG_R9, "R9"},
22939	{10, mips.REG_R10, "R10"},
22940	{11, mips.REG_R11, "R11"},
22941	{12, mips.REG_R12, "R12"},
22942	{13, mips.REG_R13, "R13"},
22943	{14, mips.REG_R14, "R14"},
22944	{15, mips.REG_R15, "R15"},
22945	{16, mips.REG_R16, "R16"},
22946	{17, mips.REG_R17, "R17"},
22947	{18, mips.REG_R18, "R18"},
22948	{19, mips.REG_R19, "R19"},
22949	{20, mips.REG_R20, "R20"},
22950	{21, mips.REG_R21, "R21"},
22951	{22, mips.REG_R22, "R22"},
22952	{23, mips.REG_R24, "R24"},
22953	{24, mips.REG_R25, "R25"},
22954	{25, mips.REGSP, "SP"},
22955	{26, mips.REGG, "g"},
22956	{27, mips.REG_R31, "R31"},
22957	{28, mips.REG_F0, "F0"},
22958	{29, mips.REG_F1, "F1"},
22959	{30, mips.REG_F2, "F2"},
22960	{31, mips.REG_F3, "F3"},
22961	{32, mips.REG_F4, "F4"},
22962	{33, mips.REG_F5, "F5"},
22963	{34, mips.REG_F6, "F6"},
22964	{35, mips.REG_F7, "F7"},
22965	{36, mips.REG_F8, "F8"},
22966	{37, mips.REG_F9, "F9"},
22967	{38, mips.REG_F10, "F10"},
22968	{39, mips.REG_F11, "F11"},
22969	{40, mips.REG_F12, "F12"},
22970	{41, mips.REG_F13, "F13"},
22971	{42, mips.REG_F14, "F14"},
22972	{43, mips.REG_F15, "F15"},
22973	{44, mips.REG_F16, "F16"},
22974	{45, mips.REG_F17, "F17"},
22975	{46, mips.REG_F18, "F18"},
22976	{47, mips.REG_F19, "F19"},
22977	{48, mips.REG_F20, "F20"},
22978	{49, mips.REG_F21, "F21"},
22979	{50, mips.REG_F22, "F22"},
22980	{51, mips.REG_F23, "F23"},
22981	{52, mips.REG_F24, "F24"},
22982	{53, mips.REG_F25, "F25"},
22983	{54, mips.REG_F26, "F26"},
22984	{55, mips.REG_F27, "F27"},
22985	{56, mips.REG_F28, "F28"},
22986	{57, mips.REG_F29, "F29"},
22987	{58, mips.REG_F30, "F30"},
22988	{59, mips.REG_F31, "F31"},
22989	{60, mips.REG_HI, "HI"},
22990	{61, mips.REG_LO, "LO"},
22991	{62, 0, "SB"},
22992}
22993var gpRegMaskMIPS64 = regMask(167772158)
22994var fpRegMaskMIPS64 = regMask(1152921504338411520)
22995var specialRegMaskMIPS64 = regMask(3458764513820540928)
22996var framepointerRegMIPS64 = int8(-1)
22997var linkRegMIPS64 = int8(27)
22998var registersPPC64 = [...]Register{
22999	{0, ppc64.REG_R0, "R0"},
23000	{1, ppc64.REGSP, "SP"},
23001	{2, 0, "SB"},
23002	{3, ppc64.REG_R3, "R3"},
23003	{4, ppc64.REG_R4, "R4"},
23004	{5, ppc64.REG_R5, "R5"},
23005	{6, ppc64.REG_R6, "R6"},
23006	{7, ppc64.REG_R7, "R7"},
23007	{8, ppc64.REG_R8, "R8"},
23008	{9, ppc64.REG_R9, "R9"},
23009	{10, ppc64.REG_R10, "R10"},
23010	{11, ppc64.REG_R11, "R11"},
23011	{12, ppc64.REG_R12, "R12"},
23012	{13, ppc64.REG_R13, "R13"},
23013	{14, ppc64.REG_R14, "R14"},
23014	{15, ppc64.REG_R15, "R15"},
23015	{16, ppc64.REG_R16, "R16"},
23016	{17, ppc64.REG_R17, "R17"},
23017	{18, ppc64.REG_R18, "R18"},
23018	{19, ppc64.REG_R19, "R19"},
23019	{20, ppc64.REG_R20, "R20"},
23020	{21, ppc64.REG_R21, "R21"},
23021	{22, ppc64.REG_R22, "R22"},
23022	{23, ppc64.REG_R23, "R23"},
23023	{24, ppc64.REG_R24, "R24"},
23024	{25, ppc64.REG_R25, "R25"},
23025	{26, ppc64.REG_R26, "R26"},
23026	{27, ppc64.REG_R27, "R27"},
23027	{28, ppc64.REG_R28, "R28"},
23028	{29, ppc64.REG_R29, "R29"},
23029	{30, ppc64.REGG, "g"},
23030	{31, ppc64.REG_R31, "R31"},
23031	{32, ppc64.REG_F0, "F0"},
23032	{33, ppc64.REG_F1, "F1"},
23033	{34, ppc64.REG_F2, "F2"},
23034	{35, ppc64.REG_F3, "F3"},
23035	{36, ppc64.REG_F4, "F4"},
23036	{37, ppc64.REG_F5, "F5"},
23037	{38, ppc64.REG_F6, "F6"},
23038	{39, ppc64.REG_F7, "F7"},
23039	{40, ppc64.REG_F8, "F8"},
23040	{41, ppc64.REG_F9, "F9"},
23041	{42, ppc64.REG_F10, "F10"},
23042	{43, ppc64.REG_F11, "F11"},
23043	{44, ppc64.REG_F12, "F12"},
23044	{45, ppc64.REG_F13, "F13"},
23045	{46, ppc64.REG_F14, "F14"},
23046	{47, ppc64.REG_F15, "F15"},
23047	{48, ppc64.REG_F16, "F16"},
23048	{49, ppc64.REG_F17, "F17"},
23049	{50, ppc64.REG_F18, "F18"},
23050	{51, ppc64.REG_F19, "F19"},
23051	{52, ppc64.REG_F20, "F20"},
23052	{53, ppc64.REG_F21, "F21"},
23053	{54, ppc64.REG_F22, "F22"},
23054	{55, ppc64.REG_F23, "F23"},
23055	{56, ppc64.REG_F24, "F24"},
23056	{57, ppc64.REG_F25, "F25"},
23057	{58, ppc64.REG_F26, "F26"},
23058	{59, ppc64.REG_F27, "F27"},
23059	{60, ppc64.REG_F28, "F28"},
23060	{61, ppc64.REG_F29, "F29"},
23061	{62, ppc64.REG_F30, "F30"},
23062	{63, ppc64.REG_F31, "F31"},
23063}
23064var gpRegMaskPPC64 = regMask(1073733624)
23065var fpRegMaskPPC64 = regMask(576460743713488896)
23066var specialRegMaskPPC64 = regMask(0)
23067var framepointerRegPPC64 = int8(1)
23068var linkRegPPC64 = int8(-1)
23069var registersS390X = [...]Register{
23070	{0, s390x.REG_R0, "R0"},
23071	{1, s390x.REG_R1, "R1"},
23072	{2, s390x.REG_R2, "R2"},
23073	{3, s390x.REG_R3, "R3"},
23074	{4, s390x.REG_R4, "R4"},
23075	{5, s390x.REG_R5, "R5"},
23076	{6, s390x.REG_R6, "R6"},
23077	{7, s390x.REG_R7, "R7"},
23078	{8, s390x.REG_R8, "R8"},
23079	{9, s390x.REG_R9, "R9"},
23080	{10, s390x.REG_R10, "R10"},
23081	{11, s390x.REG_R11, "R11"},
23082	{12, s390x.REG_R12, "R12"},
23083	{13, s390x.REGG, "g"},
23084	{14, s390x.REG_R14, "R14"},
23085	{15, s390x.REGSP, "SP"},
23086	{16, s390x.REG_F0, "F0"},
23087	{17, s390x.REG_F1, "F1"},
23088	{18, s390x.REG_F2, "F2"},
23089	{19, s390x.REG_F3, "F3"},
23090	{20, s390x.REG_F4, "F4"},
23091	{21, s390x.REG_F5, "F5"},
23092	{22, s390x.REG_F6, "F6"},
23093	{23, s390x.REG_F7, "F7"},
23094	{24, s390x.REG_F8, "F8"},
23095	{25, s390x.REG_F9, "F9"},
23096	{26, s390x.REG_F10, "F10"},
23097	{27, s390x.REG_F11, "F11"},
23098	{28, s390x.REG_F12, "F12"},
23099	{29, s390x.REG_F13, "F13"},
23100	{30, s390x.REG_F14, "F14"},
23101	{31, s390x.REG_F15, "F15"},
23102	{32, 0, "SB"},
23103}
23104var gpRegMaskS390X = regMask(21503)
23105var fpRegMaskS390X = regMask(4294901760)
23106var specialRegMaskS390X = regMask(0)
23107var framepointerRegS390X = int8(-1)
23108var linkRegS390X = int8(14)
23109