]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.simd] all: merge master (4c4cefc) into dev.simd
authorCherry Mui <cherryyz@google.com>
Wed, 3 Sep 2025 15:19:43 +0000 (11:19 -0400)
committerCherry Mui <cherryyz@google.com>
Wed, 3 Sep 2025 15:19:43 +0000 (11:19 -0400)
Merge List:

+ 2025-09-03 4c4cefc19a cmd/gofmt: simplify logic to process arguments
+ 2025-09-03 925a3cdcd1 unicode/utf8: make DecodeRune{,InString} inlineable
+ 2025-09-03 3e596d448f math: rename Modf parameter int to integer
+ 2025-09-02 2a7f1d47b0 runtime: use one more address bit for tagged pointers
+ 2025-09-02 b09068041a cmd/dist: run racebench tests only in longtest mode
+ 2025-09-02 355370ac52 runtime: add comment for concatstring2
+ 2025-09-02 1eec830f54 go/doc: linkify interface methods
+ 2025-08-31 7bba745820 cmd/compile: use generated loops instead of DUFFZERO on loong64
+ 2025-08-31 882335e2cb cmd/internal/obj/loong64: add LDPTR.{W/D} and STPTR.{W/D} instructions support
+ 2025-08-31 d4b17f5869 internal/runtime/atomic: reset wrong jump target in Cas{,64} on loong64
+ 2025-08-31 6a08e80399 net/http: skip redirecting in ServeMux when URL path for CONNECT is empty
+ 2025-08-29 8bcda6c79d runtime/race: add race detector support for linux/riscv64
+ 2025-08-29 8377adafc5 cmd/cgo: split loadDWARF into two parts
+ 2025-08-29 a7d9d5a80a cmd/cgo: move typedefs and typedefList out of Package
+ 2025-08-29 1d459c4357 all: delete more windows/arm remnants
+ 2025-08-29 27ce6e4e26 cmd/compile: remove sign extension before MULW on riscv64
+ 2025-08-29 84b070bfb1 cmd/compile/internal/ssa: make oneBit function generic
+ 2025-08-29 fe42628dae internal/cpu: inline DebugOptions
+ 2025-08-29 94b7d519bd net: update document on limitation of iprawsock on Windows
+ 2025-08-29 ba9e1ddccf testing: allow specify temp dir by GOTMPDIR environment variable
+ 2025-08-29 9f6936b8da cmd/link: disallow linkname of runtime.addmoduledata
+ 2025-08-29 89d41d254a bytes, strings: speed up TrimSpace
+ 2025-08-29 38204e0872 testing/synctest: call out common issues with tests
+ 2025-08-29 252c901125 os,syscall: pass file flags to CreateFile on Windows
+ 2025-08-29 53515fb0a9 crypto/tls: use hash.Cloner
+ 2025-08-28 13bb48e6fb go/constant: fix complex != unknown comparison
+ 2025-08-28 ba1109feb5 net: remove redundant cgoLookupCNAME return parameter
+ 2025-08-28 f74ed44ed9 net/http/httputil: remove redundant pw.Close() call in DumpRequestOut
+ 2025-08-28 a9689d2e0b time: skip TestLongAdjustTimers in short mode on single CPU systems
+ 2025-08-28 ebc763f76d syscall: only get parent PID if SysProcAttr.Pdeathsig is set
+ 2025-08-28 7f1864b0a8 strings: remove redundant "runs" from string.Fields docstring
+ 2025-08-28 90c21fa5b6 net/textproto: eliminate some bounds checks
+ 2025-08-27 e47d88beae os: return nil slice when ReadDir is used with a file on file_windows
+ 2025-08-27 6b837a64db cmd/internal/obj/loong64: simplify buildop
+ 2025-08-27 765905e3bd debug/elf: don't panic if symtab too small
+ 2025-08-27 2ee4b31242 net/http: Ensure that CONNECT proxied requests respect MaxResponseHeaderBytes
+ 2025-08-27 b21867b1a2 net/http: require exact match for CrossSiteProtection bypass patterns
+ 2025-08-27 d19e377f6e cmd/cgo: make it safe to run gcc in parallel
+ 2025-08-27 49a2f3ed87 net: allow zero value destination address in WriteMsgUDPAddrPort
+ 2025-08-26 afc51ed007 internall/poll: remove bufs field from Windows' poll.operation
+ 2025-08-26 801b74eb95 internal/poll: remove rsa field from Windows' poll.operation
+ 2025-08-26 fa18c547cd syscall: sort Windows env block in StartProcess
+ 2025-08-26 bfd130db02 internal/poll: don't use stack-allocated WSAMsg parameters
+ 2025-08-26 dae9e456ae runtime: identify virtual memory layout for riscv64
+ 2025-08-25 25c2d4109f math: use Trunc to implement Modf
+ 2025-08-25 4e05a070c4 math: implement IsInf using Abs
+ 2025-08-25 1eed4f32a0 math: optimize Signbit implementation slightly
+ 2025-08-25 bd71b94659 cmd/compile/internal: optimizing add+sll rule using ALSLV instruction on loong64
+ 2025-08-25 ea55ca3600 runtime: skip doInit of plugins in runtime.main
+ 2025-08-25 9ae2f1fb57 internal/trace: skip async preempt off tests on low end systems
+ 2025-08-25 bbd5342a62 net: fix cgoResSearch
+ 2025-08-25 ed7f804775 os: set full name for Roots created with Root.OpenRoot
+ 2025-08-25 a21249436b internal/poll: use fdMutex to provide read/write locking on Windows
+ 2025-08-24 44c5956bf7 test/codegen: add Mul2 and DivPow2 test for loong64
+ 2025-08-24 0aa8019e94 test/codegen: add Mul* test for loong64
+ 2025-08-24 83420974b7 test/codegen: add sqrt* abs and copysign test for loong64
+ 2025-08-23 f2db0dca0b net/http/httptest: redirect example.com requests to server
+ 2025-08-22 d86ec92499 internal/syscall/windows: increase internal Windows O_ flags values
+ 2025-08-22 9d3f7fda70 crypto/tls: fix quic comment typo
+ 2025-08-22 78a05c541f internal/poll: don't pass non-nil WSAMsg.Name with 0 namelen on windows
+ 2025-08-22 52c3f73fda runtime/metrics: improve doc
+ 2025-08-22 a076f49757 os: fix Root.MkdirAll to handle race of directory creation
+ 2025-08-22 98238fd495 all: delete remaining windows/arm code
+ 2025-08-21 1ad30844d9 cmd/asm: process forward jump to PCALIGN
+ 2025-08-21 13c082601d internal/poll: permit nil destination address in WriteMsg{Inet4,Inet6}
+ 2025-08-21 9b0a507735 runtime: remove remaining windows/arm files and comments
+ 2025-08-21 1843f1e9c0 cmd/compile: use zero register instead of specialized *zero instructions on loong64
+ 2025-08-21 e0870a0a12 cmd/compile: simplify zerorange on loong64
+ 2025-08-21 fb8bbe46d5 cmd/compile/internal/ssa: eliminate unnecessary extension operations
+ 2025-08-21 9632ba8160 cmd/compile: optimize some patterns into revb2h/revb4h instruction on loong64
+ 2025-08-21 8dcab6f450 syscall: simplify execve handling on libc platforms
+ 2025-08-21 ba840c1bf9 cmd/compile: deduplication in the source code generated by mknode
+ 2025-08-21 fa706ea50f cmd/compile: optimize rule (x + x) << c to x << c+1 on loong64
+ 2025-08-21 ffc85ee1f1 cmd/internal/objabi,cmd/link: add support for additional riscv64 relocations

Change-Id: I3896f74b1a3cc0a52b29ca48767bb0ba84620f71

1  2 
src/cmd/compile/internal/ssa/_gen/generic.rules
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/rewritegeneric.go
src/cmd/dist/test.go
src/internal/cpu/cpu.go
src/runtime/proc.go

index b584d1509d99f370836ce8071c6ba3730d166f04,7bdb14cec9a5de7b8e9732598e2c96c8f9862232..e7f06fccf7ee6608f3ed767a6262255fc61c66d8
@@@ -44400,25275 -40558,45 +44395,25210 @@@ var opcodeTable = [...]opInfo
                        },
                },
        },
 -
        {
 -              name:        "Add8",
 -              argLen:      2,
 -              commutative: true,
 -              generic:     true,
 +              name:           "MOVWUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
        },
        {
 -              name:        "Add16",
 -              argLen:      2,
 -              commutative: true,
 -              generic:     true,
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
        },
        {
 -              name:        "Add32",
 -              argLen:      2,
 -              commutative: true,
 -              generic:     true,
 +              name:           "FMOVSload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
        },
        {
 -              name:        "Add64",
 -              argLen:      2,
 -              commutative: true,
 -              generic:     true,
 +              name:           "FMOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
        },
        {
 -              name:    "AddPtr",
 -              argLen:  2,
 -              generic: true,
 +              name:           "LDP",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.ALDP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                              {1, 402653183}, // R0 R1 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
 +                      },
 +              },
        },
        {
 -              name:        "Add32F",
 -              argLen:      2,
 -              commutative: true,
 -              generic:     true,
 +              name:           "LDPW",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.ALDPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                              {1, 402653183}, // R0 R1 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
 +                      },
 +              },
        },
        {
 -              name:        "Add64F",
 -              argLen:      2,
 +              name:           "LDPSW",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.ALDPSW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                              {1, 402653183}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FLDPD",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AFLDPD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FLDPS",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            arm64.AFLDPS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUloadidx",
 +              argLen: 3,
 +              asm:    arm64.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSloadidx",
 +              argLen: 3,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDloadidx",
 +              argLen: 3,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHloadidx2",
 +              argLen: 3,
 +              asm:    arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUloadidx2",
 +              argLen: 3,
 +              asm:    arm64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWloadidx4",
 +              argLen: 3,
 +              asm:    arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUloadidx4",
 +              argLen: 3,
 +              asm:    arm64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDloadidx8",
 +              argLen: 3,
 +              asm:    arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSloadidx4",
 +              argLen: 3,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDloadidx8",
 +              argLen: 3,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVSstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STP",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.ASTP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STPW",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.ASTPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FSTPD",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AFSTPD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FSTPS",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            arm64.AFSTPS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDstoreidx",
 +              argLen: 4,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHstoreidx2",
 +              argLen: 4,
 +              asm:    arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWstoreidx4",
 +              argLen: 4,
 +              asm:    arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDstoreidx8",
 +              argLen: 4,
 +              asm:    arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSstoreidx4",
 +              argLen: 4,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDstoreidx8",
 +              argLen: 4,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 402653183},           // R0 R1 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
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDgpfp",
 +              argLen: 1,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDfpgp",
 +              argLen: 1,
 +              asm:    arm64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSgpfp",
 +              argLen: 1,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSfpgp",
 +              argLen: 1,
 +              asm:    arm64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDreg",
 +              argLen: 1,
 +              asm:    arm64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MOVDnop",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SCVTFWS",
 +              argLen: 1,
 +              asm:    arm64.ASCVTFWS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SCVTFWD",
 +              argLen: 1,
 +              asm:    arm64.ASCVTFWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "UCVTFWS",
 +              argLen: 1,
 +              asm:    arm64.AUCVTFWS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "UCVTFWD",
 +              argLen: 1,
 +              asm:    arm64.AUCVTFWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SCVTFS",
 +              argLen: 1,
 +              asm:    arm64.ASCVTFS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SCVTFD",
 +              argLen: 1,
 +              asm:    arm64.ASCVTFD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "UCVTFS",
 +              argLen: 1,
 +              asm:    arm64.AUCVTFS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "UCVTFD",
 +              argLen: 1,
 +              asm:    arm64.AUCVTFD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZSSW",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZSSW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZSDW",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZSDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZUSW",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZUSW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZUDW",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZUDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZSS",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZSS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZSD",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZUS",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZUS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTZUD",
 +              argLen: 1,
 +              asm:    arm64.AFCVTZUD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTSD",
 +              argLen: 1,
 +              asm:    arm64.AFCVTSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTDS",
 +              argLen: 1,
 +              asm:    arm64.AFCVTDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRINTAD",
 +              argLen: 1,
 +              asm:    arm64.AFRINTAD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRINTMD",
 +              argLen: 1,
 +              asm:    arm64.AFRINTMD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRINTND",
 +              argLen: 1,
 +              asm:    arm64.AFRINTND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRINTPD",
 +              argLen: 1,
 +              asm:    arm64.AFRINTPD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRINTZD",
 +              argLen: 1,
 +              asm:    arm64.AFRINTZD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSEL",
 +              auxType: auxCCop,
 +              argLen:  3,
 +              asm:     arm64.ACSEL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                              {1, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSEL0",
 +              auxType: auxCCop,
 +              argLen:  2,
 +              asm:     arm64.ACSEL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSINC",
 +              auxType: auxCCop,
 +              argLen:  3,
 +              asm:     arm64.ACSINC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                              {1, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSINV",
 +              auxType: auxCCop,
 +              argLen:  3,
 +              asm:     arm64.ACSINV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                              {1, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSNEG",
 +              auxType: auxCCop,
 +              argLen:  3,
 +              asm:     arm64.ACSNEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                              {1, 335544319}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CSETM",
 +              auxType: auxCCop,
 +              argLen:  1,
 +              asm:     arm64.ACSETM,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      clobbers: 9223372035109945343, // R0 R1 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
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      clobbers: 9223372035109945343, // R0 R1 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
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 33554432},   // R26
 +                              {0, 1409286143}, // R0 R1 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
 +                      },
 +                      clobbers: 9223372035109945343, // R0 R1 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
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      clobbers: 9223372035109945343, // R0 R1 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
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 402653183}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "Equal",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessThanU",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessEqualU",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterThanU",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterEqualU",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessThanF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessEqualF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterThanF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterEqualF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotLessThanF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotLessEqualF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotGreaterThanF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotGreaterEqualF",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessThanNoov",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterEqualNoov",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredZeroLoop",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              needIntTemp:    true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +                      clobbersArg0: true,
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 310378495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R26 R30
 +                              {1, 310378495}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R23 R26 R30
 +                      },
 +                      clobbers: 25165824, // R24 R25
 +              },
 +      },
 +      {
 +              name:           "LoweredMoveLoop",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 306184191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R26 R30
 +                              {1, 306184191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R19 R20 R21 R22 R26 R30
 +                      },
 +                      clobbers:     29360128, // R23 R24 R25
 +                      clobbersArg0: true,
 +                      clobbersArg1: true,
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 33554432}, // R26
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "FlagConstant",
 +              auxType: auxFlagConstant,
 +              argLen:  0,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:   "InvertFlags",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:           "LDAR",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            arm64.ALDAR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LDARB",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            arm64.ALDARB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LDARW",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            arm64.ALDARW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STLRB",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            arm64.ASTLRB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STLR",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            arm64.ASTLR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STLRW",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            arm64.ASTLRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange8",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange8Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64Variant",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32Variant",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {2, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd8",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr8",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AORR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AORR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              needIntTemp:     true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              asm:             arm64.AORR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd8Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr8Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd64Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr64Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd32Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr32Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 939524095},           // R0 R1 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 ZERO
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 335544319}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 9223372034975924224, // R16 R17 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
 +                      outputs: []outputInfo{
 +                              {0, 16777216}, // R25
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                              {1, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:           "PRFM",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              hasSideEffects: true,
 +              asm:            arm64.APRFM,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372038331170815}, // R0 R1 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "DMB",
 +              auxType:        auxInt64,
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            arm64.ADMB,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:      "ZERO",
 +              argLen:    0,
 +              zeroWidth: true,
 +              fixedReg:  true,
 +              reg:       regInfo{},
 +      },
 +
 +      {
 +              name:   "NEGV",
 +              argLen: 1,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGF",
 +              argLen: 1,
 +              asm:    loong64.ANEGF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGD",
 +              argLen: 1,
 +              asm:    loong64.ANEGD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTD",
 +              argLen: 1,
 +              asm:    loong64.ASQRTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTF",
 +              argLen: 1,
 +              asm:    loong64.ASQRTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ABSD",
 +              argLen: 1,
 +              asm:    loong64.AABSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CLZW",
 +              argLen: 1,
 +              asm:    loong64.ACLZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CLZV",
 +              argLen: 1,
 +              asm:    loong64.ACLZV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CTZW",
 +              argLen: 1,
 +              asm:    loong64.ACTZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CTZV",
 +              argLen: 1,
 +              asm:    loong64.ACTZV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REVB2H",
 +              argLen: 1,
 +              asm:    loong64.AREVB2H,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REVB2W",
 +              argLen: 1,
 +              asm:    loong64.AREVB2W,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
++      {
++              name:   "REVB4H",
++              argLen: 1,
++              asm:    loong64.AREVB4H,
++              reg: regInfo{
++                      inputs: []inputInfo{
++                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                      },
++                      outputs: []outputInfo{
++                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
++                      },
++              },
++      },
 +      {
 +              name:   "REVBV",
 +              argLen: 1,
 +              asm:    loong64.AREVBV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BITREV4B",
 +              argLen: 1,
 +              asm:    loong64.ABITREV4B,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BITREVW",
 +              argLen: 1,
 +              asm:    loong64.ABITREVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BITREVV",
 +              argLen: 1,
 +              asm:    loong64.ABITREVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "VPCNT64",
 +              argLen: 1,
 +              asm:    loong64.AVPCNTV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "VPCNT32",
 +              argLen: 1,
 +              asm:    loong64.AVPCNTW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "VPCNT16",
 +              argLen: 1,
 +              asm:    loong64.AVPCNTH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AADDVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AADDVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741820}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBV",
 +              argLen: 2,
 +              asm:    loong64.ASUBVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SUBVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASUBVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AMULV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AMULHV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHVU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AMULHVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVV",
 +              argLen: 2,
 +              asm:    loong64.ADIVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVVU",
 +              argLen: 2,
 +              asm:    loong64.ADIVVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REMV",
 +              argLen: 2,
 +              asm:    loong64.AREMV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REMVU",
 +              argLen: 2,
 +              asm:    loong64.AREMVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AADDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBF",
 +              argLen: 2,
 +              asm:    loong64.ASUBF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBD",
 +              argLen: 2,
 +              asm:    loong64.ASUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AMULF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AMULD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVF",
 +              argLen: 2,
 +              asm:    loong64.ADIVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVD",
 +              argLen: 2,
 +              asm:    loong64.ADIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "AND",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ANDconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "OR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "XORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "NOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         loong64.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "NORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ANDN",
 +              argLen: 2,
 +              asm:    loong64.AANDN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ORN",
 +              argLen: 2,
 +              asm:    loong64.AORN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMADDF",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFMADDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMADDD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFMADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMSUBF",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFMSUBF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMSUBD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFMSUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMADDF",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFNMADDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMADDD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFNMADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMSUBF",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFNMSUBF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMSUBD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         loong64.AFNMSUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "FMINF",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             loong64.AFMINF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "FMIND",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             loong64.AFMIND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "FMAXF",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             loong64.AFMAXF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "FMAXD",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             loong64.AFMAXD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MASKEQZ",
 +              argLen: 2,
 +              asm:    loong64.AMASKEQZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MASKNEZ",
 +              argLen: 2,
 +              asm:    loong64.AMASKNEZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCOPYSGD",
 +              argLen: 2,
 +              asm:    loong64.AFCOPYSGD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLL",
 +              argLen: 2,
 +              asm:    loong64.ASLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLLV",
 +              argLen: 2,
 +              asm:    loong64.ASLLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASLLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRL",
 +              argLen: 2,
 +              asm:    loong64.ASRL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRLV",
 +              argLen: 2,
 +              asm:    loong64.ASRLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASRL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASRLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRA",
 +              argLen: 2,
 +              asm:    loong64.ASRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRAV",
 +              argLen: 2,
 +              asm:    loong64.ASRAV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASRAV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROTR",
 +              argLen: 2,
 +              asm:    loong64.AROTR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROTRV",
 +              argLen: 2,
 +              asm:    loong64.AROTRV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ROTRconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AROTR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ROTRVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.AROTRV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGT",
 +              argLen: 2,
 +              asm:    loong64.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGTU",
 +              argLen: 2,
 +              asm:    loong64.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTUconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQF",
 +              argLen: 2,
 +              asm:    loong64.ACMPEQF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQD",
 +              argLen: 2,
 +              asm:    loong64.ACMPEQD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGEF",
 +              argLen: 2,
 +              asm:    loong64.ACMPGEF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGED",
 +              argLen: 2,
 +              asm:    loong64.ACMPGED,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTF",
 +              argLen: 2,
 +              asm:    loong64.ACMPGTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTD",
 +              argLen: 2,
 +              asm:    loong64.ACMPGTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "BSTRPICKW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ABSTRPICKW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "BSTRPICKV",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     loong64.ABSTRPICKV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVVconst",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               loong64.AMOVV,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVFconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               loong64.AMOVF,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               loong64.AMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVVaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              asm:               loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686018427387908}, // SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVVload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            loong64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVFloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDloadidx",
 +              argLen: 3,
 +              asm:    loong64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVVstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            loong64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                              {1, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {2, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {2, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {2, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {2, 1073741817},          // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVFstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDstoreidx",
 +              argLen: 4,
 +              asm:    loong64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                              {2, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
-       {
-               name:           "MOVBstorezero",
-               auxType:        auxSymOff,
-               argLen:         2,
-               faultOnNilArg0: true,
-               symEffect:      SymWrite,
-               asm:            loong64.AMOVB,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:           "MOVHstorezero",
-               auxType:        auxSymOff,
-               argLen:         2,
-               faultOnNilArg0: true,
-               symEffect:      SymWrite,
-               asm:            loong64.AMOVH,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:           "MOVWstorezero",
-               auxType:        auxSymOff,
-               argLen:         2,
-               faultOnNilArg0: true,
-               symEffect:      SymWrite,
-               asm:            loong64.AMOVW,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:           "MOVVstorezero",
-               auxType:        auxSymOff,
-               argLen:         2,
-               faultOnNilArg0: true,
-               symEffect:      SymWrite,
-               asm:            loong64.AMOVV,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:   "MOVBstorezeroidx",
-               argLen: 3,
-               asm:    loong64.AMOVB,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:   "MOVHstorezeroidx",
-               argLen: 3,
-               asm:    loong64.AMOVH,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:   "MOVWstorezeroidx",
-               argLen: 3,
-               asm:    loong64.AMOVW,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
-       {
-               name:   "MOVVstorezeroidx",
-               argLen: 3,
-               asm:    loong64.AMOVV,
-               reg: regInfo{
-                       inputs: []inputInfo{
-                               {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
-                       },
-               },
-       },
 +      {
 +              name:   "MOVWfpgp",
 +              argLen: 1,
 +              asm:    loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWgpfp",
 +              argLen: 1,
 +              asm:    loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVfpgp",
 +              argLen: 1,
 +              asm:    loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVgpfp",
 +              argLen: 1,
 +              asm:    loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVreg",
 +              argLen: 1,
 +              asm:    loong64.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MOVVnop",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWF",
 +              argLen: 1,
 +              asm:    loong64.AMOVWF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWD",
 +              argLen: 1,
 +              asm:    loong64.AMOVWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVF",
 +              argLen: 1,
 +              asm:    loong64.AMOVVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVD",
 +              argLen: 1,
 +              asm:    loong64.AMOVVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCFW",
 +              argLen: 1,
 +              asm:    loong64.ATRUNCFW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCDW",
 +              argLen: 1,
 +              asm:    loong64.ATRUNCDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCFV",
 +              argLen: 1,
 +              asm:    loong64.ATRUNCFV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCDV",
 +              argLen: 1,
 +              asm:    loong64.ATRUNCDV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVFD",
 +              argLen: 1,
 +              asm:    loong64.AMOVFD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDF",
 +              argLen: 1,
 +              asm:    loong64.AMOVDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound32F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound64F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4611686017353646080}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      clobbers: 4611686018427387896, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 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
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      clobbers: 4611686018427387896, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 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
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 268435456},  // R29
 +                              {0, 1071644668}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      clobbers: 4611686018427387896, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 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
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      clobbers: 4611686018427387896, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 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
 +              },
 +      },
 +      {
 +              name:           "DUFFZERO",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 524288}, // R20
 +                      },
 +                      clobbers: 524290, // R1 R20
 +              },
 +      },
++      {
++              name:           "LoweredZero",
++              auxType:        auxInt64,
++              argLen:         2,
++              faultOnNilArg0: true,
++              reg: regInfo{
++                      inputs: []inputInfo{
++                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
++                      },
++              },
++      },
 +      {
 +              name:           "DUFFCOPY",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576}, // R21
 +                              {1, 524288},  // R20
 +                      },
 +                      clobbers: 1572866, // R1 R20 R21
 +              },
 +      },
 +      {
-               name:           "LoweredZero",
++              name:           "LoweredZeroLoop",
 +              auxType:        auxInt64,
-               argLen:         3,
++              argLen:         2,
++              needIntTemp:    true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
-                               {0, 524288},     // R20
-                               {1, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
++                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
-                       clobbers: 524288, // R20
++                      clobbersArg0: true,
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576},    // R21
 +                              {1, 524288},     // R20
 +                              {2, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      clobbers: 1572864, // R20 R21
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad8",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad32",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad64",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore64",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8Variant",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32Variant",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore64Variant",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange8Variant",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64Variant",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32Variant",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {2, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMANDDBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMORDBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd32value",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMANDDBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAnd64value",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMANDDBV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr32value",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMORDBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicOr64value",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              asm:             loong64.AAMORDBV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741816},          // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                              {0, 4611686019501129724}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagTrue",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagFalse",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 268435456}, // R29
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 4611686017353646082, // R1 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
 +                      outputs: []outputInfo{
 +                              {0, 268435456}, // R29
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredPubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            loong64.ADBAR,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 524280}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19
 +                              {1, 524280}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 524280}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 524280}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:           "PRELD",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              hasSideEffects: true,
 +              asm:            loong64.APRELD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741820}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:           "PRELDX",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              hasSideEffects: true,
 +              asm:            loong64.APRELDX,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741820}, // SP R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDshiftLLV",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     loong64.AALSLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
-                               {1, 1073741816}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
++                              {1, 1073741817}, // ZERO R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 g R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1071644664}, // R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R23 R24 R25 R26 R27 R28 R29 R31
 +                      },
 +              },
 +      },
++      {
++              name:      "ZERO",
++              argLen:    0,
++              zeroWidth: true,
++              fixedReg:  true,
++              reg:       regInfo{},
++      },
 +
 +      {
 +              name:        "ADD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.AADDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUB",
 +              argLen: 2,
 +              asm:    mips.ASUBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SUBconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASUBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MUL",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMUL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 105553116266496, // HI LO
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULT",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMUL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35184372088832}, // HI
 +                              {1, 70368744177664}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULTU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35184372088832}, // HI
 +                              {1, 70368744177664}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIV",
 +              argLen: 2,
 +              asm:    mips.ADIV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35184372088832}, // HI
 +                              {1, 70368744177664}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVU",
 +              argLen: 2,
 +              asm:    mips.ADIVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35184372088832}, // HI
 +                              {1, 70368744177664}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBF",
 +              argLen: 2,
 +              asm:    mips.ASUBF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBD",
 +              argLen: 2,
 +              asm:    mips.ASUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVF",
 +              argLen: 2,
 +              asm:    mips.ADIVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVD",
 +              argLen: 2,
 +              asm:    mips.ADIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "AND",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ANDconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "OR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ORconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "XORconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "NOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "NORconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEG",
 +              argLen: 1,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGF",
 +              argLen: 1,
 +              asm:    mips.ANEGF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGD",
 +              argLen: 1,
 +              asm:    mips.ANEGD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ABSD",
 +              argLen: 1,
 +              asm:    mips.AABSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTD",
 +              argLen: 1,
 +              asm:    mips.ASQRTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTF",
 +              argLen: 1,
 +              asm:    mips.ASQRTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLL",
 +              argLen: 2,
 +              asm:    mips.ASLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRL",
 +              argLen: 2,
 +              asm:    mips.ASRL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASRL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRA",
 +              argLen: 2,
 +              asm:    mips.ASRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CLZ",
 +              argLen: 1,
 +              asm:    mips.ACLZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGT",
 +              argLen: 2,
 +              asm:    mips.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGTzero",
 +              argLen: 1,
 +              asm:    mips.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGTU",
 +              argLen: 2,
 +              asm:    mips.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTUconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     mips.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGTUzero",
 +              argLen: 1,
 +              asm:    mips.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQF",
 +              argLen: 2,
 +              asm:    mips.ACMPEQF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQD",
 +              argLen: 2,
 +              asm:    mips.ACMPEQD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGEF",
 +              argLen: 2,
 +              asm:    mips.ACMPGEF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGED",
 +              argLen: 2,
 +              asm:    mips.ACMPGED,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTF",
 +              argLen: 2,
 +              asm:    mips.ACMPGTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTD",
 +              argLen: 2,
 +              asm:    mips.ACMPGTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {1, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVWconst",
 +              auxType:           auxInt32,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVW,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVFconst",
 +              auxType:           auxFloat32,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVF,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVWaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              asm:               mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 140737555464192}, // SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 35183835217920},  // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 35183835217920},  // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWfpgp",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWgpfp",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUreg",
 +              argLen: 1,
 +              asm:    mips.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUreg",
 +              argLen: 1,
 +              asm:    mips.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MOVWnop",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CMOVZ",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          mips.ACMOVZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CMOVZzero",
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          mips.ACMOVZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWF",
 +              argLen: 1,
 +              asm:    mips.AMOVWF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWD",
 +              argLen: 1,
 +              asm:    mips.AMOVWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCFW",
 +              argLen: 1,
 +              asm:    mips.ATRUNCFW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCDW",
 +              argLen: 1,
 +              asm:    mips.ATRUNCDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVFD",
 +              argLen: 1,
 +              asm:    mips.AMOVFD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDF",
 +              argLen: 1,
 +              asm:    mips.AMOVDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 35183835217920}, // F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       3,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 4194304},   // R22
 +                              {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
 +                      },
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       2,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      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
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad8",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad32",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStorezero",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAddconst",
 +              auxType:         auxInt32,
 +              argLen:          2,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicAnd",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              unsafePoint:    true,
 +              asm:            mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicOr",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              unsafePoint:    true,
 +              asm:            mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt32,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},         // R1
 +                              {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
 +                      },
 +                      clobbers: 2, // R1
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt32,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4},         // R2
 +                              {1, 2},         // R1
 +                              {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
 +                      },
 +                      clobbers: 6, // R1 R2
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagTrue",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagFalse",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4194304}, // R22
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 140737219919872, // R31 F0 F2 F4 F6 F8 F10 F12 F14 F16 F18 F20 F22 F24 F26 F28 F30 HI LO
 +                      outputs: []outputInfo{
 +                              {0, 16777216}, // R25
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredPubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            mips.ASYNC,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                              {1, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicExtendRR",
 +              auxType: auxInt64,
 +              argLen:  4,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 30},     // R1 R2 R3 R4
 +                              {1, 30},     // R1 R2 R3 R4
 +                              {2, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicExtendRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 30}, // R1 R2 R3 R4
 +                              {1, 30}, // R1 R2 R3 R4
 +                      },
 +              },
 +      },
 +
 +      {
 +              name:        "ADDV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.AADDVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBV",
 +              argLen: 2,
 +              asm:    mips.ASUBVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SUBVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASUBVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1152921504606846976}, // HI
 +                              {1, 2305843009213693952}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULVU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1152921504606846976}, // HI
 +                              {1, 2305843009213693952}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVV",
 +              argLen: 2,
 +              asm:    mips.ADIVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1152921504606846976}, // HI
 +                              {1, 2305843009213693952}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVVU",
 +              argLen: 2,
 +              asm:    mips.ADIVVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1152921504606846976}, // HI
 +                              {1, 2305843009213693952}, // LO
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBF",
 +              argLen: 2,
 +              asm:    mips.ASUBF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBD",
 +              argLen: 2,
 +              asm:    mips.ASUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULF",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AMULD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVF",
 +              argLen: 2,
 +              asm:    mips.ADIVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVD",
 +              argLen: 2,
 +              asm:    mips.ADIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "AND",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ANDconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "OR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "XORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "NOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         mips.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "NORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGV",
 +              argLen: 1,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGF",
 +              argLen: 1,
 +              asm:    mips.ANEGF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGD",
 +              argLen: 1,
 +              asm:    mips.ANEGD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ABSD",
 +              argLen: 1,
 +              asm:    mips.AABSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTD",
 +              argLen: 1,
 +              asm:    mips.ASQRTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SQRTF",
 +              argLen: 1,
 +              asm:    mips.ASQRTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLLV",
 +              argLen: 2,
 +              asm:    mips.ASLLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASLLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRLV",
 +              argLen: 2,
 +              asm:    mips.ASRLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASRLV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRAV",
 +              argLen: 2,
 +              asm:    mips.ASRAV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAVconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASRAV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGT",
 +              argLen: 2,
 +              asm:    mips.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASGT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SGTU",
 +              argLen: 2,
 +              asm:    mips.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SGTUconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     mips.ASGTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQF",
 +              argLen: 2,
 +              asm:    mips.ACMPEQF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPEQD",
 +              argLen: 2,
 +              asm:    mips.ACMPEQD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGEF",
 +              argLen: 2,
 +              asm:    mips.ACMPGEF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGED",
 +              argLen: 2,
 +              asm:    mips.ACMPGED,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTF",
 +              argLen: 2,
 +              asm:    mips.ACMPGTF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPGTD",
 +              argLen: 2,
 +              asm:    mips.ACMPGTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVVconst",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVV,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVFconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVF,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               mips.AMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVVaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              asm:               mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4611686018460942336}, // SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVVload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            mips.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVVstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVFstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVVstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWfpgp",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWgpfp",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVfpgp",
 +              argLen: 1,
 +              asm:    mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVgpfp",
 +              argLen: 1,
 +              asm:    mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    mips.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUreg",
 +              argLen: 1,
 +              asm:    mips.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    mips.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUreg",
 +              argLen: 1,
 +              asm:    mips.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    mips.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUreg",
 +              argLen: 1,
 +              asm:    mips.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVreg",
 +              argLen: 1,
 +              asm:    mips.AMOVV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MOVVnop",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWF",
 +              argLen: 1,
 +              asm:    mips.AMOVWF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWD",
 +              argLen: 1,
 +              asm:    mips.AMOVWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVF",
 +              argLen: 1,
 +              asm:    mips.AMOVVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVVD",
 +              argLen: 1,
 +              asm:    mips.AMOVVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCFW",
 +              argLen: 1,
 +              asm:    mips.ATRUNCFW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCDW",
 +              argLen: 1,
 +              asm:    mips.ATRUNCDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCFV",
 +              argLen: 1,
 +              asm:    mips.ATRUNCFV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "TRUNCDV",
 +              argLen: 1,
 +              asm:    mips.ATRUNCDV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVFD",
 +              argLen: 1,
 +              asm:    mips.AMOVFD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDF",
 +              argLen: 1,
 +              asm:    mips.AMOVDF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       3,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 4194304},   // R22
 +                              {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
 +                      },
 +                      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
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       2,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      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
 +              },
 +      },
 +      {
 +              name:           "DUFFZERO",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 134217730, // R1 R31
 +              },
 +      },
 +      {
 +              name:           "DUFFCOPY",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4}, // R2
 +                              {1, 2}, // R1
 +                      },
 +                      clobbers: 134217734, // R1 R2 R31
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},         // R1
 +                              {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
 +                      },
 +                      clobbers: 2, // R1
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4},         // R2
 +                              {1, 2},         // R1
 +                              {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
 +                      },
 +                      clobbers: 6, // R1 R2
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicAnd32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              unsafePoint:    true,
 +              asm:            mips.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicOr32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              unsafePoint:    true,
 +              asm:            mips.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad8",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad32",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad64",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore64",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStorezero32",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStorezero64",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAddconst32",
 +              auxType:         auxInt32,
 +              argLen:          2,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAddconst64",
 +              auxType:         auxInt64,
 +              argLen:          2,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {2, 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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {2, 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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagTrue",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FPFlagFalse",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4194304}, // R22
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 4611686018293170176, // 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
 +                      outputs: []outputInfo{
 +                              {0, 16777216}, // R25
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredPubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            mips.ASYNC,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                              {1, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 131070}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +
 +      {
 +              name:        "ADD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AADDCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDCCconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AADDCCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FADD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AFADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FADDS",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AFADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUB",
 +              argLen: 2,
 +              asm:    ppc64.ASUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBCC",
 +              argLen: 2,
 +              asm:    ppc64.ASUBCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SUBFCconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASUBC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSUB",
 +              argLen: 2,
 +              asm:    ppc64.AFSUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSUBS",
 +              argLen: 2,
 +              asm:    ppc64.AFSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "XSMINJDP",
 +              argLen: 2,
 +              asm:    ppc64.AXSMINJDP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "XSMAXJDP",
 +              argLen: 2,
 +              asm:    ppc64.AXSMAXJDP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULLD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULLW",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "MULLDconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.AMULLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "MULLWconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.AMULLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MADDLD",
 +              argLen: 3,
 +              asm:    ppc64.AMADDLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULHD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHW",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULHW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHDU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULHDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHDUCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULHDUCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHWU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AMULHWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMUL",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AFMUL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMULS",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AFMULS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMADD",
 +              argLen: 3,
 +              asm:    ppc64.AFMADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMADDS",
 +              argLen: 3,
 +              asm:    ppc64.AFMADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMSUB",
 +              argLen: 3,
 +              asm:    ppc64.AFMSUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMSUBS",
 +              argLen: 3,
 +              asm:    ppc64.AFMSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRAD",
 +              argLen: 2,
 +              asm:    ppc64.ASRAD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRAW",
 +              argLen: 2,
 +              asm:    ppc64.ASRAW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRD",
 +              argLen: 2,
 +              asm:    ppc64.ASRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRW",
 +              argLen: 2,
 +              asm:    ppc64.ASRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLD",
 +              argLen: 2,
 +              asm:    ppc64.ASLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLW",
 +              argLen: 2,
 +              asm:    ppc64.ASLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROTL",
 +              argLen: 2,
 +              asm:    ppc64.AROTL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROTLW",
 +              argLen: 2,
 +              asm:    ppc64.AROTLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CLRLSLWI",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ACLRLSLWI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CLRLSLDI",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ACLRLSLDI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AADDC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBC",
 +              argLen: 2,
 +              asm:    ppc64.ASUBC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDCconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AADDC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SUBCconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASUBC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDE",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         ppc64.AADDE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {2, 9223372036854775808}, // XER
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ADDZE",
 +              argLen: 2,
 +              asm:    ppc64.AADDZE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBE",
 +              argLen: 3,
 +              asm:    ppc64.ASUBE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {2, 9223372036854775808}, // XER
 +                              {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
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {1, 9223372036854775808}, // XER
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ADDZEzero",
 +              argLen: 1,
 +              asm:    ppc64.AADDZE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372036854775808}, // XER
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBZEzero",
 +              argLen: 1,
 +              asm:    ppc64.ASUBZE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372036854775808}, // XER
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRADconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASRAD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAWconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASRAW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 9223372036854775808, // XER
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRDconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRWconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLDconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLWconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ASLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ROTLconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AROTL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ROTLWconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AROTLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "EXTSWSLconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AEXTSWSLI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLWINM",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ARLWNM,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLWNM",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     ppc64.ARLWNM,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "RLWMI",
 +              auxType:      auxInt64,
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          ppc64.ARLWMI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLDICL",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ARLDICL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLDICLCC",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ARLDICLCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLDICR",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ARLDICR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CNTLZD",
 +              argLen: 1,
 +              asm:    ppc64.ACNTLZD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CNTLZDCC",
 +              argLen: 1,
 +              asm:    ppc64.ACNTLZDCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CNTLZW",
 +              argLen: 1,
 +              asm:    ppc64.ACNTLZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CNTTZD",
 +              argLen: 1,
 +              asm:    ppc64.ACNTTZD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CNTTZW",
 +              argLen: 1,
 +              asm:    ppc64.ACNTTZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "POPCNTD",
 +              argLen: 1,
 +              asm:    ppc64.APOPCNTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "POPCNTW",
 +              argLen: 1,
 +              asm:    ppc64.APOPCNTW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "POPCNTB",
 +              argLen: 1,
 +              asm:    ppc64.APOPCNTB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FDIV",
 +              argLen: 2,
 +              asm:    ppc64.AFDIV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FDIVS",
 +              argLen: 2,
 +              asm:    ppc64.AFDIVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVD",
 +              argLen: 2,
 +              asm:    ppc64.ADIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVW",
 +              argLen: 2,
 +              asm:    ppc64.ADIVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVDU",
 +              argLen: 2,
 +              asm:    ppc64.ADIVDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVWU",
 +              argLen: 2,
 +              asm:    ppc64.ADIVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MODUD",
 +              argLen: 2,
 +              asm:    ppc64.AMODUD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MODSD",
 +              argLen: 2,
 +              asm:    ppc64.AMODSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MODUW",
 +              argLen: 2,
 +              asm:    ppc64.AMODUW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MODSW",
 +              argLen: 2,
 +              asm:    ppc64.AMODSW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCTIDZ",
 +              argLen: 1,
 +              asm:    ppc64.AFCTIDZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCTIWZ",
 +              argLen: 1,
 +              asm:    ppc64.AFCTIWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCFID",
 +              argLen: 1,
 +              asm:    ppc64.AFCFID,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCFIDS",
 +              argLen: 1,
 +              asm:    ppc64.AFCFIDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FRSP",
 +              argLen: 1,
 +              asm:    ppc64.AFRSP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MFVSRD",
 +              argLen: 1,
 +              asm:    ppc64.AMFVSRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MTVSRD",
 +              argLen: 1,
 +              asm:    ppc64.AMTVSRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "AND",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ANDN",
 +              argLen: 2,
 +              asm:    ppc64.AANDN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ANDNCC",
 +              argLen: 2,
 +              asm:    ppc64.AANDNCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ANDCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AANDCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "OR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ORN",
 +              argLen: 2,
 +              asm:    ppc64.AORN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ORCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AORCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "NOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.ANOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "NORCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.ANORCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XORCC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AXORCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "EQV",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         ppc64.AEQV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEG",
 +              argLen: 1,
 +              asm:    ppc64.ANEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGCC",
 +              argLen: 1,
 +              asm:    ppc64.ANEGCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BRD",
 +              argLen: 1,
 +              asm:    ppc64.ABRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BRW",
 +              argLen: 1,
 +              asm:    ppc64.ABRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "BRH",
 +              argLen: 1,
 +              asm:    ppc64.ABRH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FNEG",
 +              argLen: 1,
 +              asm:    ppc64.AFNEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRT",
 +              argLen: 1,
 +              asm:    ppc64.AFSQRT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRTS",
 +              argLen: 1,
 +              asm:    ppc64.AFSQRTS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FFLOOR",
 +              argLen: 1,
 +              asm:    ppc64.AFRIM,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCEIL",
 +              argLen: 1,
 +              asm:    ppc64.AFRIP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FTRUNC",
 +              argLen: 1,
 +              asm:    ppc64.AFRIZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FROUND",
 +              argLen: 1,
 +              asm:    ppc64.AFRIN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FABS",
 +              argLen: 1,
 +              asm:    ppc64.AFABS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FNABS",
 +              argLen: 1,
 +              asm:    ppc64.AFNABS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCPSGN",
 +              argLen: 2,
 +              asm:    ppc64.AFCPSGN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "XORconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ANDCCconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.AANDCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ANDconst",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          ppc64.AANDCC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBZreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHZreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWZreg",
 +              argLen: 1,
 +              asm:    ppc64.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDBRload",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWBRload",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHBRload",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBZloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHZloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWZloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHBRloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWBRloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDBRloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSloadidx",
 +              argLen: 3,
 +              asm:    ppc64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "DCBT",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              hasSideEffects: true,
 +              asm:            ppc64.ADCBT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDBRstore",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWBRstore",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHBRstore",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              asm:            ppc64.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVSload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            ppc64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVSstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVDstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMOVSstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHBRstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWBRstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDBRstoreidx",
 +              argLen: 4,
 +              asm:    ppc64.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              asm:               ppc64.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               ppc64.AMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "FMOVDconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               ppc64.AFMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "FMOVSconst",
 +              auxType:           auxFloat32,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               ppc64.AFMOVS,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCMPU",
 +              argLen: 2,
 +              asm:    ppc64.AFCMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                              {1, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMP",
 +              argLen: 2,
 +              asm:    ppc64.ACMP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPU",
 +              argLen: 2,
 +              asm:    ppc64.ACMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPW",
 +              argLen: 2,
 +              asm:    ppc64.ACMPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPWU",
 +              argLen: 2,
 +              asm:    ppc64.ACMPWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ACMP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPUconst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     ppc64.ACMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPWconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ACMPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPWUconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ACMPWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ISEL",
 +              auxType: auxInt32,
 +              argLen:  3,
 +              asm:     ppc64.AISEL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ISELZ",
 +              auxType: auxInt32,
 +              argLen:  2,
 +              asm:     ppc64.AISEL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SETBC",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ASETBC,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SETBCR",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     ppc64.ASETBCR,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "Equal",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NotEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLessThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LessEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLessEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FGreaterThan",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "GreaterEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FGreaterEqual",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 2048}, // R11
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              clobberFlags:   true,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      clobbers: 2147483648, // R31
 +              },
 +      },
 +      {
 +              name:         "LoweredRound32F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              zeroWidth:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound64F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              zeroWidth:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 9223372032559808512}, // 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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      clobbers: 18446744071562059768, // 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 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 XER
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      clobbers: 18446744071562059768, // 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 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 XER
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4096}, // R12
 +                              {1, 2048}, // R11
 +                      },
 +                      clobbers: 18446744071562059768, // 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 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 XER
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       -1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4096}, // R12
 +                      },
 +                      clobbers: 18446744071562059768, // 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 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 XER
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576}, // R20
 +                      },
 +                      clobbers: 1048576, // R20
 +              },
 +      },
 +      {
 +              name:           "LoweredZeroShort",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredQuadZeroShort",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredQuadZero",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576}, // R20
 +                      },
 +                      clobbers: 1048576, // R20
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576}, // R20
 +                              {1, 2097152}, // R21
 +                      },
 +                      clobbers: 3145728, // R20 R21
 +              },
 +      },
 +      {
 +              name:           "LoweredMoveShort",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredQuadMove",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048576}, // R20
 +                              {1, 2097152}, // R21
 +                      },
 +                      clobbers: 3145728, // R20 R21
 +              },
 +      },
 +      {
 +              name:           "LoweredQuadMoveShort",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              unsafePoint:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore64",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad8",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad32",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad64",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoadPtr",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange8",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64",
 +              auxType:         auxInt64,
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32",
 +              auxType:         auxInt64,
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              clobberFlags:    true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicAnd8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            ppc64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicAnd32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            ppc64.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicOr8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            ppc64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicOr32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            ppc64.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 18446744072632408064, // R11 R12 R18 R19 R22 R23 R24 R25 R26 R27 R28 R29 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 XER
 +                      outputs: []outputInfo{
 +                              {0, 536870912}, // R29
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredPubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            ppc64.ALWSYNC,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1016}, // R3 R4 R5 R6 R7 R8 R9
 +                              {1, 1016}, // R3 R4 R5 R6 R7 R8 R9
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1016}, // R3 R4 R5 R6 R7 R8 R9
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1016}, // R3 R4 R5 R6 R7 R8 R9
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:   "InvertFlags",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagEQ",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagLT",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagGT",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +
 +      {
 +              name:        "ADD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.AADDI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDIW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.AADDIW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEG",
 +              argLen: 1,
 +              asm:    riscv.ANEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NEGW",
 +              argLen: 1,
 +              asm:    riscv.ANEGW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUB",
 +              argLen: 2,
 +              asm:    riscv.ASUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBW",
 +              argLen: 2,
 +              asm:    riscv.ASUBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MUL",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMUL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULW",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMULW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULH",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMULH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MULHU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMULHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredMuluhilo",
 +              argLen:          2,
 +              resultNotInArgs: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredMuluover",
 +              argLen:          2,
 +              resultNotInArgs: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIV",
 +              argLen: 2,
 +              asm:    riscv.ADIV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVU",
 +              argLen: 2,
 +              asm:    riscv.ADIVU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVW",
 +              argLen: 2,
 +              asm:    riscv.ADIVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "DIVUW",
 +              argLen: 2,
 +              asm:    riscv.ADIVUW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REM",
 +              argLen: 2,
 +              asm:    riscv.AREM,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REMU",
 +              argLen: 2,
 +              asm:    riscv.AREMU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REMW",
 +              argLen: 2,
 +              asm:    riscv.AREMW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REMUW",
 +              argLen: 2,
 +              asm:    riscv.AREMUW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              asm:               riscv.AMOV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               riscv.AMOV,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWUload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstorezero",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDreg",
 +              argLen: 1,
 +              asm:    riscv.AMOV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBUreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVBU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHUreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVHU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWUreg",
 +              argLen: 1,
 +              asm:    riscv.AMOVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MOVDnop",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLL",
 +              argLen: 2,
 +              asm:    riscv.ASLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLLW",
 +              argLen: 2,
 +              asm:    riscv.ASLLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRA",
 +              argLen: 2,
 +              asm:    riscv.ASRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRAW",
 +              argLen: 2,
 +              asm:    riscv.ASRAW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRL",
 +              argLen: 2,
 +              asm:    riscv.ASRL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRLW",
 +              argLen: 2,
 +              asm:    riscv.ASRLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASLLI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLLIW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASLLIW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASRAI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRAIW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASRAIW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASRLI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRLIW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASRLIW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SH1ADD",
 +              argLen: 2,
 +              asm:    riscv.ASH1ADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SH2ADD",
 +              argLen: 2,
 +              asm:    riscv.ASH2ADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SH3ADD",
 +              argLen: 2,
 +              asm:    riscv.ASH3ADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "AND",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ANDN",
 +              argLen: 2,
 +              asm:    riscv.AANDN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ANDI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.AANDI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CLZ",
 +              argLen: 1,
 +              asm:    riscv.ACLZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CLZW",
 +              argLen: 1,
 +              asm:    riscv.ACLZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CPOP",
 +              argLen: 1,
 +              asm:    riscv.ACPOP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CPOPW",
 +              argLen: 1,
 +              asm:    riscv.ACPOPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CTZ",
 +              argLen: 1,
 +              asm:    riscv.ACTZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CTZW",
 +              argLen: 1,
 +              asm:    riscv.ACTZW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "NOT",
 +              argLen: 1,
 +              asm:    riscv.ANOT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "OR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ORN",
 +              argLen: 2,
 +              asm:    riscv.AORN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ORI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.AORI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "REV8",
 +              argLen: 1,
 +              asm:    riscv.AREV8,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROL",
 +              argLen: 2,
 +              asm:    riscv.AROL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROLW",
 +              argLen: 2,
 +              asm:    riscv.AROLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "ROR",
 +              argLen: 2,
 +              asm:    riscv.AROR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RORI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ARORI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RORIW",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ARORIW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "RORW",
 +              argLen: 2,
 +              asm:    riscv.ARORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XNOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AXNOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "XOR",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "XORI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.AXORI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MIN",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMIN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MAX",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMAX,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MINU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMINU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MAXU",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AMAXU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SEQZ",
 +              argLen: 1,
 +              asm:    riscv.ASEQZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SNEZ",
 +              argLen: 1,
 +              asm:    riscv.ASNEZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLT",
 +              argLen: 2,
 +              asm:    riscv.ASLT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLTI",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASLTI,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLTU",
 +              argLen: 2,
 +              asm:    riscv.ASLTU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLTIU",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     riscv.ASLTIU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound32F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound64F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CALLstatic",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              reg: regInfo{
 +                      clobbers: 9223372035781033968, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 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
 +              },
 +      },
 +      {
 +              name:     "CALLtail",
 +              auxType:  auxCallOff,
 +              argLen:   -1,
 +              call:     true,
 +              tailCall: true,
 +              reg: regInfo{
 +                      clobbers: 9223372035781033968, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 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
 +              },
 +      },
 +      {
 +              name:    "CALLclosure",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 33554432},   // X26
 +                              {0, 1006632946}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      clobbers: 9223372035781033968, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 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
 +              },
 +      },
 +      {
 +              name:    "CALLinter",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      clobbers: 9223372035781033968, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 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
 +              },
 +      },
 +      {
 +              name:           "DUFFZERO",
 +              auxType:        auxInt64,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 16777216}, // X25
 +                      },
 +                      clobbers: 16777216, // X25
 +              },
 +      },
 +      {
 +              name:           "DUFFCOPY",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 16777216}, // X25
 +                              {1, 8388608},  // X24
 +                      },
 +                      clobbers: 25165824, // X24 X25
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 16},         // X5
 +                              {1, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      clobbers: 16, // X5
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         4,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 16},         // X5
 +                              {1, 32},         // X6
 +                              {2, 1006632880}, // X5 X6 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      clobbers: 112, // X5 X6 X7
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad8",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad32",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicLoad64",
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore8",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicStore64",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1006632946},          // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicExchange64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd32",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicAdd64",
 +              argLen:          3,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas32",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {2, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredAtomicCas64",
 +              argLen:          4,
 +              resultNotInArgs: true,
 +              faultOnNilArg0:  true,
 +              hasSideEffects:  true,
 +              unsafePoint:     true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {2, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicAnd32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            riscv.AAMOANDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicOr32",
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              asm:            riscv.AAMOORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1073741808},          // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30
 +                              {0, 9223372037928517618}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 g X28 X29 X30 SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632946}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LoweredGetClosurePtr",
 +              argLen: 0,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 33554432}, // X26
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 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
 +                      outputs: []outputInfo{
 +                              {0, 8388608}, // X24
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredPubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              asm:            riscv.AFENCE,
 +              reg:            regInfo{},
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048560}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20
 +                              {1, 1048560}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048560}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1048560}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:        "FADDS",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSUBS",
 +              argLen: 2,
 +              asm:    riscv.AFSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMULS",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFMULS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FDIVS",
 +              argLen: 2,
 +              asm:    riscv.AFDIVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMADDS",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFMADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMSUBS",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFMSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMADDS",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFNMADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMSUBS",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFNMSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRTS",
 +              argLen: 1,
 +              asm:    riscv.AFSQRTS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FNEGS",
 +              argLen: 1,
 +              asm:    riscv.AFNEGS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMVSX",
 +              argLen: 1,
 +              asm:    riscv.AFMVSX,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMVXS",
 +              argLen: 1,
 +              asm:    riscv.AFMVXS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTSW",
 +              argLen: 1,
 +              asm:    riscv.AFCVTSW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTSL",
 +              argLen: 1,
 +              asm:    riscv.AFCVTSL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTWS",
 +              argLen: 1,
 +              asm:    riscv.AFCVTWS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTLS",
 +              argLen: 1,
 +              asm:    riscv.AFCVTLS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVF,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FEQS",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFEQS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNES",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFNES,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLTS",
 +              argLen: 2,
 +              asm:    riscv.AFLTS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLES",
 +              argLen: 2,
 +              asm:    riscv.AFLES,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredFMAXS",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             riscv.AFMAXS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredFMINS",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             riscv.AFMINS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FADDD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSUBD",
 +              argLen: 2,
 +              asm:    riscv.AFSUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMULD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFMULD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FDIVD",
 +              argLen: 2,
 +              asm:    riscv.AFDIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMADDD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFMADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FMSUBD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFMSUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMADDD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFNMADDD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNMSUBD",
 +              argLen:      3,
 +              commutative: true,
 +              asm:         riscv.AFNMSUBD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                              {2, 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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRTD",
 +              argLen: 1,
 +              asm:    riscv.AFSQRTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FNEGD",
 +              argLen: 1,
 +              asm:    riscv.AFNEGD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FABSD",
 +              argLen: 1,
 +              asm:    riscv.AFABSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSGNJD",
 +              argLen: 2,
 +              asm:    riscv.AFSGNJD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMVDX",
 +              argLen: 1,
 +              asm:    riscv.AFMVDX,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FMVXD",
 +              argLen: 1,
 +              asm:    riscv.AFMVXD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTDW",
 +              argLen: 1,
 +              asm:    riscv.AFCVTDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTDL",
 +              argLen: 1,
 +              asm:    riscv.AFCVTDL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTWD",
 +              argLen: 1,
 +              asm:    riscv.AFCVTWD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTLD",
 +              argLen: 1,
 +              asm:    riscv.AFCVTLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTDS",
 +              argLen: 1,
 +              asm:    riscv.AFCVTDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCVTSD",
 +              argLen: 1,
 +              asm:    riscv.AFCVTSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            riscv.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            riscv.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 9223372037861408754}, // SP X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30 SB
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FEQD",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFEQD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:        "FNED",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         riscv.AFNED,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLTD",
 +              argLen: 2,
 +              asm:    riscv.AFLTD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FLED",
 +              argLen: 2,
 +              asm:    riscv.AFLED,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredFMIND",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             riscv.AFMIND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:            "LoweredFMAXD",
 +              argLen:          2,
 +              commutative:     true,
 +              resultNotInArgs: true,
 +              asm:             riscv.AFMAXD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {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
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCLASSS",
 +              argLen: 1,
 +              asm:    riscv.AFCLASSS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCLASSD",
 +              argLen: 1,
 +              asm:    riscv.AFCLASSD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {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
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 1006632944}, // X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X28 X29 X30
 +                      },
 +              },
 +      },
 +
 +      {
 +              name:         "FADDS",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              asm:          s390x.AFADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FADD",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              asm:          s390x.AFADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FSUBS",
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          s390x.AFSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FSUB",
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          s390x.AFSUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMULS",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              asm:          s390x.AFMULS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMUL",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              asm:          s390x.AFMUL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FDIVS",
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          s390x.AFDIVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FDIV",
 +              argLen:       2,
 +              resultInArg0: true,
 +              asm:          s390x.AFDIV,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FNEGS",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.AFNEGS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FNEG",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.AFNEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMADDS",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.AFMADDS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMADD",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.AFMADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMSUBS",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.AFMSUBS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FMSUB",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.AFMSUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LPDFR",
 +              argLen: 1,
 +              asm:    s390x.ALPDFR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LNDFR",
 +              argLen: 1,
 +              asm:    s390x.ALNDFR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CPSDR",
 +              argLen: 2,
 +              asm:    s390x.ACPSDR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "WFMAXDB",
 +              argLen: 2,
 +              asm:    s390x.AWFMAXDB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "WFMAXSB",
 +              argLen: 2,
 +              asm:    s390x.AWFMAXSB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "WFMINDB",
 +              argLen: 2,
 +              asm:    s390x.AWFMINDB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "WFMINSB",
 +              argLen: 2,
 +              asm:    s390x.AWFMINSB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "FIDBR",
 +              auxType: auxInt8,
 +              argLen:  1,
 +              asm:     s390x.AFIDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVSload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "FMOVSconst",
 +              auxType:           auxFloat32,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               s390x.AFMOVS,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "FMOVDconst",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               s390x.AFMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:      "FMOVSloadidx",
 +              auxType:   auxSymOff,
 +              argLen:    3,
 +              symEffect: SymRead,
 +              asm:       s390x.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:      "FMOVDloadidx",
 +              auxType:   auxSymOff,
 +              argLen:    3,
 +              symEffect: SymRead,
 +              asm:       s390x.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVSstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:           "FMOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:      "FMOVSstoreidx",
 +              auxType:   auxSymOff,
 +              argLen:    4,
 +              symEffect: SymWrite,
 +              asm:       s390x.AFMOVS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:      "FMOVDstoreidx",
 +              auxType:   auxSymOff,
 +              argLen:    4,
 +              symEffect: SymWrite,
 +              asm:       s390x.AFMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ADD",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ADDW",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AADDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ADDconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ADDWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.AADDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ADDload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AADD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ADDWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AADDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SUB",
 +              argLen:       2,
 +              clobberFlags: true,
 +              asm:          s390x.ASUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SUBW",
 +              argLen:       2,
 +              clobberFlags: true,
 +              asm:          s390x.ASUBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SUBconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ASUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SUBWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ASUBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "SUBload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.ASUB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "SUBWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.ASUBW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULLD",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULLW",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULLDconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULLWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MULLDload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMULLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MULLWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMULLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULHD",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULHD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MULHDU",
 +              argLen:       2,
 +              commutative:  true,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMULHDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "DIVD",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ADIVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "DIVW",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ADIVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "DIVDU",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ADIVDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "DIVWU",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ADIVWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MODD",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMODD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MODW",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMODW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MODDU",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMODDU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "MODWU",
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AMODWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                              {1, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +                      clobbers: 2048, // R11
 +                      outputs: []outputInfo{
 +                              {0, 21503}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "AND",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ANDW",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AANDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ANDconst",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ANDWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AANDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ANDload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AAND,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ANDWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AANDW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "OR",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ORW",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ORconst",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ORWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ORload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "ORWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "XOR",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "XORW",
 +              argLen:       2,
 +              commutative:  true,
 +              clobberFlags: true,
 +              asm:          s390x.AXORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "XORconst",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "XORWconst",
 +              auxType:      auxInt32,
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.AXORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "XORload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AXOR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "XORWload",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              resultInArg0:   true,
 +              clobberFlags:   true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AXORW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "ADDC",
 +              argLen:      2,
 +              commutative: true,
 +              asm:         s390x.AADDC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "ADDCconst",
 +              auxType: auxInt16,
 +              argLen:  1,
 +              asm:     s390x.AADDC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "ADDE",
 +              argLen:       3,
 +              commutative:  true,
 +              resultInArg0: true,
 +              asm:          s390x.AADDE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SUBC",
 +              argLen: 2,
 +              asm:    s390x.ASUBC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SUBE",
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.ASUBE,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMP",
 +              argLen: 2,
 +              asm:    s390x.ACMP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPW",
 +              argLen: 2,
 +              asm:    s390x.ACMPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPU",
 +              argLen: 2,
 +              asm:    s390x.ACMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:   "CMPWU",
 +              argLen: 2,
 +              asm:    s390x.ACMPWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     s390x.ACMP,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPWconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     s390x.ACMPW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPUconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     s390x.ACMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:    "CMPWUconst",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              asm:     s390x.ACMPWU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCMPS",
 +              argLen: 2,
 +              asm:    s390x.ACEBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FCMP",
 +              argLen: 2,
 +              asm:    s390x.AFCMPU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LTDBR",
 +              argLen: 1,
 +              asm:    s390x.ALTDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LTEBR",
 +              argLen: 1,
 +              asm:    s390x.ALTEBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLD",
 +              argLen: 2,
 +              asm:    s390x.ASLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SLW",
 +              argLen: 2,
 +              asm:    s390x.ASLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLDconst",
 +              auxType: auxUInt8,
 +              argLen:  1,
 +              asm:     s390x.ASLD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SLWconst",
 +              auxType: auxUInt8,
 +              argLen:  1,
 +              asm:     s390x.ASLW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRD",
 +              argLen: 2,
 +              asm:    s390x.ASRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SRW",
 +              argLen: 2,
 +              asm:    s390x.ASRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRDconst",
 +              auxType: auxUInt8,
 +              argLen:  1,
 +              asm:     s390x.ASRD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "SRWconst",
 +              auxType: auxUInt8,
 +              argLen:  1,
 +              asm:     s390x.ASRW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SRAD",
 +              argLen:       2,
 +              clobberFlags: true,
 +              asm:          s390x.ASRAD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SRAW",
 +              argLen:       2,
 +              clobberFlags: true,
 +              asm:          s390x.ASRAW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SRADconst",
 +              auxType:      auxUInt8,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ASRAD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "SRAWconst",
 +              auxType:      auxUInt8,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ASRAW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "RLLG",
 +              argLen: 2,
 +              asm:    s390x.ARLLG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "RLL",
 +              argLen: 2,
 +              asm:    s390x.ARLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:    "RLLconst",
 +              auxType: auxUInt8,
 +              argLen:  1,
 +              asm:     s390x.ARLL,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "RXSBG",
 +              auxType:      auxS390XRotateParams,
 +              argLen:       2,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              asm:          s390x.ARXSBG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "RISBGZ",
 +              auxType:      auxS390XRotateParams,
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ARISBGZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "NEG",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ANEG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "NEGW",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ANEGW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "NOT",
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "NOTW",
 +              argLen:       1,
 +              resultInArg0: true,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRT",
 +              argLen: 1,
 +              asm:    s390x.AFSQRT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "FSQRTS",
 +              argLen: 1,
 +              asm:    s390x.AFSQRTS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LOCGR",
 +              auxType:      auxS390XCCMask,
 +              argLen:       3,
 +              resultInArg0: true,
 +              asm:          s390x.ALOCGR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                              {1, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVBZreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVHZreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWZreg",
 +              argLen: 1,
 +              asm:    s390x.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDconst",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              asm:               s390x.AMOVD,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LDGR",
 +              argLen: 1,
 +              asm:    s390x.ALDGR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LGDR",
 +              argLen: 1,
 +              asm:    s390x.ALGDR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CFDBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACFDBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CGDBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACGDBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CFEBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACFEBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CGEBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACGEBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CEFBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACEFBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CDFBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACDFBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CEGBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACEGBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CDGBRA",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACDGBRA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CLFEBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACLFEBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CLFDBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACLFDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CLGEBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACLGEBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CLGDBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACLGDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CELFBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACELFBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CDLFBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACDLFBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CELGBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACELGBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CDLGBR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.ACDLGBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LEDBR",
 +              argLen: 1,
 +              asm:    s390x.ALEDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LDEBR",
 +              argLen: 1,
 +              asm:    s390x.ALDEBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "MOVDaddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295000064}, // SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:      "MOVDaddridx",
 +              auxType:   auxSymOff,
 +              argLen:    2,
 +              symEffect: SymAddr,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295000064}, // SP SB
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWZload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVWBR",
 +              argLen: 1,
 +              asm:    s390x.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MOVDBR",
 +              argLen: 1,
 +              asm:    s390x.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHBRload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWBRload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDBRload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHBRstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWBRstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDBRstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MVC",
 +              auxType:        auxSymValAndOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              symEffect:      SymNone,
 +              asm:            s390x.AMVC,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVBZloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVBloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVHZloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVHZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVHloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVWZloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVWloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVDloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVHBRloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVWBRloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVDBRloadidx",
 +              auxType:     auxSymOff,
 +              argLen:      3,
 +              commutative: true,
 +              symEffect:   SymRead,
 +              asm:         s390x.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 56318},      // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVBstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVHstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVWstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVDstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVHBRstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVHBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVWBRstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVWBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:        "MOVDBRstoreidx",
 +              auxType:     auxSymOff,
 +              argLen:      4,
 +              commutative: true,
 +              symEffect:   SymWrite,
 +              asm:         s390x.AMOVDBR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBstoreconst",
 +              auxType:        auxSymValAndOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVHstoreconst",
 +              auxType:        auxSymValAndOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVH,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWstoreconst",
 +              auxType:        auxSymValAndOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDstoreconst",
 +              auxType:        auxSymValAndOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:           "CLEAR",
 +              auxType:        auxSymValAndOff,
 +              argLen:         2,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ACLEAR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:         "CALLstatic",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      clobbers: 4294933503, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 g R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +              },
 +      },
 +      {
 +              name:         "CALLtail",
 +              auxType:      auxCallOff,
 +              argLen:       1,
 +              clobberFlags: true,
 +              call:         true,
 +              tailCall:     true,
 +              reg: regInfo{
 +                      clobbers: 4294933503, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 g R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +              },
 +      },
 +      {
 +              name:         "CALLclosure",
 +              auxType:      auxCallOff,
 +              argLen:       3,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 4096},  // R12
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 4294933503, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 g R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +              },
 +      },
 +      {
 +              name:         "CALLinter",
 +              auxType:      auxCallOff,
 +              argLen:       2,
 +              clobberFlags: true,
 +              call:         true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23550}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      clobbers: 4294933503, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 g R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +              },
 +      },
 +      {
 +              name:   "InvertFlags",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "LoweredGetG",
 +              argLen: 1,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:      "LoweredGetClosurePtr",
 +              argLen:    0,
 +              zeroWidth: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4096}, // R12
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              clobberFlags:   true,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound32F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              zeroWidth:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredRound64F",
 +              argLen:       1,
 +              resultInArg0: true,
 +              zeroWidth:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:         "LoweredWB",
 +              auxType:      auxInt64,
 +              argLen:       1,
 +              clobberFlags: true,
 +              reg: regInfo{
 +                      clobbers: 4294918146, // R1 R14 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      outputs: []outputInfo{
 +                              {0, 512}, // R9
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRR",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 7167}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12
 +                              {1, 7167}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsRC",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 7167}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCR",
 +              auxType: auxPanicBoundsC,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 7167}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredPanicBoundsCC",
 +              auxType: auxPanicBoundsCC,
 +              argLen:  1,
 +              call:    true,
 +              reg:     regInfo{},
 +      },
 +      {
 +              name:   "FlagEQ",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagLT",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagGT",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "FlagOV",
 +              argLen: 0,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "SYNC",
 +              argLen: 1,
 +              asm:    s390x.ASYNC,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:           "MOVBZatomicload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVBZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWZatomicload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVWZ,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDatomicload",
 +              auxType:        auxSymOff,
 +              argLen:         2,
 +              faultOnNilArg0: true,
 +              symEffect:      SymRead,
 +              asm:            s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVBatomicstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVB,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVWatomicstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVW,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "MOVDatomicstore",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.AMOVD,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LAA",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ALAA,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LAAG",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ALAAG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "AddTupleFirst32",
 +              argLen: 2,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "AddTupleFirst64",
 +              argLen: 2,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:           "LAN",
 +              argLen:         3,
 +              clobberFlags:   true,
 +              hasSideEffects: true,
 +              asm:            s390x.ALAN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LANfloor",
 +              argLen:         3,
 +              clobberFlags:   true,
 +              hasSideEffects: true,
 +              asm:            s390x.ALAN,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},     // R1
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 2, // R1
 +              },
 +      },
 +      {
 +              name:           "LAO",
 +              argLen:         3,
 +              clobberFlags:   true,
 +              hasSideEffects: true,
 +              asm:            s390x.ALAO,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4295023614}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP SB
 +                              {1, 56319},      // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LAOfloor",
 +              argLen:         3,
 +              clobberFlags:   true,
 +              hasSideEffects: true,
 +              asm:            s390x.ALAO,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},     // R1
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 2, // R1
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicCas32",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ACS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1},     // R0
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 1, // R0
 +                      outputs: []outputInfo{
 +                              {1, 0},
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicCas64",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ACSG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 1},     // R0
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 1, // R0
 +                      outputs: []outputInfo{
 +                              {1, 0},
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicExchange32",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ACS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {1, 0},
 +                              {0, 1}, // R0
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredAtomicExchange64",
 +              auxType:        auxSymOff,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              hasSideEffects: true,
 +              symEffect:      SymRdWr,
 +              asm:            s390x.ACSG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                              {1, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {1, 0},
 +                              {0, 1}, // R0
 +                      },
 +              },
 +      },
 +      {
 +              name:         "FLOGR",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.AFLOGR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      clobbers: 2, // R1
 +                      outputs: []outputInfo{
 +                              {0, 1}, // R0
 +                      },
 +              },
 +      },
 +      {
 +              name:         "POPCNT",
 +              argLen:       1,
 +              clobberFlags: true,
 +              asm:          s390x.APOPCNT,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +              },
 +      },
 +      {
 +              name:   "MLGR",
 +              argLen: 2,
 +              asm:    s390x.AMLGR,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 8},     // R3
 +                              {0, 23551}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4}, // R2
 +                              {1, 8}, // R3
 +                      },
 +              },
 +      },
 +      {
 +              name:   "SumBytes2",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "SumBytes4",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:   "SumBytes8",
 +              argLen: 1,
 +              reg:    regInfo{},
 +      },
 +      {
 +              name:           "STMG2",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STMG3",
 +              auxType:        auxSymOff,
 +              argLen:         5,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {3, 8},     // R3
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STMG4",
 +              auxType:        auxSymOff,
 +              argLen:         6,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMG,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {3, 8},     // R3
 +                              {4, 16},    // R4
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STM2",
 +              auxType:        auxSymOff,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMY,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STM3",
 +              auxType:        auxSymOff,
 +              argLen:         5,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMY,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {3, 8},     // R3
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "STM4",
 +              auxType:        auxSymOff,
 +              argLen:         6,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              symEffect:      SymWrite,
 +              asm:            s390x.ASTMY,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 2},     // R1
 +                              {2, 4},     // R2
 +                              {3, 8},     // R3
 +                              {4, 16},    // R4
 +                              {0, 56318}, // R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredMove",
 +              auxType:        auxInt64,
 +              argLen:         4,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              faultOnNilArg1: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},     // R1
 +                              {1, 4},     // R2
 +                              {2, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 6, // R1 R2
 +              },
 +      },
 +      {
 +              name:           "LoweredZero",
 +              auxType:        auxInt64,
 +              argLen:         3,
 +              clobberFlags:   true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 2},     // R1
 +                              {1, 56319}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R11 R12 R14 SP
 +                      },
 +                      clobbers: 2, // R1
 +              },
 +      },
 +
 +      {
 +              name:    "LoweredStaticCall",
 +              auxType: auxCallOff,
 +              argLen:  1,
 +              call:    true,
 +              reg: regInfo{
 +                      clobbers: 844424930131967, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 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 g
 +              },
 +      },
 +      {
 +              name:     "LoweredTailCall",
 +              auxType:  auxCallOff,
 +              argLen:   1,
 +              call:     true,
 +              tailCall: true,
 +              reg: regInfo{
 +                      clobbers: 844424930131967, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 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 g
 +              },
 +      },
 +      {
 +              name:    "LoweredClosureCall",
 +              auxType: auxCallOff,
 +              argLen:  3,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                              {1, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      clobbers: 844424930131967, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 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 g
 +              },
 +      },
 +      {
 +              name:    "LoweredInterCall",
 +              auxType: auxCallOff,
 +              argLen:  2,
 +              call:    true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      clobbers: 844424930131967, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 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 g
 +              },
 +      },
 +      {
 +              name:              "LoweredAddr",
 +              auxType:           auxSymOff,
 +              argLen:            1,
 +              rematerializeable: true,
 +              symEffect:         SymAddr,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredMove",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                              {1, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredZero",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LoweredGetClosurePtr",
 +              argLen: 0,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerPC",
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "LoweredGetCallerSP",
 +              argLen:            1,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:           "LoweredNilCheck",
 +              argLen:         2,
 +              nilCheck:       true,
 +              faultOnNilArg0: true,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "LoweredWB",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              reg: regInfo{
 +                      clobbers: 844424930131967, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 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 g
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "LoweredConvert",
 +              argLen: 2,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "Select",
 +              argLen: 3,
 +              asm:    wasm.ASelect,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {2, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load8U",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load8U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load8S",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load8S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load16U",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load16U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load16S",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load16S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load32U",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load32U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load32S",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load32S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Load",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AI64Load,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Store8",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AI64Store8,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 281474976776191},  // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Store16",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AI64Store16,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 281474976776191},  // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Store32",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AI64Store32,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 281474976776191},  // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64Store",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AI64Store,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 281474976776191},  // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:    "F32Load",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AF32Load,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "F64Load",
 +              auxType: auxInt64,
 +              argLen:  2,
 +              asm:     wasm.AF64Load,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:    "F32Store",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AF32Store,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 4294901760},       // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:    "F64Store",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              asm:     wasm.AF64Store,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {1, 281470681743360},  // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {0, 1407374883618815}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP SB
 +                      },
 +              },
 +      },
 +      {
 +              name:              "I64Const",
 +              auxType:           auxInt64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "F32Const",
 +              auxType:           auxFloat32,
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:              "F64Const",
 +              auxType:           auxFloat64,
 +              argLen:            0,
 +              rematerializeable: true,
 +              reg: regInfo{
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Eqz",
 +              argLen: 1,
 +              asm:    wasm.AI64Eqz,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Eq",
 +              argLen: 2,
 +              asm:    wasm.AI64Eq,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Ne",
 +              argLen: 2,
 +              asm:    wasm.AI64Ne,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64LtS",
 +              argLen: 2,
 +              asm:    wasm.AI64LtS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64LtU",
 +              argLen: 2,
 +              asm:    wasm.AI64LtU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64GtS",
 +              argLen: 2,
 +              asm:    wasm.AI64GtS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64GtU",
 +              argLen: 2,
 +              asm:    wasm.AI64GtU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64LeS",
 +              argLen: 2,
 +              asm:    wasm.AI64LeS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64LeU",
 +              argLen: 2,
 +              asm:    wasm.AI64LeU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64GeS",
 +              argLen: 2,
 +              asm:    wasm.AI64GeS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64GeU",
 +              argLen: 2,
 +              asm:    wasm.AI64GeU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Eq",
 +              argLen: 2,
 +              asm:    wasm.AF32Eq,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Ne",
 +              argLen: 2,
 +              asm:    wasm.AF32Ne,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Lt",
 +              argLen: 2,
 +              asm:    wasm.AF32Lt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Gt",
 +              argLen: 2,
 +              asm:    wasm.AF32Gt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Le",
 +              argLen: 2,
 +              asm:    wasm.AF32Le,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Ge",
 +              argLen: 2,
 +              asm:    wasm.AF32Ge,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Eq",
 +              argLen: 2,
 +              asm:    wasm.AF64Eq,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Ne",
 +              argLen: 2,
 +              asm:    wasm.AF64Ne,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Lt",
 +              argLen: 2,
 +              asm:    wasm.AF64Lt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Gt",
 +              argLen: 2,
 +              asm:    wasm.AF64Gt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Le",
 +              argLen: 2,
 +              asm:    wasm.AF64Le,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Ge",
 +              argLen: 2,
 +              asm:    wasm.AF64Ge,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Add",
 +              argLen: 2,
 +              asm:    wasm.AI64Add,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:    "I64AddConst",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              asm:     wasm.AI64Add,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Sub",
 +              argLen: 2,
 +              asm:    wasm.AI64Sub,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Mul",
 +              argLen: 2,
 +              asm:    wasm.AI64Mul,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64DivS",
 +              argLen: 2,
 +              asm:    wasm.AI64DivS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64DivU",
 +              argLen: 2,
 +              asm:    wasm.AI64DivU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64RemS",
 +              argLen: 2,
 +              asm:    wasm.AI64RemS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64RemU",
 +              argLen: 2,
 +              asm:    wasm.AI64RemU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64And",
 +              argLen: 2,
 +              asm:    wasm.AI64And,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Or",
 +              argLen: 2,
 +              asm:    wasm.AI64Or,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Xor",
 +              argLen: 2,
 +              asm:    wasm.AI64Xor,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Shl",
 +              argLen: 2,
 +              asm:    wasm.AI64Shl,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64ShrS",
 +              argLen: 2,
 +              asm:    wasm.AI64ShrS,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64ShrU",
 +              argLen: 2,
 +              asm:    wasm.AI64ShrU,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Neg",
 +              argLen: 1,
 +              asm:    wasm.AF32Neg,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Add",
 +              argLen: 2,
 +              asm:    wasm.AF32Add,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Sub",
 +              argLen: 2,
 +              asm:    wasm.AF32Sub,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Mul",
 +              argLen: 2,
 +              asm:    wasm.AF32Mul,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Div",
 +              argLen: 2,
 +              asm:    wasm.AF32Div,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Neg",
 +              argLen: 1,
 +              asm:    wasm.AF64Neg,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Add",
 +              argLen: 2,
 +              asm:    wasm.AF64Add,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Sub",
 +              argLen: 2,
 +              asm:    wasm.AF64Sub,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Mul",
 +              argLen: 2,
 +              asm:    wasm.AF64Mul,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Div",
 +              argLen: 2,
 +              asm:    wasm.AF64Div,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64TruncSatF64S",
 +              argLen: 1,
 +              asm:    wasm.AI64TruncSatF64S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64TruncSatF64U",
 +              argLen: 1,
 +              asm:    wasm.AI64TruncSatF64U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64TruncSatF32S",
 +              argLen: 1,
 +              asm:    wasm.AI64TruncSatF32S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64TruncSatF32U",
 +              argLen: 1,
 +              asm:    wasm.AI64TruncSatF32U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32ConvertI64S",
 +              argLen: 1,
 +              asm:    wasm.AF32ConvertI64S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32ConvertI64U",
 +              argLen: 1,
 +              asm:    wasm.AF32ConvertI64U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64ConvertI64S",
 +              argLen: 1,
 +              asm:    wasm.AF64ConvertI64S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64ConvertI64U",
 +              argLen: 1,
 +              asm:    wasm.AF64ConvertI64U,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32DemoteF64",
 +              argLen: 1,
 +              asm:    wasm.AF32DemoteF64,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64PromoteF32",
 +              argLen: 1,
 +              asm:    wasm.AF64PromoteF32,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Extend8S",
 +              argLen: 1,
 +              asm:    wasm.AI64Extend8S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Extend16S",
 +              argLen: 1,
 +              asm:    wasm.AI64Extend16S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Extend32S",
 +              argLen: 1,
 +              asm:    wasm.AI64Extend32S,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Sqrt",
 +              argLen: 1,
 +              asm:    wasm.AF32Sqrt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Trunc",
 +              argLen: 1,
 +              asm:    wasm.AF32Trunc,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Ceil",
 +              argLen: 1,
 +              asm:    wasm.AF32Ceil,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Floor",
 +              argLen: 1,
 +              asm:    wasm.AF32Floor,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Nearest",
 +              argLen: 1,
 +              asm:    wasm.AF32Nearest,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Abs",
 +              argLen: 1,
 +              asm:    wasm.AF32Abs,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F32Copysign",
 +              argLen: 2,
 +              asm:    wasm.AF32Copysign,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                              {1, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 4294901760}, // F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Sqrt",
 +              argLen: 1,
 +              asm:    wasm.AF64Sqrt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Trunc",
 +              argLen: 1,
 +              asm:    wasm.AF64Trunc,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Ceil",
 +              argLen: 1,
 +              asm:    wasm.AF64Ceil,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Floor",
 +              argLen: 1,
 +              asm:    wasm.AF64Floor,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Nearest",
 +              argLen: 1,
 +              asm:    wasm.AF64Nearest,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Abs",
 +              argLen: 1,
 +              asm:    wasm.AF64Abs,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "F64Copysign",
 +              argLen: 2,
 +              asm:    wasm.AF64Copysign,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                              {1, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 281470681743360}, // F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Ctz",
 +              argLen: 1,
 +              asm:    wasm.AI64Ctz,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Clz",
 +              argLen: 1,
 +              asm:    wasm.AI64Clz,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I32Rotl",
 +              argLen: 2,
 +              asm:    wasm.AI32Rotl,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Rotl",
 +              argLen: 2,
 +              asm:    wasm.AI64Rotl,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                              {1, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +      {
 +              name:   "I64Popcnt",
 +              argLen: 1,
 +              asm:    wasm.AI64Popcnt,
 +              reg: regInfo{
 +                      inputs: []inputInfo{
 +                              {0, 281474976776191}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 SP
 +                      },
 +                      outputs: []outputInfo{
 +                              {0, 65535}, // R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15
 +                      },
 +              },
 +      },
 +
 +      {
 +              name:        "Add8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Add16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Add32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Add64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "AddPtr",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Add32F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Add64F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Sub8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "SubPtr",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Mul8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul32F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul64F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Div32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Hmul32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Hmul32u",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Hmul64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Hmul64u",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul32uhilo",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul64uhilo",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul32uover",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Mul64uover",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Avg32u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Avg64u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div8u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div16u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div32u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div64u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Div128u",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod8u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod16u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod32u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Mod64u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "And8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "And16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "And32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "And64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Or8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Or16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Or32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Or64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Xor8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Xor16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Xor32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Xor64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Lsh8x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh8x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh8x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh8x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh16x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh16x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh16x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh16x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh32x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh32x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh32x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh32x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh64x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh64x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh64x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Lsh64x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64x8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64x16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64x32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64x64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8Ux8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8Ux16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8Ux32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh8Ux64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16Ux8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16Ux16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16Ux32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh16Ux64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32Ux8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32Ux16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32Ux32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh32Ux64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64Ux8",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64Ux16",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64Ux32",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Rsh64Ux64",
 +              auxType: auxBool,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Eq8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Eq16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Eq32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Eq64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqPtr",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "EqInter",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "EqSlice",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Eq32F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Eq64F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Neq8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Neq16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Neq32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Neq64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NeqPtr",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "NeqInter",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "NeqSlice",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "Neq32F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Neq64F",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Less8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less8U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less16U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less32U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less64U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Less64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq8U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq16U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq32U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq64U",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Leq64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CondSelect",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:        "AndB",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrB",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqB",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NeqB",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Not",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Neg64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Com8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Com16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Com32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Com64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz64On32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz8NonZero",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz16NonZero",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz32NonZero",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ctz64NonZero",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitLen8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitLen16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitLen32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitLen64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Bswap16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Bswap32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Bswap64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitRev8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitRev16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitRev32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "BitRev64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "PopCount8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "PopCount16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "PopCount32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "PopCount64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "RotateLeft64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "RotateLeft32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "RotateLeft16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "RotateLeft8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sqrt",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sqrt32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Floor",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Ceil",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Round",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "RoundToEven",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Abs",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Copysign",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Min64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Max64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Min64u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Max64u",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Min64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Min32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Max64F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Max32F",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "FMA",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:      "Phi",
 +              argLen:    -1,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:    "Copy",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:         "Convert",
 +              argLen:       2,
 +              resultInArg0: true,
 +              zeroWidth:    true,
 +              generic:      true,
 +      },
 +      {
 +              name:    "ConstBool",
 +              auxType: auxBool,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConstString",
 +              auxType: auxString,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConstNil",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const8",
 +              auxType: auxInt8,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const16",
 +              auxType: auxInt16,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const32",
 +              auxType: auxInt32,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const64",
 +              auxType: auxInt64,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const32F",
 +              auxType: auxFloat32,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "Const64F",
 +              auxType: auxFloat64,
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConstInterface",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConstSlice",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:      "InitMem",
 +              argLen:    0,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "Arg",
 +              auxType:   auxSymOff,
 +              argLen:    0,
 +              zeroWidth: true,
 +              symEffect: SymRead,
 +              generic:   true,
 +      },
 +      {
 +              name:      "ArgIntReg",
 +              auxType:   auxNameOffsetInt8,
 +              argLen:    0,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "ArgFloatReg",
 +              auxType:   auxNameOffsetInt8,
 +              argLen:    0,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "Addr",
 +              auxType:   auxSym,
 +              argLen:    1,
 +              symEffect: SymAddr,
 +              generic:   true,
 +      },
 +      {
 +              name:      "LocalAddr",
 +              auxType:   auxSym,
 +              argLen:    2,
 +              symEffect: SymAddr,
 +              generic:   true,
 +      },
 +      {
 +              name:      "SP",
 +              argLen:    0,
 +              zeroWidth: true,
 +              fixedReg:  true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "SB",
 +              argLen:    0,
 +              zeroWidth: true,
 +              fixedReg:  true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "SPanchored",
 +              argLen:    2,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:    "Load",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Dereference",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Store",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMasked8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMasked16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMasked32",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMasked64",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMasked8",
 +              auxType: auxTyp,
 +              argLen:  4,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMasked16",
 +              auxType: auxTyp,
 +              argLen:  4,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMasked32",
 +              auxType: auxTyp,
 +              argLen:  4,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMasked64",
 +              auxType: auxTyp,
 +              argLen:  4,
 +              generic: true,
 +      },
 +      {
 +              name:    "Move",
 +              auxType: auxTypSize,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "Zero",
 +              auxType: auxTypSize,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreWB",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MoveWB",
 +              auxType: auxTypSize,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroWB",
 +              auxType: auxTypSize,
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "WBend",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "WB",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:      "HasCPUFeature",
 +              auxType:   auxSym,
 +              argLen:    0,
 +              symEffect: SymNone,
 +              generic:   true,
 +      },
 +      {
 +              name:    "PanicBounds",
 +              auxType: auxInt64,
 +              argLen:  3,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "PanicExtend",
 +              auxType: auxInt64,
 +              argLen:  4,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "ClosureCall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "StaticCall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterCall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "TailCall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "ClosureLECall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "StaticLECall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterLECall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "TailLECall",
 +              auxType: auxCallOff,
 +              argLen:  -1,
 +              call:    true,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt8to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt8to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt8to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt16to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt16to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SignExt32to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt8to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt8to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt8to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt16to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt16to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroExt32to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc16to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc32to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc32to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc64to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc64to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Trunc64to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32to32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32to64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64to32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64to64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Fto32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Fto64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Fto32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Fto64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Fto64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Fto32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtBoolToUint8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Round32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Round64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "IsNonNil",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "IsInBounds",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "IsSliceInBounds",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:     "NilCheck",
 +              argLen:   2,
 +              nilCheck: true,
 +              generic:  true,
 +      },
 +      {
 +              name:      "GetG",
 +              argLen:    1,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:    "GetClosurePtr",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetCallerPC",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetCallerSP",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "PtrIndex",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "OffPtr",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SliceMake",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "SlicePtr",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SliceLen",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SliceCap",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SlicePtrUnchecked",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ComplexMake",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ComplexReal",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ComplexImag",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "StringMake",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "StringPtr",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "StringLen",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "IMake",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ITab",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "IData",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "StructMake",
 +              argLen:  -1,
 +              generic: true,
 +      },
 +      {
 +              name:    "StructSelect",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ArrayMake0",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "ArrayMake1",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ArraySelect",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreReg",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadReg",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:      "FwdRef",
 +              auxType:   auxSym,
 +              argLen:    0,
 +              symEffect: SymNone,
 +              generic:   true,
 +      },
 +      {
 +              name:    "Unknown",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:      "VarDef",
 +              auxType:   auxSym,
 +              argLen:    1,
 +              zeroWidth: true,
 +              symEffect: SymNone,
 +              generic:   true,
 +      },
 +      {
 +              name:      "VarLive",
 +              auxType:   auxSym,
 +              argLen:    1,
 +              zeroWidth: true,
 +              symEffect: SymRead,
 +              generic:   true,
 +      },
 +      {
 +              name:      "KeepAlive",
 +              argLen:    2,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:    "InlMark",
 +              auxType: auxInt32,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Int64Make",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Int64Hi",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Int64Lo",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:        "Add32carry",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "Add32withcarry",
 +              argLen:      3,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Sub32carry",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Sub32withcarry",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:        "Add64carry",
 +              argLen:      3,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Sub64borrow",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "Signmask",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Zeromask",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Slicemask",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SpectreIndex",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "SpectreSliceIndex",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Uto32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Uto64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Fto32U",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Fto32U",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Uto32F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Uto64F",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32Fto64U",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64Fto64U",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:      "Select0",
 +              argLen:    1,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:      "Select1",
 +              argLen:    1,
 +              zeroWidth: true,
 +              generic:   true,
 +      },
 +      {
 +              name:    "MakeTuple",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "SelectN",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "SelectNAddr",
 +              auxType: auxInt64,
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "MakeResult",
 +              argLen:  -1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoad8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoad32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoad64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoadPtr",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoadAcq32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AtomicLoadAcq64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:           "AtomicStore8",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStore32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStore64",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStorePtrNoWB",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStoreRel32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStoreRel64",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange8",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange64",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAdd32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAdd64",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicCompareAndSwap32",
 +              argLen:         4,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicCompareAndSwap64",
 +              argLen:         4,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicCompareAndSwapRel32",
 +              argLen:         4,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd8",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr8",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr32",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd64value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd32value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd8value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr64value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr32value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr8value",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStore8Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStore32Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicStore64Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAdd32Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAdd64Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange8Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange32Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicExchange64Variant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicCompareAndSwap32Variant",
 +              argLen:         4,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicCompareAndSwap64Variant",
 +              argLen:         4,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd64valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr64valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd32valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr32valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicAnd8valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "AtomicOr8valueVariant",
 +              argLen:         3,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "PubBarrier",
 +              argLen:         1,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:      "Clobber",
 +              auxType:   auxSymOff,
 +              argLen:    0,
 +              symEffect: SymNone,
 +              generic:   true,
 +      },
 +      {
 +              name:    "ClobberReg",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:           "PrefetchCache",
 +              argLen:         2,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:           "PrefetchCacheStreamed",
 +              argLen:         2,
 +              hasSideEffects: true,
 +              generic:        true,
 +      },
 +      {
 +              name:    "Add32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ZeroSIMD",
 +              argLen:  0,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LoadMask64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask8x16",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask8x32",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask8x64",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask16x8",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask16x16",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask16x32",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask32x4",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask32x8",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask32x16",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask64x2",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask64x4",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "StoreMask64x8",
 +              auxType: auxTyp,
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt16toMask8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32toMask8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt64toMask8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt16toMask16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt32toMask16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt16toMask32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Cvt8toMask64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask8x16to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask8x32to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask8x64to64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask16x8to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask16x16to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask16x32to32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask32x4to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask32x8to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask32x16to16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask64x2to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask64x4to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CvtMask64x8to8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AbsInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdPairsSaturatedInt32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdPairsSaturatedInt32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdPairsSaturatedInt32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleInt32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleInt32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleInt32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleSaturatedInt32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleSaturatedInt32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddDotProdQuadrupleSaturatedInt32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:        "AddFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "AddPairsFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsSaturatedInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsSaturatedInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddPairsUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "AddSaturatedInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddSaturatedUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "AddSubFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddSubFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddSubFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AddSubFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "AddUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AddUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "AndNotInt8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "AndNotUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "AndUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AndUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "AverageUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "Broadcast128Float32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Float64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast128Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Float32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Float64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast256Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Float32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Float64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "Broadcast512Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CeilFloat32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CeilFloat32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CeilFloat64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CeilFloat64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CompressUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8Int64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt8SaturatedInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16Int64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedPackedInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedPackedInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16SaturatedPackedInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt16x8Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Float32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Float32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Float32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32Int64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32SaturatedInt64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32SaturatedInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32SaturatedInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32x4Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32x4Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt32x8Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64Int32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64x2Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64x2Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64x2Int32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64x4Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToInt64x8Int8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8SaturatedUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint8Uint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedPackedUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedPackedUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedPackedUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16SaturatedUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16Uint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint16x8Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Float32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Float32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Float32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32SaturatedUint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32SaturatedUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32SaturatedUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32Uint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32x4Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32x4Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint32x8Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64Uint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x2Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x2Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x2Uint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x4Int16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x4Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x4Uint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "ConvertToUint64x8Uint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "CopySignInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DivFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsSaturatedUint8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsSaturatedUint8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "DotProdPairsSaturatedUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "EqualFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "EqualUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "ExpandFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "ExpandUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "FloorFloat32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "FloorFloat32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "FloorFloat64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "FloorFloat64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GaloisFieldMulUint8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GaloisFieldMulUint8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GaloisFieldMulUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiFloat32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiFloat32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiFloat64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiFloat64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetHiUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoFloat32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoFloat32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoFloat64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoFloat64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GetLoUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterEqualUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt8x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt8x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "GreaterUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiGroupedUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveHiUint64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint16x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoGroupedUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoInt16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoInt32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoInt64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoUint16x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoUint32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "InterleaveLoUint64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "IsNanFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "IsNanFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "IsNanFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "IsNanFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "IsNanFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "IsNanFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "LessEqualFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessEqualUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat32x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat32x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat64x2",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat64x4",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessFloat64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessInt8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessInt16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessInt32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessInt64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessUint8x64",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessUint16x32",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessUint32x16",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:    "LessUint64x8",
 +              argLen:  2,
 +              generic: true,
 +      },
 +      {
 +              name:        "MaxFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MaxUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MinUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "MulAddFloat32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddFloat32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddFloat32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddFloat64x2",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddFloat64x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddFloat64x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat64x2",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat64x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulAddSubFloat64x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:        "MulEvenWidenInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulEvenWidenInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulEvenWidenUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulEvenWidenUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulHighUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "MulSubAddFloat32x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulSubAddFloat32x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulSubAddFloat32x16",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulSubAddFloat64x2",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulSubAddFloat64x4",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:    "MulSubAddFloat64x8",
 +              argLen:  3,
 +              generic: true,
 +      },
 +      {
 +              name:        "MulUint16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "MulUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat32x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat32x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat64x2",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat64x4",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualFloat64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualInt16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualInt32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualInt64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualUint8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualUint16x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualUint32x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "NotEqualUint64x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:    "OnesCountInt8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountInt64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint8x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint8x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint8x64",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint16x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint16x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint16x32",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint32x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint32x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint32x16",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint64x2",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint64x4",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:    "OnesCountUint64x8",
 +              argLen:  1,
 +              generic: true,
 +      },
 +      {
 +              name:        "OrInt8x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrInt8x32",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrInt8x64",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrInt16x8",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrInt16x16",
 +              argLen:      2,
 +              commutative: true,
 +              generic:     true,
 +      },
 +      {
 +              name:        "OrInt16x32",
 +              argLen:      2,
                commutative: true,
                generic:     true,
        },
index 67fbbae134ed35b225ba144d97d4964ab2f8f438,39769779cec64dce4d44f6da6f4e1b283c0a9969..243212dd16193389f75ef82b1f692697d2f0d6c1
@@@ -1438,15 -1407,8 +1438,15 @@@ func (s *regAllocState) regalloc(f *Fun
                                case OpSB:
                                        s.assignReg(s.SBReg, v, v)
                                        s.sb = v.ID
-                               case OpARM64ZERO:
+                               case OpARM64ZERO, OpLOONG64ZERO:
                                        s.assignReg(s.ZeroIntReg, v, v)
 +                              case OpAMD64Zero128, OpAMD64Zero256, OpAMD64Zero512:
 +                                      regspec := s.regspec(v)
 +                                      m := regspec.outputs[0].regs
 +                                      if countRegs(m) != 1 {
 +                                              f.Fatalf("bad fixed-register op %s", v)
 +                                      }
 +                                      s.assignReg(pickReg(m), v, v)
                                default:
                                        f.Fatalf("unknown fixed-register op %s", v)
                                }
Simple merge
Simple merge
Simple merge