aboutsummaryrefslogtreecommitdiff
path: root/test/MC
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-07-23 20:41:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-07-23 20:41:05 +0000
commit01095a5d43bbfde13731688ddcf6048ebb8b7721 (patch)
tree4def12e759965de927d963ac65840d663ef9d1ea /test/MC
parentf0f4822ed4b66e3579e92a89f368f8fb860e218e (diff)
Vendor import of llvm release_39 branch r276489:vendor/llvm/llvm-release_39-r276489
Diffstat (limited to 'test/MC')
-rw-r--r--test/MC/AArch64/arm64-advsimd.s148
-rw-r--r--test/MC/AArch64/arm64-aliases.s111
-rw-r--r--test/MC/AArch64/arm64-arithmetic-encoding.s24
-rw-r--r--test/MC/AArch64/arm64-spsel-sysreg.s8
-rw-r--r--test/MC/AArch64/arm64-system-encoding.s6
-rw-r--r--test/MC/AArch64/basic-a64-instructions.s40
-rw-r--r--test/MC/AArch64/cyclone-crc.s27
-rw-r--r--test/MC/AArch64/directive-arch-negative.s35
-rw-r--r--test/MC/AArch64/directive-arch.s13
-rw-r--r--test/MC/AArch64/directive-cpu.s63
-rw-r--r--test/MC/AArch64/error-location.s22
-rw-r--r--test/MC/AArch64/fixup-out-of-range.s64
-rw-r--r--test/MC/AArch64/inst-directive.s4
-rw-r--r--test/MC/AArch64/ldr-pseudo-obj-errors.s2
-rw-r--r--test/MC/AArch64/ldr-pseudo.s70
-rw-r--r--test/MC/AArch64/optional-hash.s2
-rw-r--r--test/MC/AArch64/ras-extension.s55
-rw-r--r--test/MC/AArch64/single-slash.s2
-rw-r--r--test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s3
-rw-r--r--test/MC/AMDGPU/ds-err.s6
-rw-r--r--test/MC/AMDGPU/ds.s339
-rw-r--r--test/MC/AMDGPU/expressions.s41
-rw-r--r--test/MC/AMDGPU/flat-scratch.s27
-rw-r--r--test/MC/AMDGPU/flat.s141
-rw-r--r--test/MC/AMDGPU/hsa-exp.s129
-rw-r--r--test/MC/AMDGPU/hsa-text.s16
-rw-r--r--test/MC/AMDGPU/hsa.s21
-rw-r--r--test/MC/AMDGPU/labels-branch.s17
-rw-r--r--test/MC/AMDGPU/macro-examples.s35
-rw-r--r--test/MC/AMDGPU/mimg.s27
-rw-r--r--test/MC/AMDGPU/mubuf.s542
-rw-r--r--test/MC/AMDGPU/out-of-range-registers.s40
-rw-r--r--test/MC/AMDGPU/reg-syntax-extra.s112
-rw-r--r--test/MC/AMDGPU/regression/bug28413.s34
-rw-r--r--test/MC/AMDGPU/regression/bug28538.s12
-rw-r--r--test/MC/AMDGPU/regression/lit.local.cfg2
-rw-r--r--test/MC/AMDGPU/reloc.s16
-rw-r--r--test/MC/AMDGPU/smem.s12
-rw-r--r--test/MC/AMDGPU/smrd-err.s6
-rw-r--r--test/MC/AMDGPU/smrd.s89
-rw-r--r--test/MC/AMDGPU/sop1-err.s28
-rw-r--r--test/MC/AMDGPU/sop1.s206
-rw-r--r--test/MC/AMDGPU/sop2.s131
-rw-r--r--test/MC/AMDGPU/sopc.s57
-rw-r--r--test/MC/AMDGPU/sopk-err.s27
-rw-r--r--test/MC/AMDGPU/sopk.s120
-rw-r--r--test/MC/AMDGPU/sopp-err.s75
-rw-r--r--test/MC/AMDGPU/sopp.s194
-rw-r--r--test/MC/AMDGPU/symbol_special.s48
-rw-r--r--test/MC/AMDGPU/trap.s144
-rw-r--r--test/MC/AMDGPU/vop2-err.s6
-rw-r--r--test/MC/AMDGPU/vop2.s29
-rw-r--r--test/MC/AMDGPU/vop3-errs.s3
-rw-r--r--test/MC/AMDGPU/vop3.s138
-rw-r--r--test/MC/AMDGPU/vop_dpp.s494
-rw-r--r--test/MC/AMDGPU/vop_sdwa.s561
-rw-r--r--test/MC/ARM/aligned-blx.s34
-rw-r--r--test/MC/ARM/arm-branch-errors.s16
-rw-r--r--test/MC/ARM/arm-branches.s15
-rw-r--r--test/MC/ARM/arm11-hint-instr.s4
-rw-r--r--test/MC/ARM/arm_fixups.s7
-rw-r--r--test/MC/ARM/basic-arm-instructions.s2
-rw-r--r--test/MC/ARM/basic-thumb2-instructions.s2
-rw-r--r--test/MC/ARM/coff-debugging-secrel.ll5
-rw-r--r--test/MC/ARM/directive-align.s6
-rw-r--r--test/MC/ARM/directive-arch-mode-switch.s52
-rw-r--r--test/MC/ARM/directive-eabi_attribute.s6
-rw-r--r--test/MC/ARM/eh-directive-pad-diagnostics.s2
-rw-r--r--test/MC/ARM/eh-directive-personality-diagnostics.s2
-rw-r--r--test/MC/ARM/eh-directive-save-diagnostics.s2
-rw-r--r--test/MC/ARM/eh-directive-setfp-diagnostics.s2
-rw-r--r--test/MC/ARM/eh-directive-vsave-diagnostics.s2
-rw-r--r--test/MC/ARM/elf-thumbfunc-reloc2.s2
-rw-r--r--test/MC/ARM/error-location.s6
-rw-r--r--test/MC/ARM/fp-const-errors.s3
-rw-r--r--test/MC/ARM/fullfp16-neg.s189
-rw-r--r--test/MC/ARM/fullfp16.s257
-rw-r--r--test/MC/ARM/inst-directive-emit.s4
-rw-r--r--test/MC/ARM/ldr-pseudo-cond-darwin.s55
-rw-r--r--test/MC/ARM/ldr-pseudo-cond.s55
-rw-r--r--test/MC/ARM/ldr-pseudo-darwin.s165
-rw-r--r--test/MC/ARM/ldr-pseudo-obj-errors.s4
-rw-r--r--test/MC/ARM/ldr-pseudo-unpredictable.s21
-rw-r--r--test/MC/ARM/ldr-pseudo.s153
-rw-r--r--test/MC/ARM/load-store-acquire-release-v8-thumb.s28
-rw-r--r--test/MC/ARM/load-store-acquire-release-v8.s28
-rw-r--r--test/MC/ARM/ltorg-darwin.s32
-rw-r--r--test/MC/ARM/ltorg.s32
-rw-r--r--test/MC/ARM/macho-movwt.s66
-rw-r--r--test/MC/ARM/misaligned-blx.s40
-rw-r--r--test/MC/ARM/modified-immediate-fixup-error.s14
-rw-r--r--test/MC/ARM/modified-immediate-fixup.s15
-rw-r--r--test/MC/ARM/not-armv4.s5
-rw-r--r--test/MC/ARM/pool.s4
-rw-r--r--test/MC/ARM/ras-extension.s6
-rw-r--r--test/MC/ARM/symbol-variants.s14
-rw-r--r--test/MC/ARM/thumb-branch-errors.s22
-rw-r--r--test/MC/ARM/thumb-movwt-reloc.s27
-rw-r--r--test/MC/ARM/thumb1-relax-8m-baseline.s10
-rw-r--r--test/MC/ARM/thumb1-relax-bcc.s2
-rw-r--r--test/MC/ARM/thumb2-branches.s18
-rw-r--r--test/MC/ARM/thumb2-diagnostics.s16
-rw-r--r--test/MC/ARM/thumb2-ldrb-ldrh.s4
-rw-r--r--test/MC/ARM/thumbv8m.s282
-rw-r--r--test/MC/ARM/tls-directives.s50
-rw-r--r--test/MC/AsmParser/comments-x86-darwin.s4
-rw-r--r--test/MC/AsmParser/directive_align.s2
-rw-r--r--test/MC/AsmParser/directive_file-2.s11
-rw-r--r--test/MC/AsmParser/directive_file-errors.s9
-rw-r--r--test/MC/AsmParser/directive_fill.s53
-rw-r--r--test/MC/AsmParser/directive_space.s5
-rw-r--r--test/MC/AsmParser/expr-shr.s4
-rw-r--r--test/MC/AsmParser/floating-literals.s6
-rw-r--r--test/MC/AsmParser/hash-directive.s23
-rw-r--r--test/MC/AsmParser/inline-comments.ll88
-rw-r--r--test/MC/AsmParser/macro-irp.s13
-rw-r--r--test/MC/AsmParser/macro-irpc.s13
-rw-r--r--test/MC/AsmParser/macro_parsing.s16
-rw-r--r--test/MC/AsmParser/macros-gas.s4
-rw-r--r--test/MC/AsmParser/preserve-comments.s13
-rw-r--r--test/MC/AsmParser/uppercase-hex.s7
-rw-r--r--test/MC/COFF/cross-section-relative.ll11
-rw-r--r--test/MC/COFF/cv-def-range.s97
-rw-r--r--test/MC/COFF/cv-empty-file-table.s13
-rw-r--r--test/MC/COFF/cv-empty-linetable.s82
-rw-r--r--test/MC/COFF/cv-inline-linetable-infloop.s71
-rw-r--r--test/MC/COFF/cv-inline-linetable-unreachable.s97
-rw-r--r--test/MC/COFF/cv-inline-linetable.s132
-rw-r--r--test/MC/COFF/cv-loc.s85
-rw-r--r--test/MC/COFF/pr28462.s14
-rw-r--r--test/MC/COFF/relax-reloc.s7
-rw-r--r--test/MC/COFF/seh-section-2.s154
-rw-r--r--test/MC/COFF/seh-section.s8
-rw-r--r--test/MC/COFF/weak-alias-local.s43
-rw-r--r--test/MC/COFF/weak-val.s33
-rw-r--r--test/MC/COFF/weak.s22
-rw-r--r--test/MC/Disassembler/AArch64/arm64-advsimd.txt428
-rw-r--r--test/MC/Disassembler/AArch64/arm64-arithmetic.txt24
-rw-r--r--test/MC/Disassembler/AArch64/arm64-system.txt2
-rw-r--r--test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt2
-rw-r--r--test/MC/Disassembler/AArch64/basic-a64-instructions.txt42
-rw-r--r--test/MC/Disassembler/AArch64/neon-instructions.txt14
-rw-r--r--test/MC/Disassembler/AArch64/ras-extension.txt47
-rw-r--r--test/MC/Disassembler/AMDGPU/dpp_vi.txt89
-rw-r--r--test/MC/Disassembler/AMDGPU/ds_vi.txt325
-rw-r--r--test/MC/Disassembler/AMDGPU/flat_vi.txt229
-rw-r--r--test/MC/Disassembler/AMDGPU/lit.local.cfg2
-rw-r--r--test/MC/Disassembler/AMDGPU/mov.txt31
-rw-r--r--test/MC/Disassembler/AMDGPU/mubuf_vi.txt355
-rw-r--r--test/MC/Disassembler/AMDGPU/nop.txt4
-rw-r--r--test/MC/Disassembler/AMDGPU/sdwa_vi.txt347
-rw-r--r--test/MC/Disassembler/AMDGPU/smem_vi.txt10
-rw-r--r--test/MC/Disassembler/AMDGPU/smrd_vi.txt76
-rw-r--r--test/MC/Disassembler/AMDGPU/sop1_vi.txt172
-rw-r--r--test/MC/Disassembler/AMDGPU/sop2_vi.txt94
-rw-r--r--test/MC/Disassembler/AMDGPU/sopc_vi.txt52
-rw-r--r--test/MC/Disassembler/AMDGPU/sopk_vi.txt64
-rw-r--r--test/MC/Disassembler/AMDGPU/sopp_vi.txt127
-rw-r--r--test/MC/Disassembler/AMDGPU/trap_vi.txt109
-rw-r--r--test/MC/Disassembler/AMDGPU/vop1.txt250
-rw-r--r--test/MC/Disassembler/AMDGPU/vop1_vi.txt220
-rw-r--r--test/MC/Disassembler/AMDGPU/vop2_vi.txt256
-rw-r--r--test/MC/Disassembler/AMDGPU/vop3_vi.txt217
-rw-r--r--test/MC/Disassembler/AMDGPU/vopc_vi.txt31
-rw-r--r--test/MC/Disassembler/ARM/fullfp16-arm-neg.txt188
-rw-r--r--test/MC/Disassembler/ARM/fullfp16-arm.txt186
-rw-r--r--test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt186
-rw-r--r--test/MC/Disassembler/ARM/fullfp16-thumb.txt186
-rw-r--r--test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt2
-rw-r--r--test/MC/Disassembler/ARM/ras-extension-arm.txt6
-rw-r--r--test/MC/Disassembler/ARM/ras-extension-thumb.txt6
-rw-r--r--test/MC/Disassembler/ARM/thumb2-v8m.txt25
-rw-r--r--test/MC/Disassembler/Hexagon/jr.txt4
-rw-r--r--test/MC/Disassembler/Lanai/lit.local.cfg3
-rw-r--r--test/MC/Disassembler/Lanai/v11.txt762
-rw-r--r--test/MC/Disassembler/Mips/micromips-dsp/valid-micromips32r3.txt3
-rw-r--r--test/MC/Disassembler/Mips/micromips-dsp/valid.txt12
-rw-r--r--test/MC/Disassembler/Mips/micromips-dspr2/valid.txt16
-rw-r--r--test/MC/Disassembler/Mips/micromips-dspr3/valid.txt3
-rw-r--r--test/MC/Disassembler/Mips/micromips32r3/valid-el.txt10
-rw-r--r--test/MC/Disassembler/Mips/micromips32r3/valid.txt10
-rw-r--r--test/MC/Disassembler/Mips/micromips32r6/valid.txt87
-rw-r--r--test/MC/Disassembler/Mips/micromips64r6/valid.txt149
-rw-r--r--test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips2/valid-mips2.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips3/valid-mips3.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips32/valid-mips32.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt67
-rw-r--r--test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt81
-rw-r--r--test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips4/valid-mips4.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips64/valid-mips64.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt10
-rw-r--r--test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt69
-rw-r--r--test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt81
-rw-r--r--test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt20
-rw-r--r--test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt12
-rw-r--r--test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt204
-rw-r--r--test/MC/Disassembler/PowerPC/ppc64-encoding.txt46
-rw-r--r--test/MC/Disassembler/PowerPC/vsx.txt329
-rw-r--r--test/MC/Disassembler/Sparc/sparc-special-registers.txt12
-rw-r--r--test/MC/Disassembler/Sparc/sparc-v9.txt114
-rw-r--r--test/MC/Disassembler/Sparc/sparc.txt106
-rw-r--r--test/MC/Disassembler/SystemZ/insns-pcrel.txt32
-rw-r--r--test/MC/Disassembler/SystemZ/insns-z13.txt96
-rw-r--r--test/MC/Disassembler/SystemZ/insns.txt1209
-rw-r--r--test/MC/Disassembler/X86/intel-syntax.txt4
-rw-r--r--test/MC/Disassembler/X86/simple-tests.txt15
-rw-r--r--test/MC/Disassembler/X86/x86-32.txt6
-rw-r--r--test/MC/ELF/cfi-version.ll5
-rw-r--r--test/MC/ELF/compression.s83
-rw-r--r--test/MC/ELF/got-relaxed-i386.s22
-rw-r--r--test/MC/ELF/got-relaxed-no-relax.s15
-rw-r--r--test/MC/ELF/got-relaxed-rex.s29
-rw-r--r--test/MC/ELF/got-relaxed.s21
-rw-r--r--test/MC/ELF/nocompression.s3
-rw-r--r--test/MC/ELF/relocation-386.s4
-rw-r--r--test/MC/ELF/relocation-tls.s26
-rw-r--r--test/MC/ELF/relocation.s6
-rw-r--r--test/MC/ELF/section-sym-err.s6
-rw-r--r--test/MC/ELF/section-sym-redefine.s138
-rw-r--r--test/MC/ELF/section.s4
-rw-r--r--test/MC/ELF/undefined-directional.s12
-rw-r--r--test/MC/Hexagon/align.s60
-rw-r--r--test/MC/Hexagon/basic.ll2
-rw-r--r--test/MC/Hexagon/double-vector-producer.s12
-rw-r--r--test/MC/Hexagon/duplex-registers.s10
-rw-r--r--test/MC/Hexagon/elf-flags.s9
-rw-r--r--test/MC/Hexagon/endloop.s2
-rw-r--r--test/MC/Hexagon/fixups.s25
-rw-r--r--test/MC/Hexagon/iconst.s6
-rw-r--r--test/MC/Hexagon/instructions/system_user.s36
-rw-r--r--test/MC/Hexagon/lcomm.s19
-rw-r--r--test/MC/Hexagon/new-value-check.s8
-rw-r--r--test/MC/Hexagon/out_of_range.s2
-rw-r--r--test/MC/Hexagon/register-alt-names.s14
-rw-r--r--test/MC/Hexagon/relocations.s244
-rw-r--r--test/MC/Hexagon/tprel_noextend.s8
-rw-r--r--test/MC/Hexagon/v60-misc.s121
-rw-r--r--test/MC/Lanai/conditional_inst.s77
-rw-r--r--test/MC/Lanai/ctrl-instructions.s13
-rw-r--r--test/MC/Lanai/lit.local.cfg3
-rw-r--r--test/MC/Lanai/memory.s247
-rw-r--r--test/MC/Lanai/v11.s876
-rw-r--r--test/MC/MachO/AArch64/cstexpr-gotpcrel.ll14
-rw-r--r--test/MC/MachO/AArch64/data-in-code.s49
-rw-r--r--test/MC/MachO/absolute.s9
-rw-r--r--test/MC/MachO/altentry.s77
-rw-r--r--test/MC/MachO/empty-twice.ll2
-rw-r--r--test/MC/MachO/undefined-directional.s11
-rw-r--r--test/MC/MachO/variable-exprs.s8
-rw-r--r--test/MC/MachO/x86-data-in-code.ll107
-rw-r--r--test/MC/MachO/x86-data-in-code.s47
-rw-r--r--test/MC/MachO/x86_64-reloc-arithmetic.s3
-rw-r--r--test/MC/Mips/cnmips/invalid.s8
-rw-r--r--test/MC/Mips/cpload.s13
-rw-r--r--test/MC/Mips/cprestore-bad.s2
-rw-r--r--test/MC/Mips/cprestore-noreorder-noat.s54
-rw-r--r--test/MC/Mips/cprestore-noreorder.s29
-rw-r--r--test/MC/Mips/cprestore-reorder.s29
-rw-r--r--test/MC/Mips/cprestore-warning-unused.s2
-rw-r--r--test/MC/Mips/cpsetup.s99
-rw-r--r--test/MC/Mips/directive-ent.s4
-rw-r--r--test/MC/Mips/do_switch1.s2
-rw-r--r--test/MC/Mips/do_switch2.s2
-rw-r--r--test/MC/Mips/do_switch3.s2
-rw-r--r--test/MC/Mips/double-expand.s26
-rw-r--r--test/MC/Mips/dsp/invalid.s28
-rw-r--r--test/MC/Mips/elf_eflags.s23
-rw-r--r--test/MC/Mips/elf_eflags_micromips.s7
-rw-r--r--test/MC/Mips/elf_eflags_micromips2.s11
-rw-r--r--test/MC/Mips/elf_st_other.s2
-rw-r--r--test/MC/Mips/eva/invalid-noeva-wrong-error.s96
-rw-r--r--test/MC/Mips/eva/invalid.s24
-rw-r--r--test/MC/Mips/eva/invalid_R6.s48
-rw-r--r--test/MC/Mips/expansion-jal-sym-pic.s84
-rw-r--r--test/MC/Mips/expr1.s44
-rw-r--r--test/MC/Mips/got-rel-expr.s20
-rw-r--r--test/MC/Mips/hex-immediates.s11
-rw-r--r--test/MC/Mips/higher-highest-addressing.s4
-rw-r--r--test/MC/Mips/init-order-bug.ll12
-rw-r--r--test/MC/Mips/insn-directive.s8
-rw-r--r--test/MC/Mips/instalias-imm-expanding.s18
-rw-r--r--test/MC/Mips/instr-analysis.s36
-rw-r--r--test/MC/Mips/macro-abs.s12
-rw-r--r--test/MC/Mips/macro-ddiv-bad.s22
-rw-r--r--test/MC/Mips/macro-ddiv.s41
-rw-r--r--test/MC/Mips/macro-ddivu-bad.s16
-rw-r--r--test/MC/Mips/macro-ddivu.s39
-rw-r--r--test/MC/Mips/macro-div-bad.s2
-rw-r--r--test/MC/Mips/macro-div.s39
-rw-r--r--test/MC/Mips/macro-divu-bad.s2
-rw-r--r--test/MC/Mips/macro-divu.s65
-rw-r--r--test/MC/Mips/macro-dla-32bit.s228
-rw-r--r--test/MC/Mips/macro-la-pic.s54
-rw-r--r--test/MC/Mips/macro-la.s8
-rw-r--r--test/MC/Mips/micromips-alias.s4
-rw-r--r--test/MC/Mips/micromips-alu-instructions.s17
-rw-r--r--test/MC/Mips/micromips-dsp/invalid.s2
-rw-r--r--test/MC/Mips/micromips-dsp/valid-micromips32r3.s4
-rw-r--r--test/MC/Mips/micromips-dsp/valid.s12
-rw-r--r--test/MC/Mips/micromips-dspr2/invalid.s10
-rw-r--r--test/MC/Mips/micromips-dspr2/valid.s16
-rw-r--r--test/MC/Mips/micromips-dspr3/valid.s4
-rw-r--r--test/MC/Mips/micromips-el-fixup-data.s2
-rw-r--r--test/MC/Mips/micromips-expansions.s10
-rw-r--r--test/MC/Mips/micromips-func-addr.s2
-rw-r--r--test/MC/Mips/micromips-invalid.s10
-rw-r--r--test/MC/Mips/micromips-label-test-sections.s8
-rw-r--r--test/MC/Mips/micromips-label-test.s8
-rw-r--r--test/MC/Mips/micromips-relocations.s28
-rw-r--r--test/MC/Mips/micromips-shift-instructions.s27
-rw-r--r--test/MC/Mips/micromips/invalid-wrong-error.s13
-rw-r--r--test/MC/Mips/micromips/invalid.s95
-rw-r--r--test/MC/Mips/micromips32r6/invalid-wrong-error.s44
-rw-r--r--test/MC/Mips/micromips32r6/invalid.s200
-rw-r--r--test/MC/Mips/micromips32r6/relocations.s43
-rw-r--r--test/MC/Mips/micromips32r6/valid.s114
-rw-r--r--test/MC/Mips/micromips64r6/invalid-wrong-error.s52
-rw-r--r--test/MC/Mips/micromips64r6/invalid.s224
-rw-r--r--test/MC/Mips/micromips64r6/relocations.s48
-rw-r--r--test/MC/Mips/micromips64r6/valid.s175
-rw-r--r--test/MC/Mips/mips-control-instructions.s6
-rw-r--r--test/MC/Mips/mips-cop0-reginfo.s2
-rw-r--r--test/MC/Mips/mips-data-directives.s11
-rw-r--r--test/MC/Mips/mips-expansions-bad.s4
-rw-r--r--test/MC/Mips/mips-expansions.s44
-rw-r--r--test/MC/Mips/mips-pdr.s6
-rw-r--r--test/MC/Mips/mips1/invalid-mips2-wrong-error.s12
-rw-r--r--test/MC/Mips/mips1/invalid-mips3-wrong-error.s18
-rw-r--r--test/MC/Mips/mips1/invalid-mips3.s4
-rw-r--r--test/MC/Mips/mips1/invalid-mips4-wrong-error.s18
-rw-r--r--test/MC/Mips/mips1/invalid-mips4.s4
-rw-r--r--test/MC/Mips/mips1/invalid-mips5.s2
-rw-r--r--test/MC/Mips/mips1/valid.s48
-rw-r--r--test/MC/Mips/mips2/invalid-mips3-wrong-error.s6
-rw-r--r--test/MC/Mips/mips2/invalid-mips3.s4
-rw-r--r--test/MC/Mips/mips2/invalid-mips4-wrong-error.s5
-rw-r--r--test/MC/Mips/mips2/invalid-mips4.s3
-rw-r--r--test/MC/Mips/mips2/valid.s32
-rw-r--r--test/MC/Mips/mips3/valid.s43
-rw-r--r--test/MC/Mips/mips32/valid.s32
-rw-r--r--test/MC/Mips/mips32r2/invalid-dsp.s2
-rw-r--r--test/MC/Mips/mips32r2/invalid-dspr2.s2
-rw-r--r--test/MC/Mips/mips32r2/invalid.s16
-rw-r--r--test/MC/Mips/mips32r2/valid.s32
-rw-r--r--test/MC/Mips/mips32r3/valid.s32
-rw-r--r--test/MC/Mips/mips32r5/invalid.s54
-rw-r--r--test/MC/Mips/mips32r5/valid.s32
-rw-r--r--test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s10
-rw-r--r--test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s12
-rw-r--r--test/MC/Mips/mips32r6/invalid.s88
-rw-r--r--test/MC/Mips/mips32r6/relocations.s4
-rw-r--r--test/MC/Mips/mips32r6/valid-xfail.s19
-rw-r--r--test/MC/Mips/mips32r6/valid.s45
-rw-r--r--test/MC/Mips/mips4/valid.s43
-rw-r--r--test/MC/Mips/mips5/valid.s43
-rw-r--r--test/MC/Mips/mips64-expansions.s11
-rw-r--r--test/MC/Mips/mips64/abiflags.s4
-rw-r--r--test/MC/Mips/mips64/invalid-mips64r2.s16
-rw-r--r--test/MC/Mips/mips64/valid.s43
-rw-r--r--test/MC/Mips/mips64extins.ll57
-rw-r--r--test/MC/Mips/mips64extins.s9
-rw-r--r--test/MC/Mips/mips64r2/abi-bad.s2
-rw-r--r--test/MC/Mips/mips64r2/abiflags.s4
-rw-r--r--test/MC/Mips/mips64r2/invalid.s10
-rw-r--r--test/MC/Mips/mips64r2/valid.s44
-rw-r--r--test/MC/Mips/mips64r3/abi-bad.s2
-rw-r--r--test/MC/Mips/mips64r3/abiflags.s4
-rw-r--r--test/MC/Mips/mips64r3/invalid.s1
-rw-r--r--test/MC/Mips/mips64r3/valid.s43
-rw-r--r--test/MC/Mips/mips64r5/abi-bad.s2
-rw-r--r--test/MC/Mips/mips64r5/abiflags.s4
-rw-r--r--test/MC/Mips/mips64r5/invalid.s51
-rw-r--r--test/MC/Mips/mips64r5/valid.s43
-rw-r--r--test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s8
-rw-r--r--test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s8
-rw-r--r--test/MC/Mips/mips64r6/invalid.s88
-rw-r--r--test/MC/Mips/mips64r6/relocations.s4
-rw-r--r--test/MC/Mips/mips64r6/valid-xfail.s19
-rw-r--r--test/MC/Mips/mips64r6/valid.s50
-rw-r--r--test/MC/Mips/mips64shift.ll4
-rw-r--r--test/MC/Mips/mips_abi_flags_xx.s36
-rw-r--r--test/MC/Mips/mips_directives.s2
-rw-r--r--test/MC/Mips/mips_gprel16.s10
-rw-r--r--test/MC/Mips/msa/invalid.s324
-rw-r--r--test/MC/Mips/msa/test_mi10.s73
-rw-r--r--test/MC/Mips/nacl-mask.s3
-rw-r--r--test/MC/Mips/nooddspreg-cmdarg.s2
-rw-r--r--test/MC/Mips/nooddspreg.s2
-rw-r--r--test/MC/Mips/oddspreg.s12
-rw-r--r--test/MC/Mips/reloc-directive-negative.s6
-rw-r--r--test/MC/Mips/reloc-directive.s12
-rw-r--r--test/MC/Mips/relocation-n64.s41
-rw-r--r--test/MC/Mips/relocation-xfail.s31
-rw-r--r--test/MC/Mips/relocation.s189
-rw-r--r--test/MC/Mips/section-size.s106
-rw-r--r--test/MC/Mips/set-arch.s6
-rw-r--r--test/MC/Mips/set-defined-symbol.s2
-rw-r--r--test/MC/Mips/set-push-pop-directives-bad.s9
-rw-r--r--test/MC/Mips/sext_64_32.ll3
-rw-r--r--test/MC/Mips/sort-relocation-table.s491
-rw-r--r--test/MC/Mips/target-soft-float.s8
-rw-r--r--test/MC/Mips/user-macro-argument-separation.s40
-rw-r--r--test/MC/PowerPC/ppc64-encoding-bookII.s17
-rw-r--r--test/MC/PowerPC/ppc64-encoding-ext.s19
-rw-r--r--test/MC/PowerPC/ppc64-encoding-vmx.s237
-rw-r--r--test/MC/PowerPC/ppc64-encoding.s55
-rw-r--r--test/MC/PowerPC/ppc64-fixups.s32
-rw-r--r--test/MC/PowerPC/ppc64-initial-cfa.s8
-rw-r--r--test/MC/PowerPC/ppc64-localentry.s6
-rw-r--r--test/MC/PowerPC/st-other-crash.s3
-rw-r--r--test/MC/PowerPC/vsx.s415
-rwxr-xr-xtest/MC/Sparc/leon-instructions.s20
-rw-r--r--test/MC/Sparc/sparc-coproc.s72
-rw-r--r--test/MC/Sparc/sparc-ctrl-instructions.s184
-rw-r--r--test/MC/Sparc/sparc-directives.s4
-rw-r--r--test/MC/Sparc/sparc-fp-instructions.s30
-rw-r--r--test/MC/Sparc/sparc-pic.s4
-rw-r--r--test/MC/Sparc/sparc-special-registers.s3
-rw-r--r--test/MC/Sparc/sparc-traps.s151
-rw-r--r--test/MC/Sparc/sparc-v9-traps.s303
-rw-r--r--test/MC/Sparc/sparc64-ctrl-instructions.s6
-rw-r--r--test/MC/SystemZ/insn-bad-z13.s23
-rw-r--r--test/MC/SystemZ/insn-bad-z196.s14
-rw-r--r--test/MC/SystemZ/insn-bad-zEC12.s11
-rw-r--r--test/MC/SystemZ/insn-bad.s257
-rw-r--r--test/MC/SystemZ/insn-good-z13.s68
-rw-r--r--test/MC/SystemZ/insn-good-z196.s98
-rw-r--r--test/MC/SystemZ/insn-good.s1247
-rw-r--r--test/MC/SystemZ/word.s24
-rw-r--r--test/MC/X86/avx512-encodings.s316
-rw-r--r--test/MC/X86/avx512ifma-encoding.s145
-rw-r--r--test/MC/X86/avx512ifmavl-encoding.s274
-rw-r--r--test/MC/X86/avx512vbmi-encoding.s543
-rw-r--r--test/MC/X86/error-reloc.s21
-rw-r--r--test/MC/X86/i386-darwin-frame-register.ll2
-rw-r--r--test/MC/X86/imm-comments.s28
-rw-r--r--test/MC/X86/index-operations.s16
-rw-r--r--test/MC/X86/intel-syntax-avx512.s38017
-rw-r--r--test/MC/X86/intel-syntax-x86-64-avx.s65
-rw-r--r--test/MC/X86/intel-syntax-x86-64-avx512f_vl.s897
-rw-r--r--test/MC/X86/intel-syntax.s49
-rw-r--r--test/MC/X86/invalid_opcode.s4
-rw-r--r--test/MC/X86/mpx-encodings.s25
-rw-r--r--test/MC/X86/pr28547.s5
-rw-r--r--test/MC/X86/reloc-directive.s40
-rw-r--r--test/MC/X86/x86-32.s49
-rw-r--r--test/MC/X86/x86-64-avx512bw.s108
-rw-r--r--test/MC/X86/x86-64-avx512bw_vl.s288
-rw-r--r--test/MC/X86/x86-64.s91
-rw-r--r--test/MC/X86/x86-branch-relaxation.s31
-rw-r--r--test/MC/X86/x86_errors.s4
-rw-r--r--test/MC/X86/x86_long_nop.s20
460 files changed, 64739 insertions, 2888 deletions
diff --git a/test/MC/AArch64/arm64-advsimd.s b/test/MC/AArch64/arm64-advsimd.s
index 294f09082916..6c68673360c1 100644
--- a/test/MC/AArch64/arm64-advsimd.s
+++ b/test/MC/AArch64/arm64-advsimd.s
@@ -931,19 +931,19 @@ foo:
bic.2s v0, #1, lsl #16
bic.2s v0, #1, lsl #24
-; CHECK: bic.2s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x2f]
-; CHECK: bic.2s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x2f]
-; CHECK: bic.2s v0, #0x1, lsl #8 ; encoding: [0x20,0x34,0x00,0x2f]
-; CHECK: bic.2s v0, #0x1, lsl #16 ; encoding: [0x20,0x54,0x00,0x2f]
-; CHECK: bic.2s v0, #0x1, lsl #24 ; encoding: [0x20,0x74,0x00,0x2f]
+; CHECK: bic.2s v0, #1 ; encoding: [0x20,0x14,0x00,0x2f]
+; CHECK: bic.2s v0, #1 ; encoding: [0x20,0x14,0x00,0x2f]
+; CHECK: bic.2s v0, #1, lsl #8 ; encoding: [0x20,0x34,0x00,0x2f]
+; CHECK: bic.2s v0, #1, lsl #16 ; encoding: [0x20,0x54,0x00,0x2f]
+; CHECK: bic.2s v0, #1, lsl #24 ; encoding: [0x20,0x74,0x00,0x2f]
bic.4h v0, #1
bic.4h v0, #1, lsl #0
bic.4h v0, #1, lsl #8
-; CHECK: bic.4h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x2f]
-; CHECK: bic.4h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x2f]
-; CHECK: bic.4h v0, #0x1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x2f]
+; CHECK: bic.4h v0, #1 ; encoding: [0x20,0x94,0x00,0x2f]
+; CHECK: bic.4h v0, #1 ; encoding: [0x20,0x94,0x00,0x2f]
+; CHECK: bic.4h v0, #1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x2f]
bic.4s v0, #1
bic.4s v0, #1, lsl #0
@@ -951,19 +951,19 @@ foo:
bic.4s v0, #1, lsl #16
bic.4s v0, #1, lsl #24
-; CHECK: bic.4s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x6f]
-; CHECK: bic.4s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x6f]
-; CHECK: bic.4s v0, #0x1, lsl #8 ; encoding: [0x20,0x34,0x00,0x6f]
-; CHECK: bic.4s v0, #0x1, lsl #16 ; encoding: [0x20,0x54,0x00,0x6f]
-; CHECK: bic.4s v0, #0x1, lsl #24 ; encoding: [0x20,0x74,0x00,0x6f]
+; CHECK: bic.4s v0, #1 ; encoding: [0x20,0x14,0x00,0x6f]
+; CHECK: bic.4s v0, #1 ; encoding: [0x20,0x14,0x00,0x6f]
+; CHECK: bic.4s v0, #1, lsl #8 ; encoding: [0x20,0x34,0x00,0x6f]
+; CHECK: bic.4s v0, #1, lsl #16 ; encoding: [0x20,0x54,0x00,0x6f]
+; CHECK: bic.4s v0, #1, lsl #24 ; encoding: [0x20,0x74,0x00,0x6f]
bic.8h v0, #1
bic.8h v0, #1, lsl #0
bic.8h v0, #1, lsl #8
-; CHECK: bic.8h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x6f]
-; CHECK: bic.8h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x6f]
-; CHECK: bic.8h v0, #0x1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x6f]
+; CHECK: bic.8h v0, #1 ; encoding: [0x20,0x94,0x00,0x6f]
+; CHECK: bic.8h v0, #1 ; encoding: [0x20,0x94,0x00,0x6f]
+; CHECK: bic.8h v0, #1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x6f]
fmov.2d v0, #1.250000e-01
@@ -981,19 +981,19 @@ foo:
orr.2s v0, #1, lsl #16
orr.2s v0, #1, lsl #24
-; CHECK: orr.2s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x0f]
-; CHECK: orr.2s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x0f]
-; CHECK: orr.2s v0, #0x1, lsl #8 ; encoding: [0x20,0x34,0x00,0x0f]
-; CHECK: orr.2s v0, #0x1, lsl #16 ; encoding: [0x20,0x54,0x00,0x0f]
-; CHECK: orr.2s v0, #0x1, lsl #24 ; encoding: [0x20,0x74,0x00,0x0f]
+; CHECK: orr.2s v0, #1 ; encoding: [0x20,0x14,0x00,0x0f]
+; CHECK: orr.2s v0, #1 ; encoding: [0x20,0x14,0x00,0x0f]
+; CHECK: orr.2s v0, #1, lsl #8 ; encoding: [0x20,0x34,0x00,0x0f]
+; CHECK: orr.2s v0, #1, lsl #16 ; encoding: [0x20,0x54,0x00,0x0f]
+; CHECK: orr.2s v0, #1, lsl #24 ; encoding: [0x20,0x74,0x00,0x0f]
orr.4h v0, #1
orr.4h v0, #1, lsl #0
orr.4h v0, #1, lsl #8
-; CHECK: orr.4h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x0f]
-; CHECK: orr.4h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x0f]
-; CHECK: orr.4h v0, #0x1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x0f]
+; CHECK: orr.4h v0, #1 ; encoding: [0x20,0x94,0x00,0x0f]
+; CHECK: orr.4h v0, #1 ; encoding: [0x20,0x94,0x00,0x0f]
+; CHECK: orr.4h v0, #1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x0f]
orr.4s v0, #1
orr.4s v0, #1, lsl #0
@@ -1001,19 +1001,19 @@ foo:
orr.4s v0, #1, lsl #16
orr.4s v0, #1, lsl #24
-; CHECK: orr.4s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x4f]
-; CHECK: orr.4s v0, #0x1 ; encoding: [0x20,0x14,0x00,0x4f]
-; CHECK: orr.4s v0, #0x1, lsl #8 ; encoding: [0x20,0x34,0x00,0x4f]
-; CHECK: orr.4s v0, #0x1, lsl #16 ; encoding: [0x20,0x54,0x00,0x4f]
-; CHECK: orr.4s v0, #0x1, lsl #24 ; encoding: [0x20,0x74,0x00,0x4f]
+; CHECK: orr.4s v0, #1 ; encoding: [0x20,0x14,0x00,0x4f]
+; CHECK: orr.4s v0, #1 ; encoding: [0x20,0x14,0x00,0x4f]
+; CHECK: orr.4s v0, #1, lsl #8 ; encoding: [0x20,0x34,0x00,0x4f]
+; CHECK: orr.4s v0, #1, lsl #16 ; encoding: [0x20,0x54,0x00,0x4f]
+; CHECK: orr.4s v0, #1, lsl #24 ; encoding: [0x20,0x74,0x00,0x4f]
orr.8h v0, #1
orr.8h v0, #1, lsl #0
orr.8h v0, #1, lsl #8
-; CHECK: orr.8h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x4f]
-; CHECK: orr.8h v0, #0x1 ; encoding: [0x20,0x94,0x00,0x4f]
-; CHECK: orr.8h v0, #0x1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x4f]
+; CHECK: orr.8h v0, #1 ; encoding: [0x20,0x94,0x00,0x4f]
+; CHECK: orr.8h v0, #1 ; encoding: [0x20,0x94,0x00,0x4f]
+; CHECK: orr.8h v0, #1, lsl #8 ; encoding: [0x20,0xb4,0x00,0x4f]
movi d0, #0x000000000000ff
movi.2d v0, #0x000000000000ff
@@ -1027,11 +1027,11 @@ foo:
movi.2s v0, #1, lsl #16
movi.2s v0, #1, lsl #24
-; CHECK: movi.2s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x0f]
-; CHECK: movi.2s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x0f]
-; CHECK: movi.2s v0, #0x1, lsl #8 ; encoding: [0x20,0x24,0x00,0x0f]
-; CHECK: movi.2s v0, #0x1, lsl #16 ; encoding: [0x20,0x44,0x00,0x0f]
-; CHECK: movi.2s v0, #0x1, lsl #24 ; encoding: [0x20,0x64,0x00,0x0f]
+; CHECK: movi.2s v0, #1 ; encoding: [0x20,0x04,0x00,0x0f]
+; CHECK: movi.2s v0, #1 ; encoding: [0x20,0x04,0x00,0x0f]
+; CHECK: movi.2s v0, #1, lsl #8 ; encoding: [0x20,0x24,0x00,0x0f]
+; CHECK: movi.2s v0, #1, lsl #16 ; encoding: [0x20,0x44,0x00,0x0f]
+; CHECK: movi.2s v0, #1, lsl #24 ; encoding: [0x20,0x64,0x00,0x0f]
movi.4s v0, #1
movi.4s v0, #1, lsl #0
@@ -1039,43 +1039,43 @@ foo:
movi.4s v0, #1, lsl #16
movi.4s v0, #1, lsl #24
-; CHECK: movi.4s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x4f]
-; CHECK: movi.4s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x4f]
-; CHECK: movi.4s v0, #0x1, lsl #8 ; encoding: [0x20,0x24,0x00,0x4f]
-; CHECK: movi.4s v0, #0x1, lsl #16 ; encoding: [0x20,0x44,0x00,0x4f]
-; CHECK: movi.4s v0, #0x1, lsl #24 ; encoding: [0x20,0x64,0x00,0x4f]
+; CHECK: movi.4s v0, #1 ; encoding: [0x20,0x04,0x00,0x4f]
+; CHECK: movi.4s v0, #1 ; encoding: [0x20,0x04,0x00,0x4f]
+; CHECK: movi.4s v0, #1, lsl #8 ; encoding: [0x20,0x24,0x00,0x4f]
+; CHECK: movi.4s v0, #1, lsl #16 ; encoding: [0x20,0x44,0x00,0x4f]
+; CHECK: movi.4s v0, #1, lsl #24 ; encoding: [0x20,0x64,0x00,0x4f]
movi.4h v0, #1
movi.4h v0, #1, lsl #0
movi.4h v0, #1, lsl #8
-; CHECK: movi.4h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x0f]
-; CHECK: movi.4h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x0f]
-; CHECK: movi.4h v0, #0x1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x0f]
+; CHECK: movi.4h v0, #1 ; encoding: [0x20,0x84,0x00,0x0f]
+; CHECK: movi.4h v0, #1 ; encoding: [0x20,0x84,0x00,0x0f]
+; CHECK: movi.4h v0, #1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x0f]
movi.8h v0, #1
movi.8h v0, #1, lsl #0
movi.8h v0, #1, lsl #8
-; CHECK: movi.8h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x4f]
-; CHECK: movi.8h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x4f]
-; CHECK: movi.8h v0, #0x1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x4f]
+; CHECK: movi.8h v0, #1 ; encoding: [0x20,0x84,0x00,0x4f]
+; CHECK: movi.8h v0, #1 ; encoding: [0x20,0x84,0x00,0x4f]
+; CHECK: movi.8h v0, #1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x4f]
movi.2s v0, #1, msl #8
movi.2s v0, #1, msl #16
movi.4s v0, #1, msl #8
movi.4s v0, #1, msl #16
-; CHECK: movi.2s v0, #0x1, msl #8 ; encoding: [0x20,0xc4,0x00,0x0f]
-; CHECK: movi.2s v0, #0x1, msl #16 ; encoding: [0x20,0xd4,0x00,0x0f]
-; CHECK: movi.4s v0, #0x1, msl #8 ; encoding: [0x20,0xc4,0x00,0x4f]
-; CHECK: movi.4s v0, #0x1, msl #16 ; encoding: [0x20,0xd4,0x00,0x4f]
+; CHECK: movi.2s v0, #1, msl #8 ; encoding: [0x20,0xc4,0x00,0x0f]
+; CHECK: movi.2s v0, #1, msl #16 ; encoding: [0x20,0xd4,0x00,0x0f]
+; CHECK: movi.4s v0, #1, msl #8 ; encoding: [0x20,0xc4,0x00,0x4f]
+; CHECK: movi.4s v0, #1, msl #16 ; encoding: [0x20,0xd4,0x00,0x4f]
movi.8b v0, #1
movi.16b v0, #1
-; CHECK: movi.8b v0, #0x1 ; encoding: [0x20,0xe4,0x00,0x0f]
-; CHECK: movi.16b v0, #0x1 ; encoding: [0x20,0xe4,0x00,0x4f]
+; CHECK: movi.8b v0, #1 ; encoding: [0x20,0xe4,0x00,0x0f]
+; CHECK: movi.16b v0, #1 ; encoding: [0x20,0xe4,0x00,0x4f]
mvni.2s v0, #1
mvni.2s v0, #1, lsl #0
@@ -1083,11 +1083,11 @@ foo:
mvni.2s v0, #1, lsl #16
mvni.2s v0, #1, lsl #24
-; CHECK: mvni.2s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x2f]
-; CHECK: mvni.2s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x2f]
-; CHECK: mvni.2s v0, #0x1, lsl #8 ; encoding: [0x20,0x24,0x00,0x2f]
-; CHECK: mvni.2s v0, #0x1, lsl #16 ; encoding: [0x20,0x44,0x00,0x2f]
-; CHECK: mvni.2s v0, #0x1, lsl #24 ; encoding: [0x20,0x64,0x00,0x2f]
+; CHECK: mvni.2s v0, #1 ; encoding: [0x20,0x04,0x00,0x2f]
+; CHECK: mvni.2s v0, #1 ; encoding: [0x20,0x04,0x00,0x2f]
+; CHECK: mvni.2s v0, #1, lsl #8 ; encoding: [0x20,0x24,0x00,0x2f]
+; CHECK: mvni.2s v0, #1, lsl #16 ; encoding: [0x20,0x44,0x00,0x2f]
+; CHECK: mvni.2s v0, #1, lsl #24 ; encoding: [0x20,0x64,0x00,0x2f]
mvni.4s v0, #1
mvni.4s v0, #1, lsl #0
@@ -1095,37 +1095,37 @@ foo:
mvni.4s v0, #1, lsl #16
mvni.4s v0, #1, lsl #24
-; CHECK: mvni.4s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x6f]
-; CHECK: mvni.4s v0, #0x1 ; encoding: [0x20,0x04,0x00,0x6f]
-; CHECK: mvni.4s v0, #0x1, lsl #8 ; encoding: [0x20,0x24,0x00,0x6f]
-; CHECK: mvni.4s v0, #0x1, lsl #16 ; encoding: [0x20,0x44,0x00,0x6f]
-; CHECK: mvni.4s v0, #0x1, lsl #24 ; encoding: [0x20,0x64,0x00,0x6f]
+; CHECK: mvni.4s v0, #1 ; encoding: [0x20,0x04,0x00,0x6f]
+; CHECK: mvni.4s v0, #1 ; encoding: [0x20,0x04,0x00,0x6f]
+; CHECK: mvni.4s v0, #1, lsl #8 ; encoding: [0x20,0x24,0x00,0x6f]
+; CHECK: mvni.4s v0, #1, lsl #16 ; encoding: [0x20,0x44,0x00,0x6f]
+; CHECK: mvni.4s v0, #1, lsl #24 ; encoding: [0x20,0x64,0x00,0x6f]
mvni.4h v0, #1
mvni.4h v0, #1, lsl #0
mvni.4h v0, #1, lsl #8
-; CHECK: mvni.4h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x2f]
-; CHECK: mvni.4h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x2f]
-; CHECK: mvni.4h v0, #0x1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x2f]
+; CHECK: mvni.4h v0, #1 ; encoding: [0x20,0x84,0x00,0x2f]
+; CHECK: mvni.4h v0, #1 ; encoding: [0x20,0x84,0x00,0x2f]
+; CHECK: mvni.4h v0, #1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x2f]
mvni.8h v0, #1
mvni.8h v0, #1, lsl #0
mvni.8h v0, #1, lsl #8
-; CHECK: mvni.8h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x6f]
-; CHECK: mvni.8h v0, #0x1 ; encoding: [0x20,0x84,0x00,0x6f]
-; CHECK: mvni.8h v0, #0x1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x6f]
+; CHECK: mvni.8h v0, #1 ; encoding: [0x20,0x84,0x00,0x6f]
+; CHECK: mvni.8h v0, #1 ; encoding: [0x20,0x84,0x00,0x6f]
+; CHECK: mvni.8h v0, #1, lsl #8 ; encoding: [0x20,0xa4,0x00,0x6f]
mvni.2s v0, #1, msl #8
mvni.2s v0, #1, msl #16
mvni.4s v0, #1, msl #8
mvni.4s v0, #1, msl #16
-; CHECK: mvni.2s v0, #0x1, msl #8 ; encoding: [0x20,0xc4,0x00,0x2f]
-; CHECK: mvni.2s v0, #0x1, msl #16 ; encoding: [0x20,0xd4,0x00,0x2f]
-; CHECK: mvni.4s v0, #0x1, msl #8 ; encoding: [0x20,0xc4,0x00,0x6f]
-; CHECK: mvni.4s v0, #0x1, msl #16 ; encoding: [0x20,0xd4,0x00,0x6f]
+; CHECK: mvni.2s v0, #1, msl #8 ; encoding: [0x20,0xc4,0x00,0x2f]
+; CHECK: mvni.2s v0, #1, msl #16 ; encoding: [0x20,0xd4,0x00,0x2f]
+; CHECK: mvni.4s v0, #1, msl #8 ; encoding: [0x20,0xc4,0x00,0x6f]
+; CHECK: mvni.4s v0, #1, msl #16 ; encoding: [0x20,0xd4,0x00,0x6f]
;===-------------------------------------------------------------------------===
; AdvSIMD scalar x index
diff --git a/test/MC/AArch64/arm64-aliases.s b/test/MC/AArch64/arm64-aliases.s
index c3affe37aa9c..3ace7a0f7183 100644
--- a/test/MC/AArch64/arm64-aliases.s
+++ b/test/MC/AArch64/arm64-aliases.s
@@ -1,4 +1,4 @@
-; RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon -output-asm-variant=1 -show-encoding < %s | FileCheck %s
+; RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon -output-asm-variant=1 -show-encoding -print-imm-hex < %s | FileCheck %s
foo:
;-----------------------------------------------------------------------------
@@ -66,8 +66,8 @@ foo:
cmn x2, w3, uxtb #1
cmn x4, x5, uxtx #1
-; CHECK: cmn w1, #3 ; encoding: [0x3f,0x0c,0x00,0x31]
-; CHECK: cmn x2, #1024, lsl #12 ; encoding: [0x5f,0x00,0x50,0xb1]
+; CHECK: cmn w1, #0x3 ; encoding: [0x3f,0x0c,0x00,0x31]
+; CHECK: cmn x2, #0x400, lsl #12 ; encoding: [0x5f,0x00,0x50,0xb1]
; CHECK: cmn w4, w5 ; encoding: [0x9f,0x00,0x05,0x2b]
; CHECK: cmn x6, x7 ; encoding: [0xdf,0x00,0x07,0xab]
; CHECK: cmn w8, w9, asr #3 ; encoding: [0x1f,0x0d,0x89,0x2b]
@@ -92,8 +92,8 @@ foo:
cmp w9, w8, uxtw
cmp wsp, w9, lsl #0
-; CHECK: cmp w1, #1024, lsl #12 ; encoding: [0x3f,0x00,0x50,0x71]
-; CHECK: cmp x2, #1024 ; encoding: [0x5f,0x00,0x10,0xf1]
+; CHECK: cmp w1, #0x400, lsl #12 ; encoding: [0x3f,0x00,0x50,0x71]
+; CHECK: cmp x2, #0x400 ; encoding: [0x5f,0x00,0x10,0xf1]
; CHECK: cmp w4, w5 ; encoding: [0x9f,0x00,0x05,0x6b]
; CHECK: cmp x6, x7 ; encoding: [0xdf,0x00,0x07,0xeb]
; CHECK: cmp w8, w9, asr #3 ; encoding: [0x1f,0x0d,0x89,0x6b]
@@ -134,18 +134,101 @@ foo:
mov x0, #281470681743360
mov x0, #18446744073709486080
-; CHECK: movz x0, #0xffff, lsl #32
-; CHECK: movn x0, #0xffff
+; CHECK: mov x0, #0xffff00000000
+; CHECK: mov x0, #-0x10000
mov w0, #0xffffffff
mov w0, #0xffffff00
mov wzr, #0xffffffff
mov wzr, #0xffffff00
-; CHECK: movn w0, #0
-; CHECK: movn w0, #0xff
-; CHECK: movn wzr, #0
-; CHECK: movn wzr, #0xff
+; CHECK: mov w0, #-0x1
+; CHECK: mov w0, #-0x100
+; CHECK: mov wzr, #-0x1
+; CHECK: mov wzr, #-0x100
+
+ ; 0 can be encoded by MOVZ in multiple ways, only "lsl #0" is a MOV alias.
+ movz x0, #0
+ movz x0, #0, lsl #16
+ movz x0, #0, lsl #32
+ movz x0, #0, lsl #48
+ movz w0, #0
+ movz w0, #0, lsl #16
+; CHECK: mov x0, #0x0
+; CHECK: movz x0, #0x0, lsl #16
+; CHECK: movz x0, #0x0, lsl #32
+; CHECK: movz x0, #0x0, lsl #48
+; CHECK: mov w0, #0x0
+; CHECK: movz w0, #0x0, lsl #16
+
+ ; Similarly to MOVZ, -1 can be encoded in multiple ways, only one of which is
+ ; "MOV".
+ movn x0, #0
+ movn x0, #0, lsl #16
+ movn x0, #0, lsl #32
+ movn x0, #0, lsl #48
+ movn w0, #0
+ movn w0, #0, lsl #16
+; CHECK: mov x0, #-0x1
+; CHECK: movn x0, #0x0, lsl #16
+; CHECK: movn x0, #0x0, lsl #32
+; CHECK: movn x0, #0x0, lsl #48
+; CHECK: mov w0, #-0x1
+; CHECK: movn w0, #0x0, lsl #16
+
+ ; Two 32-bit immediates are encodable by both MOVN and MOVZ, make sure the MOV
+ ; corresponds to the MOVZ version.
+ movz w0, #0xffff
+ movz w0, #0xffff, lsl #16
+ movn w0, #0xffff
+ movn w0, #0xffff, lsl #16
+; CHECK: mov w0, #0xffff
+; CHECK: mov w0, #-0x10000
+; CHECK: movn w0, #0xffff
+; CHECK: movn w0, #0xffff, lsl #16
+
+ orr x20, xzr, #0xaaaaaaaaaaaaaaaa
+ orr w15, wzr, #0xaaaaaaaa
+; CHECK: mov x20, #-0x5555555555555556
+; CHECK: mov w15, #-0x55555556
+
+ ; ORR is mostly repeating bit sequences and cannot encode -1, so it only
+ ; overlaps with MOVZ or MOVN if the repeat-width is the whole register. In
+ ; both cases MOVZ/MOVN are preferred.
+ orr x3, xzr, #0x1
+ orr w3, wzr, #0x1
+ orr x3, xzr, #0x10000
+ orr w3, wzr, #0x10000
+ orr x3, xzr, #0x700000000
+ orr x3, xzr, #0x3000000000000
+; CHECK: orr x3, xzr, #0x1
+; CHECK: orr w3, wzr, #0x1
+; CHECK: orr x3, xzr, #0x10000
+; CHECK: orr w3, wzr, #0x10000
+; CHECK: orr x3, xzr, #0x700000000
+; CHECK: orr x3, xzr, #0x3000000000000
+
+
+ orr x5, xzr, #0xfffffffffffffff0
+ orr w2, wzr, #0xfffffffe
+ orr x5, xzr, #0xfffffffffcffffff
+ orr w2, wzr, #0xf0ffffff
+ orr x5, xzr, #0xffffff00ffffffff
+ orr x5, xzr, #0x8000ffffffffffff
+; CHECK: orr x5, xzr, #0xfffffffffffffff0
+; CHECK: orr w2, wzr, #0xfffffffe
+; CHECK: orr x5, xzr, #0x8000ffffffffffff
+
+ ; 0xffff is interesting because there are exceptions in the MOVN rules for
+ ; it. Make sure we don't accidentally fall down any of those holes.
+ orr w3, wzr, #0xffff0000
+ orr w3, wzr, #0xffff
+ orr x3, xzr, #0xffff000000000000
+ orr x5, xzr, #0x0000ffffffffffff
+; CHECK: orr w3, wzr, #0xffff0000
+; CHECK: orr w3, wzr, #0xffff
+; CHECK: orr x3, xzr, #0xffff000000000000
+; CHECK: orr x5, xzr, #0xffffffffffff
;-----------------------------------------------------------------------------
; MVN aliases
@@ -218,8 +301,8 @@ foo:
ubfm x0, x0, #63, #62
ubfm w0, w0, #4, #31
ubfm x0, x0, #4, #63
-; CHECK: ror w1, w3, #5
-; CHECK: ror x1, x3, #5
+; CHECK: ror w1, w3, #0x5
+; CHECK: ror x1, x3, #0x5
ror w1, w3, #5
ror x1, x3, #5
; CHECK: lsl w1, wzr, #3
@@ -745,7 +828,7 @@ foo:
movi v1.2d, #0x000000000000ff
movi v2.2D, #0x000000000000ff
-; CHECK: movi.16b v4, #0 ; encoding: [0x04,0xe4,0x00,0x4f]
+; CHECK: movi.16b v4, #0x0 ; encoding: [0x04,0xe4,0x00,0x4f]
; CHECK: movi.16b v4, #0x1 ; encoding: [0x24,0xe4,0x00,0x4f]
; CHECK: movi.8b v4, #0x2 ; encoding: [0x44,0xe4,0x00,0x0f]
; CHECK: movi.8b v4, #0x3 ; encoding: [0x64,0xe4,0x00,0x0f]
diff --git a/test/MC/AArch64/arm64-arithmetic-encoding.s b/test/MC/AArch64/arm64-arithmetic-encoding.s
index 5fd591240e25..7b090692de31 100644
--- a/test/MC/AArch64/arm64-arithmetic-encoding.s
+++ b/test/MC/AArch64/arm64-arithmetic-encoding.s
@@ -494,30 +494,30 @@ foo:
movz w0, #1, lsl #16
movz x0, #1, lsl #16
-; CHECK: movz w0, #0x1 ; encoding: [0x20,0x00,0x80,0x52]
-; CHECK: movz x0, #0x1 ; encoding: [0x20,0x00,0x80,0xd2]
-; CHECK: movz w0, #0x1, lsl #16 ; encoding: [0x20,0x00,0xa0,0x52]
-; CHECK: movz x0, #0x1, lsl #16 ; encoding: [0x20,0x00,0xa0,0xd2]
+; CHECK: mov w0, #1 ; encoding: [0x20,0x00,0x80,0x52]
+; CHECK: mov x0, #1 ; encoding: [0x20,0x00,0x80,0xd2]
+; CHECK: mov w0, #65536 ; encoding: [0x20,0x00,0xa0,0x52]
+; CHECK: mov x0, #65536 ; encoding: [0x20,0x00,0xa0,0xd2]
movn w0, #2
movn x0, #2
movn w0, #2, lsl #16
movn x0, #2, lsl #16
-; CHECK: movn w0, #0x2 ; encoding: [0x40,0x00,0x80,0x12]
-; CHECK: movn x0, #0x2 ; encoding: [0x40,0x00,0x80,0x92]
-; CHECK: movn w0, #0x2, lsl #16 ; encoding: [0x40,0x00,0xa0,0x12]
-; CHECK: movn x0, #0x2, lsl #16 ; encoding: [0x40,0x00,0xa0,0x92]
+; CHECK: mov w0, #-3 ; encoding: [0x40,0x00,0x80,0x12]
+; CHECK: mov x0, #-3 ; encoding: [0x40,0x00,0x80,0x92]
+; CHECK: mov w0, #-131073 ; encoding: [0x40,0x00,0xa0,0x12]
+; CHECK: mov x0, #-131073 ; encoding: [0x40,0x00,0xa0,0x92]
movk w0, #1
movk x0, #1
movk w0, #1, lsl #16
movk x0, #1, lsl #16
-; CHECK: movk w0, #0x1 ; encoding: [0x20,0x00,0x80,0x72]
-; CHECK: movk x0, #0x1 ; encoding: [0x20,0x00,0x80,0xf2]
-; CHECK: movk w0, #0x1, lsl #16 ; encoding: [0x20,0x00,0xa0,0x72]
-; CHECK: movk x0, #0x1, lsl #16 ; encoding: [0x20,0x00,0xa0,0xf2]
+; CHECK: movk w0, #1 ; encoding: [0x20,0x00,0x80,0x72]
+; CHECK: movk x0, #1 ; encoding: [0x20,0x00,0x80,0xf2]
+; CHECK: movk w0, #1, lsl #16 ; encoding: [0x20,0x00,0xa0,0x72]
+; CHECK: movk x0, #1, lsl #16 ; encoding: [0x20,0x00,0xa0,0xf2]
;==---------------------------------------------------------------------------==
; Conditionally set flags instructions
diff --git a/test/MC/AArch64/arm64-spsel-sysreg.s b/test/MC/AArch64/arm64-spsel-sysreg.s
index f1d94d8c2d8b..f1c675f6edf4 100644
--- a/test/MC/AArch64/arm64-spsel-sysreg.s
+++ b/test/MC/AArch64/arm64-spsel-sysreg.s
@@ -8,11 +8,11 @@ msr ESR_EL1, x0
mrs x0, SPSel
mrs x0, ESR_EL1
-// CHECK: msr SPSEL, #0 // encoding: [0xbf,0x40,0x00,0xd5]
-// CHECK: msr SPSEL, x0 // encoding: [0x00,0x42,0x18,0xd5]
-// CHECK: msr DAIFSET, #0 // encoding: [0xdf,0x40,0x03,0xd5]
+// CHECK: msr SPSel, #0 // encoding: [0xbf,0x40,0x00,0xd5]
+// CHECK: msr SPSel, x0 // encoding: [0x00,0x42,0x18,0xd5]
+// CHECK: msr DAIFSet, #0 // encoding: [0xdf,0x40,0x03,0xd5]
// CHECK: msr ESR_EL1, x0 // encoding: [0x00,0x52,0x18,0xd5]
-// CHECK: mrs x0, SPSEL // encoding: [0x00,0x42,0x38,0xd5]
+// CHECK: mrs x0, SPSel // encoding: [0x00,0x42,0x38,0xd5]
// CHECK: mrs x0, ESR_EL1 // encoding: [0x00,0x52,0x38,0xd5]
diff --git a/test/MC/AArch64/arm64-system-encoding.s b/test/MC/AArch64/arm64-system-encoding.s
index eb29117428fd..ef4037b7bf3f 100644
--- a/test/MC/AArch64/arm64-system-encoding.s
+++ b/test/MC/AArch64/arm64-system-encoding.s
@@ -167,7 +167,7 @@ foo:
; CHECK: msr CPTR_EL2, x3 ; encoding: [0x43,0x11,0x1c,0xd5]
; CHECK: msr CPTR_EL3, x3 ; encoding: [0x43,0x11,0x1e,0xd5]
; CHECK: msr CSSELR_EL1, x3 ; encoding: [0x03,0x00,0x1a,0xd5]
-; CHECK: msr CURRENTEL, x3 ; encoding: [0x43,0x42,0x18,0xd5]
+; CHECK: msr CurrentEL, x3 ; encoding: [0x43,0x42,0x18,0xd5]
; CHECK: msr DACR32_EL2, x3 ; encoding: [0x03,0x30,0x1c,0xd5]
; CHECK: msr ESR_EL1, x3 ; encoding: [0x03,0x52,0x18,0xd5]
; CHECK: msr ESR_EL2, x3 ; encoding: [0x03,0x52,0x1c,0xd5]
@@ -213,7 +213,7 @@ foo:
; CHECK: msr VPIDR_EL2, x3 ; encoding: [0x03,0x00,0x1c,0xd5]
; CHECK: msr VTCR_EL2, x3 ; encoding: [0x43,0x21,0x1c,0xd5]
; CHECK: msr VTTBR_EL2, x3 ; encoding: [0x03,0x21,0x1c,0xd5]
-; CHECK: msr SPSEL, x3 ; encoding: [0x03,0x42,0x18,0xd5]
+; CHECK: msr SPSel, x3 ; encoding: [0x03,0x42,0x18,0xd5]
; CHECK: msr S3_2_C11_C6_4, x1 ; encoding: [0x81,0xb6,0x1a,0xd5]
; CHECK: msr S0_0_C0_C0_0, x0 ; encoding: [0x00,0x00,0x00,0xd5]
; CHECK: msr S1_2_C3_C4_5, x2 ; encoding: [0xa2,0x34,0x0a,0xd5]
@@ -439,7 +439,7 @@ foo:
; CHECK: mrs x3, CPTR_EL3 ; encoding: [0x43,0x11,0x3e,0xd5]
; CHECK: mrs x3, CSSELR_EL1 ; encoding: [0x03,0x00,0x3a,0xd5]
; CHECK: mrs x3, CTR_EL0 ; encoding: [0x23,0x00,0x3b,0xd5]
-; CHECK: mrs x3, CURRENTEL ; encoding: [0x43,0x42,0x38,0xd5]
+; CHECK: mrs x3, CurrentEL ; encoding: [0x43,0x42,0x38,0xd5]
; CHECK: mrs x3, DACR32_EL2 ; encoding: [0x03,0x30,0x3c,0xd5]
; CHECK: mrs x3, DCZID_EL0 ; encoding: [0xe3,0x00,0x3b,0xd5]
; CHECK: mrs x3, REVIDR_EL1 ; encoding: [0xc3,0x00,0x38,0xd5]
diff --git a/test/MC/AArch64/basic-a64-instructions.s b/test/MC/AArch64/basic-a64-instructions.s
index f8e49432145b..8a82c99eb8c1 100644
--- a/test/MC/AArch64/basic-a64-instructions.s
+++ b/test/MC/AArch64/basic-a64-instructions.s
@@ -3267,8 +3267,8 @@ _func:
mov w3, #0xf000f
mov x10, #0xaaaaaaaaaaaaaaaa
-// CHECK: orr w3, wzr, #0xf000f // encoding: [0xe3,0x8f,0x00,0x32]
-// CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa // encoding: [0xea,0xf3,0x01,0xb2]
+// CHECK: mov w3, #983055 // encoding: [0xe3,0x8f,0x00,0x32]
+// CHECK: mov x10, #-6148914691236517206 // encoding: [0xea,0xf3,0x01,0xb2]
// The Imm field of logicalImm operations has to be truncated to the
// register width, i.e. 32 bits
@@ -3355,13 +3355,13 @@ _func:
movz w1, #65535, lsl #0
movz w2, #0, lsl #16
movn w2, #1234, lsl #0
-// CHECK: movz w1, #{{65535|0xffff}} // encoding: [0xe1,0xff,0x9f,0x52]
+// CHECK: mov w1, #65535 // encoding: [0xe1,0xff,0x9f,0x52]
// CHECK: movz w2, #0, lsl #16 // encoding: [0x02,0x00,0xa0,0x52]
-// CHECK: movn w2, #{{1234|0x4d2}} // encoding: [0x42,0x9a,0x80,0x12]
+// CHECK: mov w2, #-1235 // encoding: [0x42,0x9a,0x80,0x12]
movz x2, #1234, lsl #32
movk xzr, #4321, lsl #48
-// CHECK: movz x2, #{{1234|0x4d2}}, lsl #32 // encoding: [0x42,0x9a,0xc0,0xd2]
+// CHECK: mov x2, #5299989643264 // encoding: [0x42,0x9a,0xc0,0xd2]
// CHECK: movk xzr, #{{4321|0x10e1}}, lsl #48 // encoding: [0x3f,0x1c,0xe2,0xf2]
movz x2, #:abs_g0:sym
@@ -3571,9 +3571,9 @@ _func:
msr spsel, #0
msr daifset, #15
msr daifclr, #12
-// CHECK: msr {{spsel|SPSEL}}, #0 // encoding: [0xbf,0x40,0x00,0xd5]
-// CHECK: msr {{daifset|DAIFSET}}, #15 // encoding: [0xdf,0x4f,0x03,0xd5]
-// CHECK: msr {{daifclr|DAIFCLR}}, #12 // encoding: [0xff,0x4c,0x03,0xd5]
+// CHECK: msr {{SPSel|SPSEL}}, #0 // encoding: [0xbf,0x40,0x00,0xd5]
+// CHECK: msr {{DAIFSet|DAIFSET}}, #15 // encoding: [0xdf,0x4f,0x03,0xd5]
+// CHECK: msr {{DAIFClr|DAIFCLR}}, #12 // encoding: [0xff,0x4c,0x03,0xd5]
sys #7, c5, c9, #7, x5
sys #0, c15, c15, #2
@@ -4070,14 +4070,14 @@ _func:
// CHECK: msr {{sp_el0|SP_EL0}}, x12 // encoding: [0x0c,0x41,0x18,0xd5]
// CHECK: msr {{sp_el1|SP_EL1}}, x12 // encoding: [0x0c,0x41,0x1c,0xd5]
// CHECK: msr {{sp_el2|SP_EL2}}, x12 // encoding: [0x0c,0x41,0x1e,0xd5]
-// CHECK: msr {{spsel|SPSEL}}, x12 // encoding: [0x0c,0x42,0x18,0xd5]
+// CHECK: msr {{SPSel|SPSEL}}, x12 // encoding: [0x0c,0x42,0x18,0xd5]
// CHECK: msr {{nzcv|NZCV}}, x12 // encoding: [0x0c,0x42,0x1b,0xd5]
// CHECK: msr {{daif|DAIF}}, x12 // encoding: [0x2c,0x42,0x1b,0xd5]
-// CHECK: msr {{currentel|CURRENTEL}}, x12 // encoding: [0x4c,0x42,0x18,0xd5]
-// CHECK: msr {{spsr_irq|SPSR_IRQ}}, x12 // encoding: [0x0c,0x43,0x1c,0xd5]
-// CHECK: msr {{spsr_abt|SPSR_ABT}}, x12 // encoding: [0x2c,0x43,0x1c,0xd5]
-// CHECK: msr {{spsr_und|SPSR_UND}}, x12 // encoding: [0x4c,0x43,0x1c,0xd5]
-// CHECK: msr {{spsr_fiq|SPSR_FIQ}}, x12 // encoding: [0x6c,0x43,0x1c,0xd5]
+// CHECK: msr {{CurrentEL|CURRENTEL}}, x12 // encoding: [0x4c,0x42,0x18,0xd5]
+// CHECK: msr {{SPSR_irq|SPSR_IRQ}}, x12 // encoding: [0x0c,0x43,0x1c,0xd5]
+// CHECK: msr {{SPSR_abt|SPSR_ABT}}, x12 // encoding: [0x2c,0x43,0x1c,0xd5]
+// CHECK: msr {{SPSR_und|SPSR_UND}}, x12 // encoding: [0x4c,0x43,0x1c,0xd5]
+// CHECK: msr {{SPSR_fiq|SPSR_FIQ}}, x12 // encoding: [0x6c,0x43,0x1c,0xd5]
// CHECK: msr {{fpcr|FPCR}}, x12 // encoding: [0x0c,0x44,0x1b,0xd5]
// CHECK: msr {{fpsr|FPSR}}, x12 // encoding: [0x2c,0x44,0x1b,0xd5]
// CHECK: msr {{dspsr_el0|DSPSR_EL0}}, x12 // encoding: [0x0c,0x45,0x1b,0xd5]
@@ -4665,14 +4665,14 @@ _func:
// CHECK: mrs x9, {{sp_el0|SP_EL0}} // encoding: [0x09,0x41,0x38,0xd5]
// CHECK: mrs x9, {{sp_el1|SP_EL1}} // encoding: [0x09,0x41,0x3c,0xd5]
// CHECK: mrs x9, {{sp_el2|SP_EL2}} // encoding: [0x09,0x41,0x3e,0xd5]
-// CHECK: mrs x9, {{spsel|SPSEL}} // encoding: [0x09,0x42,0x38,0xd5]
+// CHECK: mrs x9, {{SPSel|SPSEL}} // encoding: [0x09,0x42,0x38,0xd5]
// CHECK: mrs x9, {{nzcv|NZCV}} // encoding: [0x09,0x42,0x3b,0xd5]
// CHECK: mrs x9, {{daif|DAIF}} // encoding: [0x29,0x42,0x3b,0xd5]
-// CHECK: mrs x9, {{currentel|CURRENTEL}} // encoding: [0x49,0x42,0x38,0xd5]
-// CHECK: mrs x9, {{spsr_irq|SPSR_IRQ}} // encoding: [0x09,0x43,0x3c,0xd5]
-// CHECK: mrs x9, {{spsr_abt|SPSR_ABT}} // encoding: [0x29,0x43,0x3c,0xd5]
-// CHECK: mrs x9, {{spsr_und|SPSR_UND}} // encoding: [0x49,0x43,0x3c,0xd5]
-// CHECK: mrs x9, {{spsr_fiq|SPSR_FIQ}} // encoding: [0x69,0x43,0x3c,0xd5]
+// CHECK: mrs x9, {{CurrentEL|CURRENTEL}} // encoding: [0x49,0x42,0x38,0xd5]
+// CHECK: mrs x9, {{SPSR_irq|SPSR_IRQ}} // encoding: [0x09,0x43,0x3c,0xd5]
+// CHECK: mrs x9, {{SPSR_abt|SPSR_ABT}} // encoding: [0x29,0x43,0x3c,0xd5]
+// CHECK: mrs x9, {{SPSR_und|SPSR_UND}} // encoding: [0x49,0x43,0x3c,0xd5]
+// CHECK: mrs x9, {{SPSR_fiq|SPSR_FIQ}} // encoding: [0x69,0x43,0x3c,0xd5]
// CHECK: mrs x9, {{fpcr|FPCR}} // encoding: [0x09,0x44,0x3b,0xd5]
// CHECK: mrs x9, {{fpsr|FPSR}} // encoding: [0x29,0x44,0x3b,0xd5]
// CHECK: mrs x9, {{dspsr_el0|DSPSR_EL0}} // encoding: [0x09,0x45,0x3b,0xd5]
diff --git a/test/MC/AArch64/cyclone-crc.s b/test/MC/AArch64/cyclone-crc.s
new file mode 100644
index 000000000000..5786df51ddeb
--- /dev/null
+++ b/test/MC/AArch64/cyclone-crc.s
@@ -0,0 +1,27 @@
+// RUN: not llvm-mc -triple arm64-apple-ios -mcpu=cyclone %s 2>&1 | FileCheck %s
+
+ crc32b w0, w1, w5
+ crc32h w3, w5, w6
+ crc32w w19, wzr, w20
+ crc32x w3, w5, x20
+CHECK: error: instruction requires: crc
+CHECK: crc32b w0, w1, w5
+CHECK: error: instruction requires: crc
+CHECK: crc32h w3, w5, w6
+CHECK: error: instruction requires: crc
+CHECK: crc32w w19, wzr, w20
+CHECK: error: instruction requires: crc
+CHECK: crc32x w3, w5, x20
+
+ crc32cb w5, w10, w15
+ crc32ch w3, w5, w7
+ crc32cw w11, w13, w17
+ crc32cx w19, w23, x29
+CHECK: error: instruction requires: crc
+CHECK: crc32cb w5, w10, w15
+CHECK: error: instruction requires: crc
+CHECK: crc32ch w3, w5, w7
+CHECK: error: instruction requires: crc
+CHECK: crc32cw w11, w13, w17
+CHECK: error: instruction requires: crc
+CHECK: crc32cx w19, w23, x29
diff --git a/test/MC/AArch64/directive-arch-negative.s b/test/MC/AArch64/directive-arch-negative.s
new file mode 100644
index 000000000000..47e8176cb593
--- /dev/null
+++ b/test/MC/AArch64/directive-arch-negative.s
@@ -0,0 +1,35 @@
+// RUN: not llvm-mc -triple aarch64-unknown-none-eabi -filetype asm -o - %s 2>&1 | FileCheck %s
+
+ .arch axp64
+# CHECK: error: unknown arch name
+# CHECK: .arch axp64
+# CHECK: ^
+
+ .arch armv8
+
+ fminnm d0, d0, d1
+
+# CHECK: error: instruction requires: fp-armv8
+# CHECK: fminnm d0, d0, d1
+# CHECK: ^
+
+ .arch armv8+fp
+
+# CHECK: '+fp' is not a recognized feature for this target (ignoring feature)
+
+ fminnm d0, d0, d1
+
+# CHECK: error: instruction requires: fp-armv8
+# CHECK: fminnm d0, d0, d1
+# CHECK: ^
+
+ .arch armv8+neon
+
+ .arch armv8
+
+ fminnm d0, d0, d1
+
+# CHECK: error: instruction requires: fp-armv8
+# CHECK: fminnm d0, d0, d1
+# CHECK: ^
+
diff --git a/test/MC/AArch64/directive-arch.s b/test/MC/AArch64/directive-arch.s
new file mode 100644
index 000000000000..9a9a5691d1ba
--- /dev/null
+++ b/test/MC/AArch64/directive-arch.s
@@ -0,0 +1,13 @@
+// RUN: llvm-mc -triple aarch64-unknown-none-eabi -filetype asm -o - %s 2>&1 | FileCheck %s
+
+ .arch armv8-a+crypto
+
+ aesd v0.16b, v2.16b
+
+# CHECK: aesd v0.16b, v2.16b
+
+ .arch armv8.1-a+ras
+ esb
+
+# CHECK: esb
+
diff --git a/test/MC/AArch64/directive-cpu.s b/test/MC/AArch64/directive-cpu.s
new file mode 100644
index 000000000000..8e7d45337445
--- /dev/null
+++ b/test/MC/AArch64/directive-cpu.s
@@ -0,0 +1,63 @@
+// RUN: not llvm-mc -triple aarch64-unknown-none-eabi -filetype asm -o - %s 2>&1 | FileCheck %s
+
+ .cpu generic
+
+ fminnm d0, d0, d1
+
+ .cpu generic+fp
+
+ fminnm d0, d0, d1
+
+ .cpu generic+nofp
+
+ fminnm d0, d0, d1
+
+ .cpu generic+simd
+
+ addp v0.4s, v0.4s, v0.4s
+
+ .cpu generic+nosimd
+
+ addp v0.4s, v0.4s, v0.4s
+
+ .cpu generic+crc
+
+ crc32cx w0, w1, x3
+
+ .cpu generic+nocrc
+
+ crc32cx w0, w1, x3
+
+ .cpu generic+crypto+nocrc
+
+ aesd v0.16b, v2.16b
+
+ .cpu generic+nocrypto+crc
+
+ aesd v0.16b, v2.16b
+
+// NOTE: the errors precede the actual output! The errors appear in order
+// though, so validate by hoisting them to the top and preservering relative
+// ordering
+
+// CHECK: error: instruction requires: fp-armv8
+// CHECK: fminnm d0, d0, d1
+// CHECK: ^
+
+// CHECK: error: instruction requires: neon
+// CHECK: addp v0.4s, v0.4s, v0.4s
+// CHECK: ^
+
+// CHECK: error: instruction requires: crc
+// CHECK: crc32cx w0, w1, x3
+// CHECK: ^
+
+// CHECK: error: instruction requires: crypto
+// CHECK: aesd v0.16b, v2.16b
+// CHECK: ^
+
+// CHECK: fminnm d0, d0, d1
+// CHECK: fminnm d0, d0, d1
+// CHECK: addp v0.4s, v0.4s, v0.4s
+// CHECK: crc32cx w0, w1, x3
+// CHECK: aesd v0.16b, v2.16b
diff --git a/test/MC/AArch64/error-location.s b/test/MC/AArch64/error-location.s
index 02504368f004..6bb75f8cb5f8 100644
--- a/test/MC/AArch64/error-location.s
+++ b/test/MC/AArch64/error-location.s
@@ -16,8 +16,23 @@
// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a difference across sections
.word x_a - y_a
-// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a subtraction with a weak symbol
- .word a - w
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: 1-byte data relocations not supported
+ .byte undef
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: 1-byte data relocations not supported
+ .byte undef-.
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Unsupported pc-relative fixup kind
+ ldr x0, [x1, :lo12:undef-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid fixup for 8-bit load/store instruction
+ ldrb w0, [x1, :gottprel_lo12:undef]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid fixup for 16-bit load/store instruction
+ ldrh w0, [x1, :gottprel_lo12:undef]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid fixup for 32-bit load/store instruction
+ ldr w0, [x1, :gottprel_lo12:undef]
// CHECK: <unknown>:0: error: expression could not be evaluated
.set v1, -undef
@@ -26,9 +41,6 @@
// CHECK: <unknown>:0: error: Common symbol 'common' cannot be used in assignment expr
.set v3, common
-// CHECK: <unknown>:0: error: Undefined temporary symbol
- .word 5f
-
// CHECK: <unknown>:0: error: symbol 'undef' could not be evaluated in a subtraction expression
.set v2, a-undef
diff --git a/test/MC/AArch64/fixup-out-of-range.s b/test/MC/AArch64/fixup-out-of-range.s
new file mode 100644
index 000000000000..0d0d2ffb0bf3
--- /dev/null
+++ b/test/MC/AArch64/fixup-out-of-range.s
@@ -0,0 +1,64 @@
+// RUN: not llvm-mc -triple aarch64--none-eabi -filetype obj < %s -o /dev/null 2>&1 | FileCheck %s
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ adr x0, distant
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldr x0, distant
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
+ ldr x0, unaligned
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ b.eq distant
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
+ b.eq unaligned
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldr x0, [x1, distant-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 8-byte aligned
+ ldr x0, [x1, unaligned-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldr w0, [x1, distant-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 4-byte aligned
+ ldr w0, [x1, unaligned-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldrh w0, [x1, distant-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 2-byte aligned
+ ldrh w0, [x1, unaligned-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldrb w0, [x1, distant-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ ldr q0, [x1, distant-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup must be 16-byte aligned
+ ldr q0, [x1, unaligned-.]
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ tbz x0, #1, distant
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
+ tbz x0, #1, unaligned
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
+ b distant
+
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup not sufficiently aligned
+ b unaligned
+
+ .byte 0
+unaligned:
+ .byte 0
+
+ .space 1<<27
+ .balign 8
+distant:
+ .word 0
diff --git a/test/MC/AArch64/inst-directive.s b/test/MC/AArch64/inst-directive.s
index 7fd5200b9e57..1a44fd186203 100644
--- a/test/MC/AArch64/inst-directive.s
+++ b/test/MC/AArch64/inst-directive.s
@@ -12,13 +12,13 @@
.section .inst.aarch64_inst
- .align 2
+ .p2align 2
.global aarch64_inst
.type aarch64_inst,%function
aarch64_inst:
.inst 0x5e104020
-// CHECK-ASM: .align 2
+// CHECK-ASM: .p2align 2
// CHECK-ASM: .globl aarch64_inst
// CHECK-ASM: .type aarch64_inst,@function
// CHECK-ASM: aarch64_inst:
diff --git a/test/MC/AArch64/ldr-pseudo-obj-errors.s b/test/MC/AArch64/ldr-pseudo-obj-errors.s
index 7f1b64262c4f..d851917b7140 100644
--- a/test/MC/AArch64/ldr-pseudo-obj-errors.s
+++ b/test/MC/AArch64/ldr-pseudo-obj-errors.s
@@ -8,6 +8,6 @@
.text
foo:
+// CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: fixup value out of range
ldr x0, =0x10111
.space 0xdeadb0
-// CHECK: LVM ERROR: fixup value out of range
diff --git a/test/MC/AArch64/ldr-pseudo.s b/test/MC/AArch64/ldr-pseudo.s
index 1bdb5d69f6ff..6d2bbe8db169 100644
--- a/test/MC/AArch64/ldr-pseudo.s
+++ b/test/MC/AArch64/ldr-pseudo.s
@@ -1,4 +1,4 @@
-//RUN: llvm-mc -triple=aarch64-linux-gnu %s | FileCheck %s
+//RUN: llvm-mc -triple=aarch64-linux-gnu -print-imm-hex %s | FileCheck %s
//
// Check that large constants are converted to ldr from constant pool
@@ -8,17 +8,17 @@
// CHECK-LABEL: f1:
f1:
ldr x0, =0x1234
-// CHECK: movz x0, #0x1234
+// CHECK: mov x0, #0x1234
ldr w1, =0x4567
-// CHECK: movz w1, #0x4567
+// CHECK: mov w1, #0x4567
ldr x0, =0x12340000
-// CHECK: movz x0, #0x1234, lsl #16
+// CHECK: mov x0, #0x12340000
ldr w1, =0x45670000
-// CHECK: movz w1, #0x4567, lsl #16
+// CHECK: mov w1, #0x45670000
ldr x0, =0xabc00000000
-// CHECK: movz x0, #0xabc, lsl #32
+// CHECK: mov x0, #0xabc00000000
ldr x0, =0xbeef000000000000
-// CHECK: movz x0, #0xbeef, lsl #48
+// CHECK: mov x0, #-0x4111000000000000
.section b,"ax",@progbits
// CHECK-LABEL: f3:
@@ -128,7 +128,7 @@ f13:
adds x0, x0, #1
adds x0, x0, #1
ldr w0, =0x101
-// CHECK: movz w0, #0x101
+// CHECK: mov w0, #0x101
adds x0, x0, #1
adds x0, x0, #1
ldr w0, =bar
@@ -209,31 +209,31 @@ f18:
// Constant Pools
//
// CHECK: .section b,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP0]]
// CHECK: .word 65537
// CHECK: .section c,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP1]]
// CHECK: .word 65538
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP2]]
// CHECK: .word 65539
// CHECK: .section d,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP3]]
// CHECK: .word 65540
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP4]]
// CHECK: .word 65540
// CHECK: .section e,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP5]]
// CHECK: .word 65542
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP6]]
// CHECK: .word 65543
@@ -241,79 +241,79 @@ f18:
// CHECK-NOT: .section f,"ax",@progbits
// CHECK: .section g,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP7]]
// CHECK: .word foo
// CHECK: .section h,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP8]]
// CHECK: .word f5
// CHECK: .section i,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP9]]
// CHECK: .word f12
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP10]]
// CHECK: .word 245760
// CHECK: .section j,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP11]]
// CHECK: .word bar
// CHECK: .section k,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP12]]
// CHECK: .word 65544
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP13]]
// CHECK: .word baz
// CHECK: .section l,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP14]]
// CHECK: .word 65545
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP15]]
// CHECK: .word bar+4
// CHECK: .section m,"ax",@progbits
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP16]]
// CHECK: .xword 72623859790382856
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP17]]
// CHECK: .word bar
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP18]]
// CHECK: .xword bar+16
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP19]]
// CHECK: .xword 4294967297
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP20]]
// CHECK: .xword -2147483649
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP21]]
// CHECK: .xword 65537
// CHECK: .section n,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP22]]
// CHECK: .word 4294967295
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP23]]
// CHECK: .word -2147483647
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP24]]
// CHECK: .word -1
// CHECK: .section o,"ax",@progbits
-// CHECK: .align 2
+// CHECK: .p2align 2
// CHECK: .Ltmp[[TMP25]]
// CHECK: .word 3276900
-// CHECK: .align 3
+// CHECK: .p2align 3
// CHECK: .Ltmp[[TMP26]]
// CHECK: .xword 3276900
diff --git a/test/MC/AArch64/optional-hash.s b/test/MC/AArch64/optional-hash.s
index 3922b5be34a1..6573d3e8001c 100644
--- a/test/MC/AArch64/optional-hash.s
+++ b/test/MC/AArch64/optional-hash.s
@@ -1,6 +1,6 @@
// PR18929
// RUN: llvm-mc < %s -triple=aarch64-linux-gnueabi -mattr=+fp-armv8,+neon -filetype=obj -o - \
-// RUN: | llvm-objdump --disassemble -arch=arm64 -mattr=+fp-armv8,+neon - | FileCheck %s
+// RUN: | llvm-objdump --disassemble -arch=arm64 - | FileCheck %s
.text
// CHECK: cmp w0, #123
diff --git a/test/MC/AArch64/ras-extension.s b/test/MC/AArch64/ras-extension.s
new file mode 100644
index 000000000000..ac4a8099e359
--- /dev/null
+++ b/test/MC/AArch64/ras-extension.s
@@ -0,0 +1,55 @@
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+ras < %s | FileCheck %s
+
+ esb
+// CHECK: esb // encoding: [0x1f,0x22,0x03,0xd5]
+
+ msr errselr_el1, x0
+ msr errselr_el1, x15
+ msr errselr_el1, x25
+ msr erxctlr_el1, x1
+ msr erxstatus_el1, x2
+ msr erxaddr_el1, x3
+ msr erxmisc0_el1, x4
+ msr erxmisc1_el1, x5
+ msr disr_el1, x6
+ msr vdisr_el2, x7
+ msr vsesr_el2, x8
+// CHECK: msr ERRSELR_EL1, x0 // encoding: [0x20,0x53,0x18,0xd5]
+// CHECK: msr ERRSELR_EL1, x15 // encoding: [0x2f,0x53,0x18,0xd5]
+// CHECK: msr ERRSELR_EL1, x25 // encoding: [0x39,0x53,0x18,0xd5]
+// CHECK: msr ERXCTLR_EL1, x1 // encoding: [0x21,0x54,0x18,0xd5]
+// CHECK: msr ERXSTATUS_EL1, x2 // encoding: [0x42,0x54,0x18,0xd5]
+// CHECK: msr ERXADDR_EL1, x3 // encoding: [0x63,0x54,0x18,0xd5]
+// CHECK: msr ERXMISC0_EL1, x4 // encoding: [0x04,0x55,0x18,0xd5]
+// CHECK: msr ERXMISC1_EL1, x5 // encoding: [0x25,0x55,0x18,0xd5]
+// CHECK: msr DISR_EL1, x6 // encoding: [0x26,0xc1,0x18,0xd5]
+// CHECK: msr VDISR_EL2, x7 // encoding: [0x27,0xc1,0x1c,0xd5]
+// CHECK: msr VSESR_EL2, x8 // encoding: [0x68,0x52,0x1c,0xd5]
+
+ mrs x0, errselr_el1
+ mrs x15, errselr_el1
+ mrs x25, errselr_el1
+ mrs x1, erxctlr_el1
+ mrs x2, erxstatus_el1
+ mrs x3, erxaddr_el1
+ mrs x4, erxmisc0_el1
+ mrs x5, erxmisc1_el1
+ mrs x6, disr_el1
+ mrs x7, vdisr_el2
+ mrs x8, vsesr_el2
+// CHECK: mrs x0, ERRSELR_EL1 // encoding: [0x20,0x53,0x38,0xd5]
+// CHECK: mrs x15, ERRSELR_EL1 // encoding: [0x2f,0x53,0x38,0xd5]
+// CHECK: mrs x25, ERRSELR_EL1 // encoding: [0x39,0x53,0x38,0xd5]
+// CHECK: mrs x1, ERXCTLR_EL1 // encoding: [0x21,0x54,0x38,0xd5]
+// CHECK: mrs x2, ERXSTATUS_EL1 // encoding: [0x42,0x54,0x38,0xd5]
+// CHECK: mrs x3, ERXADDR_EL1 // encoding: [0x63,0x54,0x38,0xd5]
+// CHECK: mrs x4, ERXMISC0_EL1 // encoding: [0x04,0x55,0x38,0xd5]
+// CHECK: mrs x5, ERXMISC1_EL1 // encoding: [0x25,0x55,0x38,0xd5]
+// CHECK: mrs x6, DISR_EL1 // encoding: [0x26,0xc1,0x38,0xd5]
+// CHECK: mrs x7, VDISR_EL2 // encoding: [0x27,0xc1,0x3c,0xd5]
+// CHECK: mrs x8, VSESR_EL2 // encoding: [0x68,0x52,0x3c,0xd5]
+
+ mrs x0, erridr_el1
+ mrs x1, erxfr_el1
+// CHECK: mrs x0, ERRIDR_EL1 // encoding: [0x00,0x53,0x38,0xd5]
+// CHECK: mrs x1, ERXFR_EL1 // encoding: [0x01,0x54,0x38,0xd5]
diff --git a/test/MC/AArch64/single-slash.s b/test/MC/AArch64/single-slash.s
index c4c266c6b06a..83e87bc95d2f 100644
--- a/test/MC/AArch64/single-slash.s
+++ b/test/MC/AArch64/single-slash.s
@@ -2,5 +2,5 @@
// Test that a single slash is not mistaken as the start of comment.
-//CHECK: movz x0, #0x10
+//CHECK: mov x0, #16
movz x0, #(32 / 2)
diff --git a/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s b/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s
index aa0a1ab86460..144818481b03 100644
--- a/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s
+++ b/test/MC/AMDGPU/buffer_wbinv1l_vol_vi.s
@@ -1,7 +1,4 @@
-// XFAIL: *
// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=VI %s
-; When assembled, this emits a different encoding value than codegen for the intrinsic
-
buffer_wbinvl1_vol
// VI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
diff --git a/test/MC/AMDGPU/ds-err.s b/test/MC/AMDGPU/ds-err.s
index 52c2740bec25..3951efbb60f9 100644
--- a/test/MC/AMDGPU/ds-err.s
+++ b/test/MC/AMDGPU/ds-err.s
@@ -2,15 +2,15 @@
// RUN: not llvm-mc -arch=amdgcn -mcpu=SI %s 2>&1 | FileCheck %s
// offset too big
-// CHECK: invalid operand for instruction
+// CHECK: error: invalid operand for instruction
ds_add_u32 v2, v4 offset:1000000000
// offset0 twice
-// CHECK: error: not a valid operand.
+// CHECK: error: invalid operand for instruction
ds_write2_b32 v2, v4, v6 offset0:4 offset0:8
// offset1 twice
-// CHECK: error: not a valid operand.
+// CHECK: error: invalid operand for instruction
ds_write2_b32 v2, v4, v6 offset1:4 offset1:8
// offset0 too big
diff --git a/test/MC/AMDGPU/ds.s b/test/MC/AMDGPU/ds.s
index ad63229ba2e1..767afd60341e 100644
--- a/test/MC/AMDGPU/ds.s
+++ b/test/MC/AMDGPU/ds.s
@@ -1,337 +1,456 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI
//===----------------------------------------------------------------------===//
// Checks for 16-bit Offsets
//===----------------------------------------------------------------------===//
ds_add_u32 v2, v4 offset:16
-// CHECK: ds_add_u32 v2, v4 offset:16 ; encoding: [0x10,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_add_u32 v2, v4 offset:16 ; encoding: [0x10,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_add_u32 v2, v4 offset:16 ; encoding: [0x10,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
//===----------------------------------------------------------------------===//
// Checks for 2 8-bit Offsets
//===----------------------------------------------------------------------===//
+ds_write_src2_b32 v2 offset0:4 offset1:8
+// SICI: ds_write_src2_b32 v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x34,0xda,0x02,0x00,0x00,0x00]
+// VI: ds_write_src2_b32 v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x1a,0xd9,0x02,0x00,0x00,0x00]
+
+ds_write_src2_b64 v2 offset0:4 offset1:8
+// SICI: ds_write_src2_b64 v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x34,0xdb,0x02,0x00,0x00,0x00]
+// VI: ds_write_src2_b64 v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x9a,0xd9,0x02,0x00,0x00,0x00]
+
ds_write2_b32 v2, v4, v6 offset0:4
-// CHECK: ds_write2_b32 v2, v4, v6 offset0:4 ; encoding: [0x04,0x00,0x38,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_write2_b32 v2, v4, v6 offset0:4 ; encoding: [0x04,0x00,0x38,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_write2_b32 v2, v4, v6 offset0:4 ; encoding: [0x04,0x00,0x1c,0xd8,0x02,0x04,0x06,0x00]
ds_write2_b32 v2, v4, v6 offset0:4 offset1:8
-// CHECK: ds_write2_b32 v2, v4, v6 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x38,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_write2_b32 v2, v4, v6 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x38,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_write2_b32 v2, v4, v6 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x1c,0xd8,0x02,0x04,0x06,0x00]
ds_write2_b32 v2, v4, v6 offset1:8
-// CHECK: ds_write2_b32 v2, v4, v6 offset1:8 ; encoding: [0x00,0x08,0x38,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_write2_b32 v2, v4, v6 offset1:8 ; encoding: [0x00,0x08,0x38,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_write2_b32 v2, v4, v6 offset1:8 ; encoding: [0x00,0x08,0x1c,0xd8,0x02,0x04,0x06,0x00]
ds_read2_b32 v[8:9], v2 offset0:4
-// CHECK: ds_read2_b32 v[8:9], v2 offset0:4 ; encoding: [0x04,0x00,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read2_b32 v[8:9], v2 offset0:4 ; encoding: [0x04,0x00,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read2_b32 v[8:9], v2 offset0:4 ; encoding: [0x04,0x00,0x6e,0xd8,0x02,0x00,0x00,0x08]
ds_read2_b32 v[8:9], v2 offset0:4 offset1:8
-// CHECK: ds_read2_b32 v[8:9], v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read2_b32 v[8:9], v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read2_b32 v[8:9], v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x6e,0xd8,0x02,0x00,0x00,0x08]
ds_read2_b32 v[8:9], v2 offset1:8
-// CHECK: ds_read2_b32 v[8:9], v2 offset1:8 ; encoding: [0x00,0x08,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read2_b32 v[8:9], v2 offset1:8 ; encoding: [0x00,0x08,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read2_b32 v[8:9], v2 offset1:8 ; encoding: [0x00,0x08,0x6e,0xd8,0x02,0x00,0x00,0x08]
+
//===----------------------------------------------------------------------===//
// Instructions
//===----------------------------------------------------------------------===//
ds_add_u32 v2, v4
-// CHECK: ds_add_u32 v2, v4 ; encoding: [0x00,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_add_u32 v2, v4 ; encoding: [0x00,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_add_u32 v2, v4 ; encoding: [0x00,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
ds_sub_u32 v2, v4
-// CHECK: ds_sub_u32 v2, v4 ; encoding: [0x00,0x00,0x04,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_sub_u32 v2, v4 ; encoding: [0x00,0x00,0x04,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_sub_u32 v2, v4 ; encoding: [0x00,0x00,0x02,0xd8,0x02,0x04,0x00,0x00]
ds_rsub_u32 v2, v4
-// CHECK: ds_rsub_u32 v2, v4 ; encoding: [0x00,0x00,0x08,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_rsub_u32 v2, v4 ; encoding: [0x00,0x00,0x08,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_rsub_u32 v2, v4 ; encoding: [0x00,0x00,0x04,0xd8,0x02,0x04,0x00,0x00]
ds_inc_u32 v2, v4
-// CHECK: ds_inc_u32 v2, v4 ; encoding: [0x00,0x00,0x0c,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_inc_u32 v2, v4 ; encoding: [0x00,0x00,0x0c,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_inc_u32 v2, v4 ; encoding: [0x00,0x00,0x06,0xd8,0x02,0x04,0x00,0x00]
ds_dec_u32 v2, v4
-// CHECK: ds_dec_u32 v2, v4 ; encoding: [0x00,0x00,0x10,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_dec_u32 v2, v4 ; encoding: [0x00,0x00,0x10,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_dec_u32 v2, v4 ; encoding: [0x00,0x00,0x08,0xd8,0x02,0x04,0x00,0x00]
ds_min_i32 v2, v4
-// CHECK: ds_min_i32 v2, v4 ; encoding: [0x00,0x00,0x14,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_min_i32 v2, v4 ; encoding: [0x00,0x00,0x14,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_min_i32 v2, v4 ; encoding: [0x00,0x00,0x0a,0xd8,0x02,0x04,0x00,0x00]
ds_max_i32 v2, v4
-// CHECK: ds_max_i32 v2, v4 ; encoding: [0x00,0x00,0x18,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_max_i32 v2, v4 ; encoding: [0x00,0x00,0x18,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_max_i32 v2, v4 ; encoding: [0x00,0x00,0x0c,0xd8,0x02,0x04,0x00,0x00]
ds_min_u32 v2, v4
-// CHECK: ds_min_u32 v2, v4 ; encoding: [0x00,0x00,0x1c,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_min_u32 v2, v4 ; encoding: [0x00,0x00,0x1c,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_min_u32 v2, v4 ; encoding: [0x00,0x00,0x0e,0xd8,0x02,0x04,0x00,0x00]
ds_max_u32 v2, v4
-// CHECK: ds_max_u32 v2, v4 ; encoding: [0x00,0x00,0x20,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_max_u32 v2, v4 ; encoding: [0x00,0x00,0x20,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_max_u32 v2, v4 ; encoding: [0x00,0x00,0x10,0xd8,0x02,0x04,0x00,0x00]
ds_and_b32 v2, v4
-// CHECK: ds_and_b32 v2, v4 ; encoding: [0x00,0x00,0x24,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_and_b32 v2, v4 ; encoding: [0x00,0x00,0x24,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_and_b32 v2, v4 ; encoding: [0x00,0x00,0x12,0xd8,0x02,0x04,0x00,0x00]
ds_or_b32 v2, v4
-// CHECK: ds_or_b32 v2, v4 ; encoding: [0x00,0x00,0x28,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_or_b32 v2, v4 ; encoding: [0x00,0x00,0x28,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_or_b32 v2, v4 ; encoding: [0x00,0x00,0x14,0xd8,0x02,0x04,0x00,0x00]
ds_xor_b32 v2, v4
-// CHECK: ds_xor_b32 v2, v4 ; encoding: [0x00,0x00,0x2c,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_xor_b32 v2, v4 ; encoding: [0x00,0x00,0x2c,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_xor_b32 v2, v4 ; encoding: [0x00,0x00,0x16,0xd8,0x02,0x04,0x00,0x00]
ds_mskor_b32 v2, v4, v6
-// CHECK: ds_mskor_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x30,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_mskor_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x30,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_mskor_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x18,0xd8,0x02,0x04,0x06,0x00]
ds_write_b32 v2, v4
-// CHECK: ds_write_b32 v2, v4 ; encoding: [0x00,0x00,0x34,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_write_b32 v2, v4 ; encoding: [0x00,0x00,0x34,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_write_b32 v2, v4 ; encoding: [0x00,0x00,0x1a,0xd8,0x02,0x04,0x00,0x00]
ds_write2_b32 v2, v4, v6
-// CHECK: ds_write2_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x38,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_write2_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x38,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_write2_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x1c,0xd8,0x02,0x04,0x06,0x00]
ds_write2st64_b32 v2, v4, v6
-// CHECK: ds_write2st64_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x3c,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_write2st64_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x3c,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_write2st64_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x1e,0xd8,0x02,0x04,0x06,0x00]
ds_cmpst_b32 v2, v4, v6
-// CHECK: ds_cmpst_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x40,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_cmpst_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x40,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_cmpst_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x20,0xd8,0x02,0x04,0x06,0x00]
ds_cmpst_f32 v2, v4, v6
-// CHECK: ds_cmpst_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x44,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_cmpst_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x44,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_cmpst_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x22,0xd8,0x02,0x04,0x06,0x00]
ds_min_f32 v2, v4, v6
-// CHECK: ds_min_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x48,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_min_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x48,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_min_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x24,0xd8,0x02,0x04,0x06,0x00]
ds_max_f32 v2, v4, v6
-// CHECK: ds_max_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x4c,0xd8,0x02,0x04,0x06,0x00]
+// SICI: ds_max_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x4c,0xd8,0x02,0x04,0x06,0x00]
+// VI: ds_max_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x26,0xd8,0x02,0x04,0x06,0x00]
ds_gws_init v2 gds
-// CHECK: ds_gws_init v2 gds ; encoding: [0x00,0x00,0x66,0xd8,0x02,0x00,0x00,0x00]
+// SICI: ds_gws_init v2 gds ; encoding: [0x00,0x00,0x66,0xd8,0x02,0x00,0x00,0x00]
+// VI: ds_gws_init v2 gds ; encoding: [0x00,0x00,0x33,0xd8,0x02,0x00,0x00,0x00]
ds_gws_sema_v v2 gds
-// CHECK: ds_gws_sema_v v2 gds ; encoding: [0x00,0x00,0x6a,0xd8,0x02,0x00,0x00,0x00]
+// SICI: ds_gws_sema_v v2 gds ; encoding: [0x00,0x00,0x6a,0xd8,0x02,0x00,0x00,0x00]
+// VI: ds_gws_sema_v v2 gds ; encoding: [0x00,0x00,0x35,0xd8,0x02,0x00,0x00,0x00]
ds_gws_sema_br v2 gds
-// CHECK: ds_gws_sema_br v2 gds ; encoding: [0x00,0x00,0x6e,0xd8,0x02,0x00,0x00,0x00]
+// SICI: ds_gws_sema_br v2 gds ; encoding: [0x00,0x00,0x6e,0xd8,0x02,0x00,0x00,0x00]
+// VI: ds_gws_sema_br v2 gds ; encoding: [0x00,0x00,0x37,0xd8,0x02,0x00,0x00,0x00]
ds_gws_sema_p v2 gds
-// CHECK: ds_gws_sema_p v2 gds ; encoding: [0x00,0x00,0x72,0xd8,0x02,0x00,0x00,0x00]
+// SICI: ds_gws_sema_p v2 gds ; encoding: [0x00,0x00,0x72,0xd8,0x02,0x00,0x00,0x00]
+// VI: ds_gws_sema_p v2 gds ; encoding: [0x00,0x00,0x39,0xd8,0x02,0x00,0x00,0x00]
ds_gws_barrier v2 gds
-// CHECK: ds_gws_barrier v2 gds ; encoding: [0x00,0x00,0x76,0xd8,0x02,0x00,0x00,0x00]
+// SICI: ds_gws_barrier v2 gds ; encoding: [0x00,0x00,0x76,0xd8,0x02,0x00,0x00,0x00]
+// VI: ds_gws_barrier v2 gds ; encoding: [0x00,0x00,0x3b,0xd8,0x02,0x00,0x00,0x00]
ds_write_b8 v2, v4
-// CHECK: ds_write_b8 v2, v4 ; encoding: [0x00,0x00,0x78,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_write_b8 v2, v4 ; encoding: [0x00,0x00,0x78,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_write_b8 v2, v4 ; encoding: [0x00,0x00,0x3c,0xd8,0x02,0x04,0x00,0x00]
ds_write_b16 v2, v4
-// CHECK: ds_write_b16 v2, v4 ; encoding: [0x00,0x00,0x7c,0xd8,0x02,0x04,0x00,0x00]
+// SICI: ds_write_b16 v2, v4 ; encoding: [0x00,0x00,0x7c,0xd8,0x02,0x04,0x00,0x00]
+// VI: ds_write_b16 v2, v4 ; encoding: [0x00,0x00,0x3e,0xd8,0x02,0x04,0x00,0x00]
ds_add_rtn_u32 v8, v2, v4
-// CHECK: ds_add_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x80,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_add_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x80,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_add_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x40,0xd8,0x02,0x04,0x00,0x08]
ds_sub_rtn_u32 v8, v2, v4
-// CHECK: ds_sub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x84,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_sub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x84,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_sub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x42,0xd8,0x02,0x04,0x00,0x08]
ds_rsub_rtn_u32 v8, v2, v4
-// CHECK: ds_rsub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x88,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_rsub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x88,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_rsub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x44,0xd8,0x02,0x04,0x00,0x08]
ds_inc_rtn_u32 v8, v2, v4
-// CHECK: ds_inc_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x8c,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_inc_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x8c,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_inc_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x46,0xd8,0x02,0x04,0x00,0x08]
ds_dec_rtn_u32 v8, v2, v4
-// CHECK: ds_dec_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x90,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_dec_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x90,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_dec_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x48,0xd8,0x02,0x04,0x00,0x08]
ds_min_rtn_i32 v8, v2, v4
-// CHECK: ds_min_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x94,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_min_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x94,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_min_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x4a,0xd8,0x02,0x04,0x00,0x08]
ds_max_rtn_i32 v8, v2, v4
-// CHECK: ds_max_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x98,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_max_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x98,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_max_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x4c,0xd8,0x02,0x04,0x00,0x08]
ds_min_rtn_u32 v8, v2, v4
-// CHECK: ds_min_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x9c,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_min_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x9c,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_min_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x4e,0xd8,0x02,0x04,0x00,0x08]
ds_max_rtn_u32 v8, v2, v4
-// CHECK: ds_max_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0xa0,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_max_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0xa0,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_max_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x50,0xd8,0x02,0x04,0x00,0x08]
ds_and_rtn_b32 v8, v2, v4
-// CHECK: ds_and_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xa4,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_and_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xa4,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_and_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x52,0xd8,0x02,0x04,0x00,0x08]
ds_or_rtn_b32 v8, v2, v4
-// CHECK: ds_or_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xa8,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_or_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xa8,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_or_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x54,0xd8,0x02,0x04,0x00,0x08]
ds_xor_rtn_b32 v8, v2, v4
-// CHECK: ds_xor_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xac,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_xor_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xac,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_xor_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x56,0xd8,0x02,0x04,0x00,0x08]
ds_mskor_rtn_b32 v8, v2, v4, v6
-// CHECK: ds_mskor_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xb0,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_mskor_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xb0,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_mskor_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x58,0xd8,0x02,0x04,0x06,0x08]
ds_wrxchg_rtn_b32 v8, v2, v4
-// CHECK: ds_wrxchg_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xb4,0xd8,0x02,0x04,0x00,0x08]
+// SICI: ds_wrxchg_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0xb4,0xd8,0x02,0x04,0x00,0x08]
+// VI: ds_wrxchg_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x5a,0xd8,0x02,0x04,0x00,0x08]
ds_wrxchg2_rtn_b32 v[8:9], v2, v4, v6
-// CHECK: ds_wrxchg2_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0xb8,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_wrxchg2_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0xb8,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_wrxchg2_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0x5c,0xd8,0x02,0x04,0x06,0x08]
ds_wrxchg2st64_rtn_b32 v[8:9] v2, v4, v6
-// CHECK: ds_wrxchg2st64_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0xbc,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_wrxchg2st64_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0xbc,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_wrxchg2st64_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0x5e,0xd8,0x02,0x04,0x06,0x08]
ds_cmpst_rtn_b32 v8, v2, v4, v6
-// CHECK: ds_cmpst_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc0,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_cmpst_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc0,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_cmpst_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x60,0xd8,0x02,0x04,0x06,0x08]
ds_cmpst_rtn_f32 v8, v2, v4, v6
-// CHECK: ds_cmpst_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc4,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_cmpst_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc4,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_cmpst_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x62,0xd8,0x02,0x04,0x06,0x08]
ds_min_rtn_f32 v8, v2, v4, v6
-// CHECK: ds_min_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc8,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_min_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xc8,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_min_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x64,0xd8,0x02,0x04,0x06,0x08]
ds_max_rtn_f32 v8, v2, v4, v6
-// CHECK: ds_max_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xcc,0xd8,0x02,0x04,0x06,0x08]
+// SICI: ds_max_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0xcc,0xd8,0x02,0x04,0x06,0x08]
+// VI: ds_max_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x66,0xd8,0x02,0x04,0x06,0x08]
ds_swizzle_b32 v8, v2
-// CHECK: ds_swizzle_b32 v8, v2 ; encoding: [0x00,0x00,0xd4,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_swizzle_b32 v8, v2 ; encoding: [0x00,0x00,0xd4,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_swizzle_b32 v8, v2 ; encoding: [0x00,0x00,0x7a,0xd8,0x02,0x00,0x00,0x08]
ds_read_b32 v8, v2
-// CHECK: ds_read_b32 v8, v2 ; encoding: [0x00,0x00,0xd8,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read_b32 v8, v2 ; encoding: [0x00,0x00,0xd8,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read_b32 v8, v2 ; encoding: [0x00,0x00,0x6c,0xd8,0x02,0x00,0x00,0x08]
ds_read2_b32 v[8:9], v2
-// CHECK: ds_read2_b32 v[8:9], v2 ; encoding: [0x00,0x00,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read2_b32 v[8:9], v2 ; encoding: [0x00,0x00,0xdc,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read2_b32 v[8:9], v2 ; encoding: [0x00,0x00,0x6e,0xd8,0x02,0x00,0x00,0x08]
ds_read2st64_b32 v[8:9], v2
-// CHECK: ds_read2st64_b32 v[8:9], v2 ; encoding: [0x00,0x00,0xe0,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read2st64_b32 v[8:9], v2 ; encoding: [0x00,0x00,0xe0,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read2st64_b32 v[8:9], v2 ; encoding: [0x00,0x00,0x70,0xd8,0x02,0x00,0x00,0x08]
ds_read_i8 v8, v2
-// CHECK: ds_read_i8 v8, v2 ; encoding: [0x00,0x00,0xe4,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read_i8 v8, v2 ; encoding: [0x00,0x00,0xe4,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read_i8 v8, v2 ; encoding: [0x00,0x00,0x72,0xd8,0x02,0x00,0x00,0x08]
ds_read_u8 v8, v2
-// CHECK: ds_read_u8 v8, v2 ; encoding: [0x00,0x00,0xe8,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read_u8 v8, v2 ; encoding: [0x00,0x00,0xe8,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read_u8 v8, v2 ; encoding: [0x00,0x00,0x74,0xd8,0x02,0x00,0x00,0x08]
ds_read_i16 v8, v2
-// CHECK: ds_read_i16 v8, v2 ; encoding: [0x00,0x00,0xec,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read_i16 v8, v2 ; encoding: [0x00,0x00,0xec,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read_i16 v8, v2 ; encoding: [0x00,0x00,0x76,0xd8,0x02,0x00,0x00,0x08]
ds_read_u16 v8, v2
-// CHECK: ds_read_u16 v8, v2 ; encoding: [0x00,0x00,0xf0,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_read_u16 v8, v2 ; encoding: [0x00,0x00,0xf0,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_read_u16 v8, v2 ; encoding: [0x00,0x00,0x78,0xd8,0x02,0x00,0x00,0x08]
ds_consume v8
-// CHECK: ds_consume v8 ; encoding: [0x00,0x00,0xf4,0xd8,0x00,0x00,0x00,0x08]
+// SICI: ds_consume v8 ; encoding: [0x00,0x00,0xf4,0xd8,0x00,0x00,0x00,0x08]
+// VI: ds_consume v8 ; encoding: [0x00,0x00,0x7a,0xd8,0x00,0x00,0x00,0x08]
ds_append v8
-// CHECK: ds_append v8 ; encoding: [0x00,0x00,0xf8,0xd8,0x00,0x00,0x00,0x08]
+// SICI: ds_append v8 ; encoding: [0x00,0x00,0xf8,0xd8,0x00,0x00,0x00,0x08]
+// VI: ds_append v8 ; encoding: [0x00,0x00,0x7c,0xd8,0x00,0x00,0x00,0x08]
ds_ordered_count v8, v2 gds
-// CHECK: ds_ordered_count v8, v2 gds ; encoding: [0x00,0x00,0xfe,0xd8,0x02,0x00,0x00,0x08]
+// SICI: ds_ordered_count v8, v2 gds ; encoding: [0x00,0x00,0xfe,0xd8,0x02,0x00,0x00,0x08]
+// VI: ds_ordered_count v8, v2 gds ; encoding: [0x00,0x00,0x7f,0xd8,0x02,0x00,0x00,0x08]
ds_add_u64 v2, v[4:5]
-// CHECK: ds_add_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x00,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_add_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x00,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_add_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x80,0xd8,0x02,0x04,0x00,0x00]
ds_sub_u64 v2, v[4:5]
-// CHECK: ds_sub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x04,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_sub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x04,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_sub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x82,0xd8,0x02,0x04,0x00,0x00]
ds_rsub_u64 v2, v[4:5]
-// CHECK: ds_rsub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x08,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_rsub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x08,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_rsub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x84,0xd8,0x02,0x04,0x00,0x00]
ds_inc_u64 v2, v[4:5]
-// CHECK: ds_inc_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x0c,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_inc_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x0c,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_inc_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x86,0xd8,0x02,0x04,0x00,0x00]
ds_dec_u64 v2, v[4:5]
-// CHECK: ds_dec_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x10,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_dec_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x10,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_dec_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x88,0xd8,0x02,0x04,0x00,0x00]
ds_min_i64 v2, v[4:5]
-// CHECK: ds_min_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x14,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_min_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x14,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_min_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x8a,0xd8,0x02,0x04,0x00,0x00]
ds_max_i64 v2, v[4:5]
-// CHECK: ds_max_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x18,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_max_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x18,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_max_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x8c,0xd8,0x02,0x04,0x00,0x00]
ds_min_u64 v2, v[4:5]
-// CHECK: ds_min_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x1c,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_min_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x1c,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_min_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x8e,0xd8,0x02,0x04,0x00,0x00]
ds_max_u64 v2, v[4:5]
-// CHECK: ds_max_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x20,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_max_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x20,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_max_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x90,0xd8,0x02,0x04,0x00,0x00]
ds_and_b64 v2, v[4:5]
-// CHECK: ds_and_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x24,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_and_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x24,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_and_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x92,0xd8,0x02,0x04,0x00,0x00]
ds_or_b64 v2, v[4:5]
-// CHECK: ds_or_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x28,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_or_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x28,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_or_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x94,0xd8,0x02,0x04,0x00,0x00]
ds_xor_b64 v2, v[4:5]
-// CHECK: ds_xor_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x2c,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_xor_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x2c,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_xor_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x96,0xd8,0x02,0x04,0x00,0x00]
ds_mskor_b64 v2, v[4:5], v[6:7]
-// CHECK: ds_mskor_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x30,0xd9,0x02,0x04,0x06,0x00]
+// SICI: ds_mskor_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x30,0xd9,0x02,0x04,0x06,0x00]
+// VI: ds_mskor_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x98,0xd8,0x02,0x04,0x06,0x00]
ds_write_b64 v2, v[4:5]
-// CHECK: ds_write_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x34,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_write_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x34,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_write_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x9a,0xd8,0x02,0x04,0x00,0x00]
ds_write2_b64 v2, v[4:5], v[6:7]
-// CHECK: ds_write2_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x38,0xd9,0x02,0x04,0x06,0x00]
+// SICI: ds_write2_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x38,0xd9,0x02,0x04,0x06,0x00]
+// VI: ds_write2_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x9c,0xd8,0x02,0x04,0x06,0x00]
ds_write2st64_b64 v2, v[4:5], v[6:7]
-// CHECK: ds_write2st64_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x3c,0xd9,0x02,0x04,0x06,0x00]
+// SICI: ds_write2st64_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x3c,0xd9,0x02,0x04,0x06,0x00]
+// VI: ds_write2st64_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x9e,0xd8,0x02,0x04,0x06,0x00]
ds_cmpst_b64 v2, v[4:5], v[6:7]
-// CHECK: ds_cmpst_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x40,0xd9,0x02,0x04,0x06,0x00]
+// SICI: ds_cmpst_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x40,0xd9,0x02,0x04,0x06,0x00]
+// VI: ds_cmpst_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xa0,0xd8,0x02,0x04,0x06,0x00]
ds_cmpst_f64 v2, v[4:5], v[6:7]
-// CHECK: ds_cmpst_f64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x44,0xd9,0x02,0x04,0x06,0x00]
+// SICI: ds_cmpst_f64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x44,0xd9,0x02,0x04,0x06,0x00]
+// VI: ds_cmpst_f64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xa2,0xd8,0x02,0x04,0x06,0x00]
ds_min_f64 v2, v[4:5]
-// CHECK: ds_min_f64 v2, v[4:5] ; encoding: [0x00,0x00,0x48,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_min_f64 v2, v[4:5] ; encoding: [0x00,0x00,0x48,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_min_f64 v2, v[4:5] ; encoding: [0x00,0x00,0xa4,0xd8,0x02,0x04,0x00,0x00]
ds_max_f64 v2, v[4:5]
-// CHECK: ds_max_f64 v2, v[4:5] ; encoding: [0x00,0x00,0x4c,0xd9,0x02,0x04,0x00,0x00]
+// SICI: ds_max_f64 v2, v[4:5] ; encoding: [0x00,0x00,0x4c,0xd9,0x02,0x04,0x00,0x00]
+// VI: ds_max_f64 v2, v[4:5] ; encoding: [0x00,0x00,0xa6,0xd8,0x02,0x04,0x00,0x00]
ds_add_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_add_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x80,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_add_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x80,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_add_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc0,0xd8,0x02,0x04,0x00,0x08]
ds_sub_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_sub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x84,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_sub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x84,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_sub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc2,0xd8,0x02,0x04,0x00,0x08]
ds_rsub_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_rsub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x88,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_rsub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x88,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_rsub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc4,0xd8,0x02,0x04,0x00,0x08]
ds_inc_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_inc_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x8c,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_inc_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x8c,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_inc_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc6,0xd8,0x02,0x04,0x00,0x08]
ds_dec_rtn_u64 v[8:9] v2, v[4:5]
-// CHECK: ds_dec_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x90,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_dec_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x90,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_dec_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc8,0xd8,0x02,0x04,0x00,0x08]
ds_min_rtn_i64 v[8:9], v2, v[4:5]
-// CHECK: ds_min_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x94,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_min_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x94,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_min_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xca,0xd8,0x02,0x04,0x00,0x08]
ds_max_rtn_i64 v[8:9], v2, v[4:5]
-// CHECK: ds_max_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x98,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_max_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x98,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_max_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xcc,0xd8,0x02,0x04,0x00,0x08]
ds_min_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_min_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x9c,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_min_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0x9c,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_min_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xce,0xd8,0x02,0x04,0x00,0x08]
ds_max_rtn_u64 v[8:9], v2, v[4:5]
-// CHECK: ds_max_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa0,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_max_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa0,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_max_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd0,0xd8,0x02,0x04,0x00,0x08]
ds_and_rtn_b64 v[8:9], v2, v[4:5]
-// CHECK: ds_and_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa4,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_and_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa4,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_and_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd2,0xd8,0x02,0x04,0x00,0x08]
ds_or_rtn_b64 v[8:9], v2, v[4:5]
-// CHECK: ds_or_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa8,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_or_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xa8,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_or_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd4,0xd8,0x02,0x04,0x00,0x08]
ds_xor_rtn_b64 v[8:9], v2, v[4:5]
-// CHECK: ds_xor_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xac,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_xor_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xac,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_xor_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd6,0xd8,0x02,0x04,0x00,0x08]
ds_mskor_rtn_b64 v[8:9], v2, v[4:5], v[6:7]
-// CHECK: ds_mskor_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xb0,0xd9,0x02,0x04,0x06,0x08]
+// SICI: ds_mskor_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xb0,0xd9,0x02,0x04,0x06,0x08]
+// VI: ds_mskor_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xd8,0xd8,0x02,0x04,0x06,0x08]
ds_wrxchg_rtn_b64 v[8:9], v2, v[4:5]
-// CHECK: ds_wrxchg_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xb4,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_wrxchg_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xb4,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_wrxchg_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xda,0xd8,0x02,0x04,0x00,0x08]
ds_wrxchg2_rtn_b64 v[8:11], v2, v[4:5], v[6:7]
-// CHECK: ds_wrxchg2_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xb8,0xd9,0x02,0x04,0x06,0x08]
+// SICI: ds_wrxchg2_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xb8,0xd9,0x02,0x04,0x06,0x08]
+// VI: ds_wrxchg2_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xdc,0xd8,0x02,0x04,0x06,0x08]
ds_wrxchg2st64_rtn_b64 v[8:11], v2, v[4:5], v[6:7]
-// CHECK: ds_wrxchg2st64_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xbc,0xd9,0x02,0x04,0x06,0x08]
+// SICI: ds_wrxchg2st64_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xbc,0xd9,0x02,0x04,0x06,0x08]
+// VI: ds_wrxchg2st64_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xde,0xd8,0x02,0x04,0x06,0x08]
ds_cmpst_rtn_b64 v[8:9], v2, v[4:5], v[6:7]
-// CHECK: ds_cmpst_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xc0,0xd9,0x02,0x04,0x06,0x08]
+// SICI: ds_cmpst_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xc0,0xd9,0x02,0x04,0x06,0x08]
+// VI: ds_cmpst_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xe0,0xd8,0x02,0x04,0x06,0x08]
ds_cmpst_rtn_f64 v[8:9], v2, v[4:5], v[6:7]
-// CHECK: ds_cmpst_rtn_f64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xc4,0xd9,0x02,0x04,0x06,0x08]
+// SICI: ds_cmpst_rtn_f64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xc4,0xd9,0x02,0x04,0x06,0x08]
+// VI: ds_cmpst_rtn_f64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xe2,0xd8,0x02,0x04,0x06,0x08]
ds_min_rtn_f64 v[8:9], v2, v[4:5]
-// CHECK: ds_min_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc8,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_min_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc8,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_min_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xe4,0xd8,0x02,0x04,0x00,0x08]
ds_max_rtn_f64 v[8:9], v2, v[4:5]
-// CHECK: ds_max_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xcc,0xd9,0x02,0x04,0x00,0x08]
+// SICI: ds_max_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xcc,0xd9,0x02,0x04,0x00,0x08]
+// VI: ds_max_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xe6,0xd8,0x02,0x04,0x00,0x08]
ds_read_b64 v[8:9], v2
-// CHECK: ds_read_b64 v[8:9], v2 ; encoding: [0x00,0x00,0xd8,0xd9,0x02,0x00,0x00,0x08]
+// SICI: ds_read_b64 v[8:9], v2 ; encoding: [0x00,0x00,0xd8,0xd9,0x02,0x00,0x00,0x08]
+// VI: ds_read_b64 v[8:9], v2 ; encoding: [0x00,0x00,0xec,0xd8,0x02,0x00,0x00,0x08]
ds_read2_b64 v[8:11], v2
-// CHECK: ds_read2_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xdc,0xd9,0x02,0x00,0x00,0x08]
+// SICI: ds_read2_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xdc,0xd9,0x02,0x00,0x00,0x08]
+// VI: ds_read2_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xee,0xd8,0x02,0x00,0x00,0x08]
ds_read2st64_b64 v[8:11], v2
-// CHECK: ds_read2st64_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xe0,0xd9,0x02,0x00,0x00,0x08]
+// SICI: ds_read2st64_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xe0,0xd9,0x02,0x00,0x00,0x08]
+// VI: ds_read2st64_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xf0,0xd8,0x02,0x00,0x00,0x08]
+
diff --git a/test/MC/AMDGPU/expressions.s b/test/MC/AMDGPU/expressions.s
new file mode 100644
index 000000000000..9fc956628f1f
--- /dev/null
+++ b/test/MC/AMDGPU/expressions.s
@@ -0,0 +1,41 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
+
+
+.globl global
+.globl gds
+
+// Parse a global expression
+s_mov_b32 s0, global
+// VI: s_mov_b32 s0, global ; encoding: [0xff,0x00,0x80,0xbe,A,A,A,A]
+// VI-NEXT: ; fixup A - offset: 4, value: global, kind: FK_PCRel_4
+
+// Use a token with the same name as a global
+ds_gws_init v2 gds
+// VI: ds_gws_init v2 gds ; encoding: [0x00,0x00,0x33,0xd8,0x02,0x00,0x00,0x00]
+
+// Use a global with the same name as a token
+s_mov_b32 s0, gds
+// VI: s_mov_b32 s0, gds ; encoding: [0xff,0x00,0x80,0xbe,A,A,A,A]
+// VI-NEXT: ; fixup A - offset: 4, value: gds, kind: FK_PCRel_4
+
+// Use a binary expression
+s_mov_b32 s0, gds+4
+// VI: s_mov_b32 s0, gds+4 ; encoding: [0xff,0x00,0x80,0xbe,A,A,A,A]
+// VI-NEXT: ; fixup A - offset: 4, value: gds+4, kind: FK_PCRel_4
+
+// Consecutive instructions with no blank line in between to make sure we
+// don't call Lex() too many times.
+s_add_u32 s0, s0, global+4
+s_addc_u32 s1, s1, 0
+// VI: s_add_u32 s0, s0, global+4
+// VI: s_addc_u32 s1, s1, 0
+
+// Use a computed expression that results in an inline immediate.
+.set foo, 4
+s_mov_b32 s0, foo+2
+// VI: s_mov_b32 s0, 6 ; encoding: [0x86,0x00,0x80,0xbe]
+
+// Use a computed expression that results in a non-inline immediate.
+.set foo, 512
+s_mov_b32 s0, foo+2
+// VI: s_mov_b32 s0, 514 ; encoding: [0xff,0x00,0x80,0xbe,0x02,0x02,0x00,0x00]
diff --git a/test/MC/AMDGPU/flat-scratch.s b/test/MC/AMDGPU/flat-scratch.s
index 0664c80378db..e87f59dafeea 100644
--- a/test/MC/AMDGPU/flat-scratch.s
+++ b/test/MC/AMDGPU/flat-scratch.s
@@ -1,33 +1,36 @@
-// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=SI -check-prefix=GCN %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s 2>&1 | FileCheck -check-prefix=NOSI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=NOCI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=NOVI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck -check-prefix=CI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=VI %s
-// Add a different RUN line for the failing checks, because when stderr and stdout are mixed the
-// order things are printed is not deterministic.
-// RUN: not llvm-mc -arch=amdgcn -mcpu=hawaii -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN %s
-// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck -check-prefix=GCN %s
-
s_mov_b64 flat_scratch, -1
-// SI: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
// CI: s_mov_b64 flat_scratch, -1 ; encoding: [0xc1,0x04,0xe8,0xbe]
// VI: s_mov_b64 flat_scratch, -1 ; encoding: [0xc1,0x01,0xe6,0xbe]
s_mov_b32 flat_scratch_lo, -1
-// SI: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
// CI: s_mov_b32 flat_scratch_lo, -1 ; encoding: [0xc1,0x03,0xe8,0xbe]
// VI: s_mov_b32 flat_scratch_lo, -1 ; encoding: [0xc1,0x00,0xe6,0xbe]
s_mov_b32 flat_scratch_hi, -1
-// SI: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
// CI: s_mov_b32 flat_scratch_hi, -1 ; encoding: [0xc1,0x03,0xe9,0xbe]
// VI: s_mov_b32 flat_scratch_hi, -1 ; encoding: [0xc1,0x00,0xe7,0xbe]
s_mov_b64 flat_scratch_lo, -1
-// GCN: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
+// NOCI: error: invalid operand for instruction
+// NOVI: error: invalid operand for instruction
s_mov_b64 flat_scratch_hi, -1
-// GCN: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
+// NOCI: error: invalid operand for instruction
+// NOVI: error: invalid operand for instruction
s_mov_b32 flat_scratch, -1
-// GCN: error: invalid operand for instruction
+// NOSI: error: not a valid operand.
+// NOCI: error: invalid operand for instruction
+// NOVI: error: invalid operand for instruction
diff --git a/test/MC/AMDGPU/flat.s b/test/MC/AMDGPU/flat.s
index 20e6c042733c..c6894c35f4d7 100644
--- a/test/MC/AMDGPU/flat.s
+++ b/test/MC/AMDGPU/flat.s
@@ -40,124 +40,52 @@ flat_load_dword v1, v[3:4] glc slc tfe
// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-flat_load_dword v1, v[3:4] glc tfe slc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-
flat_load_dword v1, v[3:4] slc
// NOSI: error:
// CI: flat_load_dword v1, v[3:4] slc ; encoding: [0x00,0x00,0x32,0xdc,0x03,0x00,0x00,0x01]
// VI: flat_load_dword v1, v[3:4] slc ; encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x00,0x01]
-flat_load_dword v1, v[3:4] slc glc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x00,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x00,0x01]
-
flat_load_dword v1, v[3:4] slc tfe
// NOSI: error:
// CI: flat_load_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x32,0xdc,0x03,0x00,0x80,0x01]
// VI: flat_load_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x80,0x01]
-flat_load_dword v1, v[3:4] slc glc tfe
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-
-flat_load_dword v1, v[3:4] slc tfe glc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-
flat_load_dword v1, v[3:4] tfe
// NOSI: error:
// CI: flat_load_dword v1, v[3:4] tfe ; encoding: [0x00,0x00,0x30,0xdc,0x03,0x00,0x80,0x01]
// VI: flat_load_dword v1, v[3:4] tfe ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x80,0x01]
-flat_load_dword v1, v[3:4] tfe glc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc tfe ; encoding: [0x00,0x00,0x31,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc tfe ; encoding: [0x00,0x00,0x51,0xdc,0x03,0x00,0x80,0x01]
-
-flat_load_dword v1, v[3:4] tfe slc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x32,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x80,0x01]
-
-flat_load_dword v1, v[3:4] tfe glc slc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-
-flat_load_dword v1, v[3:4] tfe slc glc
-// NOSI: error:
-// CI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x33,0xdc,0x03,0x00,0x80,0x01]
-// VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
-
-flat_store_dword v1, v[3:4]
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00]
-
-flat_store_dword v1, v[3:4] glc
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x00,0x00]
-
-flat_store_dword v1, v[3:4] glc slc
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x00,0x00]
-
-flat_store_dword v1, v[3:4] glc tfe
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc tfe ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x80,0x00]
-
-flat_store_dword v1, v[3:4] glc slc tfe
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
-
-flat_store_dword v1, v[3:4] glc tfe slc
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
-
-flat_store_dword v1, v[3:4] slc
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] slc ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x00,0x00]
-
-flat_store_dword v1, v[3:4] slc glc
+flat_store_dword v[3:4], v1
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x00,0x00]
+// CIVI: flat_store_dword v[3:4], v1 ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dword v1, v[3:4] slc tfe
+flat_store_dword v[3:4], v1 glc
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 glc ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dword v1, v[3:4] slc glc tfe
+flat_store_dword v[3:4], v1 glc slc
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 glc slc ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dword v1, v[3:4] slc tfe glc
+flat_store_dword v[3:4], v1 glc tfe
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 glc tfe ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x80,0x00]
-flat_store_dword v1, v[3:4] tfe
+flat_store_dword v[3:4], v1 glc slc tfe
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] tfe ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
-flat_store_dword v1, v[3:4] tfe glc
+flat_store_dword v[3:4], v1 slc
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc tfe ; encoding: [0x00,0x00,0x71,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 slc ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dword v1, v[3:4] tfe slc
+flat_store_dword v[3:4], v1 slc tfe
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 slc tfe ; encoding: [0x00,0x00,0x72,0xdc,0x03,0x01,0x80,0x00]
-flat_store_dword v1, v[3:4] tfe glc slc
+flat_store_dword v[3:4], v1 tfe
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
-
-flat_store_dword v1, v[3:4] tfe slc glc
-// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x73,0xdc,0x03,0x01,0x80,0x00]
+// CIVI: flat_store_dword v[3:4], v1 tfe ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x80,0x00]
// FIXME: For atomic instructions, glc must be placed immediately following
// the data regiser. These forms aren't currently supported:
@@ -184,11 +112,6 @@ flat_atomic_add v1 v[3:4], v5 glc slc tfe
// CI: flat_atomic_add v1, v[3:4], v5 glc slc tfe ; encoding: [0x00,0x00,0xcb,0xdc,0x03,0x05,0x80,0x01]
// VI: flat_atomic_add v1, v[3:4], v5 glc slc tfe ; encoding: [0x00,0x00,0x0b,0xdd,0x03,0x05,0x80,0x01]
-flat_atomic_add v1 v[3:4], v5 glc tfe slc
-// NOSI: error:
-// CI: flat_atomic_add v1, v[3:4], v5 glc slc tfe ; encoding: [0x00,0x00,0xcb,0xdc,0x03,0x05,0x80,0x01]
-// VI: flat_atomic_add v1, v[3:4], v5 glc slc tfe ; encoding: [0x00,0x00,0x0b,0xdd,0x03,0x05,0x80,0x01]
-
flat_atomic_add v[3:4], v5 slc
// NOSI: error:
// CI: flat_atomic_add v[3:4], v5 slc ; encoding: [0x00,0x00,0xca,0xdc,0x03,0x05,0x00,0x00]
@@ -248,31 +171,31 @@ flat_load_dwordx3 v[5:7], v[3:4]
// CI: flat_load_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x3c,0xdc,0x03,0x00,0x00,0x05]
// VI: flat_load_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x58,0xdc,0x03,0x00,0x00,0x05]
-flat_store_byte v1, v[3:4]
+flat_store_byte v[3:4], v1
// NOSI: error:
-// CIVI: flat_store_byte v1, v[3:4] ; encoding: [0x00,0x00,0x60,0xdc,0x03,0x01,0x00,0x00]
+// CIVI: flat_store_byte v[3:4], v1 ; encoding: [0x00,0x00,0x60,0xdc,0x03,0x01,0x00,0x00]
-flat_store_short v1, v[3:4]
+flat_store_short v[3:4], v1
// NOSI: error:
-// CIVI: flat_store_short v1, v[3:4] ; encoding: [0x00,0x00,0x68,0xdc,0x03,0x01,0x00,0x00]
+// CIVI: flat_store_short v[3:4], v1 ; encoding: [0x00,0x00,0x68,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dword v1, v[3:4]
+flat_store_dword v[3:4], v1
// NOSI: error:
-// CIVI: flat_store_dword v1, v[3:4] ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00]
+// CIVI: flat_store_dword v[3:4], v1 ; encoding: [0x00,0x00,0x70,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dwordx2 v[1:2], v[3:4]
+flat_store_dwordx2 v[3:4], v[1:2]
// NOSI: error:
-// CIVI: flat_store_dwordx2 v[1:2], v[3:4] ; encoding: [0x00,0x00,0x74,0xdc,0x03,0x01,0x00,0x00]
+// CIVI: flat_store_dwordx2 v[3:4], v[1:2] ; encoding: [0x00,0x00,0x74,0xdc,0x03,0x01,0x00,0x00]
-flat_store_dwordx4 v[5:8], v[3:4]
+flat_store_dwordx4 v[3:4], v[5:8]
// NOSI: error:
-// CI: flat_store_dwordx4 v[5:8], v[3:4] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
-// VI: flat_store_dwordx4 v[5:8], v[3:4] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
+// CI: flat_store_dwordx4 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
+// VI: flat_store_dwordx4 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
-flat_store_dwordx3 v[5:7], v[3:4]
+flat_store_dwordx3 v[3:4], v[5:7]
// NOSI: error:
-// CI: flat_store_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
-// VI: flat_store_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
+// CI: flat_store_dwordx3 v[3:4], v[5:7] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
+// VI: flat_store_dwordx3 v[3:4], v[5:7] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
flat_atomic_swap v[3:4], v5
// NOSI: error:
@@ -471,8 +394,8 @@ flat_atomic_umin_x2 v[3:4], v[5:6]
flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc
// NOSI: error:
-// CI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x59,0xdd,0x03,0x05,0x00,0x01]
-// VI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x95,0xdd,0x03,0x05,0x00,0x01]
+// CI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x59,0xdd,0x03,0x05,0x00,0x01]
+// VI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x95,0xdd,0x03,0x05,0x00,0x01]
flat_atomic_smax_x2 v[3:4], v[5:6]
// NOSI: error:
diff --git a/test/MC/AMDGPU/hsa-exp.s b/test/MC/AMDGPU/hsa-exp.s
new file mode 100644
index 000000000000..0a8d0d29be1e
--- /dev/null
+++ b/test/MC/AMDGPU/hsa-exp.s
@@ -0,0 +1,129 @@
+// RUN: llvm-mc -triple amdgcn--amdhsa -mcpu=kaveri -show-encoding %s | FileCheck %s --check-prefix=ASM
+// RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri -show-encoding %s | llvm-readobj -symbols -s -sd | FileCheck %s --check-prefix=ELF
+
+// ELF: Section {
+// ELF: Name: .text
+// ELF: Type: SHT_PROGBITS (0x1)
+// ELF: Flags [ (0x6)
+// ELF: SHF_ALLOC (0x2)
+// ELF: SHF_EXECINSTR (0x4)
+
+// ELF: SHT_NOTE
+// ELF: 0000: 04000000 08000000 01000000 414D4400
+// ELF: 0010: 02000000 00000000 04000000 1B000000
+// ELF: 0020: 03000000 414D4400 04000700 07000000
+// ELF: 0030: 00000000 00000000 414D4400 414D4447
+// ELF: 0040: 50550000
+
+// ELF: Symbol {
+// ELF: Name: amd_kernel_code_t_minimal
+// ELF: Type: AMDGPU_HSA_KERNEL (0xA)
+// ELF: Section: .text
+// ELF: }
+
+.text
+// ASM: .text
+
+.hsa_code_object_version 2,0
+// ASM: .hsa_code_object_version 2,0
+
+.hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
+// ASM: .hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
+
+.amdgpu_hsa_kernel amd_kernel_code_t_minimal
+
+.set my_is_ptr64, 1
+
+.if my_is_ptr64 == 0
+.set my_kernarg_segment_byte_size, 32
+.else
+.set my_kernarg_segment_byte_size, 16
+.endif
+
+.set my_sgpr, 8
+
+
+amd_kernel_code_t_minimal:
+.amd_kernel_code_t
+ kernel_code_version_major = .option.machine_version_major
+ enable_sgpr_kernarg_segment_ptr = 1
+ is_ptr64 = my_is_ptr64
+ compute_pgm_rsrc1_vgprs = 1
+ compute_pgm_rsrc1_sgprs = 1+(my_sgpr-1)/8
+ compute_pgm_rsrc2_user_sgpr = 2
+ kernarg_segment_byte_size = my_kernarg_segment_byte_size
+ wavefront_sgpr_count = my_sgpr
+// wavefront_sgpr_count = 7
+; wavefront_sgpr_count = 7
+// Make sure a blank line won't break anything:
+
+// Make sure a line with whitespace won't break anything:
+
+ workitem_vgpr_count = 16
+.end_amd_kernel_code_t
+
+// ASM-LABEL: {{^}}amd_kernel_code_t_minimal:
+// ASM: .amd_kernel_code_t
+// ASM: kernel_code_version_major = 7
+// ASM: kernel_code_version_minor = 0
+// ASM: machine_kind = 1
+// ASM: machine_version_major = 7
+// ASM: machine_version_minor = 0
+// ASM: machine_version_stepping = 0
+// ASM: kernel_code_entry_byte_offset = 256
+// ASM: kernel_code_prefetch_byte_size = 0
+// ASM: max_scratch_backing_memory_byte_size = 0
+// ASM: compute_pgm_rsrc1_vgprs = 1
+// ASM: compute_pgm_rsrc1_sgprs = 1
+// ASM: compute_pgm_rsrc1_priority = 0
+// ASM: compute_pgm_rsrc1_float_mode = 0
+// ASM: compute_pgm_rsrc1_priv = 0
+// ASM: compute_pgm_rsrc1_dx10_clamp = 0
+// ASM: compute_pgm_rsrc1_debug_mode = 0
+// ASM: compute_pgm_rsrc1_ieee_mode = 0
+// ASM: compute_pgm_rsrc2_scratch_en = 0
+// ASM: compute_pgm_rsrc2_user_sgpr = 2
+// ASM: compute_pgm_rsrc2_tgid_x_en = 0
+// ASM: compute_pgm_rsrc2_tgid_y_en = 0
+// ASM: compute_pgm_rsrc2_tgid_z_en = 0
+// ASM: compute_pgm_rsrc2_tg_size_en = 0
+// ASM: compute_pgm_rsrc2_tidig_comp_cnt = 0
+// ASM: compute_pgm_rsrc2_excp_en_msb = 0
+// ASM: compute_pgm_rsrc2_lds_size = 0
+// ASM: compute_pgm_rsrc2_excp_en = 0
+// ASM: enable_sgpr_private_segment_buffer = 0
+// ASM: enable_sgpr_dispatch_ptr = 0
+// ASM: enable_sgpr_queue_ptr = 0
+// ASM: enable_sgpr_kernarg_segment_ptr = 1
+// ASM: enable_sgpr_dispatch_id = 0
+// ASM: enable_sgpr_flat_scratch_init = 0
+// ASM: enable_sgpr_private_segment_size = 0
+// ASM: enable_sgpr_grid_workgroup_count_x = 0
+// ASM: enable_sgpr_grid_workgroup_count_y = 0
+// ASM: enable_sgpr_grid_workgroup_count_z = 0
+// ASM: enable_ordered_append_gds = 0
+// ASM: private_element_size = 0
+// ASM: is_ptr64 = 1
+// ASM: is_dynamic_callstack = 0
+// ASM: is_debug_enabled = 0
+// ASM: is_xnack_enabled = 0
+// ASM: workitem_private_segment_byte_size = 0
+// ASM: workgroup_group_segment_byte_size = 0
+// ASM: gds_segment_byte_size = 0
+// ASM: kernarg_segment_byte_size = 16
+// ASM: workgroup_fbarrier_count = 0
+// ASM: wavefront_sgpr_count = 8
+// ASM: workitem_vgpr_count = 16
+// ASM: reserved_vgpr_first = 0
+// ASM: reserved_vgpr_count = 0
+// ASM: reserved_sgpr_first = 0
+// ASM: reserved_sgpr_count = 0
+// ASM: debug_wavefront_private_segment_offset_sgpr = 0
+// ASM: debug_private_segment_buffer_sgpr = 0
+// ASM: kernarg_segment_alignment = 4
+// ASM: group_segment_alignment = 4
+// ASM: private_segment_alignment = 4
+// ASM: wavefront_size = 6
+// ASM: call_convention = 0
+// ASM: runtime_loader_kernel_symbol = 0
+// ASM: .end_amd_kernel_code_t
diff --git a/test/MC/AMDGPU/hsa-text.s b/test/MC/AMDGPU/hsa-text.s
index 1d2f1f1619e1..afe696af0a26 100644
--- a/test/MC/AMDGPU/hsa-text.s
+++ b/test/MC/AMDGPU/hsa-text.s
@@ -5,29 +5,23 @@
// ELF: Section {
-// We want to avoid emitting an empty .text section.
-// ELF-NOT: Name: .text
-
-// ELF: Name: .hsatext
+// ELF: Name: .text
// ELF: Type: SHT_PROGBITS (0x1)
-// ELF: Flags [ (0xC00007)
+// ELF: Flags [ (0x6)
// ELF: SHF_ALLOC (0x2)
-// ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
-// ELF: SHF_AMDGPU_HSA_CODE (0x400000)
// ELF: SHF_EXECINSTR (0x4)
-// ELF: SHF_WRITE (0x1)
// ELF: Size: 260
// ELF: }
+.text
+// ASM: .text
+
.hsa_code_object_version 1,0
// ASM: .hsa_code_object_version 1,0
.hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
// ASM: .hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
-.text
-// ASM: .hsatext
-
.amd_kernel_code_t
.end_amd_kernel_code_t
diff --git a/test/MC/AMDGPU/hsa.s b/test/MC/AMDGPU/hsa.s
index bfdcfb432923..27de3d5325d6 100644
--- a/test/MC/AMDGPU/hsa.s
+++ b/test/MC/AMDGPU/hsa.s
@@ -2,18 +2,15 @@
// RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri -show-encoding %s | llvm-readobj -symbols -s -sd | FileCheck %s --check-prefix=ELF
// ELF: Section {
-// ELF: Name: .hsatext
+// ELF: Name: .text
// ELF: Type: SHT_PROGBITS (0x1)
-// ELF: Flags [ (0xC00007)
+// ELF: Flags [ (0x6)
// ELF: SHF_ALLOC (0x2)
-// ELF: SHF_AMDGPU_HSA_AGENT (0x800000)
-// ELF: SHF_AMDGPU_HSA_CODE (0x400000)
// ELF: SHF_EXECINSTR (0x4)
-// ELF: SHF_WRITE (0x1)
// ELF: SHT_NOTE
// ELF: 0000: 04000000 08000000 01000000 414D4400
-// ELF: 0010: 01000000 00000000 04000000 1B000000
+// ELF: 0010: 02000000 00000000 04000000 1B000000
// ELF: 0020: 03000000 414D4400 04000700 07000000
// ELF: 0030: 00000000 00000000 414D4400 414D4447
// ELF: 0040: 50550000
@@ -21,17 +18,19 @@
// ELF: Symbol {
// ELF: Name: amd_kernel_code_t_minimal
// ELF: Type: AMDGPU_HSA_KERNEL (0xA)
-// ELF: Section: .hsatext
+// ELF: Section: .text
// ELF: }
// ELF: Symbol {
// ELF: Name: amd_kernel_code_t_test_all
// ELF: Type: AMDGPU_HSA_KERNEL (0xA)
-// ELF: Section: .hsatext
+// ELF: Section: .text
// ELF: }
+.text
+// ASM: .text
-.hsa_code_object_version 1,0
-// ASM: .hsa_code_object_version 1,0
+.hsa_code_object_version 2,0
+// ASM: .hsa_code_object_version 2,0
.hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
// ASM: .hsa_code_object_isa 7,0,0,"AMD","AMDGPU"
@@ -39,8 +38,6 @@
.amdgpu_hsa_kernel amd_kernel_code_t_test_all
.amdgpu_hsa_kernel amd_kernel_code_t_minimal
-.hsatext
-// ASM: .hsatext
amd_kernel_code_t_test_all:
; Test all amd_kernel_code_t members with non-default values.
diff --git a/test/MC/AMDGPU/labels-branch.s b/test/MC/AMDGPU/labels-branch.s
new file mode 100644
index 000000000000..da6450f13877
--- /dev/null
+++ b/test/MC/AMDGPU/labels-branch.s
@@ -0,0 +1,17 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
+
+loop_start:
+s_branch loop_start
+// VI: s_branch loop_start ; encoding: [A,A,0x82,0xbf]
+// VI-NEXT: ; fixup A - offset: 0, value: loop_start, kind: fixup_si_sopp_br
+
+s_branch loop_end
+// VI: s_branch loop_end ; encoding: [A,A,0x82,0xbf]
+// VI-NEXT: ; fixup A - offset: 0, value: loop_end, kind: fixup_si_sopp_br
+loop_end:
+
+s_branch gds
+// VI: s_branch gds ; encoding: [A,A,0x82,0xbf]
+// VI-NEXT: ; fixup A - offset: 0, value: gds, kind: fixup_si_sopp_br
+gds:
+ s_nop 0
diff --git a/test/MC/AMDGPU/macro-examples.s b/test/MC/AMDGPU/macro-examples.s
new file mode 100644
index 000000000000..10cbe88dc87a
--- /dev/null
+++ b/test/MC/AMDGPU/macro-examples.s
@@ -0,0 +1,35 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji %s | FileCheck %s --check-prefix=VI
+
+//===----------------------------------------------------------------------===//
+// Example of reg[expr] and reg[epxr1:expr2] syntax in macros.
+//===----------------------------------------------------------------------===//
+
+.macro REG_NUM_EXPR_EXAMPLE width iter iter_end
+ .if \width == 4
+ flat_load_dwordx4 v[8 + (\iter * 4):8 + (\iter * 4) + 3], v[2:3]
+ .else
+ flat_load_dword v[8 + \iter], v[2:3]
+ .endif
+
+ .if (\iter_end - \iter)
+ REG_NUM_EXPR_EXAMPLE \width, (\iter + 1), \iter_end
+ .endif
+ .endm
+
+REG_NUM_EXPR_EXAMPLE 4, 0, 0
+// VI: flat_load_dwordx4 v[8:11], v[2:3]
+
+REG_NUM_EXPR_EXAMPLE 1, 0, 0
+// VI: flat_load_dword v8, v[2:3]
+
+REG_NUM_EXPR_EXAMPLE 4, 1, 4
+// VI: flat_load_dwordx4 v[12:15], v[2:3]
+// VI: flat_load_dwordx4 v[16:19], v[2:3]
+// VI: flat_load_dwordx4 v[20:23], v[2:3]
+// VI: flat_load_dwordx4 v[24:27], v[2:3]
+
+REG_NUM_EXPR_EXAMPLE 1, 1, 4
+// VI: flat_load_dword v9, v[2:3]
+// VI: flat_load_dword v10, v[2:3]
+// VI: flat_load_dword v11, v[2:3]
+// VI: flat_load_dword v12, v[2:3]
diff --git a/test/MC/AMDGPU/mimg.s b/test/MC/AMDGPU/mimg.s
new file mode 100644
index 000000000000..865427e26c0b
--- /dev/null
+++ b/test/MC/AMDGPU/mimg.s
@@ -0,0 +1,27 @@
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
+
+image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm
+// SICI: image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x00,0xf0,0xed,0x04,0x07,0x00]
+// VI: image_load v[4:6], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x00,0xf0,0xed,0x04,0x07,0x00]
+
+image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm
+// SICI: image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x20,0xf0,0xed,0xc1,0x07,0x00]
+// VI : image_store v[193:195], v[237:240], s[28:35] dmask:0x7 unorm ; encoding: [0x00,0x17,0x20,0xf0,0xed,0xc1,0x07,0x00]
+
+image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm
+// SICI: image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm ; encoding: [0x00,0x17,0x80,0xf0,0xed,0xc1,0x27,0x00]
+// VI : image_sample v[193:195], v[237:240], s[28:35], s[4:7] dmask:0x7 unorm ; encoding: [0x00,0x17,0x80,0xf0,0xed,0xc1,0x27,0x00]
+
+image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc
+// SICI: image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x44,0xf0,0xc0,0xc0,0x07,0x00]
+// VI : image_atomic_add v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x48,0xf0,0xc0,0x04,0x07,0x00]
+
+image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc
+// SICI: image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x3c,0xf0,0xc0,0xc0,0x07,0x00]
+// VI : image_atomic_swap v4, v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x40,0xf0,0xc0,0x04,0x07,0x00]
+
+image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x1 unorm glc
+// SIIC: image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x40,0xf0,0xc0,0xc0,0x07,0x00]
+// VI : image_atomic_cmpswap v[4:5], v[192:195], s[28:35] dmask:0x1 unorm glc ; encoding: [0x00,0x31,0x44,0xf0,0xc0,0xc0,0x07,0x00]
diff --git a/test/MC/AMDGPU/mubuf.s b/test/MC/AMDGPU/mubuf.s
index 18cca7022699..959de53d9792 100644
--- a/test/MC/AMDGPU/mubuf.s
+++ b/test/MC/AMDGPU/mubuf.s
@@ -1,5 +1,6 @@
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SI -check-prefix=SICI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=CI -check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOCI %s
@@ -13,29 +14,41 @@
// load - immediate offset only
//===----------------------------------------------------------------------===//
-buffer_load_dword v1, s[4:7], s1
-// SICI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dword v1, off, s[4:7], s1
+// SICI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dword v1, s[4:7], s1 offset:4
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dword v1, off, ttmp[4:7], s1
+// SICI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x01]
+// VI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x01]
-buffer_load_dword v1, s[4:7], s1 offset:4 glc
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dword v1, off, s[4:7], s1 offset:4
+// SICI: buffer_load_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dword v1, s[4:7], s1 offset:4 slc
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x41,0x01]
+buffer_load_dword v1, off, s[4:7], s1 offset:4 glc
+// SICI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x50,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dword v1, s[4:7], s1 offset:4 tfe
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x81,0x01]
+buffer_load_dword v1, off, s[4:7], s1 offset:4 slc
+// SICI: buffer_load_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x41,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x52,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dword v1, s[4:7], s1 tfe glc
-// SICI: buffer_load_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x30,0xe0,0x00,0x01,0x81,0x01]
+buffer_load_dword v1, off, s[4:7], s1 offset:4 tfe
+// SICI: buffer_load_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x81,0x01]
-buffer_load_dword v1, s[4:7], s1 offset:4 glc tfe slc
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0xc1,0x01]
+buffer_load_dword v1, off, s[4:7], s1 glc tfe
+// SICI: buffer_load_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x30,0xe0,0x00,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x50,0xe0,0x00,0x01,0x81,0x01]
-buffer_load_dword v1, s[4:7], s1 glc tfe slc offset:4
-// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0xc1,0x01]
+buffer_load_dword v1, off, s[4:7], s1 offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0xc1,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x52,0xe0,0x00,0x01,0x81,0x01]
+
+buffer_load_dword v1, off, ttmp[4:7], s1 offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, off, ttmp[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0xdd,0x01]
+// VI: buffer_load_dword v1, off, ttmp[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x52,0xe0,0x00,0x01,0x9d,0x01]
//===----------------------------------------------------------------------===//
// load - vgpr offset
@@ -43,27 +56,35 @@ buffer_load_dword v1, s[4:7], s1 glc tfe slc offset:4
buffer_load_dword v1, v2, s[4:7], s1 offen
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 offen offset:4
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x52,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 offen tfe glc
+buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc tfe slc
+buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x52,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe slc offset:4
-// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0xc1,0x01]
+buffer_load_dword v1, v2, ttmp[4:7], s1 offen offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, v2, ttmp[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0xdd,0x01]
+// VI: buffer_load_dword v1, v2, ttmp[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x52,0xe0,0x02,0x01,0x9d,0x01]
//===----------------------------------------------------------------------===//
// load - vgpr index
@@ -71,27 +92,35 @@ buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe slc offset:4
buffer_load_dword v1, v2, s[4:7], s1 idxen
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x52,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 idxen tfe glc
+buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc tfe slc
+buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe
// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x52,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe slc offset:4
-// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0xc1,0x01]
+buffer_load_dword v1, v2, ttmp[4:7], s1 idxen offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, v2, ttmp[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0xdd,0x01]
+// VI: buffer_load_dword v1, v2, ttmp[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x52,0xe0,0x02,0x01,0x9d,0x01]
//===----------------------------------------------------------------------===//
// load - vgpr index and offset
@@ -99,27 +128,35 @@ buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe slc offset:4
buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x50,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x52,0xe0,0x02,0x01,0x01,0x01]
buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen tfe glc
+buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x30,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x50,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc tfe slc
+buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x52,0xe0,0x02,0x01,0x81,0x01]
-buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe slc offset:4
-// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0xc1,0x01]
+buffer_load_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0xdd,0x71]
+// VI: buffer_load_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x52,0xe0,0x02,0x01,0x9d,0x71]
//===----------------------------------------------------------------------===//
// load - addr64
@@ -127,55 +164,71 @@ buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe slc offset:4
buffer_load_dword v1, v[2:3], s[4:7], s1 addr64
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 ; encoding: [0x00,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x41,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x81,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 tfe glc
+buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe ; encoding: [0x00,0xc0,0x30,0xe0,0x02,0x01,0x81,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc tfe slc
+buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe
// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xc1,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe slc offset:4
-// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xc1,0x01]
+buffer_load_dword v1, v[2:3], ttmp[4:7], ttmp1 addr64 offset:4 glc slc tfe
+// SICI: buffer_load_dword v1, v[2:3], ttmp[4:7], ttmp1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xdd,0x71]
+// NOVI: error: instruction not supported on this GPU
//===----------------------------------------------------------------------===//
// store - immediate offset only
//===----------------------------------------------------------------------===//
-buffer_store_dword v1, s[4:7], s1
-// SICI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_dword v1, off, s[4:7], s1
+// SICI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dword v1, s[4:7], s1 offset:4
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_dword v1, off, s[4:7], s1 offset:4
+// SICI: buffer_store_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dword v1, s[4:7], s1 offset:4 glc
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_dword v1, off, s[4:7], s1 offset:4 glc
+// SICI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dword v1, s[4:7], s1 offset:4 slc
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x41,0x01]
+buffer_store_dword v1, off, s[4:7], s1 offset:4 slc
+// SICI: buffer_store_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x41,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x72,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dword v1, s[4:7], s1 offset:4 tfe
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
+buffer_store_dword v1, off, s[4:7], s1 offset:4 tfe
+// SICI: buffer_store_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
-buffer_store_dword v1, s[4:7], s1 tfe glc
-// SICI: buffer_store_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
+buffer_store_dword v1, off, s[4:7], s1 glc tfe
+// SICI: buffer_store_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
-buffer_store_dword v1, s[4:7], s1 offset:4 glc tfe slc
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0xc1,0x01]
+buffer_store_dword v1, off, s[4:7], s1 offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0xc1,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x72,0xe0,0x00,0x01,0x81,0x01]
-buffer_store_dword v1, s[4:7], s1 glc tfe slc offset:4
-// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0xc1,0x01]
+buffer_store_dword v1, off, ttmp[4:7], ttmp1 offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, off, ttmp[4:7], ttmp1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0xdd,0x71]
+// VI: buffer_store_dword v1, off, ttmp[4:7], ttmp1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x72,0xe0,0x00,0x01,0x9d,0x71]
//===----------------------------------------------------------------------===//
// store - vgpr offset
@@ -183,27 +236,35 @@ buffer_store_dword v1, s[4:7], s1 glc tfe slc offset:4
buffer_store_dword v1, v2, s[4:7], s1 offen
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 offen offset:4
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x72,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 offen tfe glc
+buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc tfe slc
+buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x72,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe slc offset:4
-// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0xc1,0x01]
+buffer_store_dword v1, v2, ttmp[4:7], ttmp1 offen offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, v2, ttmp[4:7], ttmp1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0xdd,0x71]
+// VI: buffer_store_dword v1, v2, ttmp[4:7], ttmp1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x72,0xe0,0x02,0x01,0x9d,0x71]
//===----------------------------------------------------------------------===//
// store - vgpr index
@@ -211,27 +272,35 @@ buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe slc offset:4
buffer_store_dword v1, v2, s[4:7], s1 idxen
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x72,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 idxen tfe glc
+buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc tfe slc
+buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe
// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x72,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe slc offset:4
-// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0xc1,0x01]
+buffer_store_dword v1, v2, ttmp[4:7], ttmp1 idxen offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, v2, ttmp[4:7], ttmp1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0xdd,0x71]
+// VI: buffer_store_dword v1, v2, ttmp[4:7], ttmp1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x72,0xe0,0x02,0x01,0x9d,0x71]
//===----------------------------------------------------------------------===//
// store - vgpr index and offset
@@ -239,27 +308,35 @@ buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe slc offset:4
buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x41,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x72,0xe0,0x02,0x01,0x01,0x01]
buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen tfe glc
+buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc tfe slc
+buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0xc1,0x01]
+// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x72,0xe0,0x02,0x01,0x81,0x01]
-buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe slc offset:4
-// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0xc1,0x01]
+buffer_store_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0xdd,0x71]
+// VI: buffer_store_dword v1, v[2:3], ttmp[4:7], ttmp1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x72,0xe0,0x02,0x01,0x9d,0x71]
//===----------------------------------------------------------------------===//
// store - addr64
@@ -267,91 +344,143 @@ buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe slc offset:4
buffer_store_dword v1, v[2:3], s[4:7], s1 addr64
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 ; encoding: [0x00,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0x01,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x41,0x01]
+// NOVI: error: instruction not supported on this GPU
buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x81,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 tfe glc
+buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe ; encoding: [0x00,0xc0,0x70,0xe0,0x02,0x01,0x81,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc tfe slc
+buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe
// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xc1,0x01]
+// NOVI: error: instruction not supported on this GPU
-buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe slc offset:4
-// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xc1,0x01]
+buffer_store_dword v1, v[2:3], ttmp[4:7], ttmp1 addr64 offset:4 glc slc tfe
+// SICI: buffer_store_dword v1, v[2:3], ttmp[4:7], ttmp1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xdd,0x71]
+// NOVI: error: instruction not supported on this GPU
//===----------------------------------------------------------------------===//
// Instructions
//===----------------------------------------------------------------------===//
-buffer_load_format_x v1, s[4:7], s1
-// SICI: buffer_load_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_format_x v1, off, s[4:7], s1
+// SICI: buffer_load_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_load_format_xy v[1:2], off, s[4:7], s1
+// SICI: buffer_load_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_load_format_xyz v[1:3], off, s[4:7], s1
+// SICI: buffer_load_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_load_format_xyzw v[1:4], off, s[4:7], s1
+// SICI: buffer_load_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_store_format_x v1, off, s[4:7], s1
+// SICI: buffer_store_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_format_xy v[1:2], s[4:7], s1
-// SICI: buffer_load_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_format_xy v[1:2], off, s[4:7], s1
+// SICI: buffer_store_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_format_xyz v[1:3], s[4:7], s1
-// SICI: buffer_load_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_format_xyz v[1:3], off, s[4:7], s1
+// SICI: buffer_store_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_format_xyzw v[1:4], s[4:7], s1
-// SICI: buffer_load_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_format_xyzw v[1:4], off, s[4:7], s1
+// SICI: buffer_store_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_format_x v1, s[4:7], s1
-// SICI: buffer_store_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1
+// SICI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
-buffer_store_format_xy v[1:2], s[4:7], s1
-// SICI: buffer_store_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_ubyte v1, off, s[4:7], s1
+// SICI: buffer_load_ubyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_ubyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_format_xyz v[1:3], s[4:7], s1
-// SICI: buffer_store_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_ubyte v1, off, ttmp[4:7], ttmp1
+// SICI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x1d,0x71]
-buffer_store_format_xyzw v[1:4], s[4:7], s1
-// SICI: buffer_store_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_sbyte v1, off, s[4:7], s1
+// SICI: buffer_load_sbyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_sbyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x44,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_ubyte v1, s[4:7], s1
-// SICI: buffer_load_ubyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_ushort v1, off, s[4:7], s1
+// SICI: buffer_load_ushort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_ushort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x48,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_sbyte v1, s[4:7], s1
-// SICI: buffer_load_sbyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_sshort v1, off, s[4:7], s1
+// SICI: buffer_load_sshort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_sshort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x4c,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_ushort v1, s[4:7], s1
-// SICI: buffer_load_ushort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dword v1, off, s[4:7], s1
+// SICI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_sshort v1, s[4:7], s1
-// SICI: buffer_load_sshort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dword v1, off, ttmp[4:7], ttmp1
+// SICI: buffer_load_dword v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_load_dword v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x71]
-buffer_load_dword v1, s[4:7], s1
-// SICI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dwordx2 v[1:2], off, s[4:7], s1
+// SICI: buffer_load_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x54,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dwordx2 v[1:2], s[4:7], s1
-// SICI: buffer_load_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dwordx4 v[1:4], off, s[4:7], s1
+// SICI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
-buffer_load_dwordx4 v[1:4], s[4:7], s1
-// SICI: buffer_load_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
+buffer_load_dwordx4 v[1:4], off, ttmp[4:7], ttmp1
+// SICI: buffer_load_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_load_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x1d,0x71]
-buffer_store_byte v1, s[4:7], s1
-// SICI: buffer_store_byte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_byte v1, off, s[4:7], s1
+// SICI: buffer_store_byte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_byte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_short v1, s[4:7], s1
-// SICI: buffer_store_short v1, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_byte v1, off, ttmp[4:7], ttmp1
+// SICI: buffer_store_byte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_store_byte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x1d,0x71]
-buffer_store_dword v1 s[4:7], s1
-// SICI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_short v1, off, s[4:7], s1
+// SICI: buffer_store_short v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_short v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dwordx2 v[1:2], s[4:7], s1
-// SICI: buffer_store_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_dword v1, off, s[4:7], s1
+// SICI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
-buffer_store_dwordx4 v[1:4], s[4:7], s1
-// SICI: buffer_store_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x01,0x01]
+buffer_store_dwordx2 v[1:2], off, s[4:7], s1
+// SICI: buffer_store_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_store_dwordx4 v[1:4], off, s[4:7], s1
+// SICI: buffer_store_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_store_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1
+// SICI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x1d,0x71]
//===----------------------------------------------------------------------===//
// Cache invalidation
@@ -359,6 +488,7 @@ buffer_store_dwordx4 v[1:4], s[4:7], s1
buffer_wbinvl1
// SICI: buffer_wbinvl1 ; encoding: [0x00,0x00,0xc4,0xe1,0x00,0x00,0x00,0x00]
+// VI: buffer_wbinvl1 ; encoding: [0x00,0x00,0xf8,0xe0,0x00,0x00,0x00,0x00]
buffer_wbinvl1_sc
// SI: buffer_wbinvl1_sc ; encoding: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
@@ -367,6 +497,208 @@ buffer_wbinvl1_sc
buffer_wbinvl1_vol
// CI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
+// VI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
// NOSI: error: instruction not supported on this GPU
-// TODO: Atomics
+//===----------------------------------------------------------------------===//
+// Atomics
+//===----------------------------------------------------------------------===//
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 ; encoding: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], s4 addr64
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 addr64 ; encoding: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 slc ; encoding: [0x00,0x80,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 ; encoding: [0x04,0x80,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 slc ; encoding: [0x04,0x80,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, off, s[8:11], 56
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 ; encoding: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 ; encoding: [0x00,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], 56 slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 slc ; encoding: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], s4 slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], s4 slc ; encoding: [0x00,0x00,0xf0,0xe0,0x00,0x01,0x42,0x04]
+// VI: buffer_atomic_inc v1, off, s[8:11], s4 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, off, s[8:11], 56 offset:4
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 ; encoding: [0x04,0x00,0xf0,0xe0,0x00,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 ; encoding: [0x04,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], 56 offset:4 slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 slc ; encoding: [0x04,0x00,0xf0,0xe0,0x00,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 slc ; encoding: [0x04,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen ; encoding: [0x00,0x10,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen ; encoding: [0x00,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen slc ; encoding: [0x00,0x10,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen slc ; encoding: [0x00,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 ; encoding: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4
+// SICI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 ; encoding: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// VI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 slc ; encoding: [0x04,0x10,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 slc ; encoding: [0x04,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen ; encoding: [0x00,0x20,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen ; encoding: [0x00,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen slc ; encoding: [0x00,0x20,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen slc ; encoding: [0x00,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 ; encoding: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 ; encoding: [0x04,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 slc ; encoding: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 slc ; encoding: [0x04,0x20,0xf0,0xe0,0x02,0x01,0x42,0x04]
+// VI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen ; encoding: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen ; encoding: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen slc ; encoding: [0x00,0x30,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen slc ; encoding: [0x00,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 ; encoding: [0x04,0x30,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 ; encoding: [0x04,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 slc ; encoding: [0x04,0x30,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 glc ; encoding: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], s4 addr64 glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 addr64 glc ; encoding: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 glc slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 glc slc ; encoding: [0x00,0xc0,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 glc ; encoding: [0x04,0xc0,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 glc slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 addr64 offset:4 glc slc ; encoding: [0x04,0xc0,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// NOVI: error: instruction not supported on this GPU
+
+buffer_atomic_inc v1, off, s[8:11], 56 glc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 glc ; encoding: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 glc ; encoding: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], 56 glc slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 glc slc ; encoding: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], s4 glc slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], s4 glc slc ; encoding: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x42,0x04]
+// VI: buffer_atomic_inc v1, off, s[8:11], s4 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc ; encoding: [0x04,0x40,0xf0,0xe0,0x00,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc ; encoding: [0x04,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc slc
+// SICI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc slc ; encoding: [0x04,0x40,0xf0,0xe0,0x00,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc slc ; encoding: [0x04,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen glc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc ; encoding: [0x00,0x50,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc ; encoding: [0x00,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen glc slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc slc ; encoding: [0x00,0x50,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc slc ; encoding: [0x00,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc ; encoding: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 glc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 glc ; encoding: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// VI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc slc ; encoding: [0x04,0x50,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc slc ; encoding: [0x04,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc ; encoding: [0x00,0x60,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc ; encoding: [0x00,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc slc ; encoding: [0x00,0x60,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc slc ; encoding: [0x00,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc ; encoding: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc ; encoding: [0x04,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc slc ; encoding: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 glc slc
+// SICI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 glc slc ; encoding: [0x04,0x60,0xf0,0xe0,0x02,0x01,0x42,0x04]
+// VI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc ; encoding: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen glc ; encoding: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x02,0x04]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0x04]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc slc ; encoding: [0x00,0x70,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc slc ; encoding: [0x00,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc ; encoding: [0x04,0x70,0xf0,0xe0,0x02,0x01,0x02,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+
+buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc slc
+// SICI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc slc ; encoding: [0x04,0x70,0xf0,0xe0,0x02,0x01,0x42,0xb8]
+// VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc slc ; encoding: [0x04,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
diff --git a/test/MC/AMDGPU/out-of-range-registers.s b/test/MC/AMDGPU/out-of-range-registers.s
index 947c64d3e642..2099229d5aa5 100644
--- a/test/MC/AMDGPU/out-of-range-registers.s
+++ b/test/MC/AMDGPU/out-of-range-registers.s
@@ -2,61 +2,61 @@
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s
s_add_i32 s104, s0, s1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_add_i32 s105, s0, s1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
v_add_i32 v256, v0, v1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
v_add_i32 v257, v0, v1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_mov_b64 s[0:17], -1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_mov_b64 s[103:104], -1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_mov_b64 s[104:105], -1
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx4 s[102:105], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx4 s[104:108], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx4 s[108:112], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx4 s[1:4], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx4 s[1:4], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx8 s[104:111], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx8 s[100:107], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx8 s[108:115], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx16 s[92:107], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx16 s[96:111], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx16 s[100:115], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx16 s[104:119], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
s_load_dwordx16 s[108:123], s[2:3], s4
-// CHECK: error: invalid operand for instruction
+// CHECK: error: not a valid operand
diff --git a/test/MC/AMDGPU/reg-syntax-extra.s b/test/MC/AMDGPU/reg-syntax-extra.s
new file mode 100644
index 000000000000..52892a4e5e2b
--- /dev/null
+++ b/test/MC/AMDGPU/reg-syntax-extra.s
@@ -0,0 +1,112 @@
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck --check-prefix=NOSICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI %s
+
+s_mov_b32 [ttmp5], [ttmp3]
+// SICI: s_mov_b32 ttmp5, ttmp3 ; encoding: [0x73,0x03,0xf5,0xbe]
+// VI: s_mov_b32 ttmp5, ttmp3 ; encoding: [0x73,0x00,0xf5,0xbe]
+
+s_mov_b64 [ttmp4,ttmp5], [ttmp2,ttmp3]
+// SICI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x01,0xf4,0xbe]
+
+s_mov_b64 ttmp[4:5], ttmp[2:3]
+// SICI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], ttmp[2:3] ; encoding: [0x72,0x01,0xf4,0xbe]
+
+s_mov_b64 [s6,s7], s[8:9]
+// SICI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
+// VI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x01,0x86,0xbe]
+
+s_mov_b64 s[6:7], [s8,s9]
+// SICI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x04,0x86,0xbe]
+// VI: s_mov_b64 s[6:7], s[8:9] ; encoding: [0x08,0x01,0x86,0xbe]
+
+s_mov_b64 [exec_lo,exec_hi], s[2:3]
+// SICI: s_mov_b64 exec, s[2:3] ; encoding: [0x02,0x04,0xfe,0xbe]
+// VI: s_mov_b64 exec, s[2:3] ; encoding: [0x02,0x01,0xfe,0xbe]
+
+s_mov_b64 [flat_scratch_lo,flat_scratch_hi], s[2:3]
+// NOSICI: error:
+// VI: s_mov_b64 flat_scratch, s[2:3] ; encoding: [0x02,0x01,0xe6,0xbe]
+
+s_mov_b64 [vcc_lo,vcc_hi], s[2:3]
+// SICI: s_mov_b64 vcc, s[2:3] ; encoding: [0x02,0x04,0xea,0xbe]
+// VI: s_mov_b64 vcc, s[2:3] ; encoding: [0x02,0x01,0xea,0xbe]
+
+s_mov_b64 [tba_lo,tba_hi], s[2:3]
+// SICI: s_mov_b64 tba, s[2:3] ; encoding: [0x02,0x04,0xec,0xbe]
+// VI: s_mov_b64 tba, s[2:3] ; encoding: [0x02,0x01,0xec,0xbe]
+
+s_mov_b64 [tma_lo,tma_hi], s[2:3]
+// SICI: s_mov_b64 tma, s[2:3] ; encoding: [0x02,0x04,0xee,0xbe]
+// VI: s_mov_b64 tma, s[2:3] ; encoding: [0x02,0x01,0xee,0xbe]
+
+v_mov_b32 [v1], [v2]
+// GCN: v_mov_b32_e32 v1, v2 ; encoding: [0x02,0x03,0x02,0x7e]
+
+v_rcp_f64 [v1,v2], [v2,v3]
+// SICI: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x5f,0x02,0x7e]
+// VI: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x4b,0x02,0x7e]
+
+buffer_load_dwordx4 [v1,v2,v3,v4], off, [s4,s5,s6,s7], s1
+// SICI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
+// VI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
+
+buffer_load_dword v1, off, [ttmp4,ttmp5,ttmp6,ttmp7], s1
+// SICI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x1d,0x01]
+// VI: buffer_load_dword v1, off, ttmp[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x1d,0x01]
+
+buffer_store_format_xyzw v[1:4], off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
+// SICI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_store_format_xyzw v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x1d,0x71]
+
+buffer_load_ubyte v1, off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
+// SICI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_load_ubyte v1, off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x1d,0x71]
+
+buffer_store_dwordx4 v[1:4], off, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp1
+// SICI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x1d,0x71]
+// VI: buffer_store_dwordx4 v[1:4], off, ttmp[4:7], ttmp1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x1d,0x71]
+
+s_load_dwordx4 [ttmp4,ttmp5,ttmp6,ttmp7], [ttmp2,ttmp3], ttmp4
+// SICI: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x74,0x72,0xba,0xc0]
+// VI: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x39,0x1d,0x08,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dword ttmp1, [ttmp4,ttmp5,ttmp6,ttmp7], ttmp4
+// SICI: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x74,0xf4,0x38,0xc2]
+// VI: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x7a,0x1c,0x20,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 [ttmp8,ttmp9,ttmp10,ttmp11], [ttmp4,ttmp5,ttmp6,ttmp7], ttmp4
+// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
+// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 [ttmp[8],ttmp[8+1],ttmp[5*2],ttmp[(3+2)*2+1]], ttmp[45/11:(33+45)/11], ttmp4
+// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
+// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 ttmp[7+1:(3+2)*2+1], [ttmp[45/11],ttmp[5],ttmp6,ttmp[(33+45)/11]], ttmp4
+// SICI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
+// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
+
+flat_load_dword v[8:8], v[2:3]
+// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dword v[63/8+1:65/8], v[2:3]
+// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dword v8, v[2*2-2:(3+7)/3]
+// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dword v[63/8+1], v[2:3]
+// VI: flat_load_dword v8, v[2:3] ; encoding: [0x00,0x00,0x50,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dwordx4 v[8:11], v[2*2-2:(3*3-6)]
+// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dwordx4 v[8/2+4:11/2+6], v[2:3]
+// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
+
+flat_load_dwordx4 [v[8/2+4],v9,v[10],v[11/2+6]], v[2:3]
+// VI: flat_load_dwordx4 v[8:11], v[2:3] ; encoding: [0x00,0x00,0x5c,0xdc,0x02,0x00,0x00,0x08]
diff --git a/test/MC/AMDGPU/regression/bug28413.s b/test/MC/AMDGPU/regression/bug28413.s
new file mode 100644
index 000000000000..d5b2ff90cd9f
--- /dev/null
+++ b/test/MC/AMDGPU/regression/bug28413.s
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SI --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SI --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI --check-prefix=CIVI
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI
+
+v_cmp_eq_i32 vcc, 0.5, v0
+// SICI: v_cmp_eq_i32_e32 vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x04,0x7d]
+// VI: v_cmp_eq_i32_e32 vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x84,0x7d]
+
+v_cmpx_eq_u32_e64 s[0:1], -4.0, s0
+// SICI: v_cmpx_eq_u32_e64 s[0:1], -4.0, s0 ; encoding: [0x00,0x00,0xa4,0xd1,0xf7,0x00,0x00,0x00]
+// VI: v_cmpx_eq_u32_e64 s[0:1], -4.0, s0 ; encoding: [0x00,0x00,0xda,0xd0,0xf7,0x00,0x00,0x00]
+
+v_cmp_eq_i32 vcc, 3.125, v0
+// SICI: v_cmp_eq_i32_e32 vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x04,0x7d,0x00,0x00,0x48,0x40]
+// VI: v_cmp_eq_i32_e32 vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x84,0x7d,0x00,0x00,0x48,0x40]
+
+v_cmpx_eq_u32 vcc, 3.125, v0
+// SICI: v_cmpx_eq_u32_e32 vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0xa4,0x7d,0x00,0x00,0x48,0x40]
+// VI: v_cmpx_eq_u32_e32 vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0xb4,0x7d,0x00,0x00,0x48,0x40]
+
+v_mov_b32 v0, 0.5
+// GCN: v_mov_b32_e32 v0, 0.5 ; encoding: [0xf0,0x02,0x00,0x7e]
+
+v_mov_b32 v0, 3.125
+// GCN: v_mov_b32_e32 v0, 0x40480000 ; encoding: [0xff,0x02,0x00,0x7e,0x00,0x00,0x48,0x40]
+
+v_add_i32 v0, vcc, 0.5, v0
+// SICI: v_add_i32_e32 v0, vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x00,0x4a]
+// VI: v_add_i32_e32 v0, vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x00,0x32]
+
+v_add_i32 v0, vcc, 3.125, v0
+// SICI: v_add_i32_e32 v0, vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x00,0x4a,0x00,0x00,0x48,0x40]
+// VI: v_add_i32_e32 v0, vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x00,0x32,0x00,0x00,0x48,0x40] \ No newline at end of file
diff --git a/test/MC/AMDGPU/regression/bug28538.s b/test/MC/AMDGPU/regression/bug28538.s
new file mode 100644
index 000000000000..82b2d27331f1
--- /dev/null
+++ b/test/MC/AMDGPU/regression/bug28538.s
@@ -0,0 +1,12 @@
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOCIVI --check-prefix=NOVI
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
+
+// NOSICI: error:
+// NOVI: error: failed parsing operand
+v_mov_b32 v0, v0 row_bcast:0
+
+// NOSICI: error:
+// NOVI: error: failed parsing operand
+v_mov_b32 v0, v0 row_bcast:13
diff --git a/test/MC/AMDGPU/regression/lit.local.cfg b/test/MC/AMDGPU/regression/lit.local.cfg
new file mode 100644
index 000000000000..2a665f06be72
--- /dev/null
+++ b/test/MC/AMDGPU/regression/lit.local.cfg
@@ -0,0 +1,2 @@
+if not 'AMDGPU' in config.root.targets:
+ config.unsupported = True
diff --git a/test/MC/AMDGPU/reloc.s b/test/MC/AMDGPU/reloc.s
new file mode 100644
index 000000000000..14b0e04949c9
--- /dev/null
+++ b/test/MC/AMDGPU/reloc.s
@@ -0,0 +1,16 @@
+// RUN: llvm-mc -filetype=obj -triple amdgcn-- -mcpu=kaveri -show-encoding %s | llvm-readobj -relocations | FileCheck %s
+
+// CHECK: Relocations [
+// CHECK: R_AMDGPU_ABS32_LO SCRATCH_RSRC_DWORD0 0x0
+// CHECK: R_AMDGPU_ABS32_HI SCRATCH_RSRC_DWORD1 0x0
+// CHECK: R_AMDGPU_GOTPCREL global_var 0x0
+// CHECK: ]
+
+kernel:
+ s_mov_b32 s0, SCRATCH_RSRC_DWORD0
+ s_mov_b32 s1, SCRATCH_RSRC_DWORD1
+ s_mov_b32 s2, global_var@GOTPCREL
+
+.globl global_var
+
+.globl SCRATCH_RSRC_DWORD0
diff --git a/test/MC/AMDGPU/smem.s b/test/MC/AMDGPU/smem.s
index 8fa964ca8d1e..ab2dcf4b8a15 100644
--- a/test/MC/AMDGPU/smem.s
+++ b/test/MC/AMDGPU/smem.s
@@ -3,9 +3,13 @@
// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOSI %s
s_dcache_wb
-; VI: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
-; NOSI: error: instruction not supported on this GPU
+// VI: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
+// NOSI: error: instruction not supported on this GPU
s_dcache_wb_vol
-; VI: s_dcache_wb_vol ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
-; NOSI: error: instruction not supported on this GPU
+// VI: s_dcache_wb_vol ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
+// NOSI: error: instruction not supported on this GPU
+
+s_memrealtime s[4:5]
+// VI: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00]
+// NOSI: error: instruction not supported on this GPU
diff --git a/test/MC/AMDGPU/smrd-err.s b/test/MC/AMDGPU/smrd-err.s
index a607e91756da..0f991e4aefe7 100644
--- a/test/MC/AMDGPU/smrd-err.s
+++ b/test/MC/AMDGPU/smrd-err.s
@@ -2,14 +2,14 @@
// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
s_load_dwordx4 s[100:103], s[2:3], s4
-// VI: error: invalid operand for instruction
+// VI: error: not a valid operand
// SI: s_load_dwordx4 s[100:103], s[2:3], s4
s_load_dwordx8 s[96:103], s[2:3], s4
-// VI: error: invalid operand for instruction
+// VI: error: not a valid operand
// SI: s_load_dwordx8 s[96:103], s[2:3], s4
s_load_dwordx16 s[88:103], s[2:3], s4
-// VI: error: invalid operand for instruction
+// VI: error: not a valid operand
// SI: s_load_dwordx16 s[88:103], s[2:3], s4
diff --git a/test/MC/AMDGPU/smrd.s b/test/MC/AMDGPU/smrd.s
index 56841914c6f0..ac3ce26db98c 100644
--- a/test/MC/AMDGPU/smrd.s
+++ b/test/MC/AMDGPU/smrd.s
@@ -1,21 +1,27 @@
// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SI %s
// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SI %s
// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=CI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=VI %s
// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI
// RUN: not llvm-mc -arch=amdgcn -mcpu=SI %s 2>&1 | FileCheck %s --check-prefix=NOSI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI
+
//===----------------------------------------------------------------------===//
// Offset Handling
//===----------------------------------------------------------------------===//
s_load_dword s1, s[2:3], 0xfc
// GCN: s_load_dword s1, s[2:3], 0xfc ; encoding: [0xfc,0x83,0x00,0xc0]
+// VI: s_load_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x02,0xc0,0xfc,0x00,0x00,0x00]
s_load_dword s1, s[2:3], 0xff
// GCN: s_load_dword s1, s[2:3], 0xff ; encoding: [0xff,0x83,0x00,0xc0]
+// VI: s_load_dword s1, s[2:3], 0xff ; encoding: [0x41,0x00,0x02,0xc0,0xff,0x00,0x00,0x00]
s_load_dword s1, s[2:3], 0x100
// NOSI: error: instruction not supported on this GPU
+// NOVI: error: instruction not supported on this GPU
// CI: s_load_dword s1, s[2:3], 0x100 ; encoding: [0xff,0x82,0x00,0xc0,0x00,0x01,0x00,0x00]
//===----------------------------------------------------------------------===//
@@ -24,46 +30,129 @@ s_load_dword s1, s[2:3], 0x100
s_load_dword s1, s[2:3], 1
// GCN: s_load_dword s1, s[2:3], 0x1 ; encoding: [0x01,0x83,0x00,0xc0]
+// VI: s_load_dword s1, s[2:3], 0x1 ; encoding: [0x41,0x00,0x02,0xc0,0x01,0x00,0x00,0x00]
s_load_dword s1, s[2:3], s4
// GCN: s_load_dword s1, s[2:3], s4 ; encoding: [0x04,0x82,0x00,0xc0]
+// VI: s_load_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x00,0xc0,0x04,0x00,0x00,0x00]
s_load_dwordx2 s[2:3], s[2:3], 1
// GCN: s_load_dwordx2 s[2:3], s[2:3], 0x1 ; encoding: [0x01,0x03,0x41,0xc0]
+// VI: s_load_dwordx2 s[2:3], s[2:3], 0x1 ; encoding: [0x81,0x00,0x06,0xc0,0x01,0x00,0x00,0x00]
s_load_dwordx2 s[2:3], s[2:3], s4
// GCN: s_load_dwordx2 s[2:3], s[2:3], s4 ; encoding: [0x04,0x02,0x41,0xc0]
+// VI: s_load_dwordx2 s[2:3], s[2:3], s4 ; encoding: [0x81,0x00,0x04,0xc0,0x04,0x00,0x00,0x00]
s_load_dwordx4 s[4:7], s[2:3], 1
// GCN: s_load_dwordx4 s[4:7], s[2:3], 0x1 ; encoding: [0x01,0x03,0x82,0xc0]
+// VI: s_load_dwordx4 s[4:7], s[2:3], 0x1 ; encoding: [0x01,0x01,0x0a,0xc0,0x01,0x00,0x00,0x00]
s_load_dwordx4 s[4:7], s[2:3], s4
// GCN: s_load_dwordx4 s[4:7], s[2:3], s4 ; encoding: [0x04,0x02,0x82,0xc0]
+// VI: s_load_dwordx4 s[4:7], s[2:3], s4 ; encoding: [0x01,0x01,0x08,0xc0,0x04,0x00,0x00,0x00]
+
+s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4
+// GCN: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x74,0x72,0xba,0xc0]
+// VI: s_load_dwordx4 ttmp[4:7], ttmp[2:3], ttmp4 ; encoding: [0x39,0x1d,0x08,0xc0,0x74,0x00,0x00,0x00]
s_load_dwordx4 s[100:103], s[2:3], s4
// GCN: s_load_dwordx4 s[100:103], s[2:3], s4 ; encoding: [0x04,0x02,0xb2,0xc0]
+// NOVI: error: not a valid operand
s_load_dwordx8 s[8:15], s[2:3], 1
// GCN: s_load_dwordx8 s[8:15], s[2:3], 0x1 ; encoding: [0x01,0x03,0xc4,0xc0]
+// VI: s_load_dwordx8 s[8:15], s[2:3], 0x1 ; encoding: [0x01,0x02,0x0e,0xc0,0x01,0x00,0x00,0x00]
s_load_dwordx8 s[8:15], s[2:3], s4
// GCN: s_load_dwordx8 s[8:15], s[2:3], s4 ; encoding: [0x04,0x02,0xc4,0xc0]
+// VI: s_load_dwordx8 s[8:15], s[2:3], s4 ; encoding: [0x01,0x02,0x0c,0xc0,0x04,0x00,0x00,0x00]
s_load_dwordx8 s[96:103], s[2:3], s4
// GCN: s_load_dwordx8 s[96:103], s[2:3], s4 ; encoding: [0x04,0x02,0xf0,0xc0]
+// NOVI: error: not a valid operand
s_load_dwordx16 s[16:31], s[2:3], 1
// GCN: s_load_dwordx16 s[16:31], s[2:3], 0x1 ; encoding: [0x01,0x03,0x08,0xc1]
+// VI: s_load_dwordx16 s[16:31], s[2:3], 0x1 ; encoding: [0x01,0x04,0x12,0xc0,0x01,0x00,0x00,0x00]
s_load_dwordx16 s[16:31], s[2:3], s4
// GCN: s_load_dwordx16 s[16:31], s[2:3], s4 ; encoding: [0x04,0x02,0x08,0xc1]
+// VI: s_load_dwordx16 s[16:31], s[2:3], s4 ; encoding: [0x01,0x04,0x10,0xc0,0x04,0x00,0x00,0x00]
s_load_dwordx16 s[88:103], s[2:3], s4
// GCN: s_load_dwordx16 s[88:103], s[2:3], s4 ; encoding: [0x04,0x02,0x2c,0xc1]
+// NOVI: error: not a valid operand
+
+s_buffer_load_dword s1, s[4:7], 1
+// GCN: s_buffer_load_dword s1, s[4:7], 0x1 ; encoding: [0x01,0x85,0x00,0xc2]
+// VI: s_buffer_load_dword s1, s[4:7], 0x1 ; encoding: [0x42,0x00,0x22,0xc0,0x01,0x00,0x00,0x00]
+
+s_buffer_load_dword s1, s[4:7], s4
+// GCN: s_buffer_load_dword s1, s[4:7], s4 ; encoding: [0x04,0x84,0x00,0xc2]
+// VI: s_buffer_load_dword s1, s[4:7], s4 ; encoding: [0x42,0x00,0x20,0xc0,0x04,0x00,0x00,0x00]
+
+s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4
+// GCN: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x74,0xf4,0x38,0xc2]
+// VI: s_buffer_load_dword ttmp1, ttmp[4:7], ttmp4 ; encoding: [0x7a,0x1c,0x20,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dwordx2 s[8:9], s[4:7], 1
+// GCN: s_buffer_load_dwordx2 s[8:9], s[4:7], 0x1 ; encoding: [0x01,0x05,0x44,0xc2]
+// VI: s_buffer_load_dwordx2 s[8:9], s[4:7], 0x1 ; encoding: [0x02,0x02,0x26,0xc0,0x01,0x00,0x00,0x00]
+
+s_buffer_load_dwordx2 s[8:9], s[4:7], s4
+// GCN: s_buffer_load_dwordx2 s[8:9], s[4:7], s4 ; encoding: [0x04,0x04,0x44,0xc2]
+// VI: s_buffer_load_dwordx2 s[8:9], s[4:7], s4 ; encoding: [0x02,0x02,0x24,0xc0,0x04,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 s[8:11], s[4:7], 1
+// GCN: s_buffer_load_dwordx4 s[8:11], s[4:7], 0x1 ; encoding: [0x01,0x05,0x84,0xc2]
+// VI: s_buffer_load_dwordx4 s[8:11], s[4:7], 0x1 ; encoding: [0x02,0x02,0x2a,0xc0,0x01,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 s[8:11], s[4:7], s4
+// GCN: s_buffer_load_dwordx4 s[8:11], s[4:7], s4 ; encoding: [0x04,0x04,0x84,0xc2]
+// VI: s_buffer_load_dwordx4 s[8:11], s[4:7], s4 ; encoding: [0x02,0x02,0x28,0xc0,0x04,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4
+// GCN: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x74,0x74,0xbc,0xc2]
+// VI: s_buffer_load_dwordx4 ttmp[8:11], ttmp[4:7], ttmp4 ; encoding: [0x3a,0x1e,0x28,0xc0,0x74,0x00,0x00,0x00]
+
+s_buffer_load_dwordx4 s[100:103], s[4:7], s4
+// GCN: s_buffer_load_dwordx4 s[100:103], s[4:7], s4 ; encoding: [0x04,0x04,0xb2,0xc2]
+// NOVI: error: not a valid operand
+
+s_buffer_load_dwordx8 s[8:15], s[4:7], 1
+// GCN: s_buffer_load_dwordx8 s[8:15], s[4:7], 0x1 ; encoding: [0x01,0x05,0xc4,0xc2]
+// VI: s_buffer_load_dwordx8 s[8:15], s[4:7], 0x1 ; encoding: [0x02,0x02,0x2e,0xc0,0x01,0x00,0x00,0x00]
+
+s_buffer_load_dwordx8 s[8:15], s[4:7], s4
+// GCN: s_buffer_load_dwordx8 s[8:15], s[4:7], s4 ; encoding: [0x04,0x04,0xc4,0xc2]
+// VI: s_buffer_load_dwordx8 s[8:15], s[4:7], s4 ; encoding: [0x02,0x02,0x2c,0xc0,0x04,0x00,0x00,0x00]
+
+s_buffer_load_dwordx8 s[96:103], s[4:7], s4
+// GCN: s_buffer_load_dwordx8 s[96:103], s[4:7], s4 ; encoding: [0x04,0x04,0xf0,0xc2]
+// NOVI: error: not a valid operand
+
+s_buffer_load_dwordx16 s[16:31], s[4:7], 1
+// GCN: s_buffer_load_dwordx16 s[16:31], s[4:7], 0x1 ; encoding: [0x01,0x05,0x08,0xc3]
+// VI: s_buffer_load_dwordx16 s[16:31], s[4:7], 0x1 ; encoding: [0x02,0x04,0x32,0xc0,0x01,0x00,0x00,0x00]
+
+s_buffer_load_dwordx16 s[16:31], s[4:7], s4
+// GCN: s_buffer_load_dwordx16 s[16:31], s[4:7], s4 ; encoding: [0x04,0x04,0x08,0xc3]
+// VI: s_buffer_load_dwordx16 s[16:31], s[4:7], s4 ; encoding: [0x02,0x04,0x30,0xc0,0x04,0x00,0x00,0x00]
+
+s_buffer_load_dwordx16 s[88:103], s[4:7], s4
+// GCN: s_buffer_load_dwordx16 s[88:103], s[4:7], s4 ; encoding: [0x04,0x04,0x2c,0xc3]
+// NOVI: error: not a valid operand
s_dcache_inv
// GCN: s_dcache_inv ; encoding: [0x00,0x00,0xc0,0xc7]
+// VI: s_dcache_inv ; encoding: [0x00,0x00,0x80,0xc0,0x00,0x00,0x00,0x00]
s_dcache_inv_vol
// CI: s_dcache_inv_vol ; encoding: [0x00,0x00,0x40,0xc7]
// NOSI: error: instruction not supported on this GPU
+// VI: s_dcache_inv_vol ; encoding: [0x00,0x00,0x88,0xc0,0x00,0x00,0x00,0x00]
+
+s_memtime s[4:5]
+// GCN: s_memtime s[4:5] ; encoding: [0x00,0x00,0x82,0xc7]
+// VI: s_memtime s[4:5] ; encoding: [0x00,0x01,0x90,0xc0,0x00,0x00,0x00,0x00]
diff --git a/test/MC/AMDGPU/sop1-err.s b/test/MC/AMDGPU/sop1-err.s
index ee1d383c4469..4329451a650e 100644
--- a/test/MC/AMDGPU/sop1-err.s
+++ b/test/MC/AMDGPU/sop1-err.s
@@ -9,16 +9,16 @@ s_mov_b32 s1, v0
// GCN: error: invalid operand for instruction
s_mov_b32 s[1:2], s0
-// GCN: error: invalid operand for instruction
+// GCN: error: not a valid operand
s_mov_b32 s0, s[1:2]
-// GCN: error: invalid operand for instruction
+// GCN: error: not a valid operand
s_mov_b32 s220, s0
-// GCN: error: invalid operand for instruction
+// GCN: error: not a valid operand
s_mov_b32 s0, s220
-// GCN: error: invalid operand for instruction
+// GCN: error: not a valid operand
s_mov_b64 s1, s[0:1]
// GCN: error: invalid operand for instruction
@@ -34,28 +34,22 @@ s_mov_b32 s1, 0xfffffffff
s_mov_b64 s[0:1], 0xfffffffff
// GCN: error: invalid immediate: only 32-bit values are legal
-s_mov_b64 s[0:1], 0xfffffffff
-// GCN: error: invalid immediate: only 32-bit values are legal
-
-s_mov_b64 s[0:1], 0xfffffffff
-// GCN: error: invalid immediate: only 32-bit values are legal
-
s_mov_b64 s[0:1], 0x0000000200000000
// GCN: error: invalid immediate: only 32-bit values are legal
// FIXME: This shoudl probably say failed to parse.
s_mov_b32 s
-// GCN: error: invalid operand for instruction
+// GCN: error: not a valid operand
// Out of range register
s_mov_b32 s102, 1
-// VI: error: invalid operand for instruction
-// SI-NOT: error
+// VI: error: not a valid operand
+// SI: s_mov_b32 s102, 1
s_mov_b32 s103, 1
-// VI: error: invalid operand for instruction
-// SI-NOT: error
+// VI: error: not a valid operand
+// SI: s_mov_b32 s103, 1
s_mov_b64 s[102:103], -1
-// VI: error: invalid operand for instruction
-// SI-NOT: error
+// VI: error: not a valid operand
+// SI: s_mov_b64 s[102:103], -1
diff --git a/test/MC/AMDGPU/sop1.s b/test/MC/AMDGPU/sop1.s
index 5f63f9930747..c0985f144c97 100644
--- a/test/MC/AMDGPU/sop1.s
+++ b/test/MC/AMDGPU/sop1.s
@@ -1,194 +1,244 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOVI %s
s_mov_b32 s1, s2
-// CHECK: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
+// SICI: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
+// VI: s_mov_b32 s1, s2 ; encoding: [0x02,0x00,0x81,0xbe]
s_mov_b32 s1, 1
-// CHECK: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe]
+// SICI: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe]
+// VI: s_mov_b32 s1, 1 ; encoding: [0x81,0x00,0x81,0xbe]
s_mov_b32 s1, 100
-// CHECK: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00]
+// SICI: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00]
+// VI: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x00,0x81,0xbe,0x64,0x00,0x00,0x00]
// Literal constant sign bit
s_mov_b32 s1, 0x80000000
-// CHECK: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80]
+// SICI: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80]
+// VI: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x00,0x81,0xbe,0x00,0x00,0x00,0x80]
// Negative 32-bit constant
s_mov_b32 s0, 0xfe5163ab
-// CHECK: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe]
+// SICI: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe]
+// VI: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x00,0x80,0xbe,0xab,0x63,0x51,0xfe]
s_mov_b64 s[2:3], s[4:5]
-// CHECK: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
+// SICI: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
+// VI: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x01,0x82,0xbe]
s_mov_b64 s[2:3], 0xffffffffffffffff
-// CHECK: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe]
+// SICI: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe]
+// VI: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x01,0x82,0xbe]
s_mov_b64 s[2:3], 0xffffffff
-// CHECK: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff]
+// SICI: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff]
+// VI: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x01,0x82,0xbe,0xff,0xff,0xff,0xff]
s_mov_b64 s[0:1], 0x80000000
-// CHECK: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80]
+// SICI: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80]
+// VI: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x01,0x80,0xbe,0x00,0x00,0x00,0x80]
s_mov_b64 s[102:103], -1
-// CHECK: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe]
+// SICI: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe]
+// NOVI: error: not a valid operand
s_cmov_b32 s1, 200
-// CHECK: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00]
+// SICI: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00]
+// VI: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x02,0x81,0xbe,0xc8,0x00,0x00,0x00]
s_cmov_b32 s1, 1.0
-// CHECK: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe]
-
-//s_cmov_b64 s[2:3], 1.0
-//CHECK-FIXME: s_cmov_b64 s[2:3], 1.0 ; encoding: [0xf2,0x05,0x82,0xb3]
-
-//===----------------------------------------------------------------------===//
-// Instructions
-//===----------------------------------------------------------------------===//
-
-s_mov_b32 s1, s2
-// CHECK: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe]
-
-s_mov_b64 s[2:3], s[4:5]
-// CHECK: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe]
+// SICI: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe]
+// VI: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x02,0x81,0xbe]
s_cmov_b32 s1, s2
-// CHECK: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe]
+// SICI: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe]
+// VI: s_cmov_b32 s1, s2 ; encoding: [0x02,0x02,0x81,0xbe]
+
+//s_cmov_b64 s[2:3], 1.0
+//GCN-FIXME: s_cmov_b64 s[2:3], 1.0 ; encoding: [0xf2,0x05,0x82,0xb3]
s_cmov_b64 s[2:3], s[4:5]
-// CHECK: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe]
+// SICI: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe]
+// VI: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x03,0x82,0xbe]
s_not_b32 s1, s2
-// CHECK: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe]
+// SICI: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe]
+// VI: s_not_b32 s1, s2 ; encoding: [0x02,0x04,0x81,0xbe]
s_not_b64 s[2:3], s[4:5]
-// CHECK: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe]
+// SICI: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe]
+// VI: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x05,0x82,0xbe]
s_wqm_b32 s1, s2
-// CHECK: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe]
+// SICI: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe]
+// VI: s_wqm_b32 s1, s2 ; encoding: [0x02,0x06,0x81,0xbe]
s_wqm_b64 s[2:3], s[4:5]
-// CHECK: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe]
+// SICI: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe]
+// VI: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x07,0x82,0xbe]
s_brev_b32 s1, s2
-// CHECK: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe]
+// SICI: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe]
+// VI: s_brev_b32 s1, s2 ; encoding: [0x02,0x08,0x81,0xbe]
s_brev_b64 s[2:3], s[4:5]
-// CHECK: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe]
+// SICI: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe]
+// VI: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x09,0x82,0xbe]
s_bcnt0_i32_b32 s1, s2
-// CHECK: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe]
+// SICI: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe]
+// VI: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0a,0x81,0xbe]
s_bcnt0_i32_b64 s1, s[2:3]
-// CHECK: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe]
+// SICI: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe]
+// VI: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0b,0x81,0xbe]
s_bcnt1_i32_b32 s1, s2
-// CHECK: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe]
+// SICI: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe]
+// VI: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0c,0x81,0xbe]
s_bcnt1_i32_b64 s1, s[2:3]
-// CHECK: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe]
+// SICI: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe]
+// VI: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0d,0x81,0xbe]
s_ff0_i32_b32 s1, s2
-// CHECK: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe]
+// SICI: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe]
+// VI: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x0e,0x81,0xbe]
s_ff0_i32_b64 s1, s[2:3]
-// CHECK: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe]
+// SICI: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe]
+// VI: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0f,0x81,0xbe]
s_ff1_i32_b32 s1, s2
-// CHECK: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe]
+// SICI: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe]
+// VI: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x10,0x81,0xbe]
s_ff1_i32_b64 s1, s[2:3]
-// CHECK: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe]
+// SICI: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe]
+// VI: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x11,0x81,0xbe]
s_flbit_i32_b32 s1, s2
-// CHECK: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe]
+// SICI: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe]
+// VI: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x12,0x81,0xbe]
s_flbit_i32_b64 s1, s[2:3]
-// CHECK: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe]
+// SICI: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe]
+// VI: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x13,0x81,0xbe]
s_flbit_i32 s1, s2
-// CHECK: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
+// SICI: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
+// VI: s_flbit_i32 s1, s2 ; encoding: [0x02,0x14,0x81,0xbe]
s_flbit_i32_i64 s1, s[2:3]
-// CHECK: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe]
+// SICI: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe]
+// VI: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x15,0x81,0xbe]
s_sext_i32_i8 s1, s2
-// CHECK: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe]
+// SICI: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe]
+// VI: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x16,0x81,0xbe]
s_sext_i32_i16 s1, s2
-// CHECK: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
+// SICI: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
+// VI: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
s_bitset0_b32 s1, s2
-// CHECK: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe]
+// SICI: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe]
+// VI: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x18,0x81,0xbe]
-s_bitset0_b64 s[2:3], s[4:5]
-// CHECK: s_bitset0_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1c,0x82,0xbe]
+s_bitset0_b64 s[2:3], s4
+// SICI: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x1c,0x82,0xbe]
+// VI: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x19,0x82,0xbe]
s_bitset1_b32 s1, s2
-// CHECK: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe]
+// SICI: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe]
+// VI: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
-s_bitset1_b64 s[2:3], s[4:5]
-// CHECK: s_bitset1_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe]
+s_bitset1_b64 s[2:3], s4
+// SICI: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1e,0x82,0xbe]
+// VI: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1b,0x82,0xbe]
s_getpc_b64 s[2:3]
-// CHECK: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe]
+// SICI: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe]
+// VI: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1c,0x82,0xbe]
-s_setpc_b64 s[2:3], s[4:5]
-// CHECK: s_setpc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe]
+s_setpc_b64 s[4:5]
+// SICI: s_setpc_b64 s[4:5] ; encoding: [0x04,0x20,0x80,0xbe]
+// VI: s_setpc_b64 s[4:5] ; encoding: [0x04,0x1d,0x80,0xbe]
s_swappc_b64 s[2:3], s[4:5]
-// CHECK: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
+// SICI: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
+// VI: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe]
-s_rfe_b64 s[2:3], s[4:5]
-// CHECK: s_rfe_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe]
+s_rfe_b64 s[4:5]
+// SICI: s_rfe_b64 s[4:5] ; encoding: [0x04,0x22,0x80,0xbe]
+// VI: s_rfe_b64 s[4:5] ; encoding: [0x04,0x1f,0x80,0xbe]
s_and_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
+// SICI: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
+// VI: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe]
s_or_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
+// SICI: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
+// VI: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
s_xor_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
+// SICI: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
+// VI: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe]
s_andn2_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
+// SICI: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
+// VI: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x23,0x82,0xbe]
s_orn2_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe]
+// SICI: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe]
+// VI: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
s_nand_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
+// SICI: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
+// VI: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
s_nor_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe]
+// SICI: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe]
+// VI: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
s_xnor_saveexec_b64 s[2:3], s[4:5]
-// CHECK: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
+// SICI: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
+// VI: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
s_quadmask_b32 s1, s2
-// CHECK: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
+// SICI: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
+// VI: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x28,0x81,0xbe]
s_quadmask_b64 s[2:3], s[4:5]
-// CHECK: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
+// SICI: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
+// VI: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
s_movrels_b32 s1, s2
-// CHECK: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe]
+// SICI: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe]
+// VI: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2a,0x81,0xbe]
s_movrels_b64 s[2:3], s[4:5]
-// CHECK: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe]
+// SICI: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe]
+// VI: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
s_movreld_b32 s1, s2
-// CHECK: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
+// SICI: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
+// VI: s_movreld_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
s_movreld_b64 s[2:3], s[4:5]
-// CHECK: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe]
+// SICI: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe]
+// VI: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
s_cbranch_join s[4:5]
-// CHECK: s_cbranch_join s[4:5] ; encoding: [0x04,0x32,0x80,0xbe]
+// SICI: s_cbranch_join s[4:5] ; encoding: [0x04,0x32,0x80,0xbe]
+// VI: s_cbranch_join s[4:5] ; encoding: [0x04,0x2e,0x80,0xbe]
s_abs_i32 s1, s2
-// CHECK: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe]
+// SICI: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe]
+// VI: s_abs_i32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
s_mov_fed_b32 s1, s2
-// CHECK: s_mov_fed_b32 s1, s2 ; encoding: [0x02,0x35,0x81,0xbe]
+// SICI: s_mov_fed_b32 s1, s2 ; encoding: [0x02,0x35,0x81,0xbe]
diff --git a/test/MC/AMDGPU/sop2.s b/test/MC/AMDGPU/sop2.s
index 1fdc47aa616c..805710d9b974 100644
--- a/test/MC/AMDGPU/sop2.s
+++ b/test/MC/AMDGPU/sop2.s
@@ -1,134 +1,169 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=NOVI %s
-// CHECK: s_add_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x80]
s_add_u32 s1, s2, s3
+// GCN: s_add_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x80]
-// CHECK: s_sub_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x80]
s_sub_u32 s1, s2, s3
+// GCN: s_sub_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x80]
-// CHECK: s_add_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x81]
s_add_i32 s1, s2, s3
+// GCN: s_add_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x81]
-// CHECK: s_sub_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x81]
s_sub_i32 s1, s2, s3
+// GCN: s_sub_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x81]
-// CHECK: s_addc_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x82]
s_addc_u32 s1, s2, s3
+// GCN: s_addc_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x82]
-// CHECK: s_subb_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x82]
s_subb_u32 s1, s2, s3
+// GCN: s_subb_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x82]
-// CHECK: s_min_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x83]
s_min_i32 s1, s2, s3
+// GCN: s_min_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x83]
-// CHECK: s_min_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x83]
s_min_u32 s1, s2, s3
+// GCN: s_min_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x83]
-// CHECK: s_max_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x84]
s_max_i32 s1, s2, s3
+// GCN: s_max_i32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x84]
-// CHECK: s_max_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x84]
s_max_u32 s1, s2, s3
+// GCN: s_max_u32 s1, s2, s3 ; encoding: [0x02,0x03,0x81,0x84]
-// CHECK: s_cselect_b32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x85]
s_cselect_b32 s1, s2, s3
+// GCN: s_cselect_b32 s1, s2, s3 ; encoding: [0x02,0x03,0x01,0x85]
-// CHECK: s_cselect_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x85]
s_cselect_b64 s[2:3], s[4:5], s[6:7]
+// GCN: s_cselect_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x85]
-// CHECK: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
s_and_b32 s2, s4, s6
+// SICI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
+// VI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x86]
-// CHECK: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
s_and_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
+// VI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x86]
-// CHECK: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
s_or_b32 s2, s4, s6
+// SICI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
+// VI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
-// CHECK: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
s_or_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
+// VI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
-// CHECK: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
s_xor_b32 s2, s4, s6
+// SICI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
+// VI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
-// CHECK: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
s_xor_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
+// VI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
-// CHECK: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
s_andn2_b32 s2, s4, s6
+// SICI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
+// VI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
-// CHECK: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
s_andn2_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
+// VI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
-// CHECK: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
s_orn2_b32 s2, s4, s6
+// SICI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
+// VI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
-// CHECK: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
s_orn2_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
+// VI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
-// CHECK: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
s_nand_b32 s2, s4, s6
+// SICI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
+// VI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
-// CHECK: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
s_nand_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
+// VI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
-// CHECK: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
s_nor_b32 s2, s4, s6
+// SICI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
+// VI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
-// CHECK: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
s_nor_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
+// VI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
-// CHECK: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
s_xnor_b32 s2, s4, s6
+// SICI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
+// VI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
-// CHECK: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8e]
s_xnor_b64 s[2:3], s[4:5], s[6:7]
+// SICI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8e]
+// VI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
-// CHECK: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
s_lshl_b32 s2, s4, s6
+// SICI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
+// VI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
-// CHECK: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
s_lshl_b64 s[2:3], s[4:5], s6
+// SICI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
+// VI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8e]
-// CHECK: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
s_lshr_b32 s2, s4, s6
+// SICI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
+// VI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
-// CHECK: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
s_lshr_b64 s[2:3], s[4:5], s6
+// SICI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
+// VI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
-// CHECK: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
s_ashr_i32 s2, s4, s6
+// SICI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
+// VI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
-// CHECK: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x91]
s_ashr_i64 s[2:3], s[4:5], s6
+// SICI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x91]
+// VI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
-// CHECK: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
s_bfm_b32 s2, s4, s6
+// SICI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
+// VI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
-// CHECK: s_bfm_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x92]
-s_bfm_b64 s[2:3], s[4:5], s[6:7]
+s_bfm_b64 s[2:3], s4, s6
+// SICI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
+// VI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x91]
-// CHECK: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
s_mul_i32 s2, s4, s6
+// SICI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
+// VI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
-// CHECK: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x93]
s_bfe_u32 s2, s4, s6
+// SICI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x93]
+// VI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
-// CHECK: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x94]
s_bfe_i32 s2, s4, s6
+// SICI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x94]
+// VI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
-// CHECK: s_bfe_u64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x94]
-s_bfe_u64 s[2:3], s[4:5], s[6:7]
+s_bfe_u64 s[2:3], s[4:5], s6
+// SICI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x94]
+// VI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x93]
-// CHECK: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x95]
s_bfe_i64 s[2:3], s[4:5], s6
+// SICI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x95]
+// VI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x94]
-// CHECK: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x95]
s_cbranch_g_fork s[4:5], s[6:7]
+// SICI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x95]
+// VI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x94]
-// CHECK: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x96]
s_absdiff_i32 s2, s4, s6
+// SICI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x96]
+// VI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x95]
-// CHECK: s_add_u32 s101, s102, s103 ; encoding: [0x66,0x67,0x65,0x80]
s_add_u32 s101, s102, s103
+// SICI: s_add_u32 s101, s102, s103 ; encoding: [0x66,0x67,0x65,0x80]
+// NOVI: error: not a valid operand
diff --git a/test/MC/AMDGPU/sopc.s b/test/MC/AMDGPU/sopc.s
index 0899c1a2eede..b89488ced41b 100644
--- a/test/MC/AMDGPU/sopc.s
+++ b/test/MC/AMDGPU/sopc.s
@@ -1,9 +1,58 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN %s
//===----------------------------------------------------------------------===//
-// Instructions
+// SOPC Instructions
//===----------------------------------------------------------------------===//
s_cmp_eq_i32 s1, s2
-// CHECK: s_cmp_eq_i32 s1, s2 ; encoding: [0x01,0x02,0x00,0xbf]
+// GCN: s_cmp_eq_i32 s1, s2 ; encoding: [0x01,0x02,0x00,0xbf]
+
+s_cmp_lg_i32 s1, s2
+// GCN: s_cmp_lg_i32 s1, s2 ; encoding: [0x01,0x02,0x01,0xbf]
+
+s_cmp_gt_i32 s1, s2
+// GCN: s_cmp_gt_i32 s1, s2 ; encoding: [0x01,0x02,0x02,0xbf]
+
+s_cmp_ge_i32 s1, s2
+// GCN: s_cmp_ge_i32 s1, s2 ; encoding: [0x01,0x02,0x03,0xbf]
+
+s_cmp_lt_i32 s1, s2
+// GCN: s_cmp_lt_i32 s1, s2 ; encoding: [0x01,0x02,0x04,0xbf]
+
+s_cmp_le_i32 s1, s2
+// GCN: s_cmp_le_i32 s1, s2 ; encoding: [0x01,0x02,0x05,0xbf]
+
+s_cmp_eq_u32 s1, s2
+// GCN: s_cmp_eq_u32 s1, s2 ; encoding: [0x01,0x02,0x06,0xbf]
+
+s_cmp_lg_u32 s1, s2
+// GCN: s_cmp_lg_u32 s1, s2 ; encoding: [0x01,0x02,0x07,0xbf]
+
+s_cmp_gt_u32 s1, s2
+// GCN: s_cmp_gt_u32 s1, s2 ; encoding: [0x01,0x02,0x08,0xbf]
+
+s_cmp_ge_u32 s1, s2
+// GCN: s_cmp_ge_u32 s1, s2 ; encoding: [0x01,0x02,0x09,0xbf]
+
+s_cmp_lt_u32 s1, s2
+// GCN: s_cmp_lt_u32 s1, s2 ; encoding: [0x01,0x02,0x0a,0xbf]
+
+s_cmp_le_u32 s1, s2
+// GCN: s_cmp_le_u32 s1, s2 ; encoding: [0x01,0x02,0x0b,0xbf]
+
+s_bitcmp0_b32 s1, s2
+// GCN: s_bitcmp0_b32 s1, s2 ; encoding: [0x01,0x02,0x0c,0xbf]
+
+s_bitcmp1_b32 s1, s2
+// GCN: s_bitcmp1_b32 s1, s2 ; encoding: [0x01,0x02,0x0d,0xbf]
+
+s_bitcmp0_b64 s[2:3], s4
+// GCN: s_bitcmp0_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0e,0xbf]
+
+s_bitcmp1_b64 s[2:3], s4
+// GCN: s_bitcmp1_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0f,0xbf]
+
+s_setvskip s3, s5
+// GCN: s_setvskip s3, s5 ; encoding: [0x03,0x05,0x10,0xbf]
diff --git a/test/MC/AMDGPU/sopk-err.s b/test/MC/AMDGPU/sopk-err.s
new file mode 100644
index 000000000000..cf03a242e5eb
--- /dev/null
+++ b/test/MC/AMDGPU/sopk-err.s
@@ -0,0 +1,27 @@
+// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck -check-prefix=GCN %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=SI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=GCN -check-prefix=VI %s
+
+s_setreg_b32 0x1f803, s2
+// GCN: error: invalid immediate: only 16-bit values are legal
+
+s_setreg_b32 hwreg(0x40), s2
+// GCN: error: invalid code of hardware register: only 6-bit values are legal
+
+s_setreg_b32 hwreg(HW_REG_WRONG), s2
+// GCN: error: invalid symbolic name of hardware register
+
+s_setreg_b32 hwreg(3,32,32), s2
+// GCN: error: invalid bit offset: only 5-bit values are legal
+
+s_setreg_b32 hwreg(3,0,33), s2
+// GCN: error: invalid bitfield width: only values from 1 to 32 are legal
+
+s_setreg_imm32_b32 0x1f803, 0xff
+// GCN: error: invalid immediate: only 16-bit values are legal
+
+s_setreg_imm32_b32 hwreg(3,0,33), 0xff
+// GCN: error: invalid bitfield width: only values from 1 to 32 are legal
+
+s_getreg_b32 s2, hwreg(3,32,32)
+// GCN: error: invalid bit offset: only 5-bit values are legal
diff --git a/test/MC/AMDGPU/sopk.s b/test/MC/AMDGPU/sopk.s
index 6c27aaccb80c..d4f6dcfbfebb 100644
--- a/test/MC/AMDGPU/sopk.s
+++ b/test/MC/AMDGPU/sopk.s
@@ -1,66 +1,134 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
//===----------------------------------------------------------------------===//
// Instructions
//===----------------------------------------------------------------------===//
s_movk_i32 s2, 0x6
-// CHECK: s_movk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb0]
+// GCN: s_movk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb0]
s_cmovk_i32 s2, 0x6
-// CHECK: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1]
+// SICI: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1]
+// VI: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb0]
s_cmpk_eq_i32 s2, 0x6
-// CHECK: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1]
+// SICI: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1]
+// VI: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1]
s_cmpk_lg_i32 s2, 0x6
-// CHECK: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2]
+// SICI: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2]
+// VI: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1]
s_cmpk_gt_i32 s2, 0x6
-// CHECK: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2]
+// SICI: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2]
+// VI: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2]
s_cmpk_ge_i32 s2, 0x6
-// CHECK: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3]
+// SICI: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3]
+// VI: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2]
s_cmpk_lt_i32 s2, 0x6
-// CHECK: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3]
+// SICI: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3]
+// VI: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3]
s_cmpk_le_i32 s2, 0x6
-// CHECK: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4]
+// SICI: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4]
+// VI: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3]
s_cmpk_eq_u32 s2, 0x6
-// CHECK: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4]
+// SICI: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4]
+// VI: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4]
s_cmpk_lg_u32 s2, 0x6
-// CHECK: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5]
+// SICI: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5]
+// VI: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4]
s_cmpk_gt_u32 s2, 0x6
-// CHECK: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5]
+// SICI: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5]
+// VI: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5]
s_cmpk_ge_u32 s2, 0x6
-// CHECK: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6]
+// SICI: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6]
+// VI: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5]
s_cmpk_lt_u32 s2, 0x6
-// CHECK: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6]
+// SICI: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6]
+// VI: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6]
s_cmpk_le_u32 s2, 0x6
-// CHECK: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7]
+// SICI: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7]
+// VI: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6]
s_addk_i32 s2, 0x6
-// CHECK: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7]
+// SICI: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7]
+// VI: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7]
s_mulk_i32 s2, 0x6
-// CHECK: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb8]
+// SICI: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb8]
+// VI: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7]
s_cbranch_i_fork s[2:3], 0x6
-// CHECK: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x82,0xb8]
+// SICI: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x82,0xb8]
+// VI: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x02,0xb8]
+// raw number mapped to known HW register
s_getreg_b32 s2, 0x6
-// CHECK: s_getreg_b32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb9]
-
-s_setreg_b32 s2, 0x6
-// CHECK: s_setreg_b32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb9]
-
-s_setreg_imm32_b32 0xff, 0x6
-// CHECK: s_setreg_imm32_b32 0xff, 0x6 ; encoding: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00]
+// SICI: s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1) ; encoding: [0x06,0x00,0x02,0xb9]
+// VI: s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1) ; encoding: [0x06,0x00,0x82,0xb8]
+
+// HW register identifier, non-default offset/width
+s_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31)
+// SICI: s_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31) ; encoding: [0x45,0xf0,0x02,0xb9]
+// VI: s_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31) ; encoding: [0x45,0xf0,0x82,0xb8]
+
+// HW register code of unknown HW register, non-default offset/width
+s_getreg_b32 s2, hwreg(51, 1, 31)
+// SICI: s_getreg_b32 s2, hwreg(51, 1, 31) ; encoding: [0x73,0xf0,0x02,0xb9]
+// VI: s_getreg_b32 s2, hwreg(51, 1, 31) ; encoding: [0x73,0xf0,0x82,0xb8]
+
+// HW register code of unknown HW register, default offset/width
+s_getreg_b32 s2, hwreg(51)
+// SICI: s_getreg_b32 s2, hwreg(51) ; encoding: [0x33,0xf8,0x02,0xb9]
+// VI: s_getreg_b32 s2, hwreg(51) ; encoding: [0x33,0xf8,0x82,0xb8]
+
+// raw number mapped to known HW register
+s_setreg_b32 0x6, s2
+// SICI: s_setreg_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), s2 ; encoding: [0x06,0x00,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), s2 ; encoding: [0x06,0x00,0x02,0xb9]
+
+// raw number mapped to unknown HW register
+s_setreg_b32 0x33, s2
+// SICI: s_setreg_b32 hwreg(51, 0, 1), s2 ; encoding: [0x33,0x00,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(51, 0, 1), s2 ; encoding: [0x33,0x00,0x02,0xb9]
+
+// raw number mapped to known HW register, default offset/width
+s_setreg_b32 0xf803, s2
+// SICI: s_setreg_b32 hwreg(HW_REG_TRAPSTS), s2 ; encoding: [0x03,0xf8,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(HW_REG_TRAPSTS), s2 ; encoding: [0x03,0xf8,0x02,0xb9]
+
+// HW register identifier, default offset/width implied
+s_setreg_b32 hwreg(HW_REG_HW_ID), s2
+// SICI: s_setreg_b32 hwreg(HW_REG_HW_ID), s2 ; encoding: [0x04,0xf8,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(HW_REG_HW_ID), s2 ; encoding: [0x04,0xf8,0x02,0xb9]
+
+// HW register identifier, non-default offset/width
+s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2
+// SICI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x02,0xb9]
+
+// HW register code, non-default offset/width
+s_setreg_b32 hwreg(5, 1, 31), s2
+// SICI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x82,0xb9]
+// VI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x02,0xb9]
+
+// raw number mapped to known HW register
+s_setreg_imm32_b32 0x6, 0xff
+// SICI: s_setreg_imm32_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), 0xff ; encoding: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00]
+// VI: s_setreg_imm32_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), 0xff ; encoding: [0x06,0x00,0x00,0xba,0xff,0x00,0x00,0x00]
+
+// HW register identifier, non-default offset/width
+s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff
+// SICI: s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff ; encoding: [0x45,0xf0,0x80,0xba,0xff,0x00,0x00,0x00]
+// VI: s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff ; encoding: [0x45,0xf0,0x00,0xba,0xff,0x00,0x00,0x00]
diff --git a/test/MC/AMDGPU/sopp-err.s b/test/MC/AMDGPU/sopp-err.s
new file mode 100644
index 000000000000..da6bfbd16f4e
--- /dev/null
+++ b/test/MC/AMDGPU/sopp-err.s
@@ -0,0 +1,75 @@
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s 2>&1 | FileCheck --check-prefix=GCN --check-prefix=VI %s
+
+s_sendmsg sendmsg(11)
+// GCN: error: invalid/unsupported code of message
+
+s_sendmsg sendmsg(MSG_INTERRUPTX)
+// GCN: error: invalid/unsupported symbolic name of message
+
+s_sendmsg sendmsg(MSG_INTERRUPT, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_GS)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_NOP)
+// GCN: error: invalid GS_OP: NOP is for GS_DONE only
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_GSX, GS_OP_CUT, 0)
+// GCN: error: invalid/unsupported symbolic name of message
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_CUTX, 0)
+// GCN: error: invalid symbolic name of GS_OP
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 4)
+// GCN: error: invalid stream id: only 2-bit values are legal
+
+s_sendmsg sendmsg(2)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(2, 0)
+// GCN: error: invalid GS_OP: NOP is for GS_DONE only
+
+s_sendmsg sendmsg(2, 3, 0, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(2, 4, 1)
+// GCN: error: invalid code of GS_OP: only 2-bit values are legal
+
+s_sendmsg sendmsg(2, 2, 4)
+// GCN: error: invalid stream id: only 2-bit values are legal
+
+s_sendmsg sendmsg(2, 2, 0, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(15)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(15, 1, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(15, 0)
+// GCN: error: invalid/unsupported code of SYSMSG_OP
+
+s_sendmsg sendmsg(15, 5)
+// GCN: error: invalid/unsupported code of SYSMSG_OP
+
+s_sendmsg sendmsg(MSG_SYSMSG)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT, 0)
+// GCN: error: failed parsing operand
+
+s_sendmsg sendmsg(MSG_SYSMSG, 0)
+// GCN: error: invalid/unsupported code of SYSMSG_OP
+
+s_sendmsg sendmsg(MSG_SYSMSG, 5)
+// GCN: error: invalid/unsupported code of SYSMSG_OP
diff --git a/test/MC/AMDGPU/sopp.s b/test/MC/AMDGPU/sopp.s
index b072c16fdb24..59de24533e0e 100644
--- a/test/MC/AMDGPU/sopp.s
+++ b/test/MC/AMDGPU/sopp.s
@@ -1,64 +1,178 @@
-// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s
-// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s
//===----------------------------------------------------------------------===//
// Edge Cases
//===----------------------------------------------------------------------===//
-s_nop 0 // CHECK: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf]
-s_nop 0xffff // CHECK: s_nop 0xffff ; encoding: [0xff,0xff,0x80,0xbf]
+s_nop 0
+// GCN: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf]
+
+s_nop 0xffff
+// GCN: s_nop 0xffff ; encoding: [0xff,0xff,0x80,0xbf]
//===----------------------------------------------------------------------===//
// Instructions
//===----------------------------------------------------------------------===//
- s_nop 1 // CHECK: s_nop 1 ; encoding: [0x01,0x00,0x80,0xbf]
- s_endpgm // CHECK: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
- s_branch 2 // CHECK: s_branch 2 ; encoding: [0x02,0x00,0x82,0xbf]
- s_cbranch_scc0 3 // CHECK: s_cbranch_scc0 3 ; encoding: [0x03,0x00,0x84,0xbf]
- s_cbranch_scc1 4 // CHECK: s_cbranch_scc1 4 ; encoding: [0x04,0x00,0x85,0xbf]
- s_cbranch_vccz 5 // CHECK: s_cbranch_vccz 5 ; encoding: [0x05,0x00,0x86,0xbf]
- s_cbranch_vccnz 6 // CHECK: s_cbranch_vccnz 6 ; encoding: [0x06,0x00,0x87,0xbf]
- s_cbranch_execz 7 // CHECK: s_cbranch_execz 7 ; encoding: [0x07,0x00,0x88,0xbf]
- s_cbranch_execnz 8 // CHECK: s_cbranch_execnz 8 ; encoding: [0x08,0x00,0x89,0xbf]
- s_barrier // CHECK: s_barrier ; encoding: [0x00,0x00,0x8a,0xbf]
+s_nop 1
+// GCN: s_nop 1 ; encoding: [0x01,0x00,0x80,0xbf]
+
+s_endpgm
+// GCN: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
+
+s_branch 2
+// GCN: s_branch 2 ; encoding: [0x02,0x00,0x82,0xbf]
+
+s_cbranch_scc0 3
+// GCN: s_cbranch_scc0 3 ; encoding: [0x03,0x00,0x84,0xbf]
+
+s_cbranch_scc1 4
+// GCN: s_cbranch_scc1 4 ; encoding: [0x04,0x00,0x85,0xbf]
+
+s_cbranch_vccz 5
+// GCN: s_cbranch_vccz 5 ; encoding: [0x05,0x00,0x86,0xbf]
+
+s_cbranch_vccnz 6
+// GCN: s_cbranch_vccnz 6 ; encoding: [0x06,0x00,0x87,0xbf]
+
+s_cbranch_execz 7
+// GCN: s_cbranch_execz 7 ; encoding: [0x07,0x00,0x88,0xbf]
+
+s_cbranch_execnz 8
+// GCN: s_cbranch_execnz 8 ; encoding: [0x08,0x00,0x89,0xbf]
+
+s_barrier
+// GCN: s_barrier ; encoding: [0x00,0x00,0x8a,0xbf]
//===----------------------------------------------------------------------===//
// s_waitcnt
//===----------------------------------------------------------------------===//
- s_waitcnt 0
- // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+s_waitcnt 0
+// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+
+s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)
+// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+
+s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
+// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+
+s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0)
+// GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+
+s_waitcnt vmcnt(1)
+// GCN: s_waitcnt vmcnt(1) ; encoding: [0x71,0x0f,0x8c,0xbf]
+
+s_waitcnt vmcnt(9)
+// GCN: s_waitcnt vmcnt(9) ; encoding: [0x79,0x0f,0x8c,0xbf]
+
+s_waitcnt expcnt(2)
+// GCN: s_waitcnt expcnt(2) ; encoding: [0x2f,0x0f,0x8c,0xbf]
+
+s_waitcnt lgkmcnt(3)
+// GCN: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0x03,0x8c,0xbf]
+
+s_waitcnt lgkmcnt(9)
+// GCN: s_waitcnt lgkmcnt(9) ; encoding: [0x7f,0x09,0x8c,0xbf]
+
+s_waitcnt vmcnt(0), expcnt(0)
+// GCN: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x0f,0x8c,0xbf]
+
+
+s_sethalt 9
+// GCN: s_sethalt 9 ; encoding: [0x09,0x00,0x8d,0xbf]
+
+s_sleep 10
+// GCN: s_sleep 10 ; encoding: [0x0a,0x00,0x8e,0xbf]
+
+s_setprio 1
+// GCN: s_setprio 1 ; encoding: [0x01,0x00,0x8f,0xbf]
+
+s_sendmsg 2
+// GCN: s_sendmsg 2 ; encoding: [0x02,0x00,0x90,0xbf]
+
+s_sendmsg 0x1
+// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(1)
+// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(MSG_INTERRUPT)
+// GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
+
+s_sendmsg 0x12
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(2, 1)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
+
+s_sendmsg 0x122
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
+
+s_sendmsg sendmsg(2, 2, 1)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
+
+s_sendmsg 0x232
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
+
+s_sendmsg sendmsg(2, 3, 2)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
+
+s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2)
+// GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
+
+s_sendmsg 0x3
+// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(3, 0)
+// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP)
+// GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
+
+s_sendmsg 0x4
+// GCN: s_sendmsg 4 ; encoding: [0x04,0x00,0x90,0xbf]
+
+s_sendmsg 11
+// GCN: s_sendmsg 11 ; encoding: [0x0b,0x00,0x90,0xbf]
+
+s_sendmsg 0x1f
+// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
+
+s_sendmsg sendmsg(15, 1)
+// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
- s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0)
- // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT)
+// GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
- s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
- // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+s_sendmsg 0x6f
+// GCN: s_sendmsg 111 ; encoding: [0x6f,0x00,0x90,0xbf]
- s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0)
- // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+s_sendmsghalt 3
+// GCN: s_sendmsghalt sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x91,0xbf]
- s_waitcnt vmcnt(1)
- // CHECK: s_waitcnt vmcnt(1) ; encoding: [0x71,0x07,0x8c,0xbf]
+s_sendmsghalt sendmsg(MSG_GS, GS_OP_EMIT, 1)
+// GCN: s_sendmsghalt sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x91,0xbf]
- s_waitcnt expcnt(2)
- // CHECK: s_waitcnt expcnt(2) ; encoding: [0x2f,0x07,0x8c,0xbf]
+s_trap 4
+// GCN: s_trap 4 ; encoding: [0x04,0x00,0x92,0xbf]
- s_waitcnt lgkmcnt(3)
- // CHECK: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0x03,0x8c,0xbf]
+s_icache_inv
+// GCN: s_icache_inv ; encoding: [0x00,0x00,0x93,0xbf]
- s_waitcnt vmcnt(0), expcnt(0)
- // CHECK: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x07,0x8c,0xbf]
+s_incperflevel 5
+// GCN: s_incperflevel 5 ; encoding: [0x05,0x00,0x94,0xbf]
+s_decperflevel 6
+// GCN: s_decperflevel 6 ; encoding: [0x06,0x00,0x95,0xbf]
- s_sethalt 9 // CHECK: s_sethalt 9 ; encoding: [0x09,0x00,0x8d,0xbf]
- s_sleep 10 // CHECK: s_sleep 10 ; encoding: [0x0a,0x00,0x8e,0xbf]
- s_setprio 1 // CHECK: s_setprio 1 ; encoding: [0x01,0x00,0x8f,0xbf]
- s_sendmsg 2 // CHECK: s_sendmsg Gs(nop), [m0] ; encoding: [0x02,0x00,0x90,0xbf]
- s_sendmsghalt 3 // CHECK: s_sendmsghalt 3 ; encoding: [0x03,0x00,0x91,0xbf]
- s_trap 4 // CHECK: s_trap 4 ; encoding: [0x04,0x00,0x92,0xbf]
- s_icache_inv // CHECK: s_icache_inv ; encoding: [0x00,0x00,0x93,0xbf]
- s_incperflevel 5 // CHECK: s_incperflevel 5 ; encoding: [0x05,0x00,0x94,0xbf]
- s_decperflevel 6 // CHECK: s_decperflevel 6 ; encoding: [0x06,0x00,0x95,0xbf]
- s_ttracedata // CHECK: s_ttracedata ; encoding: [0x00,0x00,0x96,0xbf]
+s_ttracedata
+// GCN: s_ttracedata ; encoding: [0x00,0x00,0x96,0xbf]
diff --git a/test/MC/AMDGPU/symbol_special.s b/test/MC/AMDGPU/symbol_special.s
new file mode 100644
index 000000000000..75d36b84c4aa
--- /dev/null
+++ b/test/MC/AMDGPU/symbol_special.s
@@ -0,0 +1,48 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=bonaire %s | FileCheck %s --check-prefix=BONAIRE
+// RUN: llvm-mc -arch=amdgcn -mcpu=hawaii %s | FileCheck %s --check-prefix=HAWAII
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga %s | FileCheck %s --check-prefix=TONGA
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji %s | FileCheck %s --check-prefix=FIJI
+
+.if .option.machine_version_major == 0
+.byte 0
+.elseif .option.machine_version_major == 7
+.byte 7
+.elseif .option.machine_version_major == 8
+.byte 8
+.else
+.error "major unknown"
+.endif
+// BONAIRE: .byte 7
+// HAWAII: .byte 7
+// TONGA: .byte 8
+// FIJI: .byte 8
+
+.if .option.machine_version_minor == 0
+.byte 0
+.else
+.error "minor unknown"
+.endif
+// BONAIRE: .byte 0
+// HAWAII: .byte 0
+// TONGA: .byte 0
+// FIJI: .byte 0
+
+.if .option.machine_version_stepping == 0
+.byte 0
+.elseif .option.machine_version_stepping == 1
+.byte 1
+.elseif .option.machine_version_stepping == 3
+.byte 3
+.else
+.error "stepping unknown"
+.endif
+// BONAIRE: .byte 0
+// HAWAII: .byte 1
+// TONGA: .byte 0
+// FIJI: .byte 3
+
+v_add_f32 v0, v0, v[.option.machine_version_major]
+// BONAIRE: v_add_f32_e32 v0, v0, v7
+// HAWAII: v_add_f32_e32 v0, v0, v7
+// TONGA: v_add_f32_e32 v0, v0, v8
+// FIJI: v_add_f32_e32 v0, v0, v8
diff --git a/test/MC/AMDGPU/trap.s b/test/MC/AMDGPU/trap.s
new file mode 100644
index 000000000000..3695da518ca2
--- /dev/null
+++ b/test/MC/AMDGPU/trap.s
@@ -0,0 +1,144 @@
+// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s --check-prefix=SICI
+// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
+
+//===----------------------------------------------------------------------===//
+// Trap Handler related - 32 bit registers
+//===----------------------------------------------------------------------===//
+
+s_add_u32 ttmp0, ttmp0, 4
+// SICI: s_add_u32 ttmp0, ttmp0, 4 ; encoding: [0x70,0x84,0x70,0x80]
+// VI: s_add_u32 ttmp0, ttmp0, 4 ; encoding: [0x70,0x84,0x70,0x80]
+
+s_add_u32 ttmp4, 8, ttmp4
+// SICI: s_add_u32 ttmp4, 8, ttmp4 ; encoding: [0x88,0x74,0x74,0x80]
+// VI: s_add_u32 ttmp4, 8, ttmp4 ; encoding: [0x88,0x74,0x74,0x80]
+
+s_add_u32 ttmp4, ttmp4, 0x00000100
+// SICI: s_add_u32 ttmp4, ttmp4, 0x100 ; encoding: [0x74,0xff,0x74,0x80,0x00,0x01,0x00,0x00]
+// VI: s_add_u32 ttmp4, ttmp4, 0x100 ; encoding: [0x74,0xff,0x74,0x80,0x00,0x01,0x00,0x00]
+
+s_add_u32 ttmp4, ttmp4, 4
+// SICI: s_add_u32 ttmp4, ttmp4, 4 ; encoding: [0x74,0x84,0x74,0x80]
+// VI: s_add_u32 ttmp4, ttmp4, 4 ; encoding: [0x74,0x84,0x74,0x80]
+
+s_add_u32 ttmp4, ttmp8, ttmp4
+// SICI: s_add_u32 ttmp4, ttmp8, ttmp4 ; encoding: [0x78,0x74,0x74,0x80]
+// VI: s_add_u32 ttmp4, ttmp8, ttmp4 ; encoding: [0x78,0x74,0x74,0x80]
+
+s_and_b32 ttmp10, ttmp8, 0x00000080
+// SICI: s_and_b32 ttmp10, ttmp8, 0x80 ; encoding: [0x78,0xff,0x7a,0x87,0x80,0x00,0x00,0x00]
+// VI: s_and_b32 ttmp10, ttmp8, 0x80 ; encoding: [0x78,0xff,0x7a,0x86,0x80,0x00,0x00,0x00]
+
+s_and_b32 ttmp9, tma_hi, 0x0000ffff
+// SICI: s_and_b32 ttmp9, tma_hi, 0xffff ; encoding: [0x6f,0xff,0x79,0x87,0xff,0xff,0x00,0x00]
+// VI: s_and_b32 ttmp9, tma_hi, 0xffff ; encoding: [0x6f,0xff,0x79,0x86,0xff,0xff,0x00,0x00]
+
+s_and_b32 ttmp9, ttmp9, 0x000001ff
+// SICI: s_and_b32 ttmp9, ttmp9, 0x1ff ; encoding: [0x79,0xff,0x79,0x87,0xff,0x01,0x00,0x00]
+// VI: s_and_b32 ttmp9, ttmp9, 0x1ff ; encoding: [0x79,0xff,0x79,0x86,0xff,0x01,0x00,0x00]
+
+s_and_b32 ttmp9, tma_lo, 0xffff0000
+// SICI: s_and_b32 ttmp9, tma_lo, 0xffff0000 ; encoding: [0x6e,0xff,0x79,0x87,0x00,0x00,0xff,0xff]
+// VI: s_and_b32 ttmp9, tma_lo, 0xffff0000 ; encoding: [0x6e,0xff,0x79,0x86,0x00,0x00,0xff,0xff]
+
+s_and_b32 ttmp9, ttmp9, ttmp8
+// SICI: s_and_b32 ttmp9, ttmp9, ttmp8 ; encoding: [0x79,0x78,0x79,0x87]
+// VI: s_and_b32 ttmp9, ttmp9, ttmp8 ; encoding: [0x79,0x78,0x79,0x86]
+
+s_and_b32 ttmp8, ttmp1, 0x01000000
+// SICI: s_and_b32 ttmp8, ttmp1, 0x1000000 ; encoding: [0x71,0xff,0x78,0x87,0x00,0x00,0x00,0x01]
+// VI: s_and_b32 ttmp8, ttmp1, 0x1000000 ; encoding: [0x71,0xff,0x78,0x86,0x00,0x00,0x00,0x01]
+
+s_cmp_eq_i32 ttmp8, 0
+// SICI: s_cmp_eq_i32 ttmp8, 0 ; encoding: [0x78,0x80,0x00,0xbf]
+// VI: s_cmp_eq_i32 ttmp8, 0 ; encoding: [0x78,0x80,0x00,0xbf]
+
+s_cmp_eq_i32 ttmp8, 0x000000fe
+// SICI: s_cmp_eq_i32 ttmp8, 0xfe ; encoding: [0x78,0xff,0x00,0xbf,0xfe,0x00,0x00,0x00]
+// VI: s_cmp_eq_i32 ttmp8, 0xfe ; encoding: [0x78,0xff,0x00,0xbf,0xfe,0x00,0x00,0x00]
+
+s_lshr_b32 ttmp8, ttmp8, 12
+// SICI: s_lshr_b32 ttmp8, ttmp8, 12 ; encoding: [0x78,0x8c,0x78,0x90]
+// VI: s_lshr_b32 ttmp8, ttmp8, 12 ; encoding: [0x78,0x8c,0x78,0x8f]
+
+v_mov_b32 v1, ttmp8
+// SICI: v_mov_b32_e32 v1, ttmp8 ; encoding: [0x78,0x02,0x02,0x7e]
+// VI: v_mov_b32_e32 v1, ttmp8 ; encoding: [0x78,0x02,0x02,0x7e]
+
+s_mov_b32 m0, ttmp8
+// SICI: s_mov_b32 m0, ttmp8 ; encoding: [0x78,0x03,0xfc,0xbe]
+// VI: s_mov_b32 m0, ttmp8 ; encoding: [0x78,0x00,0xfc,0xbe]
+
+s_mov_b32 ttmp10, 0
+// SICI: s_mov_b32 ttmp10, 0 ; encoding: [0x80,0x03,0xfa,0xbe]
+// VI: s_mov_b32 ttmp10, 0 ; encoding: [0x80,0x00,0xfa,0xbe]
+
+s_mov_b32 ttmp11, 0x01024fac
+// SICI: s_mov_b32 ttmp11, 0x1024fac ; encoding: [0xff,0x03,0xfb,0xbe,0xac,0x4f,0x02,0x01]
+// VI: s_mov_b32 ttmp11, 0x1024fac ; encoding: [0xff,0x00,0xfb,0xbe,0xac,0x4f,0x02,0x01]
+
+s_mov_b32 ttmp8, m0
+// SICI: s_mov_b32 ttmp8, m0 ; encoding: [0x7c,0x03,0xf8,0xbe]
+// VI: s_mov_b32 ttmp8, m0 ; encoding: [0x7c,0x00,0xf8,0xbe]
+
+s_mov_b32 ttmp8, tma_lo
+// SICI: s_mov_b32 ttmp8, tma_lo ; encoding: [0x6e,0x03,0xf8,0xbe]
+// VI: s_mov_b32 ttmp8, tma_lo ; encoding: [0x6e,0x00,0xf8,0xbe]
+
+s_mul_i32 ttmp8, 0x00000324, ttmp8
+// SICI: s_mul_i32 ttmp8, 0x324, ttmp8 ; encoding: [0xff,0x78,0x78,0x93,0x24,0x03,0x00,0x00]
+// VI: s_mul_i32 ttmp8, 0x324, ttmp8 ; encoding: [0xff,0x78,0x78,0x92,0x24,0x03,0x00,0x00]
+
+s_or_b32 ttmp9, ttmp9, 0x00280000
+// SICI: s_or_b32 ttmp9, ttmp9, 0x280000 ; encoding: [0x79,0xff,0x79,0x88,0x00,0x00,0x28,0x00]
+// VI: s_or_b32 ttmp9, ttmp9, 0x280000 ; encoding: [0x79,0xff,0x79,0x87,0x00,0x00,0x28,0x00]
+
+//===----------------------------------------------------------------------===//
+// Trap Handler related - Pairs and quadruples of registers
+//===----------------------------------------------------------------------===//
+
+s_mov_b64 ttmp[4:5], exec
+// SICI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x01,0xf4,0xbe]
+
+s_mov_b64 [ttmp4,ttmp5], exec
+// SICI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x01,0xf4,0xbe]
+
+s_mov_b64 exec, [ttmp4,ttmp5]
+// SICI: s_mov_b64 exec, ttmp[4:5] ; encoding: [0x74,0x04,0xfe,0xbe]
+// VI: s_mov_b64 exec, ttmp[4:5] ; encoding: [0x74,0x01,0xfe,0xbe]
+
+s_mov_b64 tba, ttmp[4:5]
+// SICI: s_mov_b64 tba, ttmp[4:5] ; encoding: [0x74,0x04,0xec,0xbe]
+// VI: s_mov_b64 tba, ttmp[4:5] ; encoding: [0x74,0x01,0xec,0xbe]
+
+s_mov_b64 ttmp[4:5], tba
+// SICI: s_mov_b64 ttmp[4:5], tba ; encoding: [0x6c,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], tba ; encoding: [0x6c,0x01,0xf4,0xbe]
+
+s_mov_b64 tma, ttmp[4:5]
+// SICI: s_mov_b64 tma, ttmp[4:5] ; encoding: [0x74,0x04,0xee,0xbe]
+// VI: s_mov_b64 tma, ttmp[4:5] ; encoding: [0x74,0x01,0xee,0xbe]
+
+s_mov_b64 ttmp[4:5], tma
+// SICI: s_mov_b64 ttmp[4:5], tma ; encoding: [0x6e,0x04,0xf4,0xbe]
+// VI: s_mov_b64 ttmp[4:5], tma ; encoding: [0x6e,0x01,0xf4,0xbe]
+
+
+//===----------------------------------------------------------------------===//
+// Trap Handler related - Some specific instructions
+//===----------------------------------------------------------------------===//
+
+s_setpc_b64 [ttmp2,ttmp3]
+// SICI: s_setpc_b64 ttmp[2:3] ; encoding: [0x72,0x20,0x80,0xbe]
+// VI: s_setpc_b64 ttmp[2:3] ; encoding: [0x72,0x1d,0x80,0xbe]
+
+v_readfirstlane_b32 ttmp8, v1
+// SICI: v_readfirstlane_b32 ttmp8, v1 ; encoding: [0x01,0x05,0xf0,0x7e]
+// VI: v_readfirstlane_b32 ttmp8, v1 ; encoding: [0x01,0x05,0xf0,0x7e]
+
+buffer_atomic_inc v1, off, ttmp[8:11], 56 glc
+// SICI: buffer_atomic_inc v1, off, ttmp[8:11], 56 glc ; encoding: [0x00,0x40,0xf0,0xe0,0x00,0x01,0x1e,0xb8]
+// VI: buffer_atomic_inc v1, off, ttmp[8:11], 56 glc ; encoding: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x1e,0xb8]
diff --git a/test/MC/AMDGPU/vop2-err.s b/test/MC/AMDGPU/vop2-err.s
index 8d282f9bf7ed..19f7274088df 100644
--- a/test/MC/AMDGPU/vop2-err.s
+++ b/test/MC/AMDGPU/vop2-err.s
@@ -8,6 +8,9 @@
v_mul_i32_i24 v1, v2, 100
// CHECK: error: invalid operand for instruction
+v_cndmask_b32 v1, v2, v3
+// CHECK: error: too few operands for instruction
+
//===----------------------------------------------------------------------===//
// _e32 checks
//===----------------------------------------------------------------------===//
@@ -20,6 +23,9 @@ v_mul_i32_i24_e32 v1, v2, 100
v_mul_i32_i24_e32 v1, v2, s3
// CHECK: error: invalid operand for instruction
+v_cndmask_b32_e32 v1, v2, v3, s[0:1]
+// CHECK: error: invalid operand for instruction
+
//===----------------------------------------------------------------------===//
// _e64 checks
//===----------------------------------------------------------------------===//
diff --git a/test/MC/AMDGPU/vop2.s b/test/MC/AMDGPU/vop2.s
index 2b8249152b7b..b4a19fee2909 100644
--- a/test/MC/AMDGPU/vop2.s
+++ b/test/MC/AMDGPU/vop2.s
@@ -94,12 +94,23 @@ v_mul_i32_i24 v1, s2, 3
// SICI: v_mul_i32_i24_e64 v1, 3, s3 ; encoding: [0x01,0x00,0x12,0xd2,0x83,0x06,0x00,0x00]
v_mul_i32_i24 v1, 3, s3
+// SICI: v_add_i32_e32 v0, vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x00,0x4a]
+// VI: v_add_i32_e32 v0, vcc, 0.5, v0 ; encoding: [0xf0,0x00,0x00,0x32]
+v_add_i32 v0, vcc, 0.5, v0
+
+// SICI: v_add_i32_e32 v0, vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x00,0x4a,0x00,0x00,0x48,0x40]
+// VI: v_add_i32_e32 v0, vcc, 0x40480000, v0 ; encoding: [0xff,0x00,0x00,0x32,0x00,0x00,0x48,0x40]
+v_add_i32 v0, vcc, 3.125, v0
+
//===----------------------------------------------------------------------===//
// Instructions
//===----------------------------------------------------------------------===//
-// GCN: v_cndmask_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x00]
-v_cndmask_b32 v1, v2, v3
+// GCN: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00]
+v_cndmask_b32 v1, v2, v3, vcc
+
+// GCN: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00]
+v_cndmask_b32_e32 v1, v2, v3, vcc
// SICI: v_readlane_b32 s1, v2, s3 ; encoding: [0x02,0x07,0x02,0x02]
// VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00]
@@ -231,12 +242,12 @@ v_bfm_b32 v1, v2, v3
// VI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c]
v_mac_f32 v1, v2, v3
-// SICI: v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x40,0x00,0x00,0x80,0x42]
-// VI: v_madmk_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42]
-v_madmk_f32 v1, v2, v3, 64.0
+// SICI: v_madmk_f32_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x40,0x00,0x00,0x80,0x42]
+// VI: v_madmk_f32_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42]
+v_madmk_f32 v1, v2, 64.0, v3
// SICI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x42,0x00,0x00,0x80,0x42]
-// VI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42]
+// VI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42]
v_madak_f32 v1, v2, v3, 64.0
// SICI: v_bcnt_u32_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44]
@@ -410,9 +421,9 @@ v_mul_f16 v1, v2, v3
v_mac_f16 v1, v2, v3
// NOSICI: error: instruction not supported on this GPU
-// NOSICI: v_madmk_f16 v1, v2, v3, 64.0
-// VI: v_madmk_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42]
-v_madmk_f16 v1, v2, v3, 64.0
+// NOSICI: v_madmk_f16 v1, v2, 64.0, v3
+// VI: v_madmk_f16_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42]
+v_madmk_f16 v1, v2, 64.0, v3
// NOSICI: error: instruction not supported on this GPU
// NOSICI: v_madak_f16 v1, v2, v3, 64.0
diff --git a/test/MC/AMDGPU/vop3-errs.s b/test/MC/AMDGPU/vop3-errs.s
index b57fe6d5314b..45ad74836c71 100644
--- a/test/MC/AMDGPU/vop3-errs.s
+++ b/test/MC/AMDGPU/vop3-errs.s
@@ -3,3 +3,6 @@
v_add_f32_e64 v0, v1
// CHECK: error: too few operands for instruction
+
+v_div_scale_f32 v24, vcc, v22, 1.1, v22
+// CHECK: error: invalid operand for instruction
diff --git a/test/MC/AMDGPU/vop3.s b/test/MC/AMDGPU/vop3.s
index 712b18e37aab..86362878ec65 100644
--- a/test/MC/AMDGPU/vop3.s
+++ b/test/MC/AMDGPU/vop3.s
@@ -52,14 +52,26 @@ v_cmp_lt_f32 s[2:3] -|v4|, v6
// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x02,0xd0,0x04,0x0d,0x02,0x20]
// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20]
+v_cmp_lt_f32 s[2:3] -abs(v4), v6
+// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x02,0xd0,0x04,0x0d,0x02,0x20]
+// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20]
+
v_cmp_lt_f32 s[2:3] v4, -|v6|
// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x02,0xd0,0x04,0x0d,0x02,0x40]
// VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40]
+v_cmp_lt_f32 s[2:3] v4, -abs(v6)
+// SICI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x02,0xd0,0x04,0x0d,0x02,0x40]
+// VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40]
+
v_cmp_lt_f32 s[2:3] -|v4|, -|v6|
// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x02,0xd0,0x04,0x0d,0x02,0x60]
// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60]
+v_cmp_lt_f32 s[2:3] -abs(v4), -abs(v6)
+// SICI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x02,0xd0,0x04,0x0d,0x02,0x60]
+// VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60]
+
//
// Instruction tests:
//
@@ -137,7 +149,7 @@ v_clrexcp_e64
//
// Modifier tests:
-//
+//
v_fract_f32 v1, -v2
// SICI: v_fract_f32_e64 v1, -v2 ; encoding: [0x01,0x00,0x40,0xd3,0x02,0x01,0x00,0x20]
@@ -147,10 +159,18 @@ v_fract_f32 v1, |v2|
// SICI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x00]
// VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00]
+v_fract_f32 v1, abs(v2)
+// SICI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x00]
+// VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00]
+
v_fract_f32 v1, -|v2|
// SICI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x20]
// VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20]
+v_fract_f32 v1, -abs(v2)
+// SICI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x40,0xd3,0x02,0x01,0x00,0x20]
+// VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20]
+
v_fract_f32 v1, v2 clamp
// SICI: v_fract_f32_e64 v1, v2 clamp ; encoding: [0x01,0x08,0x40,0xd3,0x02,0x01,0x00,0x00]
// VI: v_fract_f32_e64 v1, v2 clamp ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x00]
@@ -159,7 +179,7 @@ v_fract_f32 v1, v2 mul:2
// SICI: v_fract_f32_e64 v1, v2 mul:2 ; encoding: [0x01,0x00,0x40,0xd3,0x02,0x01,0x00,0x08]
// VI: v_fract_f32_e64 v1, v2 mul:2 ; encoding: [0x01,0x00,0x5b,0xd1,0x02,0x01,0x00,0x08]
-v_fract_f32 v1, v2, div:2 clamp
+v_fract_f32 v1, v2, clamp div:2
// SICI: v_fract_f32_e64 v1, v2 clamp div:2 ; encoding: [0x01,0x08,0x40,0xd3,0x02,0x01,0x00,0x18]
// VI: v_fract_f32_e64 v1, v2 clamp div:2 ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x18]
@@ -182,6 +202,14 @@ v_cndmask_b32 v1, v3, v5, s[4:5]
// SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00]
// VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00]
+v_cndmask_b32_e64 v1, v3, v5, s[4:5]
+// SICI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0x12,0x00]
+// VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00]
+
+v_cndmask_b32_e64 v1, v3, v5, vcc
+// SICI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd2,0x03,0x0b,0xaa,0x01]
+// VI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0xaa,0x01]
+
//TODO: readlane, writelane
v_add_f32 v1, v3, s5
@@ -198,8 +226,7 @@ v_subrev_f32 v1, v3, s5
v_mac_legacy_f32 v1, v3, s5
// SICI: v_mac_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x0c,0xd2,0x03,0x0b,0x00,0x00]
-// FIXME: The error message should be: error: instruction not supported on this GPU
-// NOVI: error: invalid operand for instruction
+// NOVI: error: instruction not supported on this GPU
v_mul_legacy_f32 v1, v3, s5
// SICI: v_mul_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x0e,0xd2,0x03,0x0b,0x00,0x00]
@@ -223,7 +250,110 @@ v_mad_legacy_f32 v2, v4, v6, v8
// SICI: v_mad_legacy_f32 v2, v4, v6, v8 ; encoding: [0x02,0x00,0x80,0xd2,0x04,0x0d,0x22,0x04]
// VI: v_mad_legacy_f32 v2, v4, v6, v8 ; encoding: [0x02,0x00,0xc0,0xd1,0x04,0x0d,0x22,0x04]
+v_add_f64 v[0:1], v[2:3], v[5:6]
+// SICI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64_e64 v[0:1], v[2:3], v[5:6]
+// SICI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64 v[0:1], -v[2:3], v[5:6]
+// SICI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x20]
+// VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20]
+
+v_add_f64_e64 v[0:1], -v[2:3], v[5:6]
+// SICI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x20]
+// VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20]
+
+v_add_f64 v[0:1], v[2:3], -v[5:6]
+// SICI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x40]
+// VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40]
+
+v_add_f64_e64 v[0:1], v[2:3], -v[5:6]
+// SICI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0xc8,0xd2,0x02,0x0b,0x02,0x40]
+// VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40]
+
+v_add_f64 v[0:1], |v[2:3]|, v[5:6]
+// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64 v[0:1], abs(v[2:3]), v[5:6]
+// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64_e64 v[0:1], |v[2:3]|, v[5:6]
+// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64_e64 v[0:1], abs(v[2:3]), v[5:6]
+// SICI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64 v[0:1], v[2:3], |v[5:6]|
+// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64 v[0:1], v[2:3], abs(v[5:6])
+// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64_e64 v[0:1], v[2:3], |v[5:6]|
+// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64_e64 v[0:1], v[2:3], abs(v[5:6])
+// SICI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0xc8,0xd2,0x02,0x0b,0x02,0x00]
+// VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+
+v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4
+// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30]
+// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+
+v_add_f64 v[0:1], -v[2:3], abs(v[5:6]) clamp mul:4
+// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30]
+// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+
+v_add_f64_e64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4
+// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30]
+// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+
+v_add_f64_e64 v[0:1], -v[2:3], abs(v[5:6]) clamp mul:4
+// SICI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x0a,0xc8,0xd2,0x02,0x0b,0x02,0x30]
+// VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+
+v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21]
+// SICI: v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] ; encoding: [0x18,0x6a,0xdc,0xd2,0x16,0x2d,0x52,0x04]
+// VI: v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] ; encoding: [0x18,0x6a,0xe1,0xd1,0x16,0x2d,0x52,0x04]
+
+v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], v[20:21]
+// SICI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], v[20:21] ; encoding: [0x18,0x0a,0xdc,0xd2,0x16,0x29,0x52,0x04]
+// VI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], v[20:21] ; encoding: [0x18,0x0a,0xe1,0xd1,0x16,0x29,0x52,0x04]
+
+v_div_scale_f32 v24, vcc, v22, v22, v20
+// SICI: v_div_scale_f32 v24, vcc, v22, v22, v20 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0x52,0x04]
+// VI: v_div_scale_f32 v24, vcc, v22, v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0x52,0x04]
+
+v_div_scale_f32 v24, vcc, s[10:11], v22, v20
+// SICI: v_div_scale_f32 v24, vcc, s[10:11], v22, v20 ; encoding: [0x18,0x6a,0xda,0xd2,0x0a,0x2c,0x52,0x04]
+// VI: v_div_scale_f32 v24, vcc, s[10:11], v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x0a,0x2c,0x52,0x04]
+
+v_div_scale_f32 v24, s[10:11], v22, v22, v20
+// SICI: v_div_scale_f32 v24, s[10:11], v22, v22, v20 ; encoding: [0x18,0x0a,0xda,0xd2,0x16,0x2d,0x52,0x04]
+// VI: v_div_scale_f32 v24, s[10:11], v22, v22, v20 ; encoding: [0x18,0x0a,0xe0,0xd1,0x16,0x2d,0x52,0x04]
+v_div_scale_f32 v24, vcc, v22, 1.0, v22
+// SICI: v_div_scale_f32 v24, vcc, v22, 1.0, v22 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0xe5,0x59,0x04]
+// VI: v_div_scale_f32 v24, vcc, v22, 1.0, v22 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0xe5,0x59,0x04]
+v_div_scale_f32 v24, vcc, v22, v22, -2.0
+// SICI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0xd2,0x83]
+// VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd2,0x83]
+v_div_scale_f32 v24, vcc, v22, v22, 0xc0000000
+// SICI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xda,0xd2,0x16,0x2d,0xd6,0x03]
+// VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd6,0x03]
+v_mad_f32 v9, 0.5, v5, -v8
+// SICI: v_mad_f32 v9, 0.5, v5, -v8 ; encoding: [0x09,0x00,0x82,0xd2,0xf0,0x0a,0x22,0x84]
+// VI: v_mad_f32 v9, 0.5, v5, -v8 ; encoding: [0x09,0x00,0xc1,0xd1,0xf0,0x0a,0x22,0x84]
diff --git a/test/MC/AMDGPU/vop_dpp.s b/test/MC/AMDGPU/vop_dpp.s
new file mode 100644
index 000000000000..dec6153e0cc5
--- /dev/null
+++ b/test/MC/AMDGPU/vop_dpp.s
@@ -0,0 +1,494 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
+
+//===----------------------------------------------------------------------===//
+// Check dpp_ctrl values
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[0,2,1,1] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x58,0x00,0xff]
+v_mov_b32 v0, v0 quad_perm:[0,2,1,1]
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x01,0x01,0xff]
+v_mov_b32 v0, v0 row_shl:1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x1f,0x01,0xff]
+v_mov_b32 v0, v0 row_shr:0xf
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_ror:12 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x2c,0x01,0xff]
+v_mov_b32 v0, v0 row_ror:0xc
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 wave_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x30,0x01,0xff]
+v_mov_b32 v0, v0 wave_shl:1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 wave_rol:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x34,0x01,0xff]
+v_mov_b32 v0, v0 wave_rol:1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 wave_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x38,0x01,0xff]
+v_mov_b32 v0, v0 wave_shr:1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 wave_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x3c,0x01,0xff]
+v_mov_b32 v0, v0 wave_ror:1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x40,0x01,0xff]
+v_mov_b32 v0, v0 row_mirror
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x41,0x01,0xff]
+v_mov_b32 v0, v0 row_half_mirror
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_bcast:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x42,0x01,0xff]
+v_mov_b32 v0, v0 row_bcast:15
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 row_bcast:31 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x43,0x01,0xff]
+v_mov_b32 v0, v0 row_bcast:31
+
+//===----------------------------------------------------------------------===//
+// Check optional fields
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xa1]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xaf]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xf1]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bank_mask:0x1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xff]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xa1]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xaf]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xf1]
+v_mov_b32 v0, v0 quad_perm:[1,3,0,1] bank_mask:0x1 bound_ctrl:0
+
+//===----------------------------------------------------------------------===//
+// Check modifiers
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_add_f32_dpp v0, -v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x19,0xa1]
+v_add_f32 v0, -v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_add_f32_dpp v0, v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x89,0xa1]
+v_add_f32 v0, v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_add_f32_dpp v0, -v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x99,0xa1]
+v_add_f32 v0, -v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_add_f32_dpp v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x69,0xa1]
+v_add_f32 v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+//===----------------------------------------------------------------------===//
+// Check VOP1 opcodes
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_nop row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x7e,0x00,0x01,0x09,0xa1]
+v_nop row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_u32_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0e,0x00,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_u32_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_fract_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x36,0x00,0x7e,0x00,0x01,0x09,0xa1]
+v_fract_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sin_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x52,0x00,0x7e,0x00,0x01,0x09,0xa1]
+v_sin_f32 v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mov_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_mov_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_i32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_i32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_u32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_u32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x10,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f16_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x14,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f16_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x16,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_rpi_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x18,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_rpi_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_flr_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x1a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_flr_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_off_f32_i4_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x1c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_off_f32_i4 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte0_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x22,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_ubyte0 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte1_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x24,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_ubyte1 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte2_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x26,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_ubyte2 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte3_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x28,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f32_ubyte3 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_trunc_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x38,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_trunc_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ceil_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_ceil_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rndne_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rndne_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_floor_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x3e,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_floor_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_exp_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x40,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_exp_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_log_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x42,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_log_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rcp_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x44,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rcp_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rcp_iflag_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x46,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rcp_iflag_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rsq_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x48,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rsq_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sqrt_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x4e,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_sqrt_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cos_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x54,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cos_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_not_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x56,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_not_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_bfrev_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x58,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_bfrev_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ffbh_u32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_ffbh_u32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ffbl_b32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_ffbl_b32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ffbh_i32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x5e,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_ffbh_i32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_frexp_exp_i32_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x66,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_frexp_exp_i32_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_frexp_mant_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x68,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_frexp_mant_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_log_legacy_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x98,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_log_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_exp_legacy_f32_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x96,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_exp_legacy_f32 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f16_u16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x72,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f16_u16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_f16_i16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x74,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_f16_i16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_u16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x76,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_u16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cvt_i16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x78,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cvt_i16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rcp_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rcp_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sqrt_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_sqrt_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rsq_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x7e,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rsq_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_log_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x80,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_log_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_exp_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x82,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_exp_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_frexp_mant_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x84,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_frexp_mant_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_frexp_exp_i16_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x86,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_frexp_exp_i16_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_floor_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x88,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_floor_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ceil_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8a,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_ceil_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_trunc_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8c,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_trunc_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_rndne_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x8e,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_rndne_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_fract_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x90,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_fract_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sin_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x92,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_sin_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_cos_f16_dpp v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x94,0x02,0x7e,0x00,0x01,0x09,0xa1]
+v_cos_f16 v1, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+//===----------------------------------------------------------------------===//
+// Check VOP2 opcodes
+//===----------------------------------------------------------------------===//
+// ToDo: VOP2bInst instructions: v_add_u32, v_sub_u32 ... (vcc and ApplyMnemonic in AsmMatcherEmitter.cpp)
+// ToDo: v_mac_f32 (VOP_MAC)
+
+// NOSICI: error:
+// VI: v_add_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x09,0xa1]
+v_add_f32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x14,0x00,0x01,0x09,0xa1]
+v_min_f32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_and_b32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x26,0x00,0x01,0x09,0xa1]
+v_and_b32 v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_i32_i24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0c,0x02,0x01,0x09,0xa1]
+v_mul_i32_i24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sub_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x04,0x02,0x01,0x09,0xa1]
+v_sub_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_subrev_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x06,0x02,0x01,0x09,0xa1]
+v_subrev_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0a,0x02,0x01,0x09,0xa1]
+v_mul_f32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_hi_i32_i24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x0e,0x02,0x01,0x09,0xa1]
+v_mul_hi_i32_i24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_u32_u24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x10,0x02,0x01,0x09,0xa1]
+v_mul_u32_u24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_hi_u32_u24_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x12,0x02,0x01,0x09,0xa1]
+v_mul_hi_u32_u24 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_f32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x16,0x02,0x01,0x09,0xa1]
+v_max_f32 v1, v2 v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x18,0x02,0x01,0x09,0xa1]
+v_min_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1a,0x02,0x01,0x09,0xa1]
+v_max_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_u32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1c,0x02,0x01,0x09,0xa1]
+v_min_u32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_u32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x1e,0x02,0x01,0x09,0xa1]
+v_max_u32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_lshrrev_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x20,0x02,0x01,0x09,0xa1]
+v_lshrrev_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ashrrev_i32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x22,0x02,0x01,0x09,0xa1]
+v_ashrrev_i32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_lshlrev_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x24,0x02,0x01,0x09,0xa1]
+v_lshlrev_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_or_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x28,0x02,0x01,0x09,0xa1]
+v_or_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_xor_b32_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x2a,0x02,0x01,0x09,0xa1]
+v_xor_b32 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_add_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x3e,0x02,0x01,0x09,0xa1]
+v_add_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sub_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x40,0x02,0x01,0x09,0xa1]
+v_sub_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_subrev_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x42,0x02,0x01,0x09,0xa1]
+v_subrev_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x44,0x02,0x01,0x09,0xa1]
+v_mul_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mac_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x46,0x02,0x01,0x09,0xa1]
+v_mac_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_add_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x4c,0x02,0x01,0x09,0xa1]
+v_add_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_sub_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x4e,0x02,0x01,0x09,0xa1]
+v_sub_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_subrev_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x50,0x02,0x01,0x09,0xa1]
+v_subrev_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_mul_lo_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x52,0x02,0x01,0x09,0xa1]
+v_mul_lo_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_lshlrev_b16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x54,0x02,0x01,0x09,0xa1]
+v_lshlrev_b16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_lshrrev_b16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x56,0x02,0x01,0x09,0xa1]
+v_lshrrev_b16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ashrrev_b16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x58,0x02,0x01,0x09,0xa1]
+v_ashrrev_b16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5a,0x02,0x01,0x09,0xa1]
+v_max_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5c,0x02,0x01,0x09,0xa1]
+v_min_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x5e,0x02,0x01,0x09,0xa1]
+v_max_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_max_i16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x60,0x02,0x01,0x09,0xa1]
+v_max_i16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_u16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x62,0x02,0x01,0x09,0xa1]
+v_min_u16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_min_i16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x64,0x02,0x01,0x09,0xa1]
+v_min_i16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
+
+// NOSICI: error:
+// VI: v_ldexp_f16_dpp v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x06,0x02,0x66,0x02,0x01,0x09,0xa1]
+v_ldexp_f16 v1, v2, v3 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0
diff --git a/test/MC/AMDGPU/vop_sdwa.s b/test/MC/AMDGPU/vop_sdwa.s
new file mode 100644
index 000000000000..1b673482517a
--- /dev/null
+++ b/test/MC/AMDGPU/vop_sdwa.s
@@ -0,0 +1,561 @@
+// RUN: llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=CIVI --check-prefix=VI
+// RUN: not llvm-mc -arch=amdgcn -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI
+// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s 2>&1 | FileCheck %s --check-prefix=NOSICI
+
+// ToDo: VOPC
+// ToDo: VOP2b (see vop_dpp.s)
+// ToDo: V_MAC_F32 (see vop_dpp.s)
+// ToDo: sext()
+// ToDo: intrinsics
+
+//---------------------------------------------------------------------------//
+// Check SDWA operands
+//---------------------------------------------------------------------------//
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x02,0x10,0x06,0x06]
+v_mov_b32 v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v3, v4 dst_sel:BYTE_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x06,0x7e,0x04,0x11,0x05,0x06]
+v_mov_b32 v3, v4 dst_sel:BYTE_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v15, v99 dst_sel:BYTE_2 dst_unused:UNUSED_SEXT src0_sel:WORD_0 ; encoding: [0xf9,0x02,0x1e,0x7e,0x63,0x0a,0x04,0x06]
+v_mov_b32 v15, v99 dst_sel:BYTE_2 dst_unused:UNUSED_SEXT src0_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_min_u32_sdwa v194, v13, v1 dst_sel:BYTE_3 dst_unused:UNUSED_SEXT src0_sel:BYTE_3 src1_sel:BYTE_2 ; encoding: [0xf9,0x02,0x84,0x1d,0x0d,0x0b,0x03,0x02]
+v_min_u32 v194, v13, v1 dst_sel:BYTE_3 dst_unused:UNUSED_SEXT src0_sel:BYTE_3 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_u32_sdwa v255, v4, v1 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:WORD_1 ; encoding: [0xf9,0x02,0xfe,0x1d,0x04,0x04,0x02,0x05]
+v_min_u32 v255, v4, v1 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_min_u32_sdwa v200, v200, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD ; encoding: [0xf9,0x02,0x90,0x1d,0xc8,0x05,0x01,0x06]
+v_min_u32 v200, v200, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD
+
+// NOSICI: error:
+// VI: v_min_u32_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x1c,0x01,0x06,0x00,0x06]
+v_min_u32 v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD
+//---------------------------------------------------------------------------//
+// Check optional operands
+//---------------------------------------------------------------------------//
+
+// NOSICI: error:
+// VI: v_cvt_u32_f32_sdwa v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x0e,0x00,0x7e,0x00,0x36,0x06,0x06]
+v_cvt_u32_f32 v0, v0 clamp dst_sel:DWORD
+
+// NOSICI: error:
+// VI: v_fract_f32_sdwa v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x26,0x06,0x06]
+v_fract_f32 v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PAD
+
+// NOSICI: error:
+// VI: v_sin_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x05,0x06]
+v_sin_f32 v0, v0 dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v1, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x36,0x05,0x06]
+v_mov_b32 v1, v0 clamp src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_trunc_f32_sdwa v1, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x38,0x02,0x7e,0x00,0x36,0x05,0x06]
+v_trunc_f32 v1, v0 clamp dst_sel:DWORD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x06,0x06]
+v_mov_b32_sdwa v1, v0
+
+// NOSICI: error:
+// VI: v_add_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x05,0x06]
+v_add_f32_sdwa v0, v0, v0 dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_min_f32_sdwa v0, v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x36,0x06,0x02]
+v_min_f32 v0, v0, v0 clamp dst_sel:DWORD src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_and_b32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x06,0x02]
+v_and_b32 v0, v0, v0 dst_unused:UNUSED_PAD src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_i32_i24_sdwa v1, v2, v3 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x06,0x02,0x0c,0x02,0x36,0x06,0x06]
+v_mul_i32_i24_sdwa v1, v2, v3 clamp
+
+//===----------------------------------------------------------------------===//
+// Check modifiers
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_fract_f32_sdwa v0, |v0| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x06,0x25,0x06]
+v_fract_f32 v0, |v0| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_sin_f32_sdwa v0, -|v0| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x35,0x06]
+v_sin_f32 v0, -abs(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_add_f32_sdwa v0, -|v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x35,0x12]
+v_add_f32 v0, -|v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_f32_sdwa v0, |v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x06,0x25,0x12]
+v_min_f32 v0, abs(v0), -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v1, sext(v0) dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x0e,0x06]
+v_mov_b32_sdwa v1, sext(v0)
+
+// NOSICI: error:
+// VI: v_and_b32_sdwa v0, sext(v0), sext(v0) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x0e,0x0a]
+v_and_b32 v0, sext(v0), sext(v0) dst_unused:UNUSED_PAD src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_cmp_class_f32 vcc, -v1, sext(v2) src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x16,0x12,0x0c]
+v_cmp_class_f32 vcc, -v1, sext(v2) src0_sel:BYTE_2 src1_sel:WORD_0
+
+//===----------------------------------------------------------------------===//
+// Check VOP1 opcodes
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_nop ; encoding: [0xf9,0x00,0x00,0x7e,0x00,0x16,0x06,0x06]
+v_nop_sdwa
+
+// NOSICI: error:
+// VI: v_cvt_u32_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0e,0x00,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_u32_f32 v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_fract_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x06,0x05,0x06]
+v_fract_f32 v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_sin_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x05,0x06]
+v_sin_f32 v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_mov_b32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_i32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_i32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_u32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_u32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x10,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_i32_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f16_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x14,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f16_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x16,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_rpi_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x18,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_rpi_i32_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_flr_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x1a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_flr_i32_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_off_f32_i4_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x1c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_off_f32_i4 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte0_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x22,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_ubyte0 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte1_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x24,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_ubyte1 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte2_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x26,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_ubyte2 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f32_ubyte3_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x28,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f32_ubyte3 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_trunc_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x38,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_trunc_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_ceil_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_ceil_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rndne_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rndne_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_floor_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3e,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_floor_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_exp_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x40,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_exp_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_log_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x42,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_log_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rcp_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x44,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rcp_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rcp_iflag_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x46,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rcp_iflag_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rsq_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x48,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rsq_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_sqrt_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x4e,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_sqrt_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cos_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x54,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cos_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_not_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x56,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_not_b32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_bfrev_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x58,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_bfrev_b32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_ffbh_u32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_ffbh_u32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_ffbl_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_ffbl_b32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_ffbh_i32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5e,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_ffbh_i32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_frexp_exp_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x66,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_frexp_exp_i32_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_frexp_mant_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x68,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_frexp_mant_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_log_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x98,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_log_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_exp_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x96,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_exp_legacy_f32 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f16_u16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x72,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f16_u16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_f16_i16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x74,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_f16_i16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_u16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x76,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_u16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cvt_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x78,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cvt_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rcp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rcp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_sqrt_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_sqrt_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rsq_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7e,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rsq_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_log_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x80,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_log_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_exp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x82,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_exp_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_frexp_mant_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x84,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_frexp_mant_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_frexp_exp_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x86,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_frexp_exp_i16_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_floor_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x88,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_floor_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_ceil_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8a,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_ceil_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_trunc_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8c,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_trunc_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_rndne_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8e,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_rndne_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_fract_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x90,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_fract_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_sin_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x92,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_sin_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+// NOSICI: error:
+// VI: v_cos_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x94,0x02,0x7e,0x00,0x06,0x05,0x06]
+v_cos_f16 v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
+
+//===----------------------------------------------------------------------===//
+// Check VOP2 opcodes
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_add_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x05,0x02]
+v_add_f32 v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x06,0x05,0x02]
+v_min_f32 v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_and_b32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x05,0x02]
+v_and_b32 v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_i32_i24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0c,0x02,0x06,0x05,0x02]
+v_mul_i32_i24 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_sub_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x04,0x02,0x06,0x05,0x02]
+v_sub_f32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_subrev_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x06,0x02,0x06,0x05,0x02]
+v_subrev_f32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0a,0x02,0x06,0x05,0x02]
+v_mul_f32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_hi_i32_i24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0e,0x02,0x06,0x05,0x02]
+v_mul_hi_i32_i24 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_u32_u24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x10,0x02,0x06,0x05,0x02]
+v_mul_u32_u24 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_hi_u32_u24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x12,0x02,0x06,0x05,0x02]
+v_mul_hi_u32_u24 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x16,0x02,0x06,0x05,0x02]
+v_max_f32 v1, v2 v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x18,0x02,0x06,0x05,0x02]
+v_min_i32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1a,0x02,0x06,0x05,0x02]
+v_max_i32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_u32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1c,0x02,0x06,0x05,0x02]
+v_min_u32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_u32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1e,0x02,0x06,0x05,0x02]
+v_max_u32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_lshrrev_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x20,0x02,0x06,0x05,0x02]
+v_lshrrev_b32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_ashrrev_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x22,0x02,0x06,0x05,0x02]
+v_ashrrev_i32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_lshlrev_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x24,0x02,0x06,0x05,0x02]
+v_lshlrev_b32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_or_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x28,0x02,0x06,0x05,0x02]
+v_or_b32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_xor_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x2a,0x02,0x06,0x05,0x02]
+v_xor_b32 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_add_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3e,0x02,0x06,0x05,0x02]
+v_add_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_sub_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x40,0x02,0x06,0x05,0x02]
+v_sub_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_subrev_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x42,0x02,0x06,0x05,0x02]
+v_subrev_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x44,0x02,0x06,0x05,0x02]
+v_mul_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mac_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x46,0x02,0x06,0x05,0x02]
+v_mac_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_add_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4c,0x02,0x06,0x05,0x02]
+v_add_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_sub_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4e,0x02,0x06,0x05,0x02]
+v_sub_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_subrev_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x50,0x02,0x06,0x05,0x02]
+v_subrev_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_mul_lo_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x52,0x02,0x06,0x05,0x02]
+v_mul_lo_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_lshlrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x54,0x02,0x06,0x05,0x02]
+v_lshlrev_b16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_lshrrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x56,0x02,0x06,0x05,0x02]
+v_lshrrev_b16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_ashrrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x58,0x02,0x06,0x05,0x02]
+v_ashrrev_b16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5a,0x02,0x06,0x05,0x02]
+v_max_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5c,0x02,0x06,0x05,0x02]
+v_min_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5e,0x02,0x06,0x05,0x02]
+v_max_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_max_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x60,0x02,0x06,0x05,0x02]
+v_max_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x62,0x02,0x06,0x05,0x02]
+v_min_u16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_min_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x64,0x02,0x06,0x05,0x02]
+v_min_i16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+// NOSICI: error:
+// VI: v_ldexp_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x66,0x02,0x06,0x05,0x02]
+v_ldexp_f16 v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2
+
+//===----------------------------------------------------------------------===//
+// Check VOPC opcodes
+//===----------------------------------------------------------------------===//
+
+// NOSICI: error:
+// VI: v_cmp_eq_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x84,0x7c,0x01,0x16,0x02,0x04]
+v_cmp_eq_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_nle_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7c,0x01,0x16,0x02,0x04]
+v_cmp_nle_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_gt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa8,0x7c,0x01,0x16,0x02,0x04]
+v_cmpx_gt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_nlt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xbc,0x7c,0x01,0x16,0x02,0x04]
+v_cmpx_nlt_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_lt_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x82,0x7d,0x01,0x16,0x02,0x04]
+v_cmp_lt_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_t_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x8e,0x7d,0x01,0x16,0x02,0x04]
+v_cmp_t_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_eq_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xa4,0x7d,0x01,0x16,0x02,0x04]
+v_cmpx_eq_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_ne_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xaa,0x7d,0x01,0x16,0x02,0x04]
+v_cmpx_ne_i32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_f_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x90,0x7d,0x01,0x16,0x02,0x04]
+v_cmp_f_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_gt_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x98,0x7d,0x01,0x16,0x02,0x04]
+v_cmp_gt_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_le_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xb6,0x7d,0x01,0x16,0x02,0x04]
+v_cmpx_le_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_ne_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0xba,0x7d,0x01,0x16,0x02,0x04]
+v_cmpx_ne_u32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmp_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x20,0x7c,0x01,0x16,0x02,0x04]
+v_cmp_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
+
+// NOSICI: error:
+// VI: v_cmpx_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0 ; encoding: [0xf9,0x04,0x22,0x7c,0x01,0x16,0x02,0x04]
+v_cmpx_class_f32 vcc, v1, v2 src0_sel:BYTE_2 src1_sel:WORD_0
diff --git a/test/MC/ARM/aligned-blx.s b/test/MC/ARM/aligned-blx.s
new file mode 100644
index 000000000000..562eaac04677
--- /dev/null
+++ b/test/MC/ARM/aligned-blx.s
@@ -0,0 +1,34 @@
+@ RUN: llvm-mc -triple thumbv7-apple-ios -filetype=obj %s -o %t
+@ RUN: llvm-objdump -macho -d %t | FileCheck %s
+
+ @ Size: 2 bytes
+ .thumb_func _f1
+ .thumb
+ .globl _f1
+_f1:
+ bx lr
+
+ @ A properly aligned ARM function
+ .globl _aligned
+ .p2align 2
+ .arm
+_aligned:
+ bx lr
+
+ @ Align this Thumb function so we can predict the outcome of
+ @ "Align(PC, 4)" during blx operation.
+ .thumb_func _test
+ .thumb
+ .p2align 2
+ .globl _test
+_test:
+ blx _elsewhere
+ blx _aligned @ PC=0 (mod 4)
+ blx _aligned @ PC=0 (mod 4)
+ movs r0, r0
+ blx _aligned @ PC=2 (mod 4)
+
+@ CHECK: blx _elsewhere
+@ CHECK: ff f7 fa ef blx _aligned
+@ CHECK: ff f7 f8 ef blx _aligned
+@ CHECK: ff f7 f6 ef blx _aligned
diff --git a/test/MC/ARM/arm-branch-errors.s b/test/MC/ARM/arm-branch-errors.s
new file mode 100644
index 000000000000..0bef3b165a56
--- /dev/null
+++ b/test/MC/ARM/arm-branch-errors.s
@@ -0,0 +1,16 @@
+@ RUN: not llvm-mc -triple=armv7-apple-darwin < %s 2>&1 | FileCheck %s
+
+@------------------------------------------------------------------------------
+@ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2).
+@------------------------------------------------------------------------------
+
+ b #2
+ bl #2
+ beq #2
+
+@ CHECK: error: instruction requires: thumb
+@ CHECK: b #2
+@ CHECK: error: instruction requires: thumb
+@ CHECK: bl #2
+@ CHECK: error: instruction requires: thumb
+@ CHECK: beq #2
diff --git a/test/MC/ARM/arm-branches.s b/test/MC/ARM/arm-branches.s
new file mode 100644
index 000000000000..4a451114d888
--- /dev/null
+++ b/test/MC/ARM/arm-branches.s
@@ -0,0 +1,15 @@
+@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s
+
+@------------------------------------------------------------------------------
+@ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2).
+@------------------------------------------------------------------------------
+
+ b #4
+ bl #4
+ beq #4
+ blx #2
+
+@ CHECK: b #4 @ encoding: [0x01,0x00,0x00,0xea]
+@ CHECK: bl #4 @ encoding: [0x01,0x00,0x00,0xeb]
+@ CHECK: beq #4 @ encoding: [0x01,0x00,0x00,0x0a]
+@ CHECK: blx #2 @ encoding: [0x00,0x00,0x00,0xfb]
diff --git a/test/MC/ARM/arm11-hint-instr.s b/test/MC/ARM/arm11-hint-instr.s
index 2c0fef4adf73..4193a686870a 100644
--- a/test/MC/ARM/arm11-hint-instr.s
+++ b/test/MC/ARM/arm11-hint-instr.s
@@ -65,7 +65,7 @@
@ CHECK-THUMB: wfe @ encoding: [0x20,0xbf]
@ CHECK-THUMB: wfi @ encoding: [0x30,0xbf]
@ CHECK-THUMB: sev @ encoding: [0x40,0xbf]
-@ CHECK-ERROR-THUMB: error: instruction requires: armv7
+@ CHECK-ERROR-THUMB: error: instruction requires: v7 clrex
@ CHECK-ERROR-THUMB: clrex
@ CHECK-ERROR-THUMB: ^
@@ -77,6 +77,6 @@
@ CHECK-V6M: wfe @ encoding: [0x20,0xbf]
@ CHECK-V6M: wfi @ encoding: [0x30,0xbf]
@ CHECK-V6M: sev @ encoding: [0x40,0xbf]
-@ CHECK-ERROR-V6M: error: instruction requires: armv7
+@ CHECK-ERROR-V6M: error: instruction requires: v7 clrex
@ CHECK-ERROR-V6M: clrex
@ CHECK-ERROR-V6M: ^
diff --git a/test/MC/ARM/arm_fixups.s b/test/MC/ARM/arm_fixups.s
index 1f56e1285245..a7655092a7a5 100644
--- a/test/MC/ARM/arm_fixups.s
+++ b/test/MC/ARM/arm_fixups.s
@@ -32,3 +32,10 @@
@ CHECK: @ fixup A - offset: 0, value: fred, kind: fixup_arm_movw_lo16
@ CHECK-BE: movw r2, :lower16:fred @ encoding: [0xe3,0b0000AAAA,0x20'A',A]
@ CHECK-BE: @ fixup A - offset: 0, value: fred, kind: fixup_arm_movw_lo16
+
+ add r0, r0, #(L1 - L2)
+
+@ CHECK: add r0, r0, #L1-L2 @ encoding: [A,0b0000AAAA,0x80,0xe2]
+@ CHECK: @ fixup A - offset: 0, value: L1-L2, kind: fixup_arm_mod_imm
+@ CHECK-BE: add r0, r0, #L1-L2 @ encoding: [0xe2,0x80,0b0000AAAA,A]
+@ CHECK-BE: @ fixup A - offset: 0, value: L1-L2, kind: fixup_arm_mod_imm
diff --git a/test/MC/ARM/basic-arm-instructions.s b/test/MC/ARM/basic-arm-instructions.s
index 99a3cfa7b29e..da68a6cfd104 100644
--- a/test/MC/ARM/basic-arm-instructions.s
+++ b/test/MC/ARM/basic-arm-instructions.s
@@ -1749,7 +1749,7 @@ Lforward:
@ CHECK: pkhbt r2, r2, r3 @ encoding: [0x13,0x20,0x82,0xe6]
@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0x93,0x27,0x82,0xe6]
-@ CHECK: pkhbt r2, r2, r3 @ encoding: [0x13,0x20,0x82,0xe6]
+@ CHECK: pkhbt r2, r3, r2 @ encoding: [0x12,0x20,0x83,0xe6]
@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xd3,0x2f,0x82,0xe6]
@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xd3,0x27,0x82,0xe6]
diff --git a/test/MC/ARM/basic-thumb2-instructions.s b/test/MC/ARM/basic-thumb2-instructions.s
index c289325d6d12..4dfa6d35f6ab 100644
--- a/test/MC/ARM/basic-thumb2-instructions.s
+++ b/test/MC/ARM/basic-thumb2-instructions.s
@@ -1731,7 +1731,7 @@ _func:
@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32]
-@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
+@ CHECK: pkhbt r2, r3, r2 @ encoding: [0xc3,0xea,0x02,0x02]
@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72]
@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32]
diff --git a/test/MC/ARM/coff-debugging-secrel.ll b/test/MC/ARM/coff-debugging-secrel.ll
index a950ba2b6896..1d234919f120 100644
--- a/test/MC/ARM/coff-debugging-secrel.ll
+++ b/test/MC/ARM/coff-debugging-secrel.ll
@@ -18,14 +18,13 @@ entry:
!llvm.module.flags = !{!9, !10}
!0 = !DILocation(line: 1, scope: !1)
-!1 = distinct !DISubprogram(name: "function", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, scopeLine: 1, file: !2, scope: !3, type: !4, variables: !6)
+!1 = distinct !DISubprogram(name: "function", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: false, unit: !7, scopeLine: 1, file: !2, scope: !3, type: !4, variables: !6)
!2 = !DIFile(filename: "/Users/compnerd/work/llvm/test/MC/ARM/reduced.c", directory: "/Users/compnerd/work/llvm")
!3 = !DIFile(filename: "/Users/compnerd/work/llvm/test/MC/ARM/reduced.c", directory: "/Users/compnerd/work/llvm")
!4 = !DISubroutineType(types: !5)
!5 = !{null}
!6 = !{}
-!7 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0", isOptimized: false, emissionKind: 1, file: !2, enums: !6, retainedTypes: !6, subprograms: !8, globals: !6, imports: !6)
-!8 = !{!1}
+!7 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0", isOptimized: false, emissionKind: FullDebug, file: !2, enums: !6, retainedTypes: !6, globals: !6, imports: !6)
!9 = !{i32 2, !"Dwarf Version", i32 4}
!10 = !{i32 1, !"Debug Info Version", i32 3}
diff --git a/test/MC/ARM/directive-align.s b/test/MC/ARM/directive-align.s
index d3e39cb1c563..34fd96d6cc6a 100644
--- a/test/MC/ARM/directive-align.s
+++ b/test/MC/ARM/directive-align.s
@@ -8,7 +8,7 @@ unaligned:
@ CHECK-LABEL: unaligned
@ CHECK-NEXT: .byte 1
-@ CHECK-NEXT: .align 2
+@ CHECK-NEXT: .p2align 2
aligned:
.long 0x1d10c1e5
@@ -16,7 +16,7 @@ aligned:
@ CHECK-LABEL: aligned
@ CHECK-NEXT: .long 487637477
-@ CHECK-NEXT: .align 2
+@ CHECK-NEXT: .p2align 2
trailer:
.long 0xd1ab011c
@@ -24,5 +24,5 @@ trailer:
@ CHECK-LABEL: trailer
@ CHECK-NEXT: .long 3517645084
-@ CHECK-NEXT: .align 2
+@ CHECK-NEXT: .p2align 2
diff --git a/test/MC/ARM/directive-arch-mode-switch.s b/test/MC/ARM/directive-arch-mode-switch.s
new file mode 100644
index 000000000000..abb88a60163f
--- /dev/null
+++ b/test/MC/ARM/directive-arch-mode-switch.s
@@ -0,0 +1,52 @@
+@ RUN: llvm-mc -triple arm-none-eabi -filetype asm %s 2>%t | FileCheck %s
+@ RUN: FileCheck %s <%t --check-prefix=STDERR
+
+@ Start in arm mode
+ .arm
+@ CHECK: .code 32
+
+@ In ARM mode, switch to an arch which has ARM and Thumb, no warning or .code directive (stay in ARM mode)
+ .arch armv7-a
+@ STDERR-NOT: [[@LINE-1]]:{{[0-9]+}}: warning:
+@ CHECK-NOT: .code
+@ CHECK: .arch armv7-a
+@ CHECK-NOT: .code
+
+@ In ARM mode, switch to an arch which has Thumb only, expect warning and .code 16 directive
+ .arch armv6-m
+@ STDERR: [[@LINE-1]]:{{[0-9]+}}: warning: new target does not support arm mode, switching to thumb mode
+@ CHECK: .code 16
+@ CHECK: .arch armv6-m
+
+@ In Thumb mode, switch to an arch which has ARM and Thumb, no warning or .code directive (stay in Thumb mode)
+ .arch armv7-a
+@ STDERR-NOT: [[@LINE-1]]:{{[0-9]+}}: warning:
+@ CHECK-NOT: .code
+@ CHECK: .arch armv7-a
+@ CHECK-NOT: .code
+
+@ In Thumb mode, switch to a CPU which has ARM and Thumb, no warning or .code directive (stay in Thumb mode)
+ .cpu cortex-a8
+@ STDERR-NOT: [[@LINE-1]]:{{[0-9]+}}: warning:
+@ CHECK-NOT: .code
+@ CHECK: .cpu cortex-a8
+@ CHECK-NOT: .code
+
+@ Switch to ARM mode
+ .arm
+@ CHECK: .code 32
+
+@ In ARM mode, switch to a CPU which has ARM and Thumb, no warning or .code directive (stay in ARM mode)
+ .cpu cortex-a8
+@ STDERR-NOT: [[@LINE-1]]:{{[0-9]+}}: warning:
+@ CHECK-NOT: .code
+@ CHECK: .cpu cortex-a8
+@ CHECK-NOT: .code
+
+@ In ARM mode, switch to a CPU which has Thumb only, expect warning and .code 16 directive
+ .cpu cortex-m3
+@ STDERR: [[@LINE-1]]:{{[0-9]+}}: warning: new target does not support arm mode, switching to thumb mode
+@ CHECK: .cpu cortex-m3
+@ CHECK: .code 16
+
+@ We don't have any ARM-only targets (i.e. v4), so we can't test the forced Thumb->ARM case
diff --git a/test/MC/ARM/directive-eabi_attribute.s b/test/MC/ARM/directive-eabi_attribute.s
index 74a51ab7279a..e848f774b34b 100644
--- a/test/MC/ARM/directive-eabi_attribute.s
+++ b/test/MC/ARM/directive-eabi_attribute.s
@@ -209,6 +209,12 @@
@ CHECK-OBJ-NEXT: Value: 0
@ CHECK-OBJ-NEXT: TagName: DIV_use
@ CHECK-OBJ-NEXT: Description: If Available
+ .eabi_attribute Tag_DSP_extension, 0
+@ CHECK: .eabi_attribute 46, 0
+@ CHECK-OBJ: Tag: 46
+@ CHECK-OBJ-NEXT: Value: 0
+@ CHECK-OBJ-NEXT: TagName: DSP_extension
+@ CHECK-OBJ-NEXT: Description: Not Permitted
.eabi_attribute Tag_nodefaults, 0
@ CHECK: .eabi_attribute 64, 0
@ CHECK-OBJ: Tag: 64
diff --git a/test/MC/ARM/eh-directive-pad-diagnostics.s b/test/MC/ARM/eh-directive-pad-diagnostics.s
index 707215962155..5f7ac56314cd 100644
--- a/test/MC/ARM/eh-directive-pad-diagnostics.s
+++ b/test/MC/ARM/eh-directive-pad-diagnostics.s
@@ -1,5 +1,5 @@
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
-@ RUN: FileCheck --check-prefix=CHECK < %t %s
+@ RUN: FileCheck < %t %s
@ Check the diagnostics for .pad directive.
diff --git a/test/MC/ARM/eh-directive-personality-diagnostics.s b/test/MC/ARM/eh-directive-personality-diagnostics.s
index 83e9c25f0bd7..d90204aa29dc 100644
--- a/test/MC/ARM/eh-directive-personality-diagnostics.s
+++ b/test/MC/ARM/eh-directive-personality-diagnostics.s
@@ -1,5 +1,5 @@
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
-@ RUN: FileCheck --check-prefix=CHECK < %t %s
+@ RUN: FileCheck < %t %s
@ Check the diagnostics for .personality directive.
diff --git a/test/MC/ARM/eh-directive-save-diagnostics.s b/test/MC/ARM/eh-directive-save-diagnostics.s
index 0e6d7404a3af..0fd5582e0498 100644
--- a/test/MC/ARM/eh-directive-save-diagnostics.s
+++ b/test/MC/ARM/eh-directive-save-diagnostics.s
@@ -1,5 +1,5 @@
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
-@ RUN: FileCheck --check-prefix=CHECK < %t %s
+@ RUN: FileCheck < %t %s
@ Check the diagnostics for .save directive
diff --git a/test/MC/ARM/eh-directive-setfp-diagnostics.s b/test/MC/ARM/eh-directive-setfp-diagnostics.s
index a5b8aa2386a5..384422c09247 100644
--- a/test/MC/ARM/eh-directive-setfp-diagnostics.s
+++ b/test/MC/ARM/eh-directive-setfp-diagnostics.s
@@ -1,5 +1,5 @@
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
-@ RUN: FileCheck --check-prefix=CHECK < %t %s
+@ RUN: FileCheck < %t %s
@ Check the diagnostics for .setfp directive.
diff --git a/test/MC/ARM/eh-directive-vsave-diagnostics.s b/test/MC/ARM/eh-directive-vsave-diagnostics.s
index 62787f37c27f..1108625d6e0c 100644
--- a/test/MC/ARM/eh-directive-vsave-diagnostics.s
+++ b/test/MC/ARM/eh-directive-vsave-diagnostics.s
@@ -1,5 +1,5 @@
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
-@ RUN: FileCheck --check-prefix=CHECK < %t %s
+@ RUN: FileCheck < %t %s
@ Check the diagnostics for .vsave directive
diff --git a/test/MC/ARM/elf-thumbfunc-reloc2.s b/test/MC/ARM/elf-thumbfunc-reloc2.s
index 54eedcd95756..18c13d90332b 100644
--- a/test/MC/ARM/elf-thumbfunc-reloc2.s
+++ b/test/MC/ARM/elf-thumbfunc-reloc2.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc %s -triple=thumbv7-linux-gnueabi -relocation-model=pic \
+// RUN: llvm-mc %s -triple=thumbv7-linux-gnueabi \
// RUN: -filetype=obj -o - | llvm-readobj -s -sd -r -t | \
// RUN: FileCheck %s
diff --git a/test/MC/ARM/error-location.s b/test/MC/ARM/error-location.s
index 112acf318ed3..58ec585a9289 100644
--- a/test/MC/ARM/error-location.s
+++ b/test/MC/ARM/error-location.s
@@ -16,9 +16,6 @@
@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a difference across sections
.word x_a - y_a
-@ CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: Cannot represent a subtraction with a weak symbol
- .word a - w
-
@ CHECK: <unknown>:0: error: expression could not be evaluated
.set v1, -undef
@@ -26,9 +23,6 @@
@ CHECK: <unknown>:0: error: Common symbol 'common' cannot be used in assignment expr
.set v3, common
-@ CHECK: <unknown>:0: error: Undefined temporary symbol
- .word 5f
-
@ CHECK: <unknown>:0: error: symbol 'undef' could not be evaluated in a subtraction expression
.set v2, a-undef
diff --git a/test/MC/ARM/fp-const-errors.s b/test/MC/ARM/fp-const-errors.s
index 2a68ddbe727e..a91799ba21d2 100644
--- a/test/MC/ARM/fp-const-errors.s
+++ b/test/MC/ARM/fp-const-errors.s
@@ -20,3 +20,6 @@ fconsts s1, #1.0
fconstd d2, #1.0
@ CHECK: error: invalid floating point immediate
+
+vmov.i64 d0, 0x8000000000000000
+@ CHECK: error: invalid operand for instruction
diff --git a/test/MC/ARM/fullfp16-neg.s b/test/MC/ARM/fullfp16-neg.s
new file mode 100644
index 000000000000..4ac4683428f9
--- /dev/null
+++ b/test/MC/ARM/fullfp16-neg.s
@@ -0,0 +1,189 @@
+@ RUN: not llvm-mc -triple armv8a-none-eabi -mattr=-fullfp16 -show-encoding < %s 2>&1 | FileCheck %s
+@ RUN: not llvm-mc -triple armv8a-none-eabi -mattr=-fullfp16,+thumb-mode -show-encoding < %s 2>&1 | FileCheck %s
+
+ vadd.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vsub.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vdiv.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vmul.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vnmul.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vmla.f16 s1, s2, s0
+@ CHECK: error: instruction requires:
+
+ vmls.f16 s1, s2, s0
+@ CHECK: error: instruction requires:
+
+ vnmla.f16 s1, s2, s0
+@ CHECK: error: instruction requires:
+
+ vnmls.f16 s1, s2, s0
+@ CHECK: error: instruction requires:
+
+ vcmp.f16 s0, s1
+@ CHECK: error: instruction requires:
+
+ vcmp.f16 s2, #0
+@ CHECK: error: instruction requires:
+
+ vcmpe.f16 s1, s0
+@ CHECK: error: instruction requires:
+
+ vcmpe.f16 s0, #0
+@ CHECK: error: instruction requires:
+
+ vabs.f16 s0, s0
+@ CHECK: error: instruction requires:
+
+ vneg.f16 s0, s0
+@ CHECK: error: instruction requires:
+
+ vsqrt.f16 s0, s0
+@ CHECK: error: instruction requires:
+
+ vcvt.f16.s32 s0, s0
+ vcvt.f16.u32 s0, s0
+ vcvt.s32.f16 s0, s0
+ vcvt.u32.f16 s0, s0
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+ vcvtr.s32.f16 s0, s1
+ vcvtr.u32.f16 s0, s1
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+ vcvt.f16.u32 s0, s0, #20
+ vcvt.f16.u16 s0, s0, #1
+ vcvt.f16.s32 s1, s1, #20
+ vcvt.f16.s16 s17, s17, #1
+ vcvt.u32.f16 s12, s12, #20
+ vcvt.u16.f16 s28, s28, #1
+ vcvt.s32.f16 s1, s1, #20
+ vcvt.s16.f16 s17, s17, #1
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+ vcvta.s32.f16 s2, s3
+@ CHECK: error: instruction requires:
+
+ vcvtn.s32.f16 s6, s23
+@ CHECK: error: instruction requires:
+
+ vcvtp.s32.f16 s0, s4
+@ CHECK: error: instruction requires:
+
+ vcvtm.s32.f16 s17, s8
+@ CHECK: error: instruction requires:
+
+ vcvta.u32.f16 s2, s3
+@ CHECK: error: instruction requires:
+
+ vcvtn.u32.f16 s6, s23
+@ CHECK: error: instruction requires:
+
+ vcvtp.u32.f16 s0, s4
+@ CHECK: error: instruction requires:
+
+ vcvtm.u32.f16 s17, s8
+@ CHECK: error: instruction requires:
+
+ vselge.f16 s4, s1, s23
+@ CHECK: error: instruction requires:
+
+ vselgt.f16 s0, s1, s0
+@ CHECK: error: instruction requires:
+
+ vseleq.f16 s30, s28, s23
+@ CHECK: error: instruction requires:
+
+ vselvs.f16 s21, s16, s14
+@ CHECK: error: instruction requires:
+
+ vmaxnm.f16 s5, s12, s0
+@ CHECK: error: instruction requires:
+
+ vminnm.f16 s0, s0, s12
+@ CHECK: error: instruction requires:
+
+ vrintz.f16 s3, s24
+@ CHECK: error: instruction requires:
+
+ vrintr.f16 s0, s9
+@ CHECK: error: instruction requires:
+
+ vrintx.f16 s10, s14
+@ CHECK: error: instruction requires:
+
+ vrinta.f16 s12, s1
+@ CHECK: error: instruction requires:
+
+ vrintn.f16 s12, s1
+@ CHECK: error: instruction requires:
+
+ vrintp.f16 s12, s1
+@ CHECK: error: instruction requires:
+
+ vrintm.f16 s12, s1
+@ CHECK: error: instruction requires:
+
+ vfma.f16 s2, s7, s4
+@ CHECK: error: instruction requires:
+
+ vfms.f16 s2, s7, s4
+@ CHECK: error: instruction requires:
+
+ vfnma.f16 s2, s7, s4
+@ CHECK: error: instruction requires:
+
+ vfnms.f16 s2, s7, s4
+@ CHECK: error: instruction requires:
+
+ vmovx.f16 s2, s5
+ vins.f16 s2, s5
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+
+ vldr.16 s1, [pc, #6]
+ vldr.16 s2, [pc, #510]
+ vldr.16 s3, [pc, #-510]
+ vldr.16 s4, [r4, #-18]
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+
+ vstr.16 s1, [pc, #6]
+ vstr.16 s2, [pc, #510]
+ vstr.16 s3, [pc, #-510]
+ vstr.16 s4, [r4, #-18]
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
+
+ vmov.f16 s0, #1.0
+@ CHECK: error: instruction requires:
+
+ vmov.f16 s1, r2
+ vmov.f16 r3, s4
+@ CHECK: error: instruction requires:
+@ CHECK: error: instruction requires:
diff --git a/test/MC/ARM/fullfp16.s b/test/MC/ARM/fullfp16.s
new file mode 100644
index 000000000000..bb7863c23539
--- /dev/null
+++ b/test/MC/ARM/fullfp16.s
@@ -0,0 +1,257 @@
+@ RUN: llvm-mc -triple armv8a-none-eabi -mattr=+fullfp16 -show-encoding < %s | FileCheck %s --check-prefix=ARM
+@ RUN: llvm-mc -triple armv8a-none-eabi -mattr=+fullfp16,+thumb-mode -show-encoding < %s | FileCheck %s --check-prefix=THUMB
+
+ vadd.f16 s0, s1, s0
+@ ARM: vadd.f16 s0, s1, s0 @ encoding: [0x80,0x09,0x30,0xee]
+@ THUMB: vadd.f16 s0, s1, s0 @ encoding: [0x30,0xee,0x80,0x09]
+
+ vsub.f16 s0, s1, s0
+@ ARM: vsub.f16 s0, s1, s0 @ encoding: [0xc0,0x09,0x30,0xee]
+@ THUMB: vsub.f16 s0, s1, s0 @ encoding: [0x30,0xee,0xc0,0x09]
+
+ vdiv.f16 s0, s1, s0
+@ ARM: vdiv.f16 s0, s1, s0 @ encoding: [0x80,0x09,0x80,0xee]
+@ THUMB: vdiv.f16 s0, s1, s0 @ encoding: [0x80,0xee,0x80,0x09]
+
+ vmul.f16 s0, s1, s0
+@ ARM: vmul.f16 s0, s1, s0 @ encoding: [0x80,0x09,0x20,0xee]
+@ THUMB: vmul.f16 s0, s1, s0 @ encoding: [0x20,0xee,0x80,0x09]
+
+ vnmul.f16 s0, s1, s0
+@ ARM: vnmul.f16 s0, s1, s0 @ encoding: [0xc0,0x09,0x20,0xee]
+@ THUMB: vnmul.f16 s0, s1, s0 @ encoding: [0x20,0xee,0xc0,0x09]
+
+ vmla.f16 s1, s2, s0
+@ ARM: vmla.f16 s1, s2, s0 @ encoding: [0x00,0x09,0x41,0xee]
+@ THUMB: vmla.f16 s1, s2, s0 @ encoding: [0x41,0xee,0x00,0x09]
+
+ vmls.f16 s1, s2, s0
+@ ARM: vmls.f16 s1, s2, s0 @ encoding: [0x40,0x09,0x41,0xee]
+@ THUMB: vmls.f16 s1, s2, s0 @ encoding: [0x41,0xee,0x40,0x09]
+
+ vnmla.f16 s1, s2, s0
+@ ARM: vnmla.f16 s1, s2, s0 @ encoding: [0x40,0x09,0x51,0xee]
+@ THUMB: vnmla.f16 s1, s2, s0 @ encoding: [0x51,0xee,0x40,0x09]
+
+ vnmls.f16 s1, s2, s0
+@ ARM: vnmls.f16 s1, s2, s0 @ encoding: [0x00,0x09,0x51,0xee]
+@ THUMB: vnmls.f16 s1, s2, s0 @ encoding: [0x51,0xee,0x00,0x09]
+
+ vcmp.f16 s0, s1
+@ ARM: vcmp.f16 s0, s1 @ encoding: [0x60,0x09,0xb4,0xee]
+@ THUMB: vcmp.f16 s0, s1 @ encoding: [0xb4,0xee,0x60,0x09]
+
+ vcmp.f16 s2, #0
+@ ARM: vcmp.f16 s2, #0 @ encoding: [0x40,0x19,0xb5,0xee]
+@ THUMB: vcmp.f16 s2, #0 @ encoding: [0xb5,0xee,0x40,0x19]
+
+ vcmpe.f16 s1, s0
+@ ARM: vcmpe.f16 s1, s0 @ encoding: [0xc0,0x09,0xf4,0xee]
+@ THUMB: vcmpe.f16 s1, s0 @ encoding: [0xf4,0xee,0xc0,0x09]
+
+ vcmpe.f16 s0, #0
+@ ARM: vcmpe.f16 s0, #0 @ encoding: [0xc0,0x09,0xb5,0xee]
+@ THUMB: vcmpe.f16 s0, #0 @ encoding: [0xb5,0xee,0xc0,0x09]
+
+ vabs.f16 s0, s0
+@ ARM: vabs.f16 s0, s0 @ encoding: [0xc0,0x09,0xb0,0xee]
+@ THUMB: vabs.f16 s0, s0 @ encoding: [0xb0,0xee,0xc0,0x09]
+
+ vneg.f16 s0, s0
+@ ARM: vneg.f16 s0, s0 @ encoding: [0x40,0x09,0xb1,0xee]
+@ THUMB: vneg.f16 s0, s0 @ encoding: [0xb1,0xee,0x40,0x09]
+
+ vsqrt.f16 s0, s0
+@ ARM: vsqrt.f16 s0, s0 @ encoding: [0xc0,0x09,0xb1,0xee]
+@ THUMB: vsqrt.f16 s0, s0 @ encoding: [0xb1,0xee,0xc0,0x09]
+
+ vcvt.f16.s32 s0, s0
+ vcvt.f16.u32 s0, s0
+ vcvt.s32.f16 s0, s0
+ vcvt.u32.f16 s0, s0
+@ ARM: vcvt.f16.s32 s0, s0 @ encoding: [0xc0,0x09,0xb8,0xee]
+@ ARM: vcvt.f16.u32 s0, s0 @ encoding: [0x40,0x09,0xb8,0xee]
+@ ARM: vcvt.s32.f16 s0, s0 @ encoding: [0xc0,0x09,0xbd,0xee]
+@ ARM: vcvt.u32.f16 s0, s0 @ encoding: [0xc0,0x09,0xbc,0xee]
+@ THUMB: vcvt.f16.s32 s0, s0 @ encoding: [0xb8,0xee,0xc0,0x09]
+@ THUMB: vcvt.f16.u32 s0, s0 @ encoding: [0xb8,0xee,0x40,0x09]
+@ THUMB: vcvt.s32.f16 s0, s0 @ encoding: [0xbd,0xee,0xc0,0x09]
+@ THUMB: vcvt.u32.f16 s0, s0 @ encoding: [0xbc,0xee,0xc0,0x09]
+
+ vcvtr.s32.f16 s0, s1
+ vcvtr.u32.f16 s0, s1
+@ ARM: vcvtr.s32.f16 s0, s1 @ encoding: [0x60,0x09,0xbd,0xee]
+@ ARM: vcvtr.u32.f16 s0, s1 @ encoding: [0x60,0x09,0xbc,0xee]
+@ THUMB: vcvtr.s32.f16 s0, s1 @ encoding: [0xbd,0xee,0x60,0x09]
+@ THUMB: vcvtr.u32.f16 s0, s1 @ encoding: [0xbc,0xee,0x60,0x09]
+
+ vcvt.f16.u32 s0, s0, #20
+ vcvt.f16.u16 s0, s0, #1
+ vcvt.f16.s32 s1, s1, #20
+ vcvt.f16.s16 s17, s17, #1
+ vcvt.u32.f16 s12, s12, #20
+ vcvt.u16.f16 s28, s28, #1
+ vcvt.s32.f16 s1, s1, #20
+ vcvt.s16.f16 s17, s17, #1
+@ ARM: vcvt.f16.u32 s0, s0, #20 @ encoding: [0xc6,0x09,0xbb,0xee]
+@ ARM: vcvt.f16.u16 s0, s0, #1 @ encoding: [0x67,0x09,0xbb,0xee]
+@ ARM: vcvt.f16.s32 s1, s1, #20 @ encoding: [0xc6,0x09,0xfa,0xee]
+@ ARM: vcvt.f16.s16 s17, s17, #1 @ encoding: [0x67,0x89,0xfa,0xee]
+@ ARM: vcvt.u32.f16 s12, s12, #20 @ encoding: [0xc6,0x69,0xbf,0xee]
+@ ARM: vcvt.u16.f16 s28, s28, #1 @ encoding: [0x67,0xe9,0xbf,0xee]
+@ ARM: vcvt.s32.f16 s1, s1, #20 @ encoding: [0xc6,0x09,0xfe,0xee]
+@ ARM: vcvt.s16.f16 s17, s17, #1 @ encoding: [0x67,0x89,0xfe,0xee]
+@ THUMB: vcvt.f16.u32 s0, s0, #20 @ encoding: [0xbb,0xee,0xc6,0x09]
+@ THUMB: vcvt.f16.u16 s0, s0, #1 @ encoding: [0xbb,0xee,0x67,0x09]
+@ THUMB: vcvt.f16.s32 s1, s1, #20 @ encoding: [0xfa,0xee,0xc6,0x09]
+@ THUMB: vcvt.f16.s16 s17, s17, #1 @ encoding: [0xfa,0xee,0x67,0x89]
+@ THUMB: vcvt.u32.f16 s12, s12, #20 @ encoding: [0xbf,0xee,0xc6,0x69]
+@ THUMB: vcvt.u16.f16 s28, s28, #1 @ encoding: [0xbf,0xee,0x67,0xe9]
+@ THUMB: vcvt.s32.f16 s1, s1, #20 @ encoding: [0xfe,0xee,0xc6,0x09]
+@ THUMB: vcvt.s16.f16 s17, s17, #1 @ encoding: [0xfe,0xee,0x67,0x89]
+
+ vcvta.s32.f16 s2, s3
+@ ARM: vcvta.s32.f16 s2, s3 @ encoding: [0xe1,0x19,0xbc,0xfe]
+@ THUMB: vcvta.s32.f16 s2, s3 @ encoding: [0xbc,0xfe,0xe1,0x19]
+
+ vcvtn.s32.f16 s6, s23
+@ ARM: vcvtn.s32.f16 s6, s23 @ encoding: [0xeb,0x39,0xbd,0xfe]
+@ THUMB: vcvtn.s32.f16 s6, s23 @ encoding: [0xbd,0xfe,0xeb,0x39]
+
+ vcvtp.s32.f16 s0, s4
+@ ARM: vcvtp.s32.f16 s0, s4 @ encoding: [0xc2,0x09,0xbe,0xfe]
+@ THUMB: vcvtp.s32.f16 s0, s4 @ encoding: [0xbe,0xfe,0xc2,0x09]
+
+ vcvtm.s32.f16 s17, s8
+@ ARM: vcvtm.s32.f16 s17, s8 @ encoding: [0xc4,0x89,0xff,0xfe]
+@ THUMB: vcvtm.s32.f16 s17, s8 @ encoding: [0xff,0xfe,0xc4,0x89]
+
+ vcvta.u32.f16 s2, s3
+@ ARM: vcvta.u32.f16 s2, s3 @ encoding: [0x61,0x19,0xbc,0xfe]
+@ THUMB: vcvta.u32.f16 s2, s3 @ encoding: [0xbc,0xfe,0x61,0x19]
+
+ vcvtn.u32.f16 s6, s23
+@ ARM: vcvtn.u32.f16 s6, s23 @ encoding: [0x6b,0x39,0xbd,0xfe]
+@ THUMB: vcvtn.u32.f16 s6, s23 @ encoding: [0xbd,0xfe,0x6b,0x39]
+
+ vcvtp.u32.f16 s0, s4
+@ ARM: vcvtp.u32.f16 s0, s4 @ encoding: [0x42,0x09,0xbe,0xfe]
+@ THUMB: vcvtp.u32.f16 s0, s4 @ encoding: [0xbe,0xfe,0x42,0x09]
+
+ vcvtm.u32.f16 s17, s8
+@ ARM: vcvtm.u32.f16 s17, s8 @ encoding: [0x44,0x89,0xff,0xfe]
+@ THUMB: vcvtm.u32.f16 s17, s8 @ encoding: [0xff,0xfe,0x44,0x89]
+
+ vselge.f16 s4, s1, s23
+@ ARM: vselge.f16 s4, s1, s23 @ encoding: [0xab,0x29,0x20,0xfe]
+@ THUMB: vselge.f16 s4, s1, s23 @ encoding: [0x20,0xfe,0xab,0x29]
+
+ vselgt.f16 s0, s1, s0
+@ ARM: vselgt.f16 s0, s1, s0 @ encoding: [0x80,0x09,0x30,0xfe]
+@ THUMB: vselgt.f16 s0, s1, s0 @ encoding: [0x30,0xfe,0x80,0x09]
+
+ vseleq.f16 s30, s28, s23
+@ ARM: vseleq.f16 s30, s28, s23 @ encoding: [0x2b,0xf9,0x0e,0xfe]
+@ THUMB: vseleq.f16 s30, s28, s23 @ encoding: [0x0e,0xfe,0x2b,0xf9]
+
+ vselvs.f16 s21, s16, s14
+@ ARM: vselvs.f16 s21, s16, s14 @ encoding: [0x07,0xa9,0x58,0xfe]
+@ THUMB: vselvs.f16 s21, s16, s14 @ encoding: [0x58,0xfe,0x07,0xa9]
+
+ vmaxnm.f16 s5, s12, s0
+@ ARM: vmaxnm.f16 s5, s12, s0 @ encoding: [0x00,0x29,0xc6,0xfe]
+@ THUMB: vmaxnm.f16 s5, s12, s0 @ encoding: [0xc6,0xfe,0x00,0x29]
+
+ vminnm.f16 s0, s0, s12
+@ ARM: vminnm.f16 s0, s0, s12 @ encoding: [0x46,0x09,0x80,0xfe]
+@ THUMB: vminnm.f16 s0, s0, s12 @ encoding: [0x80,0xfe,0x46,0x09]
+
+ vrintz.f16 s3, s24
+@ ARM: vrintz.f16 s3, s24 @ encoding: [0xcc,0x19,0xf6,0xee]
+@ THUMB: vrintz.f16 s3, s24 @ encoding: [0xf6,0xee,0xcc,0x19]
+
+ vrintr.f16 s0, s9
+@ ARM: vrintr.f16 s0, s9 @ encoding: [0x64,0x09,0xb6,0xee]
+@ THUMB: vrintr.f16 s0, s9 @ encoding: [0xb6,0xee,0x64,0x09]
+
+ vrintx.f16 s10, s14
+@ ARM: vrintx.f16 s10, s14 @ encoding: [0x47,0x59,0xb7,0xee]
+@ THUMB: vrintx.f16 s10, s14 @ encoding: [0xb7,0xee,0x47,0x59]
+
+ vrinta.f16 s12, s1
+@ ARM: vrinta.f16 s12, s1 @ encoding: [0x60,0x69,0xb8,0xfe]
+@ THUMB: vrinta.f16 s12, s1 @ encoding: [0xb8,0xfe,0x60,0x69]
+
+ vrintn.f16 s12, s1
+@ ARM: vrintn.f16 s12, s1 @ encoding: [0x60,0x69,0xb9,0xfe]
+@ THUMB: vrintn.f16 s12, s1 @ encoding: [0xb9,0xfe,0x60,0x69]
+
+ vrintp.f16 s12, s1
+@ ARM: vrintp.f16 s12, s1 @ encoding: [0x60,0x69,0xba,0xfe]
+@ THUMB: vrintp.f16 s12, s1 @ encoding: [0xba,0xfe,0x60,0x69]
+
+ vrintm.f16 s12, s1
+@ ARM: vrintm.f16 s12, s1 @ encoding: [0x60,0x69,0xbb,0xfe]
+@ THUMB: vrintm.f16 s12, s1 @ encoding: [0xbb,0xfe,0x60,0x69]
+
+ vfma.f16 s2, s7, s4
+@ ARM: vfma.f16 s2, s7, s4 @ encoding: [0x82,0x19,0xa3,0xee]
+@ THUMB: vfma.f16 s2, s7, s4 @ encoding: [0xa3,0xee,0x82,0x19]
+
+ vfms.f16 s2, s7, s4
+@ ARM: vfms.f16 s2, s7, s4 @ encoding: [0xc2,0x19,0xa3,0xee]
+@ THUMB: vfms.f16 s2, s7, s4 @ encoding: [0xa3,0xee,0xc2,0x19]
+
+ vfnma.f16 s2, s7, s4
+@ ARM: vfnma.f16 s2, s7, s4 @ encoding: [0xc2,0x19,0x93,0xee]
+@ THUMB: vfnma.f16 s2, s7, s4 @ encoding: [0x93,0xee,0xc2,0x19]
+
+ vfnms.f16 s2, s7, s4
+@ ARM: vfnms.f16 s2, s7, s4 @ encoding: [0x82,0x19,0x93,0xee]
+@ THUMB: vfnms.f16 s2, s7, s4 @ encoding: [0x93,0xee,0x82,0x19]
+
+ vmovx.f16 s2, s5
+ vins.f16 s2, s5
+@ ARM: vmovx.f16 s2, s5 @ encoding: [0x62,0x1a,0xb0,0xfe]
+@ ARM: vins.f16 s2, s5 @ encoding: [0xe2,0x1a,0xb0,0xfe]
+@ THUMB: vmovx.f16 s2, s5 @ encoding: [0xb0,0xfe,0x62,0x1a]
+@ THUMB: vins.f16 s2, s5 @ encoding: [0xb0,0xfe,0xe2,0x1a]
+
+
+ vldr.16 s1, [pc, #6]
+ vldr.16 s2, [pc, #510]
+ vldr.16 s3, [pc, #-510]
+ vldr.16 s4, [r4, #-18]
+@ ARM: vldr.16 s1, [pc, #6] @ encoding: [0x03,0x09,0xdf,0xed]
+@ ARM: vldr.16 s2, [pc, #510] @ encoding: [0xff,0x19,0x9f,0xed]
+@ ARM: vldr.16 s3, [pc, #-510] @ encoding: [0xff,0x19,0x5f,0xed]
+@ ARM: vldr.16 s4, [r4, #-18] @ encoding: [0x09,0x29,0x14,0xed]
+@ THUMB: vldr.16 s1, [pc, #6] @ encoding: [0xdf,0xed,0x03,0x09]
+@ THUMB: vldr.16 s2, [pc, #510] @ encoding: [0x9f,0xed,0xff,0x19]
+@ THUMB: vldr.16 s3, [pc, #-510] @ encoding: [0x5f,0xed,0xff,0x19]
+@ THUMB: vldr.16 s4, [r4, #-18] @ encoding: [0x14,0xed,0x09,0x29]
+
+
+ vstr.16 s1, [pc, #6]
+ vstr.16 s2, [pc, #510]
+ vstr.16 s3, [pc, #-510]
+ vstr.16 s4, [r4, #-18]
+@ ARM: vstr.16 s1, [pc, #6] @ encoding: [0x03,0x09,0xcf,0xed]
+@ ARM: vstr.16 s2, [pc, #510] @ encoding: [0xff,0x19,0x8f,0xed]
+@ ARM: vstr.16 s3, [pc, #-510] @ encoding: [0xff,0x19,0x4f,0xed]
+@ ARM: vstr.16 s4, [r4, #-18] @ encoding: [0x09,0x29,0x04,0xed]
+@ THUMB: vstr.16 s1, [pc, #6] @ encoding: [0xcf,0xed,0x03,0x09]
+@ THUMB: vstr.16 s2, [pc, #510] @ encoding: [0x8f,0xed,0xff,0x19]
+@ THUMB: vstr.16 s3, [pc, #-510] @ encoding: [0x4f,0xed,0xff,0x19]
+@ THUMB: vstr.16 s4, [r4, #-18] @ encoding: [0x04,0xed,0x09,0x29]
+
+ vmov.f16 s0, #1.0
+@ ARM: vmov.f16 s0, #1.000000e+00 @ encoding: [0x00,0x09,0xb7,0xee]
+@ THUMB: vmov.f16 s0, #1.000000e+00 @ encoding: [0xb7,0xee,0x00,0x09]
+
+ vmov.f16 s1, r2
+ vmov.f16 r3, s4
+@ ARM: vmov.f16 s1, r2 @ encoding: [0x90,0x29,0x00,0xee]
+@ ARM: vmov.f16 r3, s4 @ encoding: [0x10,0x39,0x12,0xee]
+@ THUMB: vmov.f16 s1, r2 @ encoding: [0x00,0xee,0x90,0x29]
+@ THUMB: vmov.f16 r3, s4 @ encoding: [0x12,0xee,0x10,0x39]
diff --git a/test/MC/ARM/inst-directive-emit.s b/test/MC/ARM/inst-directive-emit.s
index 63fdd15ee388..fbcc9c91d681 100644
--- a/test/MC/ARM/inst-directive-emit.s
+++ b/test/MC/ARM/inst-directive-emit.s
@@ -3,7 +3,7 @@
.syntax unified
.thumb
- .align 2
+ .p2align 2
.global emit_asm
.type emit_asm,%function
emit_asm:
@@ -11,7 +11,7 @@ emit_asm:
@ CHECK: .text
@ CHECK: .code 16
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .globl emit_asm
@ CHECK: .type emit_asm,%function
@ CHECK: emit_asm:
diff --git a/test/MC/ARM/ldr-pseudo-cond-darwin.s b/test/MC/ARM/ldr-pseudo-cond-darwin.s
new file mode 100644
index 000000000000..542b060d1e23
--- /dev/null
+++ b/test/MC/ARM/ldr-pseudo-cond-darwin.s
@@ -0,0 +1,55 @@
+@RUN: llvm-mc -triple armv7-base-apple-darwin %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv7-base-apple-darwin %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s
+
+@
+@ Check that ldr to constant pool correctly transfers the condition codes
+@
+@ simple test
+.section __TEXT,a,regular,pure_instructions
+@ CHECK-LABEL: f0:
+f0:
+ it eq
+ ldreq r0, =0x10002
+@ CHECK: ldreq r0, Ltmp0
+
+@ loading multiple constants
+.section __TEXT,b,regular,pure_instructions
+@ CHECK-LABEL: f1:
+f1:
+ ite eq
+ ldreq r0, =0x10003
+@ CHECK: ldreq r0, Ltmp1
+ ldrne r0, =0x10004
+@ CHECK: ldrne r0, Ltmp2
+
+@ transformation to mov
+.section __TEXT,d,regular,pure_instructions
+@ CHECK-LABEL: f2:
+f2:
+@ Can use the narrow Thumb mov as it does not set flags in an IT block
+ it eq
+ ldreq r1, =0x1
+@ CHECK: moveq r1, #1
+
+@ Must use the wide Thumb mov if the constant can't be represented
+ ite eq
+ ldreq r2, = 0x1f000000
+@ CHECK-ARM moveq r2, #520093696
+@ CHECK-THUMB2 moveq.w r2, #520093696
+ ldrne r3, = 0x00001234
+@ CHECK movwne r2, #4660
+
+@
+@ Constant Pools
+@
+@ CHECK: .section __TEXT,a,regular,pure_instructions
+@ CHECK: .p2align 2
+@ CHECK: Ltmp0:
+@ CHECK: .long 65538
+
+@ CHECK: .section __TEXT,b,regular,pure_instructions
+@ CHECK: .p2align 2
+@ CHECK: Ltmp1:
+@ CHECK: .long 65539
+@ CHECK: Ltmp2:
+@ CHECK: .long 65540
diff --git a/test/MC/ARM/ldr-pseudo-cond.s b/test/MC/ARM/ldr-pseudo-cond.s
new file mode 100644
index 000000000000..f8d17f6c46bf
--- /dev/null
+++ b/test/MC/ARM/ldr-pseudo-cond.s
@@ -0,0 +1,55 @@
+@RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s
+
+@
+@ Check that ldr to constant pool correctly transfers the condition codes
+@
+@ simple test
+.section a,"ax",%progbits
+@ CHECK-LABEL: f0:
+f0:
+ it eq
+ ldreq r0, =0x10002
+@ CHECK: ldreq r0, .Ltmp[[TMP0:[0-9]+]]
+
+@ loading multiple constants
+.section b,"ax",%progbits
+@ CHECK-LABEL: f1:
+f1:
+ ite eq
+ ldreq r0, =0x10003
+@ CHECK: ldreq r0, .Ltmp[[TMP1:[0-9]+]]
+ ldrne r0, =0x10004
+@ CHECK: ldrne r0, .Ltmp[[TMP2:[0-9]+]]
+
+@ transformation to mov
+.section c, "ax", %progbits
+@ CHECK-LABEL: f2:
+f2:
+@ Can use the narrow Thumb mov as it does not set flags in an IT block
+ it eq
+ ldreq r1, =0x1
+@ CHECK: moveq r1, #1
+
+@ Must use the wide Thumb mov if the constant can't be represented
+ ite eq
+ ldreq r2, = 0x1f000000
+@ CHECK-ARM moveq r2, #520093696
+@ CHECK-THUMB2 moveq.w r2, #520093696
+ ldrne r3, = 0x00001234
+@ CHECK movwne r2, #4660
+
+@
+@ Constant Pools
+@
+@ CHECK: .section a,"ax",%progbits
+@ CHECK: .p2align 2
+@ CHECK: .Ltmp[[TMP0]]
+@ CHECK: .long 65538
+
+@ CHECK: .section b,"ax",%progbits
+@ CHECK: .p2align 2
+@ CHECK: .Ltmp[[TMP1]]
+@ CHECK: .long 65539
+@ CHECK: .Ltmp[[TMP2]]
+@ CHECK: .long 65540
diff --git a/test/MC/ARM/ldr-pseudo-darwin.s b/test/MC/ARM/ldr-pseudo-darwin.s
index f04f533cfae7..4972cf389e0d 100644
--- a/test/MC/ARM/ldr-pseudo-darwin.s
+++ b/test/MC/ARM/ldr-pseudo-darwin.s
@@ -4,10 +4,11 @@
@ between darwin and linux. Any tests added here should have a matching
@ test added there.
-@RUN: llvm-mc -triple armv7-apple-darwin %s | FileCheck %s
-@RUN: llvm-mc -triple thumbv5-apple-darwin %s | FileCheck %s
-@RUN: llvm-mc -triple thumbv7-apple-darwin %s | FileCheck %s
-
+@RUN: llvm-mc -triple armv7-base-apple-darwin %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s
+@RUN: llvm-mc -triple armv5-base-apple-darwin %s | FileCheck --check-prefix=CHECK-ARMV5 --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv5-base-apple-darwin %s | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv7-base-apple-darwin %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv8m.base-base-apple-darwin %s | FileCheck --check-prefix=CHECK-BASELINE --check-prefix=CHECK %s
@
@ Check that large constants are converted to ldr from constant pool
@
@@ -15,20 +16,20 @@
.section __TEXT,b,regular,pure_instructions
@ CHECK-LABEL: f3:
f3:
- ldr r0, =0x10001
+ ldr r0, =0x10002
@ CHECK: ldr r0, Ltmp0
@ loading multiple constants
.section __TEXT,c,regular,pure_instructions
@ CHECK-LABEL: f4:
f4:
- ldr r0, =0x10002
+ ldr r0, =0x10003
@ CHECK: ldr r0, Ltmp1
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10003
+ ldr r0, =0x10004
@ CHECK: ldr r0, Ltmp2
adds r0, r0, #1
adds r0, r0, #1
@@ -37,7 +38,7 @@ f4:
.section __TEXT,d,regular,pure_instructions
@ CHECK-LABEL: f5:
f5:
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, Ltmp3
adds r0, r0, #1
adds r0, r0, #1
@@ -46,7 +47,7 @@ f5:
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, Ltmp4
adds r0, r0, #1
adds r0, r0, #1
@@ -117,7 +118,7 @@ f12:
f13:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x101
+ ldr r0, =0x10008
@ CHECK: ldr r0, Ltmp10
adds r0, r0, #1
adds r0, r0, #1
@@ -131,7 +132,7 @@ f13:
@ usage in macro
.macro useit_in_a_macro
- ldr r0, =0x10008
+ ldr r0, =0x10009
ldr r0, =baz
.endm
.section __TEXT,k,regular,pure_instructions
@@ -145,49 +146,141 @@ f14:
.section __TEXT,l,regular,pure_instructions
@ CHECK-LABEL: f15:
f15:
- ldr r0, =0x10001+8
+ ldr r0, =0x10001+9
@ CHECK: ldr r0, Ltmp14
adds r0, r0, #1
ldr r0, =bar+4
@ CHECK: ldr r0, Ltmp15
adds r0, r0, #1
+@ transformation to mov
+.section __TEXT,m,regular,pure_instructions
+@ CHECK-LABEL: f16:
+f16:
+
+@ Representable in ARM, and Thumb with support mov.w or movw
+ ldr r1, =0x1
+@ CHECK-ARM: mov r1, #1
+@ CHECK-ARMV5: mov r1, #1
+@ CHECK-THUMB: ldr r1, Ltmp16
+@ CHECK-THUMB2: mov.w r1, #1
+@ CHECK-BASELINE: movw r1, #1
+
+@ Immediate is representable in A1 and T2 modified immediate only not movw
+ ldr r2, =0x120000
+@ CHECK-ARM: mov r2, #1179648
+@ CHECK-ARMV5: mov r2, #1179648
+@ CHECK-THUMB: ldr r2, Ltmp17
+@ CHECK-THUMB2: mov.w r2, #1179648
+@ CHECK-BASELINE: ldr r2, Ltmp16
+
+@ Immediate can be represented only with movw instruction
+ ldr r3, =0x1234
+@ CHECK-ARM: movw r3, #4660
+@ CHECK-ARMV5: ldr r3, Ltmp16
+@ CHECK-THUMB: ldr r3, Ltmp18
+@ CHECK-THUMB2: movw r3, #4660
+@ CHECK-BASELINE: movw r3, #4660
+
+@ Immediate can be represented only with T2 modified immediate
+ ldr r4, =0xabababab
+@ CHECK-ARM: ldr r4, Ltmp16
+@ CHECK-ARMV5: ldr r4, Ltmp17
+@ CHECK-THUMB: ldr r4, Ltmp19
+@ CHECK-THUMB2: mov.w r4, #2880154539
+@ CHECK-BASELINE: ldr r4, Ltmp17
+
+@ Immediate can be represented only with A1 modified immediate
+ ldr r5, =0x1000000b
+@ CHECK-ARM: mov r5, #268435467
+@ CHECK-ARMV5: mov r5, #268435467
+@ CHECK-THUMB: ldr r5, Ltmp20
+@ CHECK-THUMB2: ldr r5, Ltmp16
+@ CHECK-BASELINE: ldr r5, Ltmp18
+
+@ Negative numbers can be used with MVN or in Thumb2 with modified immediate
+ ldr r6, =-1
+@ CHECK-ARM: mvn r6, #0
+@ CHECK-ARMV5: mvn r6, #0
+@ CHECK-THUMB: ldr r6, Ltmp21
+@ CHECK-THUMB2: mov.w r6, #-1
+@ CHECK-BASELINE: ldr r6, Ltmp19
+ ldr r7, =-0x100
+@ CHECK-ARM: mvn r7, #255
+@ CHECK-ARMV5: mvn r7, #255
+@ CHECK-THUMB: ldr r7, Ltmp22
+@ CHECK-THUMB2: mvn r7, #255
+@ CHECK-BASELINE: ldr r7, Ltmp20
+
+@ Constant expressions can be used
+ .equ expr, 0x10 + 0x10
+ ldr r0, = expr
+@ CHECK-ARM: mov r0, #32
+@ CHECK-ARMV5: mov r0, #32
+@ CHECK-THUMB: ldr r0, Ltmp23
+@ CHECK-THUMB2: mov.w r0, #32
+@ CHECK-BASELINE: movw r0, #32
+ ldr r1, = expr - 0x10
+@ CHECK-ARM: mov r1, #16
+@ CHECK-ARMV5: mov r1, #16
+@ CHECK-THUMB: ldr r1, Ltmp24
+@ CHECK-THUMB2: mov.w r1, #16
+@ CHECK-BASELINE: movw r1, #16
+
+@ usage of translation in macro
+.macro usemov_in_a_macro
+ ldr r2, =0x3
+ ldr r3, =expr
+.endm
+@ CHECK-LABEL: f17:
+f17:
+ usemov_in_a_macro
+@ CHECK-ARM: mov r2, #3
+@ CHECK-ARM: mov r3, #32
+@ CHECK-ARMV5: mov r2, #3
+@ CHECK-ARMV5: mov r3, #32
+@ CHECK-THUMB: ldr r2, Ltmp25
+@ CHECK-THUMB: ldr r3, Ltmp26
+@ CHECK-THUMB2: mov.w r2, #3
+@ CHECK-THUMB2: mov.w r3, #32
+@ CHECK-BASELINE: movw r2, #3
+@ CHECK-BASELINE: movw r3, #32
@
@ Constant Pools
@
@ CHECK: .section __TEXT,b,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp0:
-@ CHECK: .long 65537
+@ CHECK: .long 65538
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,c,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp1:
-@ CHECK: .long 65538
-@ CHECK: .align 2
-@ CHECK-LABEL: Ltmp2:
@ CHECK: .long 65539
+@ CHECK: .p2align 2
+@ CHECK-LABEL: Ltmp2:
+@ CHECK: .long 65540
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,d,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp3:
-@ CHECK: .long 65540
-@ CHECK: .align 2
+@ CHECK: .long 65541
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp4:
-@ CHECK: .long 65540
+@ CHECK: .long 65541
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,e,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp5:
@ CHECK: .long 65542
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp6:
@ CHECK: .long 65543
@ CHECK: .end_data_region
@@ -197,51 +290,51 @@ f15:
@ CHECK: .section __TEXT,g,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp7:
@ CHECK: .long foo
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,h,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp8:
@ CHECK: .long f5
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,i,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp9:
@ CHECK: .long f12
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,j,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp10:
-@ CHECK: .long 257
-@ CHECK: .align 2
+@ CHECK: .long 65544
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp11:
@ CHECK: .long bar
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,k,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp12:
-@ CHECK: .long 65544
-@ CHECK: .align 2
+@ CHECK: .long 65545
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp13:
@ CHECK: .long baz
@ CHECK: .end_data_region
@ CHECK: .section __TEXT,l,regular,pure_instructions
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp14:
-@ CHECK: .long 65545
-@ CHECK: .align 2
+@ CHECK: .long 65546
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp15:
@ CHECK: .long bar+4
@ CHECK: .end_data_region
diff --git a/test/MC/ARM/ldr-pseudo-obj-errors.s b/test/MC/ARM/ldr-pseudo-obj-errors.s
index dce88f058f83..a2884853cea3 100644
--- a/test/MC/ARM/ldr-pseudo-obj-errors.s
+++ b/test/MC/ARM/ldr-pseudo-obj-errors.s
@@ -10,8 +10,8 @@
.text
foo:
- ldr r0, =0x101
+ ldr r0, =0x12345678
.space 8000
@ CHECK: error: out of range pc-relative fixup value
-@ CHECK: ldr r0, =0x101
+@ CHECK: ldr r0, =0x12345678
@ CHECK: ^
diff --git a/test/MC/ARM/ldr-pseudo-unpredictable.s b/test/MC/ARM/ldr-pseudo-unpredictable.s
new file mode 100644
index 000000000000..b275dc71ab4b
--- /dev/null
+++ b/test/MC/ARM/ldr-pseudo-unpredictable.s
@@ -0,0 +1,21 @@
+@RUN: llvm-mc -triple armv5-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARM %s
+@RUN: not llvm-mc -triple thumbv7-unknown-linux-gnueabi %s 2>&1 | FileCheck --check-prefix=CHECK-SP %s
+@RUN: not llvm-mc -triple thumbv5-unknown-linux-gnueabi %s 2>&1 | FileCheck --check-prefix=CHECK-NONE %s
+@RUN: llvm-mc -triple armv5-base-apple-darwin %s | FileCheck --check-prefix=CHECK-DARWIN-ARM %s
+@RUN: not llvm-mc -triple thumbv7-base-apple-darwin %s 2>&1 | FileCheck --check-prefix=CHECK-DARWIN-SP %s
+@RUN: not llvm-mc -triple thumbv5-base.apple.darwin %s 2>&1 | FileCheck --check-prefix=CHECK-NONE %s
+
+@ We dont't do the transformation for rt = sp or pc
+@ as it is unpredictable for many of the MOV encondings
+ ldr pc, = 0x4
+@ CHECK-ARM: ldr pc, .Ltmp[[TMP0:[0-9]+]]
+@ CHECK-DARWIN-ARM: ldr pc, Ltmp0
+@ CHECK-SP: error: instruction requires: arm-mode
+@ CHECK-DARWIN-SP: error: instruction requires: arm-mode
+@ CHECK-NONE: error: instruction requires: arm-mode
+ ldr sp, = 0x8
+@ CHECK-ARM: ldr sp, .Ltmp[[TMP1:[0-9]+]]
+@ CHECK-DARWIN-ARM: ldr sp, Ltmp1
+@ CHECK-SP: ldr.w sp, .Ltmp[[TMP0:[0-9]+]]
+@ CHECK-DARWIN-SP: ldr.w sp, Ltmp0
+@ CHECK-NONE: error: instruction requires: arm-mode
diff --git a/test/MC/ARM/ldr-pseudo.s b/test/MC/ARM/ldr-pseudo.s
index df0d88a9a56e..2358c4832956 100644
--- a/test/MC/ARM/ldr-pseudo.s
+++ b/test/MC/ARM/ldr-pseudo.s
@@ -4,10 +4,11 @@
@ between darwin and linux. Any tests added here should have a matching
@ test added there.
-@RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck %s
-@RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck %s
-@RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck %s
-
+@RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARM --check-prefix=CHECK %s
+@RUN: llvm-mc -triple armv5-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-ARMV5 --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-THUMB --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-THUMB2 --check-prefix=CHECK %s
+@RUN: llvm-mc -triple thumbv8m.base-unknown-linux-gnueabi %s | FileCheck --check-prefix=CHECK-BASELINE --check-prefix=CHECK %s
@
@ Check that large constants are converted to ldr from constant pool
@
@@ -15,20 +16,20 @@
.section b,"ax",%progbits
@ CHECK-LABEL: f3:
f3:
- ldr r0, =0x10001
+ ldr r0, =0x10002
@ CHECK: ldr r0, .Ltmp[[TMP0:[0-9]+]]
@ loading multiple constants
.section c,"ax",%progbits
@ CHECK-LABEL: f4:
f4:
- ldr r0, =0x10002
+ ldr r0, =0x10003
@ CHECK: ldr r0, .Ltmp[[TMP1:[0-9]+]]
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10003
+ ldr r0, =0x10004
@ CHECK: ldr r0, .Ltmp[[TMP2:[0-9]+]]
adds r0, r0, #1
adds r0, r0, #1
@@ -37,7 +38,7 @@ f4:
.section d,"ax",%progbits
@ CHECK-LABEL: f5:
f5:
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, .Ltmp[[TMP3:[0-9]+]]
adds r0, r0, #1
adds r0, r0, #1
@@ -46,7 +47,7 @@ f5:
adds r0, r0, #1
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, .Ltmp[[TMP4:[0-9]+]]
adds r0, r0, #1
adds r0, r0, #1
@@ -117,7 +118,7 @@ f12:
f13:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x101
+ ldr r0, =0x10008
@ CHECK: ldr r0, .Ltmp[[TMP10:[0-9]+]]
adds r0, r0, #1
adds r0, r0, #1
@@ -131,7 +132,7 @@ f13:
@ usage in macro
.macro useit_in_a_macro
- ldr r0, =0x10008
+ ldr r0, =0x10009
ldr r0, =baz
.endm
.section k,"ax",%progbits
@@ -145,37 +146,129 @@ f14:
.section l, "ax", %progbits
@ CHECK-LABEL: f15:
f15:
- ldr r0, =0x10001+8
+ ldr r0, =0x10001+9
@ CHECK: ldr r0, .Ltmp[[TMP14:[0-9]+]]
adds r0, r0, #1
ldr r0, =bar+4
@ CHECK: ldr r0, .Ltmp[[TMP15:[0-9]+]]
adds r0, r0, #1
+@ transformation to mov
+.section m, "ax", %progbits
+@ CHECK-LABEL: f16:
+f16:
+
+@ Representable in ARM, and Thumb with support mov.w or movw
+ ldr r1, =0x1
+@ CHECK-ARM: mov r1, #1
+@ CHECK-ARMV5: mov r1, #1
+@ CHECK-THUMB: ldr r1, .Ltmp[[TMP16:[0-9]+]]
+@ CHECK-THUMB2: mov.w r1, #1
+@ CHECK-BASELINE: movw r1, #1
+
+@ Immediate is representable in A1 and T2 modified immediate only not movw
+ ldr r2, =0x120000
+@ CHECK-ARM: mov r2, #1179648
+@ CHECK-ARMV5: mov r2, #1179648
+@ CHECK-THUMB: ldr r2, .Ltmp[[TMP17:[0-9]+]]
+@ CHECK-THUMB2: mov.w r2, #1179648
+@ CHECK-BASELINE: ldr r2, .Ltmp[[TMP16:[0-9]+]]
+
+@ Immediate can be represented only with movw instruction
+ ldr r3, =0x1234
+@ CHECK-ARM: movw r3, #4660
+@ CHECK-ARMV5: ldr r3, .Ltmp[[TMP16:[0-9]+]]
+@ CHECK-THUMB: ldr r3, .Ltmp[[TMP18:[0-9]+]]
+@ CHECK-THUMB2: movw r3, #4660
+@ CHECK-BASELINE: movw r3, #4660
+
+@ Immediate can be represented only with T2 modified immediate
+ ldr r4, =0xabababab
+@ CHECK-ARM: ldr r4, .Ltmp[[TMP16:[0-9]+]]
+@ CHECK-ARMV5: ldr r4, .Ltmp[[TMP17:[0-9]+]]
+@ CHECK-THUMB: ldr r4, .Ltmp[[TMP19:[0-9]+]]
+@ CHECK-THUMB2: mov.w r4, #2880154539
+@ CHECK-BASELINE: ldr r4, .Ltmp[[TMP17:[0-9]+]]
+
+@ Immediate can be represented only with A1 modified immediate
+ ldr r5, =0x1000000b
+@ CHECK-ARM: mov r5, #268435467
+@ CHECK-ARMV5: mov r5, #268435467
+@ CHECK-THUMB: ldr r5, .Ltmp[[TMP20:[0-9]+]]
+@ CHECK-THUMB2: ldr r5, .Ltmp[[TMP16:[0-9]+]]
+@ CHECK-BASELINE: ldr r5, .Ltmp[[TMP18:[0-9]+]]
+
+@ Negative numbers can be used with MVN or in Thumb2 with modified immediate
+ ldr r6, =-1
+@ CHECK-ARM: mvn r6, #0
+@ CHECK-ARMV5: mvn r6, #0
+@ CHECK-THUMB: ldr r6, .Ltmp[[TMP21:[0-9]+]]
+@ CHECK-THUMB2: mov.w r6, #-1
+@ CHECK-BASELINE: ldr r6, .Ltmp[[TMP19:[0-9]+]]
+ ldr r7, =-0x100
+@ CHECK-ARM: mvn r7, #255
+@ CHECK-ARMV5: mvn r7, #255
+@ CHECK-THUMB: ldr r7, .Ltmp[[TMP22:[0-9]+]]
+@ CHECK-THUMB2: mvn r7, #255
+@ CHECK-BASELINE: ldr r7, .Ltmp[[TMP20:[0-9]+]]
+
+@ Constant expressions can be used
+ .equ expr, 0x10 + 0x10
+ ldr r0, = expr
+@ CHECK-ARM: mov r0, #32
+@ CHECK-ARMV5: mov r0, #32
+@ CHECK-THUMB: ldr r0, .Ltmp[[TMP23:[0-9]+]]
+@ CHECK-THUMB2: mov.w r0, #32
+@ CHECK-BASELINE: movw r0, #32
+ ldr r1, = expr - 0x10
+@ CHECK-ARM: mov r1, #16
+@ CHECK-ARMV5: mov r1, #16
+@ CHECK-THUMB: ldr r1, .Ltmp[[TMP24:[0-9]+]]
+@ CHECK-THUMB2: mov.w r1, #16
+@ CHECK-BASELINE: movw r1, #16
+
+@ usage of translation in macro
+.macro usemov_in_a_macro
+ ldr r2, =0x3
+ ldr r3, =expr
+.endm
+@ CHECK-LABEL: f17:
+f17:
+ usemov_in_a_macro
+@ CHECK-ARM: mov r2, #3
+@ CHECK-ARM: mov r3, #32
+@ CHECK-ARMV5: mov r2, #3
+@ CHECK-ARMV5: mov r3, #32
+@ CHECK-THUMB: ldr r2, .Ltmp[[TMP25:[0-9]+]]
+@ CHECK-THUMB: ldr r3, .Ltmp[[TMP26:[0-9]+]]
+@ CHECK-THUMB2: mov.w r2, #3
+@ CHECK-THUMB2: mov.w r3, #32
+@ CHECK-BASELINE: movw r2, #3
+@ CHECK-BASELINE: movw r3, #32
@
@ Constant Pools
@
@ CHECK: .section b,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP0]]
-@ CHECK: .long 65537
+@ CHECK: .long 65538
@ CHECK: .section c,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP1]]
-@ CHECK: .long 65538
-@ CHECK: .Ltmp[[TMP2]]
@ CHECK: .long 65539
+@ CHECK: .Ltmp[[TMP2]]
+@ CHECK: .long 65540
@ CHECK: .section d,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP3]]
-@ CHECK: .long 65540
+@ CHECK: .long 65541
@ CHECK: .Ltmp[[TMP4]]
-@ CHECK: .long 65540
+@ CHECK: .long 65541
@ CHECK: .section e,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP5]]
@ CHECK: .long 65542
@ CHECK: .Ltmp[[TMP6]]
@@ -185,37 +278,37 @@ f15:
@ CHECK-NOT: .section f,"ax",%progbits
@ CHECK: .section g,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP7]]
@ CHECK: .long foo
@ CHECK: .section h,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP8]]
@ CHECK: .long f5
@ CHECK: .section i,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP9]]
@ CHECK: .long f12
@ CHECK: .section j,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP10]]
-@ CHECK: .long 257
+@ CHECK: .long 65544
@ CHECK: .Ltmp[[TMP11]]
@ CHECK: .long bar
@ CHECK: .section k,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP12]]
-@ CHECK: .long 65544
+@ CHECK: .long 65545
@ CHECK: .Ltmp[[TMP13]]
@ CHECK: .long baz
@ CHECK: .section l,"ax",%progbits
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP14]]
-@ CHECK: .long 65545
+@ CHECK: .long 65546
@ CHECK: .Ltmp[[TMP15]]
@ CHECK: .long bar+4
diff --git a/test/MC/ARM/load-store-acquire-release-v8-thumb.s b/test/MC/ARM/load-store-acquire-release-v8-thumb.s
index e34a26387357..be8d3c324e68 100644
--- a/test/MC/ARM/load-store-acquire-release-v8-thumb.s
+++ b/test/MC/ARM/load-store-acquire-release-v8-thumb.s
@@ -9,10 +9,10 @@
@ CHECK: ldaexh r2, [r5] @ encoding: [0xd5,0xe8,0xdf,0x2f]
@ CHECK: ldaex r1, [r7] @ encoding: [0xd7,0xe8,0xef,0x1f]
@ CHECK: ldaexd r6, r7, [r8] @ encoding: [0xd8,0xe8,0xff,0x67]
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
stlexb r1, r3, [r4]
stlexh r4, r2, [r5]
@@ -22,10 +22,10 @@
@ CHECK: stlexh r4, r2, [r5] @ encoding: [0xc5,0xe8,0xd4,0x2f]
@ CHECK: stlex r2, r1, [r7] @ encoding: [0xc7,0xe8,0xe2,0x1f]
@ CHECK: stlexd r6, r2, r3, [r8] @ encoding: [0xc8,0xe8,0xf6,0x23]
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
lda r5, [r6]
ldab r5, [r6]
@@ -33,9 +33,9 @@
@ CHECK: lda r5, [r6] @ encoding: [0xd6,0xe8,0xaf,0x5f]
@ CHECK: ldab r5, [r6] @ encoding: [0xd6,0xe8,0x8f,0x5f]
@ CHECK: ldah r12, [r9] @ encoding: [0xd9,0xe8,0x9f,0xcf]
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
stl r3, [r0]
stlb r2, [r1]
@@ -43,6 +43,6 @@
@ CHECK: stl r3, [r0] @ encoding: [0xc0,0xe8,0xaf,0x3f]
@ CHECK: stlb r2, [r1] @ encoding: [0xc1,0xe8,0x8f,0x2f]
@ CHECK: stlh r2, [r3] @ encoding: [0xc3,0xe8,0x9f,0x2f]
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
-@ CHECK-V7: error: instruction requires: armv8
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
+@ CHECK-V7: error: instruction requires: acquire/release
diff --git a/test/MC/ARM/load-store-acquire-release-v8.s b/test/MC/ARM/load-store-acquire-release-v8.s
index bc55364e684b..273519e050b1 100644
--- a/test/MC/ARM/load-store-acquire-release-v8.s
+++ b/test/MC/ARM/load-store-acquire-release-v8.s
@@ -9,10 +9,10 @@
@ CHECK: ldaexh r2, [r5] @ encoding: [0x9f,0x2e,0xf5,0xe1]
@ CHECK: ldaex r1, [r7] @ encoding: [0x9f,0x1e,0x97,0xe1]
@ CHECK: ldaexd r6, r7, [r8] @ encoding: [0x9f,0x6e,0xb8,0xe1]
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
stlexb r1, r3, [r4]
stlexh r4, r2, [r5]
@@ -22,10 +22,10 @@
@ CHECK: stlexh r4, r2, [r5] @ encoding: [0x92,0x4e,0xe5,0xe1]
@ CHECK: stlex r2, r1, [r7] @ encoding: [0x91,0x2e,0x87,0xe1]
@ CHECK: stlexd r6, r2, r3, [r8] @ encoding: [0x92,0x6e,0xa8,0xe1]
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
lda r5, [r6]
ldab r5, [r6]
@@ -33,9 +33,9 @@
@ CHECK: lda r5, [r6] @ encoding: [0x9f,0x5c,0x96,0xe1]
@ CHECK: ldab r5, [r6] @ encoding: [0x9f,0x5c,0xd6,0xe1]
@ CHECK: ldah r12, [r9] @ encoding: [0x9f,0xcc,0xf9,0xe1]
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
stl r3, [r0]
stlb r2, [r1]
@@ -43,6 +43,6 @@
@ CHECK: stl r3, [r0] @ encoding: [0x93,0xfc,0x80,0xe1]
@ CHECK: stlb r2, [r1] @ encoding: [0x92,0xfc,0xc1,0xe1]
@ CHECK: stlh r2, [r3] @ encoding: [0x92,0xfc,0xe3,0xe1]
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
-@ CHECK-V7: instruction requires: armv8
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
+@ CHECK-V7: instruction requires: acquire/release
diff --git a/test/MC/ARM/ltorg-darwin.s b/test/MC/ARM/ltorg-darwin.s
index 3402f4053cb4..e62aceaa6d27 100644
--- a/test/MC/ARM/ltorg-darwin.s
+++ b/test/MC/ARM/ltorg-darwin.s
@@ -12,7 +12,7 @@
.section __TEXT,a,regular,pure_instructions
@ CHECK-LABEL: f2:
f2:
- ldr r0, =0x10001
+ ldr r0, =0x10002
@ CHECK: ldr r0, Ltmp0
adds r0, r0, #1
adds r0, r0, #1
@@ -20,9 +20,9 @@ f2:
.ltorg
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp0:
-@ CHECK: .long 65537
+@ CHECK: .long 65538
@ CHECK: .end_data_region
@ CHECK-LABEL: f3:
@@ -34,7 +34,7 @@ f3:
.section __TEXT,b,regular,pure_instructions
@ CHECK-LABEL: f4:
f4:
- ldr r0, =0x10002
+ ldr r0, =0x10003
@ CHECK: ldr r0, Ltmp1
adds r0, r0, #1
adds r0, r0, #1
@@ -42,25 +42,25 @@ f4:
.ltorg
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp1:
-@ CHECK: .long 65538
+@ CHECK: .long 65539
@ CHECK: .end_data_region
@ CHECK-LABEL: f5:
f5:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10003
+ ldr r0, =0x10004
@ CHECK: ldr r0, Ltmp2
adds r0, r0, #1
b f6
.ltorg
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp2:
-@ CHECK: .long 65539
+@ CHECK: .long 65540
@ CHECK: .end_data_region
@ CHECK-LABEL: f6:
@@ -93,7 +93,7 @@ f9:
.ltorg
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp3:
@ CHECK: .long bar
@ CHECK: .end_data_region
@@ -109,21 +109,21 @@ f10:
f11:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, Ltmp4
b f12
.ltorg
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp4:
-@ CHECK: .long 65540
+@ CHECK: .long 65541
@ CHECK: .end_data_region
@ CHECK-LABEL: f12:
f12:
adds r0, r0, #1
- ldr r0, =0x10005
+ ldr r0, =0x10006
@ CHECK: ldr r0, Ltmp5
.section __TEXT,f,regular,pure_instructions
@@ -142,9 +142,9 @@ f13:
@ CHECK: .section __TEXT,e,regular,pure_instructions
@ constant pool
@ CHECK: .data_region
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: Ltmp5:
-@ CHECK: .long 65541
+@ CHECK: .long 65542
@ CHECK: .end_data_region
@ should not have a constant pool at end of section with empty constant pools
diff --git a/test/MC/ARM/ltorg.s b/test/MC/ARM/ltorg.s
index e28862cb2a47..a19694c10ec2 100644
--- a/test/MC/ARM/ltorg.s
+++ b/test/MC/ARM/ltorg.s
@@ -12,16 +12,16 @@
.section a,"ax",%progbits
@ CHECK-LABEL: f2:
f2:
- ldr r0, =0x10001
+ ldr r0, =0x10002
@ CHECK: ldr r0, .Ltmp[[TMP0:[0-9+]]]
adds r0, r0, #1
adds r0, r0, #1
b f3
.ltorg
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP0]]
-@ CHECK: .long 65537
+@ CHECK: .long 65538
@ CHECK-LABEL: f3:
f3:
@@ -32,30 +32,30 @@ f3:
.section b,"ax",%progbits
@ CHECK-LABEL: f4:
f4:
- ldr r0, =0x10002
+ ldr r0, =0x10003
@ CHECK: ldr r0, .Ltmp[[TMP1:[0-9+]]]
adds r0, r0, #1
adds r0, r0, #1
b f5
.ltorg
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP1]]
-@ CHECK: .long 65538
+@ CHECK: .long 65539
@ CHECK-LABEL: f5:
f5:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10003
+ ldr r0, =0x10004
@ CHECK: ldr r0, .Ltmp[[TMP2:[0-9+]]]
adds r0, r0, #1
b f6
.ltorg
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP2]]
-@ CHECK: .long 65539
+@ CHECK: .long 65540
@ CHECK-LABEL: f6:
f6:
@@ -86,7 +86,7 @@ f9:
b f10
.ltorg
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP3]]
@ CHECK: .long bar
@@ -101,18 +101,18 @@ f10:
f11:
adds r0, r0, #1
adds r0, r0, #1
- ldr r0, =0x10004
+ ldr r0, =0x10005
@ CHECK: ldr r0, .Ltmp[[TMP4:[0-9+]]]
b f12
.ltorg
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP4]]
-@ CHECK: .long 65540
+@ CHECK: .long 65541
@ CHECK-LABEL: f12:
f12:
adds r0, r0, #1
- ldr r0, =0x10005
+ ldr r0, =0x10006
@ CHECK: ldr r0, .Ltmp[[TMP5:[0-9+]]]
.section f,"ax",%progbits
@@ -130,9 +130,9 @@ f13:
@ should have a non-empty constant pool at end of this section
@ CHECK: .section e,"ax",%progbits
@ constant pool
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK: .Ltmp[[TMP5]]
-@ CHECK: .long 65541
+@ CHECK: .long 65542
@ should not have a constant pool at end of section with empty constant pools
@ CHECK-NOT: .section f,"ax",%progbits
diff --git a/test/MC/ARM/macho-movwt.s b/test/MC/ARM/macho-movwt.s
new file mode 100644
index 000000000000..6f067cd86dc1
--- /dev/null
+++ b/test/MC/ARM/macho-movwt.s
@@ -0,0 +1,66 @@
+@ RUN: llvm-mc -triple thumbv7s-apple-ios9.0 %s -filetype obj -o %t.o
+@ RUN: llvm-readobj -r %t.o | FileCheck %s
+
+ .thumb
+ movw r0, :lower16:_x
+ movt r0, :upper16:_x
+
+ movw r0, :lower16:_x+4
+ movt r0, :upper16:_x+4
+
+ movw r0, :lower16:_x+0x10000
+ movt r0, :upper16:_x+0x10000
+
+ .arm
+ movw r0, :lower16:_x
+ movt r0, :upper16:_x
+
+ movw r0, :lower16:_x+4
+ movt r0, :upper16:_x+4
+
+ movw r0, :lower16:_x+0x10000
+ movt r0, :upper16:_x+0x10000
+
+@ Enter the bizarre world of MachO relocations. First, they're in reverse order
+@ to the actual instructions
+
+@ First column on the second line is the "other half" of the addend, its partner
+@ being in the instruction itself.
+
+@ Third column identifies ARM/Thumb & HI/LO.
+
+@ CHECK: 0x2C 0 1 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 1 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x28 0 0 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x1 0 0 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x24 0 1 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x4 0 1 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x20 0 0 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 0 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x1C 0 1 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 1 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x18 0 0 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 0 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x14 0 3 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 3 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x10 0 2 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x1 0 2 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0xC 0 3 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x4 0 3 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x8 0 2 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 2 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x4 0 3 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 3 0 ARM_RELOC_PAIR 0 -
+
+@ CHECK: 0x0 0 2 1 ARM_RELOC_HALF 0 _x
+@ CHECK: 0x0 0 2 0 ARM_RELOC_PAIR 0 -
diff --git a/test/MC/ARM/misaligned-blx.s b/test/MC/ARM/misaligned-blx.s
new file mode 100644
index 000000000000..b3cef0275280
--- /dev/null
+++ b/test/MC/ARM/misaligned-blx.s
@@ -0,0 +1,40 @@
+@ RUN: not llvm-mc -triple thumbv7-apple-ios -filetype=obj %s -o /dev/null 2>&1 | FileCheck %s
+ @ Size: 2 bytes
+ .thumb_func _f1
+ .thumb
+ .globl _f1
+_f1:
+ bx lr
+
+ @ A misalgined ARM destination.
+ .arm
+ .globl _misaligned
+_misaligned:
+ bx lr
+
+ @ And a properly aligned one.
+ .globl _aligned
+ .p2align 2
+ .arm
+_aligned:
+ bx lr
+
+ @ Align this Thumb function so we can predict the outcome of
+ @ "Align(PC, 4)" during blx operation.
+ .thumb_func _test
+ .thumb
+ .p2align 2
+ .globl _test
+_test:
+ blx _misaligned @ PC=0 (mod 4)
+ movs r0, r0
+ blx _misaligned @ PC=2 (mod 4)
+ movs r0, r0
+ blx _aligned @ PC=0 (mod 4)
+ movs r0, r0
+ blx _aligned @ PC=2 (mod 4)
+
+@ CHECK: error: misaligned ARM call destination
+@ CHECK: blx _misaligned
+@ CHECK: error: misaligned ARM call destination
+@ CHECK: blx _misaligned
diff --git a/test/MC/ARM/modified-immediate-fixup-error.s b/test/MC/ARM/modified-immediate-fixup-error.s
new file mode 100644
index 000000000000..2d111751cc1f
--- /dev/null
+++ b/test/MC/ARM/modified-immediate-fixup-error.s
@@ -0,0 +1,14 @@
+@ PR24346
+@ RUN: not llvm-mc -triple=arm-linux-gnueabi -filetype=obj < %s 2>&1 | FileCheck %s
+
+ .data
+ .align 8
+L2:
+ .word 0
+ .align 8
+ .byte 0
+L1:
+
+ .text
+@ CHECK: error: out of range immediate fixup value
+ add r0, r0, #(L1 - L2)
diff --git a/test/MC/ARM/modified-immediate-fixup.s b/test/MC/ARM/modified-immediate-fixup.s
new file mode 100644
index 000000000000..288814b4009e
--- /dev/null
+++ b/test/MC/ARM/modified-immediate-fixup.s
@@ -0,0 +1,15 @@
+@ PR24346
+@ RUN: llvm-mc < %s -triple=arm-linux-gnueabi -filetype=obj -o - \
+@ RUN: | llvm-objdump --disassemble -arch=arm - | FileCheck %s
+
+ .data
+ .align 8
+L2:
+ .word 0
+ .align 8
+ .word 0
+L1:
+
+ .text
+@ CHECK: add r0, r0, #260
+ add r0, r0, #(L1 - L2)
diff --git a/test/MC/ARM/not-armv4.s b/test/MC/ARM/not-armv4.s
index a1ba611a61e4..d25281a4bc47 100644
--- a/test/MC/ARM/not-armv4.s
+++ b/test/MC/ARM/not-armv4.s
@@ -6,3 +6,8 @@ clz r4,r9
@ CHECK: error: instruction requires: armv6t2
rbit r4,r9
+
+@ CHECK: error: instruction requires: armv6t2
+movw r4,#0x1234
+@ CHECK: error: instruction requires: armv6t2
+mov r4,#0x1234
diff --git a/test/MC/ARM/pool.s b/test/MC/ARM/pool.s
index 782f67e1fea5..c87d37f9efd0 100644
--- a/test/MC/ARM/pool.s
+++ b/test/MC/ARM/pool.s
@@ -2,7 +2,7 @@
.syntax unified
- .align 2
+ .p2align 2
.global pool
.type pool,%function
pool:
@@ -12,7 +12,7 @@ pool:
@ CHECK-LABEL: pool
@ CHECK: ldr r0, .Ltmp0
-@ CHECK: .align 2
+@ CHECK: .p2align 2
@ CHECK-LABEL: .Ltmp0:
@ CHECK: .long 3126770193
diff --git a/test/MC/ARM/ras-extension.s b/test/MC/ARM/ras-extension.s
new file mode 100644
index 000000000000..019d84ca080d
--- /dev/null
+++ b/test/MC/ARM/ras-extension.s
@@ -0,0 +1,6 @@
+@ RUN: llvm-mc -triple armv8a-none-eabi -mattr=+ras -show-encoding %s | FileCheck %s --check-prefix=ARM
+@ RUN: llvm-mc -triple thumbv8a-none-eabi -mattr=+ras -show-encoding %s | FileCheck %s --check-prefix=THUMB
+
+ esb
+@ ARM: esb @ encoding: [0x10,0xf0,0x20,0xe3]
+@ THUMB: esb.w @ encoding: [0xaf,0xf3,0x10,0x80]
diff --git a/test/MC/ARM/symbol-variants.s b/test/MC/ARM/symbol-variants.s
index af1bc07b5e1a..c54190587a27 100644
--- a/test/MC/ARM/symbol-variants.s
+++ b/test/MC/ARM/symbol-variants.s
@@ -84,8 +84,14 @@ bl f05(plt)
@ CHECK: 60 R_ARM_TLS_GOTDESC f24
@ CHECK: 64 R_ARM_TLS_GOTDESC f25
+@ prel31 (relative)
+.word f26(PREL31)-.
+.word f27(prel31)-.
+@CHECK: 68 R_ARM_PREL31 f26
+@CHECK: 6c R_ARM_PREL31 f27
+
@ got_prel
-.word f26(GOT_PREL) + (. - .Lsym)
- ldr r3, =f27(GOT_PREL)
-@ CHECK: 68 R_ARM_GOT_PREL f26
-@ CHECK: 70 R_ARM_GOT_PREL f27
+.word f28(GOT_PREL) + (. - .Lsym)
+ ldr r3, =f29(GOT_PREL)
+@ CHECK: 70 R_ARM_GOT_PREL f28
+@ CHECK: 78 R_ARM_GOT_PREL f29
diff --git a/test/MC/ARM/thumb-branch-errors.s b/test/MC/ARM/thumb-branch-errors.s
new file mode 100644
index 000000000000..82525c15a54a
--- /dev/null
+++ b/test/MC/ARM/thumb-branch-errors.s
@@ -0,0 +1,22 @@
+@ RUN: not llvm-mc -triple=thumbv7-apple-darwin < %s 2>&1 | FileCheck %s
+
+@------------------------------------------------------------------------------
+@ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2).
+@------------------------------------------------------------------------------
+
+ b #1
+ bl #1
+ cbnz r2, #1
+ beq #1
+ blx #2
+
+@ CHECK: error: branch target out of range
+@ CHECK: b #1
+@ CHECK: error: invalid operand for instruction
+@ CHECK: bl #1
+@ CHECK: error: invalid operand for instruction
+@ CHECK: cbnz r2, #1
+@ CHECK: error: branch target out of range
+@ CHECK: beq #1
+@ CHECK: error: invalid operand for instruction
+@ CHECK: blx #2
diff --git a/test/MC/ARM/thumb-movwt-reloc.s b/test/MC/ARM/thumb-movwt-reloc.s
new file mode 100644
index 000000000000..c00cf1c1c9e0
--- /dev/null
+++ b/test/MC/ARM/thumb-movwt-reloc.s
@@ -0,0 +1,27 @@
+@ RUN: llvm-mc -triple thumbv8m.base-eabi -filetype asm -o - %s | FileCheck %s
+@ RUN: llvm-mc -triple thumbv8m.base-eabi -filetype obj -o - %s | llvm-readobj -r \
+@ RUN: | FileCheck -check-prefix CHECK-RELOCATIONS %s
+
+ .syntax unified
+
+ .type function,%function
+function:
+ bx lr
+
+ .global external
+ .type external,%function
+
+ .type test,%function
+test:
+ movw r0, :lower16:function
+ movt r0, :upper16:function
+
+@ CHECK-LABEL: test:
+@ CHECK: movw r0, :lower16:function
+@ CHECK: movt r0, :upper16:function
+
+@ CHECK-RELOCATIONS: Relocations [
+@ CHECK-RELOCATIONS: 0x2 R_ARM_THM_MOVW_ABS_NC function 0x0
+@ CHECK-RELOCATIONS: 0x6 R_ARM_THM_MOVT_ABS function 0x0
+@ CHECK-RELOCATIONS: ]
+
diff --git a/test/MC/ARM/thumb1-relax-8m-baseline.s b/test/MC/ARM/thumb1-relax-8m-baseline.s
new file mode 100644
index 000000000000..e9c88bb462cb
--- /dev/null
+++ b/test/MC/ARM/thumb1-relax-8m-baseline.s
@@ -0,0 +1,10 @@
+@ RUN: not llvm-mc -triple thumbv6m-none-eabi -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s --check-prefix=CHECK-V6M
+@ RUN: llvm-mc -triple thumbv8m.base-none-eabi -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s --check-prefix=CHECK-V8MBASE --allow-empty
+
+@ CHECK-V8MBASE-NOT: out of range pc-relative fixup value
+@ CHECK-V6M: out of range pc-relative fixup value
+ b Lfar2
+
+ .space 2050
+Lfar2:
+ .word 42
diff --git a/test/MC/ARM/thumb1-relax-bcc.s b/test/MC/ARM/thumb1-relax-bcc.s
index 02fde2e040ea..f17840ff763f 100644
--- a/test/MC/ARM/thumb1-relax-bcc.s
+++ b/test/MC/ARM/thumb1-relax-bcc.s
@@ -9,4 +9,4 @@ _func1:
@ CHECK-ERROR: unsupported relocation on symbol
@ CHECK-ELF: 7f f4 fe af bne.w #-4
-@ CHECK-ELF-NEXT: R_ARM_THM_JUMP24 _func2
+@ CHECK-ELF-NEXT: R_ARM_THM_JUMP19 _func2
diff --git a/test/MC/ARM/thumb2-branches.s b/test/MC/ARM/thumb2-branches.s
index 9148233a79c9..51f01e320d83 100644
--- a/test/MC/ARM/thumb2-branches.s
+++ b/test/MC/ARM/thumb2-branches.s
@@ -284,3 +284,21 @@
@ CHECK: addeq r0, r1 @ encoding: [0x08,0x44]
@ CHECK: bne #128 @ encoding: [0x40,0xe0]
+
+@------------------------------------------------------------------------------
+@ Branch targets destined for ARM mode must == 0 (mod 4), otherwise (mod 2).
+@------------------------------------------------------------------------------
+
+ b #2
+ bl #2
+ beq #2
+ cbz r0, #2
+ @ N.b. destination is "align(PC, 4) + imm" so imm is still 4-byte
+ @ aligned even though current PC may not and destination must be.
+ blx #4
+
+@ CHECK: b #2 @ encoding: [0x01,0xe0]
+@ CHECK: bl #2 @ encoding: [0x00,0xf0,0x01,0xf8]
+@ CHECK: beq #2 @ encoding: [0x01,0xd0]
+@ CHECK: cbz r0, #2 @ encoding: [0x08,0xb1]
+@ CHECK: blx #4 @ encoding: [0x00,0xf0,0x02,0xe8]
diff --git a/test/MC/ARM/thumb2-diagnostics.s b/test/MC/ARM/thumb2-diagnostics.s
index 96978899faa2..38cc74dee565 100644
--- a/test/MC/ARM/thumb2-diagnostics.s
+++ b/test/MC/ARM/thumb2-diagnostics.s
@@ -102,3 +102,19 @@ foo2:
@ CHECK-ERRORS: error: invalid operand for instruction
@ CHECK-ERRORS: error: invalid operand for instruction
+
+ @ PC is not valid as base of load
+ ldr r0, [pc, r0]
+ ldrb r1, [pc, r2]
+ ldrh r3, [pc, r3]
+ pld r4, [pc, r5]
+ str r6, [pc, r7]
+ strb r7 [pc, r8]
+ strh r9, [pc, r10]
+@ CHECK-ERRORS: error: instruction requires: arm-mode
+@ CHECK-ERRORS: error: instruction requires: arm-mode
+@ CHECK-ERRORS: error: instruction requires: arm-mode
+@ CHECK-ERRORS: error: invalid operand for instruction
+@ CHECK-ERRORS: error: instruction requires: arm-mode
+@ CHECK-ERRORS: error: immediate value expected for vector index
+@ CHECK-ERRORS: error: instruction requires: arm-mode
diff --git a/test/MC/ARM/thumb2-ldrb-ldrh.s b/test/MC/ARM/thumb2-ldrb-ldrh.s
index 8c97987fc68d..db589dd63349 100644
--- a/test/MC/ARM/thumb2-ldrb-ldrh.s
+++ b/test/MC/ARM/thumb2-ldrb-ldrh.s
@@ -1,5 +1,5 @@
-@ RUN: not llvm-mc -triple thumbv7a-none-eabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK
-@ RUN: not llvm-mc -triple thumbv7m-none-eabi -show-encoding < %s 2>&1 | FileCheck %s --check-prefix=CHECK
+@ RUN: not llvm-mc -triple thumbv7a-none-eabi -show-encoding < %s 2>&1 | FileCheck %s
+@ RUN: not llvm-mc -triple thumbv7m-none-eabi -show-encoding < %s 2>&1 | FileCheck %s
@ Thumb2 LDRS?[BH] are not valid when Rt == PC (these encodings are used for
@ preload hints).
diff --git a/test/MC/ARM/thumbv8m.s b/test/MC/ARM/thumbv8m.s
new file mode 100644
index 000000000000..a0830a227a15
--- /dev/null
+++ b/test/MC/ARM/thumbv8m.s
@@ -0,0 +1,282 @@
+// RUN: not llvm-mc -triple=thumbv8m.base -show-encoding < %s 2>%t \
+// RUN: | FileCheck --check-prefix=CHECK-BASELINE --check-prefix=CHECK %s
+// RUN: FileCheck --check-prefix=UNDEF-BASELINE --check-prefix=UNDEF < %t %s
+// RUN: not llvm-mc -triple=thumbv8m.main -show-encoding < %s 2>%t \
+// RUN: | FileCheck --check-prefix=CHECK-MAINLINE --check-prefix=CHECK %s
+// RUN: FileCheck --check-prefix=UNDEF-MAINLINE --check-prefix=UNDEF < %t %s
+// RUN: not llvm-mc -triple=thumbv8m.main -mattr=+dsp,+t2xtpk -show-encoding < %s 2>%t \
+// RUN: | FileCheck --check-prefix=CHECK-MAINLINE_DSP --check-prefix=CHECK %s
+// RUN: FileCheck --check-prefix=UNDEF-MAINLINE_DSP --check-prefix=UNDEF < %t %s
+
+// Simple check that baseline is v6M and mainline is v7M
+// UNDEF-BASELINE: error: instruction requires: thumb2
+// UNDEF-MAINLINE-NOT: error: instruction requires:
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+mov.w r0, r0
+
+// Check that .arm is invalid
+// UNDEF: target does not support ARM mode
+.arm
+
+// And only +dsp,+t2xtpk has DSP and t2xtpk instructions
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+qadd16 r0, r0, r0
+// UNDEF-BASELINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE: error: instruction requires: arm-mode
+// UNDEF-MAINLINE_DSP-NOT: error: instruction requires:
+uxtab16 r0, r1, r2
+
+// Instruction availibility checks
+
+// 'Barrier instructions'
+
+// CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
+isb sy
+
+// 'Code optimization'
+
+// CHECK: cbz r3, .Ltmp0 @ encoding: [0x03'A',0xb1'A']
+// CHECK-NEXT: @ fixup A - offset: 0, value: .Ltmp0, kind: fixup_arm_thumb_cb
+cbz r3, 1f
+
+// CHECK: cbnz r3, .Ltmp0 @ encoding: [0x03'A',0xb9'A']
+// CHECK-NEXT: @ fixup A - offset: 0, value: .Ltmp0, kind: fixup_arm_thumb_cb
+cbnz r3, 1f
+
+// CHECK: b.w .Ltmp0 @ encoding: [A,0xf0'A',A,0x90'A']
+// CHECK-NEXT: @ fixup A - offset: 0, value: .Ltmp0, kind: fixup_t2_uncondbranch
+b.w 1f
+
+// CHECK: sdiv r1, r2, r3 @ encoding: [0x92,0xfb,0xf3,0xf1]
+sdiv r1, r2, r3
+
+// CHECK: udiv r1, r2, r3 @ encoding: [0xb2,0xfb,0xf3,0xf1]
+udiv r1, r2, r3
+
+// 'Exclusives from ARMv7-M'
+
+// CHECK: clrex @ encoding: [0xbf,0xf3,0x2f,0x8f]
+clrex
+
+// CHECK: ldrex r1, [r2, #4] @ encoding: [0x52,0xe8,0x01,0x1f]
+ldrex r1, [r2, #4]
+
+// CHECK: ldrexb r1, [r2] @ encoding: [0xd2,0xe8,0x4f,0x1f]
+ldrexb r1, [r2]
+
+// CHECK: ldrexh r1, [r2] @ encoding: [0xd2,0xe8,0x5f,0x1f]
+ldrexh r1, [r2]
+
+// UNDEF-BASELINE: error: instruction requires: !armv*m thumb2
+// UNDEF-MAINLINE: error: instruction requires: !armv*m
+ldrexd r0, r1, [r2]
+
+// CHECK: strex r1, r2, [r3, #4] @ encoding: [0x43,0xe8,0x01,0x21]
+strex r1, r2, [r3, #4]
+
+// CHECK: strexb r1, r2, [r3] @ encoding: [0xc3,0xe8,0x41,0x2f]
+strexb r1, r2, [r3]
+
+// CHECK: strexh r1, r2, [r3] @ encoding: [0xc3,0xe8,0x51,0x2f]
+strexh r1, r2, [r3]
+
+// UNDEF-BASELINE: error: instruction requires: !armv*m thumb2
+// UNDEF-MAINLINE: error: instruction requires: !armv*m
+strexd r0, r1, r2, [r3]
+
+// 'XO generation'
+
+// CHECK: movw r1, #65535 @ encoding: [0x4f,0xf6,0xff,0x71]
+movw r1, #0xffff
+
+// CHECK: movt r1, #65535 @ encoding: [0xcf,0xf6,0xff,0x71]
+movt r1, #0xffff
+
+// 'Acquire/Release from ARMv8-A'
+
+// CHECK: lda r1, [r2] @ encoding: [0xd2,0xe8,0xaf,0x1f]
+lda r1, [r2]
+
+// CHECK: ldab r1, [r2] @ encoding: [0xd2,0xe8,0x8f,0x1f]
+ldab r1, [r2]
+
+// CHECK: ldah r1, [r2] @ encoding: [0xd2,0xe8,0x9f,0x1f]
+ldah r1, [r2]
+
+// CHECK: stl r1, [r3] @ encoding: [0xc3,0xe8,0xaf,0x1f]
+stl r1, [r3]
+
+// CHECK: stlb r1, [r3] @ encoding: [0xc3,0xe8,0x8f,0x1f]
+stlb r1, [r3]
+
+// CHECK: stlh r1, [r3] @ encoding: [0xc3,0xe8,0x9f,0x1f]
+stlh r1, [r3]
+
+// CHECK: ldaex r1, [r2] @ encoding: [0xd2,0xe8,0xef,0x1f]
+ldaex r1, [r2]
+
+// CHECK: ldaexb r1, [r2] @ encoding: [0xd2,0xe8,0xcf,0x1f]
+ldaexb r1, [r2]
+
+// CHECK: ldaexh r1, [r2] @ encoding: [0xd2,0xe8,0xdf,0x1f]
+ldaexh r1, [r2]
+
+// UNDEF: error: instruction requires: !armv*m
+ldaexd r0, r1, [r2]
+
+// CHECK: stlex r1, r2, [r3] @ encoding: [0xc3,0xe8,0xe1,0x2f]
+stlex r1, r2, [r3]
+
+// CHECK: stlexb r1, r2, [r3] @ encoding: [0xc3,0xe8,0xc1,0x2f]
+stlexb r1, r2, [r3]
+
+// CHECK: stlexh r1, r2, [r3] @ encoding: [0xc3,0xe8,0xd1,0x2f]
+stlexh r1, r2, [r3]
+
+// UNDEF: error: instruction requires: !armv*m
+stlexd r0, r1, r2, [r2]
+
+// ARMv8-M Security Extensions
+
+// CHECK: sg @ encoding: [0x7f,0xe9,0x7f,0xe9]
+sg
+
+// CHECK: bxns r0 @ encoding: [0x04,0x47]
+bxns r0
+
+// UNDEF-BASELINE: error: invalid operand for instruction
+// UNDEF-BASELINE: error: conditional execution not supported in Thumb1
+// CHECK-MAINLINE: it eq @ encoding: [0x08,0xbf]
+// CHECK-MAINLINE: bxnseq r1 @ encoding: [0x0c,0x47]
+it eq
+bxnseq r1
+
+// CHECK: bxns lr @ encoding: [0x74,0x47]
+bxns lr
+
+// CHECK: blxns r0 @ encoding: [0x84,0x47]
+blxns r0
+
+// UNDEF-BASELINE: error: invalid operand for instruction
+// UNDEF-BASELINE: error: conditional execution not supported in Thumb1
+// CHECK-MAINLINE: it eq @ encoding: [0x08,0xbf]
+// CHECK-MAINLINE: blxnseq r1 @ encoding: [0x8c,0x47]
+it eq
+blxnseq r1
+
+// CHECK: tt r0, r1 @ encoding: [0x41,0xe8,0x00,0xf0]
+tt r0, r1
+
+// CHECK: tt r0, sp @ encoding: [0x4d,0xe8,0x00,0xf0]
+tt r0, sp
+
+// CHECK: tta r0, r1 @ encoding: [0x41,0xe8,0x80,0xf0]
+tta r0, r1
+
+// CHECK: ttt r0, r1 @ encoding: [0x41,0xe8,0x40,0xf0]
+ttt r0, r1
+
+// CHECK: ttat r0, r1 @ encoding: [0x41,0xe8,0xc0,0xf0]
+ttat r0, r1
+
+// 'Lazy Load/Store Multiple'
+
+// UNDEF-BASELINE: error: instruction requires: armv8m.main
+// CHECK-MAINLINE: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlldm r5 @ encoding: [0x35,0xec,0x00,0x0a]
+vlldm r5
+
+// UNDEF-BASELINE: error: instruction requires: armv8m.main
+// CHECK-MAINLINE: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
+// CHECK-MAINLINE_DSP: vlstm r10 @ encoding: [0x2a,0xec,0x00,0x0a]
+vlstm r10
+
+// New SYSm's
+
+MRS r1, MSP_NS
+// CHECK: mrs r1, msp_ns @ encoding: [0xef,0xf3,0x88,0x81]
+MSR PSP_NS, r2
+// CHECK: msr psp_ns, r2 @ encoding: [0x82,0xf3,0x89,0x88]
+MRS r3, PRIMASK_NS
+// CHECK: mrs r3, primask_ns @ encoding: [0xef,0xf3,0x90,0x83]
+MSR CONTROL_NS, r4
+// CHECK: msr control_ns, r4 @ encoding: [0x84,0xf3,0x94,0x88]
+MRS r5, SP_NS
+// CHECK: mrs r5, sp_ns @ encoding: [0xef,0xf3,0x98,0x85]
+MRS r6,MSPLIM
+// CHECK: mrs r6, msplim @ encoding: [0xef,0xf3,0x0a,0x86]
+MRS r7,PSPLIM
+// CHECK: mrs r7, psplim @ encoding: [0xef,0xf3,0x0b,0x87]
+MSR MSPLIM,r8
+// CHECK: msr msplim, r8 @ encoding: [0x88,0xf3,0x0a,0x88]
+MSR PSPLIM,r9
+// CHECK: msr psplim, r9 @ encoding: [0x89,0xf3,0x0b,0x88]
+
+MRS r10, MSPLIM_NS
+// CHECK-MAINLINE: mrs r10, msplim_ns @ encoding: [0xef,0xf3,0x8a,0x8a]
+// UNDEF-BASELINE: error: invalid operand for instruction
+MSR PSPLIM_NS, r11
+// CHECK-MAINLINE: msr psplim_ns, r11 @ encoding: [0x8b,0xf3,0x8b,0x88]
+// UNDEF-BASELINE: error: invalid operand for instruction
+MRS r12, BASEPRI_NS
+// CHECK-MAINLINE: mrs r12, basepri_ns @ encoding: [0xef,0xf3,0x91,0x8c]
+// UNDEF-BASELINE: error: invalid operand for instruction
+MRS r12, BASEPRI_MAX_NS
+// CHECK-MAINLINE: mrs r12, basepri_max_ns @ encoding: [0xef,0xf3,0x92,0x8c]
+// UNDEF-BASELINE: error: invalid operand for instruction
+MSR FAULTMASK_NS, r14
+// CHECK-MAINLINE: msr faultmask_ns, lr @ encoding: [0x8e,0xf3,0x93,0x88]
+// UNDEF-BASELINE: error: invalid operand for instruction
+
+// Invalid operand tests
+// UNDEF: error: invalid operand for instruction
+// UNDEF: sg #0
+sg #0
+// UNDEF: error: invalid operand for instruction
+// UNDEF: sg r0
+sg r0
+// UNDEF: error: invalid operand for instruction
+// UNDEF: bxns r0, r1
+bxns r0, r1
+// UNDEF: error: invalid operand for instruction
+// UNDEF: blxns r0, #0
+blxns r0, #0
+// UNDEF: error: invalid operand for instruction
+// UNDEF: blxns label
+blxns label
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt r0, r1, r2
+tt r0, r1, r2
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt r0, [r1]
+tt r0, [r1]
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt r0, r1, #4
+tt r0, r1, #4
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt r0, #4
+tt r0, #4
+
+// Unpredictable operands
+// UNDEF: error: invalid operand for instruction
+// UNDEF: blxns pc
+blxns pc
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt sp, r0
+tt sp, r0
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt pc, r0
+tt pc, r0
+// UNDEF: error: invalid operand for instruction
+// UNDEF: tt r0, pc
+tt r0, pc
+
+// UNDEF: error: invalid operand for instruction
+// UNDEF: vlldm pc
+vlldm pc
+
+// UNDEF: error: invalid operand for instruction
+// UNDEF: vlstm pc
+vlstm pc
diff --git a/test/MC/ARM/tls-directives.s b/test/MC/ARM/tls-directives.s
new file mode 100644
index 000000000000..69a026892899
--- /dev/null
+++ b/test/MC/ARM/tls-directives.s
@@ -0,0 +1,50 @@
+@ RUN: llvm-mc -triple thumbv7-apple-ios -filetype=obj -o %t %s
+@ RUN: llvm-objdump -macho -p -indirect-symbols %t | FileCheck %s
+
+@ CHECK: Indirect symbols for (__DATA,__thread_ptr)
+@ CHECK: 0x0000001c 5 _a
+
+
+@ CHECK: sectname __thread_data
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_REGULAR
+
+@ CHECK: sectname __thread_vars
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_VARIABLES
+
+@ CHECK: sectname __thread_bss
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_ZEROFILL
+
+@ CHECK: sectname __thread_ptr
+@ CHECK: segname __DATA
+@ CHECK: type S_THREAD_LOCAL_VARIABLE_POINTERS
+
+
+ .section __DATA,__thread_data,thread_local_regular
+ .p2align 2
+_b$tlv$init:
+ .long 42
+
+ .section __DATA,__thread_vars,thread_local_variables
+ .globl _b
+_b:
+ .long __tlv_bootstrap
+ .long 0
+ .long _b$tlv$init
+
+.tbss _c$tlv$init, 4, 2 @ @c
+
+ .globl _c
+_c:
+ .long __tlv_bootstrap
+ .long 0
+ .long _c$tlv$init
+
+
+ .section __DATA,__thread_ptr,thread_local_variable_pointers
+ .p2align 2
+L_a$non_lazy_ptr:
+ .indirect_symbol _a
+ .long 0
diff --git a/test/MC/AsmParser/comments-x86-darwin.s b/test/MC/AsmParser/comments-x86-darwin.s
index e201f48b1d79..5a873495ce67 100644
--- a/test/MC/AsmParser/comments-x86-darwin.s
+++ b/test/MC/AsmParser/comments-x86-darwin.s
@@ -1,7 +1,7 @@
// RUN: llvm-mc -triple x86_64-apple-darwin %s 2>&1 | FileCheck %s
# ensure that single '#' comments are worink as expected on x86 darwin
-.align 3 # test single hash after align
-// CHECK: .align 3
+.p2align 3 # test single hash after align
+// CHECK: .p2align 3
foo: # single hash should be ignored as comment
// CHECK-LABEL: foo:
movl %esp, %ebp # same after an instruction
diff --git a/test/MC/AsmParser/directive_align.s b/test/MC/AsmParser/directive_align.s
index 7ce28559d951..9eb1d7f2d8fa 100644
--- a/test/MC/AsmParser/directive_align.s
+++ b/test/MC/AsmParser/directive_align.s
@@ -1,7 +1,7 @@
# RUN: not llvm-mc -triple i386-apple-darwin9 %s | FileCheck %s
# CHECK: TEST0:
-# CHECK: .align 1
+# CHECK: .p2align 1
TEST0:
.align 1
diff --git a/test/MC/AsmParser/directive_file-2.s b/test/MC/AsmParser/directive_file-2.s
new file mode 100644
index 000000000000..ff6df5116ad5
--- /dev/null
+++ b/test/MC/AsmParser/directive_file-2.s
@@ -0,0 +1,11 @@
+// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+// Test for Bug 11740
+// This testcase has two directive files,
+// when compiled with -g, this testcase will not report error,
+// but keep the debug info existing in the assembly file.
+
+ .file "hello"
+ .file 1 "world"
+
+// CHECK: .file "hello"
+// CHECK: .file 1 "world"
diff --git a/test/MC/AsmParser/directive_file-errors.s b/test/MC/AsmParser/directive_file-errors.s
deleted file mode 100644
index 5ae2bbe80051..000000000000
--- a/test/MC/AsmParser/directive_file-errors.s
+++ /dev/null
@@ -1,9 +0,0 @@
-// RUN: not llvm-mc -g -triple i386-unknown-unknown %s 2> %t.err | FileCheck %s
-// RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
-// Test for Bug 11740
-
- .file "hello"
- .file 1 "world"
-
-// CHECK: .file "hello"
-// CHECK-ERRORS:6:9: error: input can't have .file dwarf directives when -g is used to generate dwarf debug info for assembly code
diff --git a/test/MC/AsmParser/directive_fill.s b/test/MC/AsmParser/directive_fill.s
index 28d7fa2a3435..64d0936e5165 100644
--- a/test/MC/AsmParser/directive_fill.s
+++ b/test/MC/AsmParser/directive_fill.s
@@ -1,66 +1,53 @@
# RUN: llvm-mc -triple i386-unknown-unknown %s 2> %t.err | FileCheck %s
# RUN: FileCheck --check-prefix=CHECK-WARNINGS %s < %t.err
+# RUN: llvm-mc -triple i386-unknown-unknown -filetype=obj -o %t.o %s 2> %t.err
+# RUN: FileCheck --check-prefix=OBJ-WARNINGS %s < %t.err
# CHECK: TEST0:
-# CHECK: .byte 10
+# CHECK: .fill 1, 1, 0xa
TEST0:
.fill 1, 1, 10
# CHECK: TEST1:
-# CHECK: .short 3
-# CHECK: .short 3
+# CHECK: .fill 2, 2, 0x3
TEST1:
.fill 2, 2, 3
# CHECK: TEST2:
-# CHECK: .long 4
-# CHECK: .long 0
+# CHECK: .fill 1, 8, 0x4
TEST2:
.fill 1, 8, 4
# CHECK: TEST3
-# CHECK: .byte 0
-# CHECK: .byte 0
-# CHECK: .byte 0
-# CHECK: .byte 0
+# CHECK: .fill 4
TEST3:
.fill 4
# CHECK: TEST4
-# CHECK: .short 0
-# CHECK: .short 0
-# CHECK: .short 0
-# CHECK: .short 0
+# CHECK: .fill 4, 2
TEST4:
.fill 4, 2
# CHECK: TEST5
-# CHECK: .short 2
-# CHECK: .byte 0
-# CHECK: .short 2
-# CHECK: .byte 0
-# CHECK: .short 2
-# CHECK: .byte 0
-# CHECK: .short 2
-# CHECK: .byte 0
+# CHECK: .fill 4, 3, 0x2
TEST5:
.fill 4, 3, 2
# CHECK: TEST6
-# CHECK: .long 2
-# CHECK: .long 0
+# CHECK: .fill 1, 8, 0x2
# CHECK-WARNINGS: '.fill' directive with size greater than 8 has been truncated to 8
TEST6:
.fill 1, 9, 2
# CHECK: TEST7
-# CHECK: .long 0
-# CHECK: .long 0
+# CHECK: .fill 1, 8, 0x0
# CHECK-WARNINGS: '.fill' directive pattern has been truncated to 32-bits
TEST7:
.fill 1, 8, 1<<32
-# CHECK-WARNINGS: '.fill' directive with negative repeat count has no effect
+# CHECK: TEST8
+# CHECK: .fill -1, 8, 0x1
+# OBJ-WARNINGS: '.fill' directive with negative repeat count has no effect
TEST8:
.fill -1, 8, 1
@@ -69,7 +56,17 @@ TEST9:
.fill 1, -1, 1
# CHECK: TEST10
-# CHECK: .short 22136
-# CHECK: .byte 52
+# CHECK: .fill 1, 3, 0x12345678
TEST10:
.fill 1, 3, 0x12345678
+
+# CHECK: TEST11
+# CHECK: .fill TEST11-TEST10, 1, 0x0
+TEST11:
+ .fill TEST11 - TEST10
+
+# CHECK: TEST12
+# CHECK: .fill TEST11-TEST12, 3, 0x12345678
+# OBJ-WARNINGS: '.fill' directive with negative repeat count has no effect
+TEST12:
+ .fill TEST11 - TEST12, 3, 0x12345678
diff --git a/test/MC/AsmParser/directive_space.s b/test/MC/AsmParser/directive_space.s
index fc5aeb4b6338..eadc4fc63831 100644
--- a/test/MC/AsmParser/directive_space.s
+++ b/test/MC/AsmParser/directive_space.s
@@ -14,3 +14,8 @@ TEST1:
# CHECK: .space 1
TEST2:
.skip 1
+
+# CHECK: TEST3
+# CHECK: .space TEST0-TEST1
+TEST3:
+ .space TEST0 - TEST1
diff --git a/test/MC/AsmParser/expr-shr.s b/test/MC/AsmParser/expr-shr.s
index 792bef050d31..105858cd6a8d 100644
--- a/test/MC/AsmParser/expr-shr.s
+++ b/test/MC/AsmParser/expr-shr.s
@@ -1,5 +1,5 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown-elf %s | FileCheck %s --check-prefix=CHECK
-// RUN: llvm-mc -triple x86_64-unknown-darwin %s | FileCheck %s --check-prefix=CHECK
+// RUN: llvm-mc -triple x86_64-unknown-unknown-elf %s | FileCheck %s
+// RUN: llvm-mc -triple x86_64-unknown-darwin %s | FileCheck %s
// RUN: llvm-mc -triple x86_64-pc-windows-msvc %s | FileCheck %s --check-prefix=MSVC
.data
diff --git a/test/MC/AsmParser/floating-literals.s b/test/MC/AsmParser/floating-literals.s
index 6578e32ce822..de0b4ca06401 100644
--- a/test/MC/AsmParser/floating-literals.s
+++ b/test/MC/AsmParser/floating-literals.s
@@ -58,25 +58,19 @@
.float -0x1.0p0
# CHECK-ERROR: invalid hexadecimal floating-point constant: expected at least one exponent digit
-# CHECK-ERROR: unexpected token in directive
.float 0xa.apa
# CHECK-ERROR: invalid hexadecimal floating-point constant: expected at least one exponent digit
-# CHECK-ERROR: unexpected token in directive
.double -0x1.2p+
# CHECK-ERROR: invalid hexadecimal floating-point constant: expected at least one exponent digit
-# CHECK-ERROR: unexpected token in directive
.double -0x1.2p
# CHECK-ERROR: invalid hexadecimal floating-point constant: expected at least one significand digit
-# CHECK-ERROR: unexpected token in directive
.float 0xp2
# CHECK-ERROR: invalid hexadecimal floating-point constant: expected at least one significand digit
-# CHECK-ERROR: unexpected token in directive
.float 0x.p5
# CHECK-ERROR: error: invalid hexadecimal floating-point constant: expected exponent part 'p'
-# CHECK-ERROR: unexpected token in directive
.float 0x1.2
diff --git a/test/MC/AsmParser/hash-directive.s b/test/MC/AsmParser/hash-directive.s
new file mode 100644
index 000000000000..4c242fd9a0c8
--- /dev/null
+++ b/test/MC/AsmParser/hash-directive.s
@@ -0,0 +1,23 @@
+# RUN: not llvm-mc -triple i386-unknown-unknown %s 2>&1 | FileCheck %s
+error
+# CHECK: hash-directive.s:[[@LINE-1]]:1: error
+# 3 "FILE1" 1 #<- This is a CPP Hash w/ comment
+error
+# CHECK: FILE1:3:1: error
+# 0 "" 2 #<- This is too
+error
+# CHECK: hash-directive.s:[[@LINE-1]]:1: error
+ # 1 "FILE2" 2 #<- This is a comment
+error
+# CHECK: hash-directive.s:[[@LINE-1]]:1: error
+nop; # 6 "FILE3" 2 #<- This is a still comment
+error
+# CHECK: hash-directive.s:[[@LINE-1]]:1: error
+nop;# 6 "FILE4" 2
+ nop;
+error
+# CHECK: FILE4:7:1: error
+# 0 "" 2
+/*comment*/# 6 "FILE5" 2 #<- This is a comment
+error
+# CHECK: hash-directive.s:[[@LINE-1]]:1: error
diff --git a/test/MC/AsmParser/inline-comments.ll b/test/MC/AsmParser/inline-comments.ll
new file mode 100644
index 000000000000..b0699d44ebb9
--- /dev/null
+++ b/test/MC/AsmParser/inline-comments.ll
@@ -0,0 +1,88 @@
+; RUN: llc %s -o - | sed -n -e '/#APP/,/#NO_APP/p' > %t
+; RUN: sed -n -e 's/^;CHECK://p' %s > %t2
+; RUN: diff %t %t2
+
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+; Function Attrs: nounwind uwtable
+define void @foo() #0 {
+entry:
+ call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #NO_APP
+ call void asm sideeffect " ", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK:
+;CHECK: #NO_APP
+ call void asm sideeffect "\0A", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK:
+;CHECK:
+;CHECK: #NO_APP
+ call void asm sideeffect "/*isolated c comment*/", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #isolated c comment
+;CHECK: #NO_APP
+ call void asm sideeffect "/**/", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #
+;CHECK: #NO_APP
+ call void asm sideeffect "/*comment with\0Anewline*/", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #comment with
+;CHECK: #newline
+;CHECK: #NO_APP
+ call void asm sideeffect "//isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #isolated line comment
+;CHECK: #NO_APP
+ call void asm sideeffect "#isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #isolated line comment
+;CHECK: #NO_APP
+ call void asm sideeffect "nop /* after nop */", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after nop
+;CHECK: #NO_APP
+ call void asm sideeffect "nop // after nop", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after nop
+;CHECK: #NO_APP
+ call void asm sideeffect "nop # after nop", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after nop
+;CHECK: #NO_APP
+ call void asm sideeffect "nop /* after explicit ended nop */", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after explicit ended nop
+;CHECK: #NO_APP
+ call void asm sideeffect "nop # after explicit ended nop", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after explicit ended nop
+;CHECK: #NO_APP
+ call void asm sideeffect "nop # after explicit end nop", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # after explicit end nop
+;CHECK: #NO_APP
+ call void asm sideeffect "/* before nop */ nop", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: nop # before nop
+;CHECK: #NO_APP
+ call void asm sideeffect "//comment with escaped newline\0A", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: #comment with escaped newline
+;CHECK:
+;CHECK: #NO_APP
+ call void asm sideeffect "/*0*/xor/*1*/%eax,/*2*/%ecx/*3*///eol", "~{dirflag},~{fpsr},~{flags}"() #0
+;CHECK: #APP
+;CHECK: xorl %eax, %ecx #0 #1 #2 #3 #eol
+;CHECK: #NO_APP
+ ret void
+}
+
+attributes #0 = { nounwind }
+
+!llvm.ident = !{!0}
+
+!0 = !{!"clang version 3.9.0 (trunk 268625) (llvm/trunk 268631)"}
diff --git a/test/MC/AsmParser/macro-irp.s b/test/MC/AsmParser/macro-irp.s
index 2f26eabae53c..42902bc94b5f 100644
--- a/test/MC/AsmParser/macro-irp.s
+++ b/test/MC/AsmParser/macro-irp.s
@@ -6,3 +6,16 @@
// CHECK: pushl %eax
// CHECK: pushl %ebx
+
+.irp reg,%eax,%ebx
+.irp imm,4,3,5
+ addl \reg, \imm
+.endr
+.endr
+
+// CHECK: addl %eax, 4
+// CHECK: addl %eax, 3
+// CHECK: addl %eax, 5
+// CHECK: addl %ebx, 4
+// CHECK: addl %ebx, 3
+// CHECK: addl %ebx, 5
diff --git a/test/MC/AsmParser/macro-irpc.s b/test/MC/AsmParser/macro-irpc.s
index ea5efbfb2452..d39399b131f7 100644
--- a/test/MC/AsmParser/macro-irpc.s
+++ b/test/MC/AsmParser/macro-irpc.s
@@ -7,3 +7,16 @@
// CHECK: long 1
// CHECK: long 2
// CHECK: long 3
+
+.irpc foo,123
+.irpc bar,45
+ addl %eax, \foo\bar
+.endr
+.endr
+
+// CHECK: addl %eax, 14
+// CHECK: addl %eax, 15
+// CHECK: addl %eax, 24
+// CHECK: addl %eax, 25
+// CHECK: addl %eax, 34
+// CHECK: addl %eax, 35
diff --git a/test/MC/AsmParser/macro_parsing.s b/test/MC/AsmParser/macro_parsing.s
new file mode 100644
index 000000000000..2aa0733db2c1
--- /dev/null
+++ b/test/MC/AsmParser/macro_parsing.s
@@ -0,0 +1,16 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+ .macro DEF num
+ int $0x\num
+ .endm
+ DEF 02
+ DEF 08
+ DEF 09
+ DEF 0A
+ DEF 10
+
+# CHECK: int $2
+# CHECK: int $8
+# CHECK: int $9
+# CHECK: int $10
+# CHECK: int $16
diff --git a/test/MC/AsmParser/macros-gas.s b/test/MC/AsmParser/macros-gas.s
index d907a2517f8c..b88058ec7feb 100644
--- a/test/MC/AsmParser/macros-gas.s
+++ b/test/MC/AsmParser/macros-gas.s
@@ -39,10 +39,10 @@ test3 1, 2 3
.ascii "\_a \_b \_c"
.endm
-// CHECK: .ascii "1 (23) "
+// CHECK: .ascii "1 (2 3) "
test3_prime 1, (2 3)
-// CHECK: .ascii "1 (23) "
+// CHECK: .ascii "1 (2 3) "
test3_prime 1 (2 3)
// CHECK: .ascii "1 2 "
diff --git a/test/MC/AsmParser/preserve-comments.s b/test/MC/AsmParser/preserve-comments.s
new file mode 100644
index 000000000000..a0f50196213c
--- /dev/null
+++ b/test/MC/AsmParser/preserve-comments.s
@@ -0,0 +1,13 @@
+ #RUN: llvm-mc -preserve-comments -n -triple i386-linux-gnu < %s > %t
+ #RUN: diff %s %t
+ .text
+
+foo: #Comment here
+ #comment here
+ nop
+ #if DIRECTIVE COMMENT
+ ## WHOLE LINE COMMENT
+ cmpl $196, %eax ## EOL COMMENT
+ #endif
+ .ident "clang version 3.9.0"
+ .section ".note.GNU-stack","",@progbits
diff --git a/test/MC/AsmParser/uppercase-hex.s b/test/MC/AsmParser/uppercase-hex.s
new file mode 100644
index 000000000000..721fc7f08148
--- /dev/null
+++ b/test/MC/AsmParser/uppercase-hex.s
@@ -0,0 +1,7 @@
+# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+foo:
+.short 0X1
+# CHECK: .short 1
+.short 0B1
+# CHECK: .short 1
diff --git a/test/MC/COFF/cross-section-relative.ll b/test/MC/COFF/cross-section-relative.ll
index 6b7a3d7b40b2..724b1a0a426e 100644
--- a/test/MC/COFF/cross-section-relative.ll
+++ b/test/MC/COFF/cross-section-relative.ll
@@ -22,16 +22,19 @@
;;;; image base relocation
-; CHECK: .long g3@IMGREL
+; CHECK: .long g3@IMGREL{{$}}
@t5 = global i32 trunc(i64 sub(i64 ptrtoint(i32* @g3 to i64), i64 ptrtoint(i64** @__ImageBase to i64)) to i32), section ".fix"
+; CHECK: .long g3@IMGREL+4{{$}}
+@t6 = global i32 trunc(i64 sub(i64 ptrtoint(i32* getelementptr (i32, i32* @g3, i32 1) to i64), i64 ptrtoint(i64** @__ImageBase to i64)) to i32), section ".fix"
+
;;;; cross-section relative with source offset
%struct.EEType = type { [2 x i8], i64, i32}
-; CHECK: .long g3-(t6+16)
-@t6 = global %struct.EEType {
+; CHECK: .long (g3-t7)-16
+@t7 = global %struct.EEType {
[2 x i8] c"\01\02",
i64 256,
- i32 trunc(i64 sub(i64 ptrtoint(i32* @g3 to i64), i64 ptrtoint(i32* getelementptr inbounds (%struct.EEType, %struct.EEType* @t6, i32 0, i32 2) to i64)) to i32 )
+ i32 trunc(i64 sub(i64 ptrtoint(i32* @g3 to i64), i64 ptrtoint(i32* getelementptr inbounds (%struct.EEType, %struct.EEType* @t7, i32 0, i32 2) to i64)) to i32 )
}, section ".fix"
diff --git a/test/MC/COFF/cv-def-range.s b/test/MC/COFF/cv-def-range.s
new file mode 100644
index 000000000000..a1ae1404e925
--- /dev/null
+++ b/test/MC/COFF/cv-def-range.s
@@ -0,0 +1,97 @@
+# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview -codeview-subsection-bytes | FileCheck %s
+ .text
+ .def @feat.00;
+ .scl 3;
+ .type 0;
+ .endef
+ .globl @feat.00
+@feat.00 = 1
+ .def _g;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _g
+ .p2align 4, 0x90
+_g: # @g
+Lfunc_begin0:
+ .cv_file 1 "\\usr\\local\\google\\home\\majnemer\\llvm\\src\\<stdin>"
+ .cv_loc 0 1 3 0 is_stmt 0 # <stdin>:3:0
+# BB#0: # %entry
+ pushl %ebp
+ movl %esp, %ebp
+ subl $8, %esp
+ leal -4(%ebp), %eax
+Lvar_begin0:
+ #DEBUG_VALUE: g:x <- %EAX
+ .cv_loc 0 1 4 7 # <stdin>:4:7
+ movl $0, -4(%ebp)
+ .cv_loc 0 1 5 3 # <stdin>:5:3
+ movl %eax, (%esp)
+ calll _f
+ .cv_loc 0 1 6 1 # <stdin>:6:1
+Lvar_end0:
+ addl $8, %esp
+ popl %ebp
+ retl
+Lfunc_end0:
+
+ .section .debug$T,"dr"
+ .long 4 # Debug section magic
+ .short 6 # Type record length
+ .short 4609 # Leaf type: LF_ARGLIST
+ .long 0 # Number of arguments
+ .short 14 # Type record length
+ .short 4104 # Leaf type: LF_PROCEDURE
+ .long 3 # Return type index
+ .byte 0 # Calling convention
+ .byte 0 # Function options
+ .short 0 # # of parameters
+ .long 4096 # Argument list type index
+ .short 12 # Type record length
+ .short 5633 # Leaf type: LF_FUNC_ID
+ .long 0 # Scope type index
+ .long 4097 # Function type
+ .asciz "g" # Function name
+ .section .debug$S,"dr"
+ .long 4 # Debug section magic
+ .long 241 # Symbol subsection for g
+ .long Ltmp1-Ltmp0 # Subsection size
+Ltmp0:
+ .short Ltmp3-Ltmp2 # Record length
+Ltmp2:
+ .short 4423 # Record kind: S_GPROC32_ID
+ .long 0 # PtrParent
+ .long 0 # PtrEnd
+ .long 0 # PtrNext
+ .long Lfunc_end0-_g # Code size
+ .long 0 # Offset after prologue
+ .long 0 # Offset before epilogue
+ .long 0 # Function type index
+ .secrel32 _g # Function section relative address
+ .secidx _g # Function section index
+ .byte 0 # Flags
+ .asciz "g" # Function name
+Ltmp3:
+ .short 2 # Record length
+ .short 4431 # Record kind: S_PROC_ID_END
+ .cv_def_range Lvar_begin0 Lvar_end0, "\102\021\374\377\377\377"
+
+# CHECK: DefRangeFramePointerRel {
+# CHECK: Offset: -4
+# CHECK: LocalVariableAddrRange {
+# CHECK: OffsetStart: .text+0x9
+# CHECK: ISectStart: 0x0
+# CHECK: Range: 0xF
+# CHECK: }
+# CHECK: }
+# CHECK: BlockRelocations [
+# CHECK: 0x4 IMAGE_REL_I386_SECREL .text
+# CHECK: 0x8 IMAGE_REL_I386_SECTION .text
+# CHECK: ]
+
+Ltmp1:
+ .p2align 2
+ .cv_linetable 0, _g, Lfunc_end0
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
+
diff --git a/test/MC/COFF/cv-empty-file-table.s b/test/MC/COFF/cv-empty-file-table.s
new file mode 100644
index 000000000000..157cd3167d2a
--- /dev/null
+++ b/test/MC/COFF/cv-empty-file-table.s
@@ -0,0 +1,13 @@
+# RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | llvm-readobj -codeview - | FileCheck %s
+ .text
+ .section .debug$S,"dr"
+ .p2align 2
+ .long 4 # Debug section magic
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
+
+# CHECK: CodeViewDebugInfo [
+# CHECK: Section: .debug$S (4)
+# CHECK: Magic: 0x4
+# CHECK-NOT: FileChecksum
+# CHECK: ]
diff --git a/test/MC/COFF/cv-empty-linetable.s b/test/MC/COFF/cv-empty-linetable.s
new file mode 100644
index 000000000000..4fcafd2d268d
--- /dev/null
+++ b/test/MC/COFF/cv-empty-linetable.s
@@ -0,0 +1,82 @@
+# RUN: llvm-mc -filetype=obj -triple i686-pc-win32 < %s | llvm-readobj -codeview - | FileCheck %s
+ .text
+ .def @feat.00;
+ .scl 3;
+ .type 0;
+ .endef
+ .globl @feat.00
+@feat.00 = 1
+ .def _f;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _f
+ .p2align 4, 0x90
+_f: # @f
+Lfunc_begin0:
+# BB#0: # %entry
+ .cv_file 1 "cv-empty-linetable.s"
+ .cv_loc 1 1 3 15 is_stmt 0
+ jmp _g # TAILCALL
+Lfunc_end0:
+
+ .section .debug$T,"dr"
+ .long 4
+ .short 6
+ .short 4609
+ .long 0
+ .short 14
+ .short 4104
+ .asciz "\003\000\000\000\000\000\000\000\000\020\000"
+ .short 14
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "fn1"
+ .byte 0
+ .short 38
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "??__Fa@?1??fn1@@YAXXZ@YAXXZ"
+ .byte 0
+ .short 26
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "vector::~vector"
+ .byte 0
+ .section .debug$S,"dr"
+ .long 4
+ .long 241 # Symbol subsection for f
+ .long Ltmp1-Ltmp0
+Ltmp0:
+ .short Ltmp3-Ltmp2
+Ltmp2:
+ .short 4423
+ .zero 12
+ .long Lfunc_end0-_f
+ .zero 12
+ .secrel32 _f
+ .secidx _f
+ .byte 0
+ .byte 102
+ .byte 0
+Ltmp3:
+ .short Ltmp5-Ltmp4
+Ltmp4:
+ .short 4429
+ .asciz "\000\000\000\000\000\000\000\000\004\020\000"
+Ltmp5:
+ .short 2
+ .short 4430
+ .short 2
+ .short 4431
+Ltmp1:
+ .zero 3
+ .cv_linetable 0, _f, Lfunc_end0
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
+
+# CHECK: FunctionLineTable [
+# CHECK: LinkageName: _f
+# CHECK: Flags: 0x0
+# CHECK: CodeSize: 0x5
+# CHECK: ]
diff --git a/test/MC/COFF/cv-inline-linetable-infloop.s b/test/MC/COFF/cv-inline-linetable-infloop.s
new file mode 100644
index 000000000000..cd0a073be2a9
--- /dev/null
+++ b/test/MC/COFF/cv-inline-linetable-infloop.s
@@ -0,0 +1,71 @@
+# RUN: llvm-mc -triple=x86_64-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s
+
+# CHECK: InlineSite {
+# CHECK: BinaryAnnotations [
+# CHECK: ChangeLineOffset: 1
+# CHECK: ChangeCodeLength: 0x2
+# CHECK: ]
+# CHECK: }
+
+ .text
+ .cv_file 1 "D:\\src\\llvm\\build\\t.c"
+
+ .def infloop;
+ .scl 2;
+ .type 32;
+ .endef
+ .section .text,"xr",one_only,infloop
+ .globl infloop
+ .p2align 4, 0x90
+infloop: # @infloop
+.Lfunc_begin1:
+ .cv_loc 2 1 3 7 # t.c:3:7
+ jmp .Lfunc_begin1
+.Lfunc_end1:
+
+ .def afterinfloop;
+ .scl 2;
+ .type 32;
+ .endef
+ .section .text,"xr",one_only,afterinfloop
+ .globl afterinfloop
+ .p2align 4, 0x90
+afterinfloop: # @afterinfloop
+ .cv_loc 3 1 13 0 # t.c:13:0
+ retq
+
+ .section .debug$S,"dr"
+ .long 4
+ .long 241 # Symbol subsection for infloop
+ .long .Ltmp17-.Ltmp16 # Subsection size
+.Ltmp16:
+ .short .Ltmp19-.Ltmp18 # Record length
+.Ltmp18:
+ .short 4423 # Record kind: S_GPROC32_ID
+ .long 0 # PtrParent
+ .long 0 # PtrEnd
+ .long 0 # PtrNext
+ .long .Lfunc_end1-infloop # Code size
+ .long 0 # Offset after prologue
+ .long 0 # Offset before epilogue
+ .long 0 # Function type index
+ .secrel32 infloop # Function section relative address
+ .secidx infloop # Function section index
+ .byte 0 # Flags
+ .asciz "infloop" # Function name
+.Ltmp19:
+ .short .Ltmp21-.Ltmp20 # Record length
+.Ltmp20:
+ .short 4429 # Record kind: S_INLINESITE
+ .long 0 # PtrParent
+ .long 0 # PtrEnd
+ .long 4098 # Inlinee type index
+ .cv_inline_linetable 2 1 2 .Lfunc_begin1 .Lfunc_end1
+.Ltmp21:
+ .short 2 # Record length
+ .short 4430 # Record kind: S_INLINESITE_END
+ .short 2 # Record length
+ .short 4431 # Record kind: S_PROC_ID_END
+.Ltmp17:
+ .p2align 2
+ .cv_linetable 1, infloop, .Lfunc_end1
diff --git a/test/MC/COFF/cv-inline-linetable-unreachable.s b/test/MC/COFF/cv-inline-linetable-unreachable.s
new file mode 100644
index 000000000000..eb89dd519275
--- /dev/null
+++ b/test/MC/COFF/cv-inline-linetable-unreachable.s
@@ -0,0 +1,97 @@
+# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s
+ .text
+ .def @feat.00;
+ .scl 3;
+ .type 0;
+ .endef
+ .globl @feat.00
+@feat.00 = 1
+ .def _g;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _g
+ .p2align 4, 0x90
+_g: # @g
+Lfunc_begin0:
+ .cv_file 1 "\\usr\\local\\google\\home\\majnemer\\llvm\\src\\<stdin>"
+ .cv_loc 0 1 7 0 is_stmt 0 # <stdin>:7:0
+# BB#0: # %entry
+ pushl %ebp
+ movl %esp, %ebp
+ .cv_loc 1 1 4 3 # <stdin>:4:3
+ movl _x, %eax
+ addl $1, %eax
+ movl %eax, _x
+Lfunc_end0:
+
+ .comm _x,4,2 # @x
+ .section .debug$T,"dr"
+ .long 4
+ .short 6
+ .short 4609
+ .long 0
+ .short 14
+ .short 4104
+ .asciz "\003\000\000\000\000\000\000\000\000\020\000"
+ .short 12
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .byte 103
+ .byte 0
+ .short 12
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .byte 102
+ .byte 0
+ .section .debug$S,"dr"
+ .long 4
+ .long 246 # Inlinee lines subsection
+ .long Ltmp1-Ltmp0
+Ltmp0:
+ .long 0
+ .long 4099 # Inlined function f starts at <stdin>:3
+ .long 0
+ .long 3
+Ltmp1:
+ .long 241 # Symbol subsection for g
+ .long Ltmp3-Ltmp2
+Ltmp2:
+ .short Ltmp5-Ltmp4
+Ltmp4:
+ .short 4423
+ .zero 12
+ .long Lfunc_end0-_g
+ .zero 12
+ .secrel32 _g
+ .secidx _g
+ .byte 0
+ .byte 103
+ .byte 0
+Ltmp5:
+ .short Ltmp7-Ltmp6
+Ltmp6:
+ .short 4429
+ .asciz "\000\000\000\000\000\000\000\000\003\020\000"
+ .cv_inline_linetable 1 1 3 Lfunc_begin0 Lfunc_end0
+# CHECK: InlineSite {
+# CHECK: PtrParent: 0x0
+# CHECK: PtrEnd: 0x0
+# CHECK: Inlinee: f (0x1003)
+# CHECK: BinaryAnnotations [
+# CHECK: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x3, LineOffset: 1}
+# CHECK: ChangeCodeLength: 0xD
+# CHECK: ]
+# CHECK: }
+Ltmp7:
+ .short 2
+ .short 4430
+# CHECK: InlineSiteEnd {
+# CHECK: }
+ .short 2
+ .short 4431
+Ltmp3:
+ .p2align 2
+ .cv_linetable 0, _g, Lfunc_end0
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
diff --git a/test/MC/COFF/cv-inline-linetable.s b/test/MC/COFF/cv-inline-linetable.s
new file mode 100644
index 000000000000..67c6da2ab091
--- /dev/null
+++ b/test/MC/COFF/cv-inline-linetable.s
@@ -0,0 +1,132 @@
+# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s
+ .text
+ .def @feat.00;
+ .scl 3;
+ .type 0;
+ .endef
+ .globl @feat.00
+@feat.00 = 1
+ .def "?baz@@YAXXZ";
+ .scl 2;
+ .type 32;
+ .endef
+ .globl "?baz@@YAXXZ"
+ .p2align 4, 0x90
+"?baz@@YAXXZ": # @"\01?baz@@YAXXZ"
+Lfunc_begin0:
+ .cv_file 1 "D:\\src\\llvm\\build\\t.cpp"
+ .cv_loc 0 1 13 0 is_stmt 0 # t.cpp:13:0
+# BB#0: # %entry
+ pushl %eax
+ .cv_loc 0 1 14 5 # t.cpp:14:5
+ addl $6, "?x@@3HC"
+ .cv_loc 1 1 9 5 # t.cpp:9:5
+ addl $4, "?x@@3HC"
+ .cv_loc 2 1 3 7 # t.cpp:3:7
+ movl $1, (%esp)
+ leal (%esp), %eax
+ .cv_loc 2 1 4 5 # t.cpp:4:5
+ addl %eax, "?x@@3HC"
+ .cv_loc 2 1 5 5 # t.cpp:5:5
+ addl $2, "?x@@3HC"
+ .cv_loc 2 1 6 5 # t.cpp:6:5
+ addl $3, "?x@@3HC"
+ .cv_loc 1 1 11 5 # t.cpp:11:5
+ addl $5, "?x@@3HC"
+ .cv_loc 0 1 16 5 # t.cpp:16:5
+ addl $7, "?x@@3HC"
+ .cv_loc 0 1 17 1 # t.cpp:17:1
+ popl %eax
+ retl
+Lfunc_end0:
+
+ .section .debug$T,"dr"
+ .long 4
+ .short 6
+ .short 4609
+ .long 0
+ .short 14
+ .short 4104
+ .asciz "\003\000\000\000\000\000\000\000\000\020\000"
+ .short 14
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "baz"
+ .byte 0
+ .short 14
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "bar"
+ .byte 0
+ .short 14
+ .short 5633
+ .asciz "\000\000\000\000\001\020\000"
+ .ascii "foo"
+ .byte 0
+ .section .debug$S,"dr"
+ .long 4
+ .long 241 # Symbol subsection for baz
+ .long Ltmp1-Ltmp0
+Ltmp0:
+ .short Ltmp3-Ltmp2
+Ltmp2:
+ .short 4423
+ .zero 12
+ .long Lfunc_end0-"?baz@@YAXXZ"
+ .zero 12
+ .secrel32 "?baz@@YAXXZ"
+ .secidx "?baz@@YAXXZ"
+ .byte 0
+ .ascii "baz"
+ .byte 0
+Ltmp3:
+ .short Ltmp5-Ltmp4
+Ltmp4:
+ .short 4429
+ .asciz "\000\000\000\000\000\000\000\000\003\020\000"
+ .cv_inline_linetable 1 1 9 Lfunc_begin0 Lfunc_end0 contains 2
+# CHECK: InlineSite {
+# CHECK: PtrParent: 0x0
+# CHECK: PtrEnd: 0x0
+# CHECK: Inlinee: bar (0x1003)
+# CHECK: BinaryAnnotations [
+# CHECK: ChangeLineOffset: 2
+# CHECK: ChangeCodeOffset: 0x2D
+# CHECK: ChangeCodeLength: 0x7
+# CHECK: ]
+# CHECK: }
+Ltmp5:
+ .short Ltmp7-Ltmp6
+Ltmp6:
+ .short 4429
+ .asciz "\000\000\000\000\000\000\000\000\004\020\000"
+ .cv_inline_linetable 2 1 3 Lfunc_begin0 Lfunc_end0
+# CHECK: InlineSite {
+# CHECK: PtrParent: 0x0
+# CHECK: PtrEnd: 0x0
+# CHECK: Inlinee: foo (0x1004)
+# CHECK: BinaryAnnotations [
+# CHECK: ChangeLineOffset: 1
+# CHECK: ChangeCodeOffset: 0x19
+# CHECK: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x6, LineOffset: 1}
+# CHECK: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1}
+# CHECK: ChangeCodeLength: 0x7
+# CHECK: ]
+# CHECK: }
+Ltmp7:
+ .short 2
+ .short 4430
+# CHECK: InlineSiteEnd {
+# CHECK: }
+ .short 2
+ .short 4430
+# CHECK: InlineSiteEnd {
+# CHECK: }
+ .short 2
+ .short 4431
+Ltmp1:
+ .p2align 2
+ .cv_linetable 0, "?baz@@YAXXZ", Lfunc_end0
+ .cv_filechecksums # File index to string table offset subsection
+ .cv_stringtable # String table
+
diff --git a/test/MC/COFF/cv-loc.s b/test/MC/COFF/cv-loc.s
new file mode 100644
index 000000000000..08ab15aea443
--- /dev/null
+++ b/test/MC/COFF/cv-loc.s
@@ -0,0 +1,85 @@
+# RUN: llvm-mc < %s -triple=x86_64-pc-win32 -filetype=obj | llvm-readobj - -codeview | FileCheck %s
+
+.section .debug$S
+.long 4
+.cv_stringtable
+
+.cv_file 1 "a.c"
+.cv_file 2 "t.inc"
+
+# Implements this C:
+# void f(volatile int *x) {
+# ++*x;
+# #include "t.h" // contains two ++*x; statements
+# ++*x;
+# }
+
+.text
+.def f;
+ .scl 2;
+ .type 32;
+ .endef
+ .text
+ .globl f
+ .align 16, 0x90
+f:
+.Lfunc_begin0:
+ .cv_loc 0 1 5 2
+ incl (%rdi)
+ # #include "t.h" start
+ .cv_loc 0 2 0 0 is_stmt 1
+ incl (%rdi)
+ .cv_loc 0 2 1 0
+ incl (%rdi)
+ # #include "t.h" end
+ .cv_loc 0 1 6 2
+ incl (%rdi)
+ retq
+.Lfunc_end0:
+
+.section .debug$S
+.cv_filechecksums
+.cv_linetable 0, f, .Lfunc_end0
+
+# CHECK: FunctionLineTable [
+# CHECK: LinkageName: f
+# CHECK: Flags: 0x1
+# CHECK: CodeSize: 0x9
+# CHECK: FilenameSegment [
+# CHECK: Filename: a.c (0x0)
+# CHECK: +0x0 [
+# CHECK: LineNumberStart: 5
+# CHECK: LineNumberEndDelta: 0
+# CHECK: IsStatement: No
+# CHECK: ColStart: 2
+# CHECK: ColEnd: 0
+# CHECK: ]
+# CHECK: ]
+# CHECK: FilenameSegment [
+# CHECK: Filename: t.inc (0x8)
+# CHECK: +0x2 [
+# CHECK: LineNumberStart: 0
+# CHECK: LineNumberEndDelta: 0
+# CHECK: IsStatement: Yes
+# CHECK: ColStart: 0
+# CHECK: ColEnd: 0
+# CHECK: ]
+# CHECK: +0x4 [
+# CHECK: LineNumberStart: 1
+# CHECK: LineNumberEndDelta: 0
+# CHECK: IsStatement: No
+# CHECK: ColStart: 0
+# CHECK: ColEnd: 0
+# CHECK: ]
+# CHECK: ]
+# CHECK: FilenameSegment [
+# CHECK: Filename: a.c (0x0)
+# CHECK: +0x6 [
+# CHECK: LineNumberStart: 6
+# CHECK: LineNumberEndDelta: 0
+# CHECK: IsStatement: No
+# CHECK: ColStart: 2
+# CHECK: ColEnd: 0
+# CHECK: ]
+# CHECK: ]
+# CHECK: ]
diff --git a/test/MC/COFF/pr28462.s b/test/MC/COFF/pr28462.s
new file mode 100644
index 000000000000..271963d01c5f
--- /dev/null
+++ b/test/MC/COFF/pr28462.s
@@ -0,0 +1,14 @@
+// RUN: llvm-mc -filetype=obj -triple i686-pc-windows-msvc < %s | llvm-readobj -s --section-data | FileCheck %s
+
+.text
+.set var, 42
+.long var
+.set var, 19
+.long var
+
+// CHECK:Sections [
+// CHECK: Section {
+// CHECK: Name: .text (2E 74 65 78 74 00 00 00)
+// CHECK: SectionData (
+// CHECK: 0000: 2A000000 13000000
+// CHECK: )
diff --git a/test/MC/COFF/relax-reloc.s b/test/MC/COFF/relax-reloc.s
new file mode 100644
index 000000000000..38e0f0cda57d
--- /dev/null
+++ b/test/MC/COFF/relax-reloc.s
@@ -0,0 +1,7 @@
+// RUN: llvm-mc %s -o %t -filetype=obj -triple=x86_64-pc-win32
+
+// Don't crash trying to create relaxable relocations on COFF.
+
+ movl bar(%eax), %ebx
+ add bar(%rip), %rax
+ call *bar(%rip)
diff --git a/test/MC/COFF/seh-section-2.s b/test/MC/COFF/seh-section-2.s
new file mode 100644
index 000000000000..9a7156d4d807
--- /dev/null
+++ b/test/MC/COFF/seh-section-2.s
@@ -0,0 +1,154 @@
+# RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -symbols | FileCheck %s
+
+# This assembly should make an object with two .text sections, two .xdata
+# sections, and two .pdata sections.
+
+ .def f;
+ .scl 2;
+ .type 32;
+ .endef
+ .section .text,"xr",discard,f
+ .globl f
+ .p2align 4, 0x90
+f: # @f
+.Ltmp0:
+.seh_proc f
+# BB#0:
+ subq $40, %rsp
+.Ltmp1:
+ .seh_stackalloc 40
+.Ltmp2:
+ .seh_endprologue
+ callq g
+ nop
+ addq $40, %rsp
+ retq
+ .seh_handlerdata
+ .section .text,"xr",discard,f
+.Ltmp3:
+ .seh_endproc
+
+ .def g;
+ .scl 3;
+ .type 32;
+ .endef
+ .section .text,"xr",associative,f
+ .p2align 4, 0x90
+g: # @g
+.Ltmp4:
+.seh_proc g
+# BB#0:
+.Ltmp5:
+ .seh_endprologue
+ retq
+ .seh_handlerdata
+ .section .text,"xr",associative,f
+.Ltmp6:
+ .seh_endproc
+
+
+# CHECK: Symbols [
+# CHECK: Symbol {
+# CHECK: Name: .text
+# CHECK: Section: .text (4)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 15
+# CHECK: RelocationCount: 1
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0xE17CBB7
+# CHECK: Number: 4
+# CHECK: Selection: Any (0x2)
+# CHECK: }
+# CHECK: }
+# CHECK: Symbol {
+# CHECK: Name: .xdata
+# CHECK: Value: 0
+# CHECK: Section: .xdata (5)
+# CHECK: BaseType: Null (0x0)
+# CHECK: ComplexType: Null (0x0)
+# CHECK: StorageClass: Static (0x3)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 8
+# CHECK: RelocationCount: 0
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0xFC539D1
+# CHECK: Number: 4
+# CHECK: Selection: Associative (0x5)
+# CHECK: AssocSection: .text (4)
+# CHECK: }
+# CHECK: }
+# CHECK: Symbol {
+# CHECK: Name: .text
+# CHECK: Value: 0
+# CHECK: Section: .text (6)
+# CHECK: BaseType: Null (0x0)
+# CHECK: ComplexType: Null (0x0)
+# CHECK: StorageClass: Static (0x3)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 1
+# CHECK: RelocationCount: 0
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0x26D930A
+# CHECK: Number: 4
+# CHECK: Selection: Associative (0x5)
+# CHECK: AssocSection: .text (4)
+# CHECK: }
+# CHECK: }
+# CHECK: Symbol {
+# CHECK: Name: .xdata
+# CHECK: Value: 0
+# CHECK: Section: .xdata (7)
+# CHECK: BaseType: Null (0x0)
+# CHECK: ComplexType: Null (0x0)
+# CHECK: StorageClass: Static (0x3)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 8
+# CHECK: RelocationCount: 0
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0xCCAA009E
+# CHECK: Number: 4
+# CHECK: Selection: Associative (0x5)
+# CHECK: AssocSection: .text (4)
+# CHECK: }
+# CHECK: }
+# CHECK: Symbol {
+# CHECK: Name: .pdata
+# CHECK: Value: 0
+# CHECK: Section: .pdata (8)
+# CHECK: BaseType: Null (0x0)
+# CHECK: ComplexType: Null (0x0)
+# CHECK: StorageClass: Static (0x3)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 12
+# CHECK: RelocationCount: 3
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0xD92012AC
+# CHECK: Number: 4
+# CHECK: Selection: Associative (0x5)
+# CHECK: AssocSection: .text (4)
+# CHECK: }
+# CHECK: }
+# CHECK: Symbol {
+# CHECK: Name: .pdata
+# CHECK: Value: 0
+# CHECK: Section: .pdata (9)
+# CHECK: BaseType: Null (0x0)
+# CHECK: ComplexType: Null (0x0)
+# CHECK: StorageClass: Static (0x3)
+# CHECK: AuxSymbolCount: 1
+# CHECK: AuxSectionDef {
+# CHECK: Length: 12
+# CHECK: RelocationCount: 3
+# CHECK: LineNumberCount: 0
+# CHECK: Checksum: 0xCCAA009E
+# CHECK: Number: 4
+# CHECK: Selection: Associative (0x5)
+# CHECK: AssocSection: .text (4)
+# CHECK: }
+# CHECK: }
+# CHECK: ]
diff --git a/test/MC/COFF/seh-section.s b/test/MC/COFF/seh-section.s
index c95eece800bd..711b3eaccef2 100644
--- a/test/MC/COFF/seh-section.s
+++ b/test/MC/COFF/seh-section.s
@@ -1,10 +1,8 @@
// This test ensures functions in custom sections get unwind info emitted in a
-// distinct .xdata section. Ideally we'd just emit a second .xdata section with
-// the same name and characteristics, but MC uniques sections by name and
-// characteristics, so that is not possible.
+// distinct .xdata section.
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -s -sd | FileCheck %s
-// CHECK: Name: .xdata$foo
+// CHECK: Name: .xdata
// CHECK-NEXT: VirtualSize
// CHECK-NEXT: VirtualAddress
// CHECK-NEXT: RawDataSize: 8
@@ -22,7 +20,7 @@
// CHECK-NEXT: 0000: 01050200 05500402
// CHECK-NEXT: )
-// CHECK: Name: .xdata$.mytext
+// CHECK: Name: .xdata
// CHECK-NEXT: VirtualSize
// CHECK-NEXT: VirtualAddress
// CHECK-NEXT: RawDataSize: 8
diff --git a/test/MC/COFF/weak-alias-local.s b/test/MC/COFF/weak-alias-local.s
new file mode 100644
index 000000000000..01f2ac390a59
--- /dev/null
+++ b/test/MC/COFF/weak-alias-local.s
@@ -0,0 +1,43 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o %t.o
+// RUN: llvm-readobj -t %t.o | FileCheck %s
+
+// test that we create an external symbol for a to point to.
+
+ .data
+ .long 123
+b:
+ .long 42
+ .weak a
+a=b
+
+// CHECK: Symbol {
+// CHECK: Name: b
+// CHECK-NEXT: Value: 4
+// CHECK-NEXT: Section: .data (2)
+// CHECK-NEXT: BaseType: Null (0x0)
+// CHECK-NEXT: ComplexType: Null (0x0)
+// CHECK-NEXT: StorageClass: Static (0x3)
+// CHECK-NEXT: AuxSymbolCount: 0
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: a
+// CHECK-NEXT: Value: 0
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
+// CHECK-NEXT: BaseType: Null (0x0)
+// CHECK-NEXT: ComplexType: Null (0x0)
+// CHECK-NEXT: StorageClass: WeakExternal (0x69)
+// CHECK-NEXT: AuxSymbolCount: 1
+// CHECK-NEXT: AuxWeakExternal {
+// CHECK-NEXT: Linked: .weak.a.default (9)
+// CHECK-NEXT: Search: Library (0x2)
+// CHECK-NEXT: }
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: .weak.a.default
+// CHECK-NEXT: Value: 4
+// CHECK-NEXT: Section: .data (2)
+// CHECK-NEXT: BaseType: Null (0x0)
+// CHECK-NEXT: ComplexType: Null (0x0)
+// CHECK-NEXT: StorageClass: External (0x2)
+// CHECK-NEXT: AuxSymbolCount: 0
+// CHECK-NEXT: }
diff --git a/test/MC/COFF/weak-val.s b/test/MC/COFF/weak-val.s
new file mode 100644
index 000000000000..250bdd86aa33
--- /dev/null
+++ b/test/MC/COFF/weak-val.s
@@ -0,0 +1,33 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s -o %t.o
+// RUN: llvm-readobj -t %t.o | FileCheck %s
+
+// test that b and .weak.b have the correct values.
+
+ .data
+.long 42
+ .weak b
+b:
+ .long 42
+
+// CHECK: Symbol {
+// CHECK: Name: b
+// CHECK-NEXT: Value: 0
+// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
+// CHECK-NEXT: BaseType: Null (0x0)
+// CHECK-NEXT: ComplexType: Null (0x0)
+// CHECK-NEXT: StorageClass: WeakExternal (0x69)
+// CHECK-NEXT: AuxSymbolCount: 1
+// CHECK-NEXT: AuxWeakExternal {
+// CHECK-NEXT: Linked: .weak.b.default (8)
+// CHECK-NEXT: Search: Library (0x2)
+// CHECK-NEXT: }
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: .weak.b.default
+// CHECK-NEXT: Value: 4
+// CHECK-NEXT: Section: .data (2)
+// CHECK-NEXT: BaseType: Null (0x0)
+// CHECK-NEXT: ComplexType: Null (0x0)
+// CHECK-NEXT: StorageClass: External (0x2)
+// CHECK-NEXT: AuxSymbolCount: 0
+// CHECK-NEXT: }
diff --git a/test/MC/COFF/weak.s b/test/MC/COFF/weak.s
index 6086749d80de..e0d077840f15 100644
--- a/test/MC/COFF/weak.s
+++ b/test/MC/COFF/weak.s
@@ -35,6 +35,16 @@ LBB0_2: # %return
// CHECK: Symbols [
// CHECK: Symbol {
+// CHECK: Name: _main
+// CHECK-NEXT: Value: 0
+// CHECK-NEXT: Section: .text
+// CHECK-NEXT: BaseType: Null
+// CHECK-NEXT: ComplexType: Function
+// CHECK-NEXT: StorageClass: External
+// CHECK-NEXT: AuxSymbolCount: 0
+// CHECK-NEXT: }
+
+// CHECK: Symbol {
// CHECK: Name: _test_weak
// CHECK-NEXT: Value: 0
// CHECK-NEXT: Section: IMAGE_SYM_UNDEFINED (0)
@@ -67,7 +77,17 @@ LBB0_2: # %return
// CHECK-NEXT: StorageClass: WeakExternal
// CHECK-NEXT: AuxSymbolCount: 1
// CHECK-NEXT: AuxWeakExternal {
-// CHECK-NEXT: Linked: _main
+// CHECK-NEXT: Linked: .weak._test_weak_alias.default
// CHECK-NEXT: Search: Library
// CHECK-NEXT: }
// CHECK-NEXT: }
+
+// CHECK: Symbol {
+// CHECK: Name: .weak._test_weak_alias.default
+// CHECK-NEXT: Value: 0
+// CHECK-NEXT: Section: .text
+// CHECK-NEXT: BaseType: Null
+// CHECK-NEXT: ComplexType: Null
+// CHECK-NEXT: StorageClass: External
+// CHECK-NEXT: AuxSymbolCount: 0
+// CHECK-NEXT: }
diff --git a/test/MC/Disassembler/AArch64/arm64-advsimd.txt b/test/MC/Disassembler/AArch64/arm64-advsimd.txt
index ef125c8e32f3..2b9520257dc5 100644
--- a/test/MC/Disassembler/AArch64/arm64-advsimd.txt
+++ b/test/MC/Disassembler/AArch64/arm64-advsimd.txt
@@ -1,4 +1,4 @@
-# RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 --disassemble < %s | FileCheck %s
+# RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 --disassemble -print-imm-hex < %s | FileCheck %s
0x00 0xb8 0x20 0x0e
0x00 0xb8 0x20 0x4e
@@ -1804,48 +1804,48 @@
0x00 0x04 0x41 0x7f
0x00 0x14 0x41 0x7f
-# CHECK: shl d0, d0, #1
-# CHECK: sli d0, d0, #1
-# CHECK: sqrshrn b0, h0, #7
-# CHECK: sqrshrn h0, s0, #14
-# CHECK: sqrshrn s0, d0, #29
-# CHECK: sqrshrun b0, h0, #7
-# CHECK: sqrshrun h0, s0, #14
-# CHECK: sqrshrun s0, d0, #29
-# CHECK: sqshlu b0, b0, #1
-# CHECK: sqshlu h0, h0, #2
-# CHECK: sqshlu s0, s0, #3
-# CHECK: sqshlu d0, d0, #4
-# CHECK: sqshl b0, b0, #1
-# CHECK: sqshl h0, h0, #2
-# CHECK: sqshl s0, s0, #3
-# CHECK: sqshl d0, d0, #4
-# CHECK: sqshrn b0, h0, #7
-# CHECK: sqshrn h0, s0, #14
-# CHECK: sqshrn s0, d0, #29
-# CHECK: sqshrun b0, h0, #7
-# CHECK: sqshrun h0, s0, #14
-# CHECK: sqshrun s0, d0, #29
-# CHECK: sri d0, d0, #63
-# CHECK: srshr d0, d0, #63
-# CHECK: srsra d0, d0, #63
-# CHECK: sshr d0, d0, #63
-# CHECK: ucvtf s0, s0, #31
-# CHECK: ucvtf d0, d0, #62
-# CHECK: uqrshrn b0, h0, #7
-# CHECK: uqrshrn h0, s0, #14
-# CHECK: uqrshrn s0, d0, #29
-# CHECK: uqshl b0, b0, #1
-# CHECK: uqshl h0, h0, #2
-# CHECK: uqshl s0, s0, #3
-# CHECK: uqshl d0, d0, #4
-# CHECK: uqshrn b0, h0, #7
-# CHECK: uqshrn h0, s0, #14
-# CHECK: uqshrn s0, d0, #29
-# CHECK: urshr d0, d0, #63
-# CHECK: ursra d0, d0, #63
-# CHECK: ushr d0, d0, #63
-# CHECK: usra d0, d0, #63
+# CHECK: shl d0, d0, #0x1
+# CHECK: sli d0, d0, #0x1
+# CHECK: sqrshrn b0, h0, #0x7
+# CHECK: sqrshrn h0, s0, #0xe
+# CHECK: sqrshrn s0, d0, #0x1d
+# CHECK: sqrshrun b0, h0, #0x7
+# CHECK: sqrshrun h0, s0, #0xe
+# CHECK: sqrshrun s0, d0, #0x1d
+# CHECK: sqshlu b0, b0, #0x1
+# CHECK: sqshlu h0, h0, #0x2
+# CHECK: sqshlu s0, s0, #0x3
+# CHECK: sqshlu d0, d0, #0x4
+# CHECK: sqshl b0, b0, #0x1
+# CHECK: sqshl h0, h0, #0x2
+# CHECK: sqshl s0, s0, #0x3
+# CHECK: sqshl d0, d0, #0x4
+# CHECK: sqshrn b0, h0, #0x7
+# CHECK: sqshrn h0, s0, #0xe
+# CHECK: sqshrn s0, d0, #0x1d
+# CHECK: sqshrun b0, h0, #0x7
+# CHECK: sqshrun h0, s0, #0xe
+# CHECK: sqshrun s0, d0, #0x1d
+# CHECK: sri d0, d0, #0x3f
+# CHECK: srshr d0, d0, #0x3f
+# CHECK: srsra d0, d0, #0x3f
+# CHECK: sshr d0, d0, #0x3f
+# CHECK: ucvtf s0, s0, #0x1f
+# CHECK: ucvtf d0, d0, #0x3e
+# CHECK: uqrshrn b0, h0, #0x7
+# CHECK: uqrshrn h0, s0, #0xe
+# CHECK: uqrshrn s0, d0, #0x1d
+# CHECK: uqshl b0, b0, #0x1
+# CHECK: uqshl h0, h0, #0x2
+# CHECK: uqshl s0, s0, #0x3
+# CHECK: uqshl d0, d0, #0x4
+# CHECK: uqshrn b0, h0, #0x7
+# CHECK: uqshrn h0, s0, #0xe
+# CHECK: uqshrn s0, d0, #0x1d
+# CHECK: urshr d0, d0, #0x3f
+# CHECK: ursra d0, d0, #0x3f
+# CHECK: ushr d0, d0, #0x3f
+# CHECK: usra d0, d0, #0x3f
#===-------------------------------------------------------------------------===
# AdvSIMD vector + shift instructions
@@ -2023,177 +2023,177 @@
0x00 0x14 0x26 0x6f
0x00 0x14 0x47 0x6f
-# CHECK: fcvtzs.2s v0, v0, #31
-# CHECK: fcvtzs.4s v0, v0, #30
-# CHECK: fcvtzs.2d v0, v0, #61
-# CHECK: fcvtzu.2s v0, v0, #31
-# CHECK: fcvtzu.4s v0, v0, #30
-# CHECK: fcvtzu.2d v0, v0, #61
-# CHECK: rshrn.8b v0, v0, #7
-# CHECK: rshrn2.16b v0, v0, #6
-# CHECK: rshrn.4h v0, v0, #13
-# CHECK: rshrn2.8h v0, v0, #12
-# CHECK: rshrn.2s v0, v0, #27
-# CHECK: rshrn2.4s v0, v0, #26
-# CHECK: scvtf.2s v0, v0, #31
-# CHECK: scvtf.4s v0, v0, #30
-# CHECK: scvtf.2d v0, v0, #61
-# CHECK: shl.8b v0, v0, #1
-# CHECK: shl.16b v0, v0, #2
-# CHECK: shl.4h v0, v0, #3
-# CHECK: shl.8h v0, v0, #4
-# CHECK: shl.2s v0, v0, #5
-# CHECK: shl.4s v0, v0, #6
-# CHECK: shl.2d v0, v0, #7
-# CHECK: shrn.8b v0, v0, #7
-# CHECK: shrn2.16b v0, v0, #6
-# CHECK: shrn.4h v0, v0, #13
-# CHECK: shrn2.8h v0, v0, #12
-# CHECK: shrn.2s v0, v0, #27
-# CHECK: shrn2.4s v0, v0, #26
-# CHECK: sli.8b v0, v0, #1
-# CHECK: sli.16b v0, v0, #2
-# CHECK: sli.4h v0, v0, #3
-# CHECK: sli.8h v0, v0, #4
-# CHECK: sli.2s v0, v0, #5
-# CHECK: sli.4s v0, v0, #6
-# CHECK: sli.2d v0, v0, #7
-# CHECK: sqrshrn.8b v0, v0, #7
-# CHECK: sqrshrn2.16b v0, v0, #6
-# CHECK: sqrshrn.4h v0, v0, #13
-# CHECK: sqrshrn2.8h v0, v0, #12
-# CHECK: sqrshrn.2s v0, v0, #27
-# CHECK: sqrshrn2.4s v0, v0, #26
-# CHECK: sqrshrun.8b v0, v0, #7
-# CHECK: sqrshrun2.16b v0, v0, #6
-# CHECK: sqrshrun.4h v0, v0, #13
-# CHECK: sqrshrun2.8h v0, v0, #12
-# CHECK: sqrshrun.2s v0, v0, #27
-# CHECK: sqrshrun2.4s v0, v0, #26
-# CHECK: sqshlu.8b v0, v0, #1
-# CHECK: sqshlu.16b v0, v0, #2
-# CHECK: sqshlu.4h v0, v0, #3
-# CHECK: sqshlu.8h v0, v0, #4
-# CHECK: sqshlu.2s v0, v0, #5
-# CHECK: sqshlu.4s v0, v0, #6
-# CHECK: sqshlu.2d v0, v0, #7
-# CHECK: sqshl.8b v0, v0, #1
-# CHECK: sqshl.16b v0, v0, #2
-# CHECK: sqshl.4h v0, v0, #3
-# CHECK: sqshl.8h v0, v0, #4
-# CHECK: sqshl.2s v0, v0, #5
-# CHECK: sqshl.4s v0, v0, #6
-# CHECK: sqshl.2d v0, v0, #7
-# CHECK: sqshrn.8b v0, v0, #7
-# CHECK: sqshrn2.16b v0, v0, #6
-# CHECK: sqshrn.4h v0, v0, #13
-# CHECK: sqshrn2.8h v0, v0, #12
-# CHECK: sqshrn.2s v0, v0, #27
-# CHECK: sqshrn2.4s v0, v0, #26
-# CHECK: sqshrun.8b v0, v0, #7
-# CHECK: sqshrun2.16b v0, v0, #6
-# CHECK: sqshrun.4h v0, v0, #13
-# CHECK: sqshrun2.8h v0, v0, #12
-# CHECK: sqshrun.2s v0, v0, #27
-# CHECK: sqshrun2.4s v0, v0, #26
-# CHECK: sri.8b v0, v0, #7
-# CHECK: sri.16b v0, v0, #6
-# CHECK: sri.4h v0, v0, #13
-# CHECK: sri.8h v0, v0, #12
-# CHECK: sri.2s v0, v0, #27
-# CHECK: sri.4s v0, v0, #26
-# CHECK: sri.2d v0, v0, #57
-# CHECK: srshr.8b v0, v0, #7
-# CHECK: srshr.16b v0, v0, #6
-# CHECK: srshr.4h v0, v0, #13
-# CHECK: srshr.8h v0, v0, #12
-# CHECK: srshr.2s v0, v0, #27
-# CHECK: srshr.4s v0, v0, #26
-# CHECK: srshr.2d v0, v0, #57
-# CHECK: srsra.8b v0, v0, #7
-# CHECK: srsra.16b v0, v0, #6
-# CHECK: srsra.4h v0, v0, #13
-# CHECK: srsra.8h v0, v0, #12
-# CHECK: srsra.2s v0, v0, #27
-# CHECK: srsra.4s v0, v0, #26
-# CHECK: srsra.2d v0, v0, #57
-# CHECK: sshll.8h v0, v0, #1
-# CHECK: sshll2.8h v0, v0, #2
-# CHECK: sshll.4s v0, v0, #3
-# CHECK: sshll2.4s v0, v0, #4
-# CHECK: sshll.2d v0, v0, #5
-# CHECK: sshll2.2d v0, v0, #6
-# CHECK: sshr.8b v0, v0, #7
-# CHECK: sshr.16b v0, v0, #6
-# CHECK: sshr.4h v0, v0, #13
-# CHECK: sshr.8h v0, v0, #12
-# CHECK: sshr.2s v0, v0, #27
-# CHECK: sshr.4s v0, v0, #26
-# CHECK: sshr.2d v0, v0, #57
-# CHECK: sshr.8b v0, v0, #7
-# CHECK: ssra.16b v0, v0, #6
-# CHECK: ssra.4h v0, v0, #13
-# CHECK: ssra.8h v0, v0, #12
-# CHECK: ssra.2s v0, v0, #27
-# CHECK: ssra.4s v0, v0, #26
-# CHECK: ssra.2d v0, v0, #57
-# CHECK: ssra d0, d0, #64
-# CHECK: ucvtf.2s v0, v0, #31
-# CHECK: ucvtf.4s v0, v0, #30
-# CHECK: ucvtf.2d v0, v0, #61
-# CHECK: uqrshrn.8b v0, v0, #7
-# CHECK: uqrshrn2.16b v0, v0, #6
-# CHECK: uqrshrn.4h v0, v0, #13
-# CHECK: uqrshrn2.8h v0, v0, #12
-# CHECK: uqrshrn.2s v0, v0, #27
-# CHECK: uqrshrn2.4s v0, v0, #26
-# CHECK: uqshl.8b v0, v0, #1
-# CHECK: uqshl.16b v0, v0, #2
-# CHECK: uqshl.4h v0, v0, #3
-# CHECK: uqshl.8h v0, v0, #4
-# CHECK: uqshl.2s v0, v0, #5
-# CHECK: uqshl.4s v0, v0, #6
-# CHECK: uqshl.2d v0, v0, #7
-# CHECK: uqshrn.8b v0, v0, #7
-# CHECK: uqshrn2.16b v0, v0, #6
-# CHECK: uqshrn.4h v0, v0, #13
-# CHECK: uqshrn2.8h v0, v0, #12
-# CHECK: uqshrn.2s v0, v0, #27
-# CHECK: uqshrn2.4s v0, v0, #26
-# CHECK: urshr.8b v0, v0, #7
-# CHECK: urshr.16b v0, v0, #6
-# CHECK: urshr.4h v0, v0, #13
-# CHECK: urshr.8h v0, v0, #12
-# CHECK: urshr.2s v0, v0, #27
-# CHECK: urshr.4s v0, v0, #26
-# CHECK: urshr.2d v0, v0, #57
-# CHECK: ursra.8b v0, v0, #7
-# CHECK: ursra.16b v0, v0, #6
-# CHECK: ursra.4h v0, v0, #13
-# CHECK: ursra.8h v0, v0, #12
-# CHECK: ursra.2s v0, v0, #27
-# CHECK: ursra.4s v0, v0, #26
-# CHECK: ursra.2d v0, v0, #57
-# CHECK: ushll.8h v0, v0, #1
-# CHECK: ushll2.8h v0, v0, #2
-# CHECK: ushll.4s v0, v0, #3
-# CHECK: ushll2.4s v0, v0, #4
-# CHECK: ushll.2d v0, v0, #5
-# CHECK: ushll2.2d v0, v0, #6
-# CHECK: ushr.8b v0, v0, #7
-# CHECK: ushr.16b v0, v0, #6
-# CHECK: ushr.4h v0, v0, #13
-# CHECK: ushr.8h v0, v0, #12
-# CHECK: ushr.2s v0, v0, #27
-# CHECK: ushr.4s v0, v0, #26
-# CHECK: ushr.2d v0, v0, #57
-# CHECK: usra.8b v0, v0, #7
-# CHECK: usra.16b v0, v0, #6
-# CHECK: usra.4h v0, v0, #13
-# CHECK: usra.8h v0, v0, #12
-# CHECK: usra.2s v0, v0, #27
-# CHECK: usra.4s v0, v0, #26
-# CHECK: usra.2d v0, v0, #57
+# CHECK: fcvtzs.2s v0, v0, #0x1f
+# CHECK: fcvtzs.4s v0, v0, #0x1e
+# CHECK: fcvtzs.2d v0, v0, #0x3d
+# CHECK: fcvtzu.2s v0, v0, #0x1f
+# CHECK: fcvtzu.4s v0, v0, #0x1e
+# CHECK: fcvtzu.2d v0, v0, #0x3d
+# CHECK: rshrn.8b v0, v0, #0x7
+# CHECK: rshrn2.16b v0, v0, #0x6
+# CHECK: rshrn.4h v0, v0, #0xd
+# CHECK: rshrn2.8h v0, v0, #0xc
+# CHECK: rshrn.2s v0, v0, #0x1b
+# CHECK: rshrn2.4s v0, v0, #0x1a
+# CHECK: scvtf.2s v0, v0, #0x1f
+# CHECK: scvtf.4s v0, v0, #0x1e
+# CHECK: scvtf.2d v0, v0, #0x3d
+# CHECK: shl.8b v0, v0, #0x1
+# CHECK: shl.16b v0, v0, #0x2
+# CHECK: shl.4h v0, v0, #0x3
+# CHECK: shl.8h v0, v0, #0x4
+# CHECK: shl.2s v0, v0, #0x5
+# CHECK: shl.4s v0, v0, #0x6
+# CHECK: shl.2d v0, v0, #0x7
+# CHECK: shrn.8b v0, v0, #0x7
+# CHECK: shrn2.16b v0, v0, #0x6
+# CHECK: shrn.4h v0, v0, #0xd
+# CHECK: shrn2.8h v0, v0, #0xc
+# CHECK: shrn.2s v0, v0, #0x1b
+# CHECK: shrn2.4s v0, v0, #0x1a
+# CHECK: sli.8b v0, v0, #0x1
+# CHECK: sli.16b v0, v0, #0x2
+# CHECK: sli.4h v0, v0, #0x3
+# CHECK: sli.8h v0, v0, #0x4
+# CHECK: sli.2s v0, v0, #0x5
+# CHECK: sli.4s v0, v0, #0x6
+# CHECK: sli.2d v0, v0, #0x7
+# CHECK: sqrshrn.8b v0, v0, #0x7
+# CHECK: sqrshrn2.16b v0, v0, #0x6
+# CHECK: sqrshrn.4h v0, v0, #0xd
+# CHECK: sqrshrn2.8h v0, v0, #0xc
+# CHECK: sqrshrn.2s v0, v0, #0x1b
+# CHECK: sqrshrn2.4s v0, v0, #0x1a
+# CHECK: sqrshrun.8b v0, v0, #0x7
+# CHECK: sqrshrun2.16b v0, v0, #0x6
+# CHECK: sqrshrun.4h v0, v0, #0xd
+# CHECK: sqrshrun2.8h v0, v0, #0xc
+# CHECK: sqrshrun.2s v0, v0, #0x1b
+# CHECK: sqrshrun2.4s v0, v0, #0x1a
+# CHECK: sqshlu.8b v0, v0, #0x1
+# CHECK: sqshlu.16b v0, v0, #0x2
+# CHECK: sqshlu.4h v0, v0, #0x3
+# CHECK: sqshlu.8h v0, v0, #0x4
+# CHECK: sqshlu.2s v0, v0, #0x5
+# CHECK: sqshlu.4s v0, v0, #0x6
+# CHECK: sqshlu.2d v0, v0, #0x7
+# CHECK: sqshl.8b v0, v0, #0x1
+# CHECK: sqshl.16b v0, v0, #0x2
+# CHECK: sqshl.4h v0, v0, #0x3
+# CHECK: sqshl.8h v0, v0, #0x4
+# CHECK: sqshl.2s v0, v0, #0x5
+# CHECK: sqshl.4s v0, v0, #0x6
+# CHECK: sqshl.2d v0, v0, #0x7
+# CHECK: sqshrn.8b v0, v0, #0x7
+# CHECK: sqshrn2.16b v0, v0, #0x6
+# CHECK: sqshrn.4h v0, v0, #0xd
+# CHECK: sqshrn2.8h v0, v0, #0xc
+# CHECK: sqshrn.2s v0, v0, #0x1b
+# CHECK: sqshrn2.4s v0, v0, #0x1a
+# CHECK: sqshrun.8b v0, v0, #0x7
+# CHECK: sqshrun2.16b v0, v0, #0x6
+# CHECK: sqshrun.4h v0, v0, #0xd
+# CHECK: sqshrun2.8h v0, v0, #0xc
+# CHECK: sqshrun.2s v0, v0, #0x1b
+# CHECK: sqshrun2.4s v0, v0, #0x1a
+# CHECK: sri.8b v0, v0, #0x7
+# CHECK: sri.16b v0, v0, #0x6
+# CHECK: sri.4h v0, v0, #0xd
+# CHECK: sri.8h v0, v0, #0xc
+# CHECK: sri.2s v0, v0, #0x1b
+# CHECK: sri.4s v0, v0, #0x1a
+# CHECK: sri.2d v0, v0, #0x39
+# CHECK: srshr.8b v0, v0, #0x7
+# CHECK: srshr.16b v0, v0, #0x6
+# CHECK: srshr.4h v0, v0, #0xd
+# CHECK: srshr.8h v0, v0, #0xc
+# CHECK: srshr.2s v0, v0, #0x1b
+# CHECK: srshr.4s v0, v0, #0x1a
+# CHECK: srshr.2d v0, v0, #0x39
+# CHECK: srsra.8b v0, v0, #0x7
+# CHECK: srsra.16b v0, v0, #0x6
+# CHECK: srsra.4h v0, v0, #0xd
+# CHECK: srsra.8h v0, v0, #0xc
+# CHECK: srsra.2s v0, v0, #0x1b
+# CHECK: srsra.4s v0, v0, #0x1a
+# CHECK: srsra.2d v0, v0, #0x39
+# CHECK: sshll.8h v0, v0, #0x1
+# CHECK: sshll2.8h v0, v0, #0x2
+# CHECK: sshll.4s v0, v0, #0x3
+# CHECK: sshll2.4s v0, v0, #0x4
+# CHECK: sshll.2d v0, v0, #0x5
+# CHECK: sshll2.2d v0, v0, #0x6
+# CHECK: sshr.8b v0, v0, #0x7
+# CHECK: sshr.16b v0, v0, #0x6
+# CHECK: sshr.4h v0, v0, #0xd
+# CHECK: sshr.8h v0, v0, #0xc
+# CHECK: sshr.2s v0, v0, #0x1b
+# CHECK: sshr.4s v0, v0, #0x1a
+# CHECK: sshr.2d v0, v0, #0x39
+# CHECK: sshr.8b v0, v0, #0x7
+# CHECK: ssra.16b v0, v0, #0x6
+# CHECK: ssra.4h v0, v0, #0xd
+# CHECK: ssra.8h v0, v0, #0xc
+# CHECK: ssra.2s v0, v0, #0x1b
+# CHECK: ssra.4s v0, v0, #0x1a
+# CHECK: ssra.2d v0, v0, #0x39
+# CHECK: ssra d0, d0, #0x40
+# CHECK: ucvtf.2s v0, v0, #0x1f
+# CHECK: ucvtf.4s v0, v0, #0x1e
+# CHECK: ucvtf.2d v0, v0, #0x3d
+# CHECK: uqrshrn.8b v0, v0, #0x7
+# CHECK: uqrshrn2.16b v0, v0, #0x6
+# CHECK: uqrshrn.4h v0, v0, #0xd
+# CHECK: uqrshrn2.8h v0, v0, #0xc
+# CHECK: uqrshrn.2s v0, v0, #0x1b
+# CHECK: uqrshrn2.4s v0, v0, #0x1a
+# CHECK: uqshl.8b v0, v0, #0x1
+# CHECK: uqshl.16b v0, v0, #0x2
+# CHECK: uqshl.4h v0, v0, #0x3
+# CHECK: uqshl.8h v0, v0, #0x4
+# CHECK: uqshl.2s v0, v0, #0x5
+# CHECK: uqshl.4s v0, v0, #0x6
+# CHECK: uqshl.2d v0, v0, #0x7
+# CHECK: uqshrn.8b v0, v0, #0x7
+# CHECK: uqshrn2.16b v0, v0, #0x6
+# CHECK: uqshrn.4h v0, v0, #0xd
+# CHECK: uqshrn2.8h v0, v0, #0xc
+# CHECK: uqshrn.2s v0, v0, #0x1b
+# CHECK: uqshrn2.4s v0, v0, #0x1a
+# CHECK: urshr.8b v0, v0, #0x7
+# CHECK: urshr.16b v0, v0, #0x6
+# CHECK: urshr.4h v0, v0, #0xd
+# CHECK: urshr.8h v0, v0, #0xc
+# CHECK: urshr.2s v0, v0, #0x1b
+# CHECK: urshr.4s v0, v0, #0x1a
+# CHECK: urshr.2d v0, v0, #0x39
+# CHECK: ursra.8b v0, v0, #0x7
+# CHECK: ursra.16b v0, v0, #0x6
+# CHECK: ursra.4h v0, v0, #0xd
+# CHECK: ursra.8h v0, v0, #0xc
+# CHECK: ursra.2s v0, v0, #0x1b
+# CHECK: ursra.4s v0, v0, #0x1a
+# CHECK: ursra.2d v0, v0, #0x39
+# CHECK: ushll.8h v0, v0, #0x1
+# CHECK: ushll2.8h v0, v0, #0x2
+# CHECK: ushll.4s v0, v0, #0x3
+# CHECK: ushll2.4s v0, v0, #0x4
+# CHECK: ushll.2d v0, v0, #0x5
+# CHECK: ushll2.2d v0, v0, #0x6
+# CHECK: ushr.8b v0, v0, #0x7
+# CHECK: ushr.16b v0, v0, #0x6
+# CHECK: ushr.4h v0, v0, #0xd
+# CHECK: ushr.8h v0, v0, #0xc
+# CHECK: ushr.2s v0, v0, #0x1b
+# CHECK: ushr.4s v0, v0, #0x1a
+# CHECK: ushr.2d v0, v0, #0x39
+# CHECK: usra.8b v0, v0, #0x7
+# CHECK: usra.16b v0, v0, #0x6
+# CHECK: usra.4h v0, v0, #0xd
+# CHECK: usra.8h v0, v0, #0xc
+# CHECK: usra.2s v0, v0, #0x1b
+# CHECK: usra.4s v0, v0, #0x1a
+# CHECK: usra.2d v0, v0, #0x39
0x00 0xe0 0x20 0x0e
diff --git a/test/MC/Disassembler/AArch64/arm64-arithmetic.txt b/test/MC/Disassembler/AArch64/arm64-arithmetic.txt
index bd870edc8af7..95b44858e840 100644
--- a/test/MC/Disassembler/AArch64/arm64-arithmetic.txt
+++ b/test/MC/Disassembler/AArch64/arm64-arithmetic.txt
@@ -452,30 +452,30 @@
0x20 0x00 0xa0 0x52
0x20 0x00 0xa0 0xd2
-# CHECK: movz w0, #0x1
-# CHECK: movz x0, #0x1
-# CHECK: movz w0, #0x1, lsl #16
-# CHECK: movz x0, #0x1, lsl #16
+# CHECK: mov w0, #1
+# CHECK: mov x0, #1
+# CHECK: mov w0, #65536
+# CHECK: mov x0, #65536
0x40 0x00 0x80 0x12
0x40 0x00 0x80 0x92
0x40 0x00 0xa0 0x12
0x40 0x00 0xa0 0x92
-# CHECK: movn w0, #0x2
-# CHECK: movn x0, #0x2
-# CHECK: movn w0, #0x2, lsl #16
-# CHECK: movn x0, #0x2, lsl #16
+# CHECK: mov w0, #-3
+# CHECK: mov x0, #-3
+# CHECK: mov w0, #-131073
+# CHECK: mov x0, #-131073
0x20 0x00 0x80 0x72
0x20 0x00 0x80 0xf2
0x20 0x00 0xa0 0x72
0x20 0x00 0xa0 0xf2
-# CHECK: movk w0, #0x1
-# CHECK: movk x0, #0x1
-# CHECK: movk w0, #0x1, lsl #16
-# CHECK: movk x0, #0x1, lsl #16
+# CHECK: movk w0, #1
+# CHECK: movk x0, #1
+# CHECK: movk w0, #1, lsl #16
+# CHECK: movk x0, #1, lsl #16
#==---------------------------------------------------------------------------==
# Conditionally set flags instructions
diff --git a/test/MC/Disassembler/AArch64/arm64-system.txt b/test/MC/Disassembler/AArch64/arm64-system.txt
index 9027a60dd30d..e31d32329519 100644
--- a/test/MC/Disassembler/AArch64/arm64-system.txt
+++ b/test/MC/Disassembler/AArch64/arm64-system.txt
@@ -48,7 +48,7 @@
# CHECK: sys #2, c0, c5, #7
# CHECK: sys #7, c6, c10, #7, x7
# CHECK: sysl x20, #6, c3, c15, #7
-# CHECK: msr SPSEL, #0
+# CHECK: msr SPSel, #0
# CHECK: msr S3_0_C11_C0_0, x0
# CHECK: mrs x0, S3_0_C11_C0_0
diff --git a/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt b/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt
index 217424cc46e0..dd18b8faf95b 100644
--- a/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt
+++ b/test/MC/Disassembler/AArch64/armv8.2a-statistical-profiling.txt
@@ -3,7 +3,7 @@
[0x3f,0x22,0x03,0xd5]
# CHECK: psb csync
-# NO_SPE: hint #0x11
+# NO_SPE: hint #17
[0x00,0x9a,0x18,0xd5]
[0x20,0x9a,0x18,0xd5]
diff --git a/test/MC/Disassembler/AArch64/basic-a64-instructions.txt b/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
index 185f0c1124a6..4d438e032e77 100644
--- a/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
+++ b/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
@@ -2907,8 +2907,8 @@
0x7f 0xf0 0x1 0xf2
0xff 0xf3 0x0 0xf2
-# CHECK: orr w3, wzr, #0xf000f
-# CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa
+# CHECK: mov w3, #983055
+# CHECK: mov x10, #-6148914691236517206
0xe3 0x8f 0x0 0x32
0xea 0xf3 0x1 0xb2
@@ -2991,19 +2991,19 @@
# limitation in InstAlias. Lots of the "mov[nz]" instructions should
# be "mov".
-# CHECK: movz w1, #{{65535|0xffff}}
+# CHECK: mov w1, #{{65535|0xffff}}
# CHECK: movz w2, #0, lsl #16
-# CHECK: movn w2, #{{1234|0x4d2}}
+# CHECK: mov w2, #-1235
0xe1 0xff 0x9f 0x52
0x2 0x0 0xa0 0x52
0x42 0x9a 0x80 0x12
-# CHECK: movz x2, #{{1234|0x4d2}}, lsl #32
+# CHECK: mov x2, #5299989643264
# CHECK: movk xzr, #{{4321|0x10e1}}, lsl #48
0x42 0x9a 0xc0 0xd2
0x3f 0x1c 0xe2 0xf2
-# CHECK: movz x2, #0
+# CHECK: mov x2, #0
# CHECK: movk w3, #0
# CHECK: movz x4, #0, lsl #16
# CHECK: movk w5, #0, lsl #16
@@ -3131,9 +3131,9 @@
0xdf 0x3f 0x3 0xd5
0xdf 0x3c 0x3 0xd5
-# CHECK: msr {{spsel|SPSEL}}, #0
-# CHECK: msr {{daifset|DAIFSET}}, #15
-# CHECK: msr {{daifclr|DAIFCLR}}, #12
+# CHECK: msr {{SPSel|SPSEL}}, #0
+# CHECK: msr {{DAIFSet|DAIFSET}}, #15
+# CHECK: msr {{DAIFClr|DAIFCLR}}, #12
0xbf 0x40 0x0 0xd5
0xdf 0x4f 0x3 0xd5
0xff 0x4c 0x3 0xd5
@@ -3289,14 +3289,14 @@
# CHECK: msr {{sp_el0|SP_EL0}}, x12
# CHECK: msr {{sp_el1|SP_EL1}}, x12
# CHECK: msr {{sp_el2|SP_EL2}}, x12
-# CHECK: msr {{spsel|SPSEL}}, x12
+# CHECK: msr {{SPSel|SPSEL}}, x12
# CHECK: msr {{nzcv|NZCV}}, x12
# CHECK: msr {{daif|DAIF}}, x12
-# CHECK: msr {{currentel|CURRENTEL}}, x12
-# CHECK: msr {{spsr_irq|SPSR_IRQ}}, x12
-# CHECK: msr {{spsr_abt|SPSR_ABT}}, x12
-# CHECK: msr {{spsr_und|SPSR_UND}}, x12
-# CHECK: msr {{spsr_fiq|SPSR_FIQ}}, x12
+# CHECK: msr {{CurrentEL|CURRENTEL}}, x12
+# CHECK: msr {{SPSR_irq|SPSR_IRQ}}, x12
+# CHECK: msr {{SPSR_abt|SPSR_ABT}}, x12
+# CHECK: msr {{SPSR_und|SPSR_UND}}, x12
+# CHECK: msr {{SPSR_fiq|SPSR_FIQ}}, x12
# CHECK: msr {{fpcr|FPCR}}, x12
# CHECK: msr {{fpsr|FPSR}}, x12
# CHECK: msr {{dspsr_el0|DSPSR_EL0}}, x12
@@ -3581,14 +3581,14 @@
# CHECK: mrs x9, {{sp_el0|SP_EL0}}
# CHECK: mrs x9, {{sp_el1|SP_EL1}}
# CHECK: mrs x9, {{sp_el2|SP_EL2}}
-# CHECK: mrs x9, {{spsel|SPSEL}}
+# CHECK: mrs x9, {{SPSel|SPSEL}}
# CHECK: mrs x9, {{nzcv|NZCV}}
# CHECK: mrs x9, {{daif|DAIF}}
-# CHECK: mrs x9, {{currentel|CURRENTEL}}
-# CHECK: mrs x9, {{spsr_irq|SPSR_IRQ}}
-# CHECK: mrs x9, {{spsr_abt|SPSR_ABT}}
-# CHECK: mrs x9, {{spsr_und|SPSR_UND}}
-# CHECK: mrs x9, {{spsr_fiq|SPSR_FIQ}}
+# CHECK: mrs x9, {{CurrentEL|CURRENTEL}}
+# CHECK: mrs x9, {{SPSR_irq|SPSR_IRQ}}
+# CHECK: mrs x9, {{SPSR_abt|SPSR_ABT}}
+# CHECK: mrs x9, {{SPSR_und|SPSR_UND}}
+# CHECK: mrs x9, {{SPSR_fiq|SPSR_FIQ}}
# CHECK: mrs x9, {{fpcr|FPCR}}
# CHECK: mrs x9, {{fpsr|FPSR}}
# CHECK: mrs x9, {{dspsr_el0|DSPSR_EL0}}
diff --git a/test/MC/Disassembler/AArch64/neon-instructions.txt b/test/MC/Disassembler/AArch64/neon-instructions.txt
index 35906684f9ca..ff7dedce444a 100644
--- a/test/MC/Disassembler/AArch64/neon-instructions.txt
+++ b/test/MC/Disassembler/AArch64/neon-instructions.txt
@@ -87,10 +87,10 @@
# Vector Bitwise Bit Clear (AND NOT) - immediate
# Vector Bitwise OR - immedidate
#------------------------------------------------------------------------------
-# CHECK: movi v31.4s, #0xff, lsl #24
+# CHECK: movi v31.4s, #255, lsl #24
# CHECK: mvni v0.2s, #{{0x0|0}}
-# CHECK: bic v15.4h, #0xf, lsl #8
-# CHECK: orr v16.8h, #0x1f
+# CHECK: bic v15.4h, #15, lsl #8
+# CHECK: orr v16.8h, #31
0xff 0x67 0x07 0x4f
0x00 0x04 0x00 0x2f
0xef 0xb5 0x00 0x2f
@@ -100,8 +100,8 @@
# Vector Move Immediate Masked
# Vector Move Inverted Immediate Masked
#------------------------------------------------------------------------------
-# CHECK: movi v8.2s, #0x8, msl #8
-# CHECK: mvni v16.4s, #0x10, msl #16
+# CHECK: movi v8.2s, #8, msl #8
+# CHECK: mvni v16.4s, #16, msl #16
0x08 0xc5 0x00 0x0f
0x10 0xd6 0x00 0x6f
@@ -110,8 +110,8 @@
# Vector Move Immediate - bytemask, per doubleword
# Vector Move Immediate - bytemask, one doubleword
#------------------------------------------------------------------------------
-# CHECK: movi v16.8b, #0xff
-# CHECK: movi v31.16b, #0x1f
+# CHECK: movi v16.8b, #255
+# CHECK: movi v31.16b, #31
# CHECK: movi d15, #0xff00ff00ff00ff
# CHECK: movi v31.2d, #0xff0000ff0000ffff
0xf0 0xe7 0x07 0x0f
diff --git a/test/MC/Disassembler/AArch64/ras-extension.txt b/test/MC/Disassembler/AArch64/ras-extension.txt
new file mode 100644
index 000000000000..241dc558d084
--- /dev/null
+++ b/test/MC/Disassembler/AArch64/ras-extension.txt
@@ -0,0 +1,47 @@
+# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+ras --disassemble < %s | FileCheck %s
+
+[0x1f,0x22,0x03,0xd5]
+# CHECK: esb
+
+# CHECK: msr ERRSELR_EL1, x0
+# CHECK: msr ERXCTLR_EL1, x0
+# CHECK: msr ERXSTATUS_EL1, x0
+# CHECK: msr ERXADDR_EL1, x0
+# CHECK: msr ERXMISC0_EL1, x0
+# CHECK: msr ERXMISC1_EL1, x0
+# CHECK: msr DISR_EL1, x0
+# CHECK: msr VDISR_EL2, x0
+# CHECK: msr VSESR_EL2, x0
+[0x20,0x53,0x18,0xd5]
+[0x20,0x54,0x18,0xd5]
+[0x40,0x54,0x18,0xd5]
+[0x60,0x54,0x18,0xd5]
+[0x00,0x55,0x18,0xd5]
+[0x20,0x55,0x18,0xd5]
+[0x20,0xc1,0x18,0xd5]
+[0x20,0xc1,0x1c,0xd5]
+[0x60,0x52,0x1c,0xd5]
+
+# CHECK: mrs x0, ERRSELR_EL1
+# CHECK: mrs x0, ERXCTLR_EL1
+# CHECK: mrs x0, ERXSTATUS_EL1
+# CHECK: mrs x0, ERXADDR_EL1
+# CHECK: mrs x0, ERXMISC0_EL1
+# CHECK: mrs x0, ERXMISC1_EL1
+# CHECK: mrs x0, DISR_EL1
+# CHECK: mrs x0, VDISR_EL2
+# CHECK: mrs x0, VSESR_EL2
+[0x20,0x53,0x38,0xd5]
+[0x20,0x54,0x38,0xd5]
+[0x40,0x54,0x38,0xd5]
+[0x60,0x54,0x38,0xd5]
+[0x00,0x55,0x38,0xd5]
+[0x20,0x55,0x38,0xd5]
+[0x20,0xc1,0x38,0xd5]
+[0x20,0xc1,0x3c,0xd5]
+[0x60,0x52,0x3c,0xd5]
+
+# CHECK: mrs x0, ERRIDR_EL1
+# CHECK: mrs x0, ERXFR_EL1
+[0x00,0x53,0x38,0xd5]
+[0x00,0x54,0x38,0xd5]
diff --git a/test/MC/Disassembler/AMDGPU/dpp_vi.txt b/test/MC/Disassembler/AMDGPU/dpp_vi.txt
new file mode 100644
index 000000000000..117110290edb
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/dpp_vi.txt
@@ -0,0 +1,89 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[0,2,1,1] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x58,0x00,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x58 0x00 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x01,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x01 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x1f,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x1f 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_ror:12 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x2c,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x2c 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 wave_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x30,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x30 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 wave_rol:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x34,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x34 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 wave_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x38,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x38 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 wave_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x3c,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x3c 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x40,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x40 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x41,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x41 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_bcast:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x42,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x42 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 row_bcast:31 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x43,0x01,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x43 0x01 0xff
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xa1]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x08 0xa1
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xaf]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x00 0xaf
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xf1]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x00 0xf1
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xff]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x08 0xff
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0x1 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x00,0xa1]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x00 0xa1
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xa bank_mask:0xf bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xaf]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x08 0xaf
+
+# VI: v_mov_b32_dpp v0, v0 quad_perm:[1,3,0,1] row_mask:0xf bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x02,0x00,0x7e,0x00,0x4d,0x08,0xf1]
+0xfa 0x02 0x00 0x7e 0x00 0x4d 0x08 0xf1
+
+# VI: v_cvt_u32_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x0e,0x00,0x7e,0x00,0x01,0x09,0xa1]
+0xfa 0x0e 0x00 0x7e 0x00 0x01 0x09 0xa1
+
+# VI: v_fract_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x36,0x00,0x7e,0x00,0x01,0x09,0xa1]
+0xfa 0x36 0x00 0x7e 0x00 0x01 0x09 0xa1
+
+# VI: v_sin_f32_dpp v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x52,0x00,0x7e,0x00,0x01,0x09,0xa1]
+0xfa 0x52 0x00 0x7e 0x00 0x01 0x09 0xa1
+
+# VI: v_add_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x09,0xa1]
+0xfa 0x00 0x00 0x02 0x00 0x01 0x09 0xa1
+
+# VI: v_min_f32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x14,0x00,0x01,0x09,0xa1]
+0xfa 0x00 0x00 0x14 0x00 0x01 0x09 0xa1
+
+# VI: v_and_b32_dpp v0, v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x26,0x00,0x01,0x09,0xa1]
+0xfa 0x00 0x00 0x26 0x00 0x01 0x09 0xa1
+
+# VI: v_add_f32_dpp v0, -v0, v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x19,0xa1]
+0xfa 0x00 0x00 0x02 0x00 0x01 0x19 0xa1
+
+# VI: v_add_f32_dpp v0, v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x89,0xa1]
+0xfa 0x00 0x00 0x02 0x00 0x01 0x89 0xa1
+
+# VI: v_add_f32_dpp v0, -v0, |v0| row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x99,0xa1]
+0xfa 0x00 0x00 0x02 0x00 0x01 0x99 0xa1
+
+# VI: v_add_f32_dpp v0, |v0|, -v0 row_shl:1 row_mask:0xa bank_mask:0x1 bound_ctrl:0 ; encoding: [0xfa,0x00,0x00,0x02,0x00,0x01,0x69,0xa1]
+
+0xfa 0x00 0x00 0x02 0x00 0x01 0x69 0xa1 \ No newline at end of file
diff --git a/test/MC/Disassembler/AMDGPU/ds_vi.txt b/test/MC/Disassembler/AMDGPU/ds_vi.txt
new file mode 100644
index 000000000000..222b00c6389b
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/ds_vi.txt
@@ -0,0 +1,325 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: ds_add_u32 v2, v4 offset:16 ; encoding: [0x10,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+0x10 0x00 0x00 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_write2_b32 v2, v4, v6 offset0:4 ; encoding: [0x04,0x00,0x1c,0xd8,0x02,0x04,0x06,0x00]
+0x04 0x00 0x1c 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write2_b32 v2, v4, v6 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x1c,0xd8,0x02,0x04,0x06,0x00]
+0x04 0x08 0x1c 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write2_b32 v2, v4, v6 offset1:8 ; encoding: [0x00,0x08,0x1c,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x08 0x1c 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_read2_b32 v[8:9], v2 offset0:4 ; encoding: [0x04,0x00,0x6e,0xd8,0x02,0x00,0x00,0x08]
+0x04 0x00 0x6e 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2_b32 v[8:9], v2 offset0:4 offset1:8 ; encoding: [0x04,0x08,0x6e,0xd8,0x02,0x00,0x00,0x08]
+0x04 0x08 0x6e 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2_b32 v[8:9], v2 offset1:8 ; encoding: [0x00,0x08,0x6e,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x08 0x6e 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_add_u32 v2, v4 ; encoding: [0x00,0x00,0x00,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x00 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_sub_u32 v2, v4 ; encoding: [0x00,0x00,0x02,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x02 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_rsub_u32 v2, v4 ; encoding: [0x00,0x00,0x04,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x04 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_inc_u32 v2, v4 ; encoding: [0x00,0x00,0x06,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x06 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_dec_u32 v2, v4 ; encoding: [0x00,0x00,0x08,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x08 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_min_i32 v2, v4 ; encoding: [0x00,0x00,0x0a,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x0a 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_max_i32 v2, v4 ; encoding: [0x00,0x00,0x0c,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x0c 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_min_u32 v2, v4 ; encoding: [0x00,0x00,0x0e,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x0e 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_max_u32 v2, v4 ; encoding: [0x00,0x00,0x10,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x10 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_and_b32 v2, v4 ; encoding: [0x00,0x00,0x12,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x12 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_or_b32 v2, v4 ; encoding: [0x00,0x00,0x14,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x14 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_xor_b32 v2, v4 ; encoding: [0x00,0x00,0x16,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x16 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_mskor_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x18,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x18 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write_b32 v2, v4 ; encoding: [0x00,0x00,0x1a,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x1a 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_write2_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x1c,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x1c 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write2st64_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x1e,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x1e 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_cmpst_b32 v2, v4, v6 ; encoding: [0x00,0x00,0x20,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x20 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_cmpst_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x22,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x22 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_min_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x24,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x24 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_max_f32 v2, v4, v6 ; encoding: [0x00,0x00,0x26,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x26 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_gws_init v2 gds ; encoding: [0x00,0x00,0x33,0xd8,0x02,0x00,0x00,0x00]
+0x00 0x00 0x33 0xd8 0x02 0x00 0x00 0x00
+
+# VI: ds_gws_sema_v v2 gds ; encoding: [0x00,0x00,0x35,0xd8,0x02,0x00,0x00,0x00]
+0x00 0x00 0x35 0xd8 0x02 0x00 0x00 0x00
+
+# VI: ds_gws_sema_br v2 gds ; encoding: [0x00,0x00,0x37,0xd8,0x02,0x00,0x00,0x00]
+0x00 0x00 0x37 0xd8 0x02 0x00 0x00 0x00
+
+# VI: ds_gws_sema_p v2 gds ; encoding: [0x00,0x00,0x39,0xd8,0x02,0x00,0x00,0x00]
+0x00 0x00 0x39 0xd8 0x02 0x00 0x00 0x00
+
+# VI: ds_gws_barrier v2 gds ; encoding: [0x00,0x00,0x3b,0xd8,0x02,0x00,0x00,0x00]
+0x00 0x00 0x3b 0xd8 0x02 0x00 0x00 0x00
+
+# VI: ds_write_b8 v2, v4 ; encoding: [0x00,0x00,0x3c,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x3c 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_write_b16 v2, v4 ; encoding: [0x00,0x00,0x3e,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x3e 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_add_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x40,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x40 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_sub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x42,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x42 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_rsub_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x44,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x44 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_inc_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x46,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x46 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_dec_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x48,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x48 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_min_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x4a,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x4a 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_max_rtn_i32 v8, v2, v4 ; encoding: [0x00,0x00,0x4c,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x4c 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_min_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x4e,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x4e 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_max_rtn_u32 v8, v2, v4 ; encoding: [0x00,0x00,0x50,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x50 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_and_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x52,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x52 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_or_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x54,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x54 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_xor_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x56,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x56 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_mskor_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x58,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x58 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_wrxchg_rtn_b32 v8, v2, v4 ; encoding: [0x00,0x00,0x5a,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0x5a 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_wrxchg2_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0x5c,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x5c 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_wrxchg2st64_rtn_b32 v[8:9], v2, v4, v6 ; encoding: [0x00,0x00,0x5e,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x5e 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_cmpst_rtn_b32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x60,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x60 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_cmpst_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x62,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x62 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_min_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x64,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x64 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_max_rtn_f32 v8, v2, v4, v6 ; encoding: [0x00,0x00,0x66,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0x66 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_swizzle_b32 v8, v2 ; encoding: [0x00,0x00,0x7a,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x7a 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read_b32 v8, v2 ; encoding: [0x00,0x00,0x6c,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x6c 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2_b32 v[8:9], v2 ; encoding: [0x00,0x00,0x6e,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x6e 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2st64_b32 v[8:9], v2 ; encoding: [0x00,0x00,0x70,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x70 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read_i8 v8, v2 ; encoding: [0x00,0x00,0x72,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x72 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read_u8 v8, v2 ; encoding: [0x00,0x00,0x74,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x74 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read_i16 v8, v2 ; encoding: [0x00,0x00,0x76,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x76 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read_u16 v8, v2 ; encoding: [0x00,0x00,0x78,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x78 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_consume v8 ; encoding: [0x00,0x00,0x7a,0xd8,0x00,0x00,0x00,0x08]
+0x00 0x00 0x7a 0xd8 0x00 0x00 0x00 0x08
+
+# FIXME: ds_append v8 ; encoding: [0x00,0x00,0x7c,0xd8,0x00,0x00,0x00,0x08]
+0x00 0x00 0x7c 0xd8 0x00 0x00 0x00 0x08
+
+# VI: ds_ordered_count v8, v2 gds ; encoding: [0x00,0x00,0x7f,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0x7f 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_add_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x80,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x80 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_sub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x82,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x82 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_rsub_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x84,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x84 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_inc_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x86,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x86 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_dec_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x88,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x88 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_min_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x8a,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x8a 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_max_i64 v2, v[4:5] ; encoding: [0x00,0x00,0x8c,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x8c 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_min_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x8e,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x8e 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_max_u64 v2, v[4:5] ; encoding: [0x00,0x00,0x90,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x90 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_and_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x92,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x92 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_or_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x94,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x94 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_xor_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x96,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x96 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_mskor_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x98,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x98 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write_b64 v2, v[4:5] ; encoding: [0x00,0x00,0x9a,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0x9a 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_write2_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x9c,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x9c 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_write2st64_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0x9e,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0x9e 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_cmpst_b64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xa0,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0xa0 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_cmpst_f64 v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xa2,0xd8,0x02,0x04,0x06,0x00]
+0x00 0x00 0xa2 0xd8 0x02 0x04 0x06 0x00
+
+# VI: ds_min_f64 v2, v[4:5] ; encoding: [0x00,0x00,0xa4,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0xa4 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_max_f64 v2, v[4:5] ; encoding: [0x00,0x00,0xa6,0xd8,0x02,0x04,0x00,0x00]
+0x00 0x00 0xa6 0xd8 0x02 0x04 0x00 0x00
+
+# VI: ds_add_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc0,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xc0 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_sub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc2,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xc2 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_rsub_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc4,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xc4 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_inc_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc6,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xc6 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_dec_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xc8,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xc8 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_min_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xca,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xca 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_max_rtn_i64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xcc,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xcc 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_min_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xce,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xce 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_max_rtn_u64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd0,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xd0 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_and_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd2,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xd2 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_or_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd4,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xd4 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_xor_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xd6,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xd6 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_mskor_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xd8,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0xd8 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_wrxchg_rtn_b64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xda,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xda 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_wrxchg2_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xdc,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0xdc 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_wrxchg2st64_rtn_b64 v[8:11], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xde,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0xde 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_cmpst_rtn_b64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xe0,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0xe0 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_cmpst_rtn_f64 v[8:9], v2, v[4:5], v[6:7] ; encoding: [0x00,0x00,0xe2,0xd8,0x02,0x04,0x06,0x08]
+0x00 0x00 0xe2 0xd8 0x02 0x04 0x06 0x08
+
+# VI: ds_min_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xe4,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xe4 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_max_rtn_f64 v[8:9], v2, v[4:5] ; encoding: [0x00,0x00,0xe6,0xd8,0x02,0x04,0x00,0x08]
+0x00 0x00 0xe6 0xd8 0x02 0x04 0x00 0x08
+
+# VI: ds_read_b64 v[8:9], v2 ; encoding: [0x00,0x00,0xec,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0xec 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xee,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0xee 0xd8 0x02 0x00 0x00 0x08
+
+# VI: ds_read2st64_b64 v[8:11], v2 ; encoding: [0x00,0x00,0xf0,0xd8,0x02,0x00,0x00,0x08]
+0x00 0x00 0xf0 0xd8 0x02 0x00 0x00 0x08
diff --git a/test/MC/Disassembler/AMDGPU/flat_vi.txt b/test/MC/Disassembler/AMDGPU/flat_vi.txt
new file mode 100644
index 000000000000..a7013092b493
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/flat_vi.txt
@@ -0,0 +1,229 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x50 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dword v1, v[3:4] glc ; encoding: [0x00,0x00,0x51,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x51 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dword v1, v[3:4] glc slc ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x53 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dword v1, v[3:4] glc tfe ; encoding: [0x00,0x00,0x51,0xdc,0x03,0x00,0x80,0x01]
+0x00 0x00 0x51 0xdc 0x03 0x00 0x80 0x01
+
+# VI: flat_load_dword v1, v[3:4] glc slc tfe ; encoding: [0x00,0x00,0x53,0xdc,0x03,0x00,0x80,0x01]
+0x00 0x00 0x53 0xdc 0x03 0x00 0x80 0x01
+
+# VI: flat_load_dword v1, v[3:4] slc ; encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x52 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dword v1, v[3:4] slc tfe ; encoding: [0x00,0x00,0x52,0xdc,0x03,0x00,0x80,0x01]
+0x00 0x00 0x52 0xdc 0x03 0x00 0x80 0x01
+
+# VI: flat_load_dword v1, v[3:4] tfe ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x80,0x01]
+0x00 0x00 0x50 0xdc 0x03 0x00 0x80 0x01
+
+# VI: flat_atomic_add v1, v[3:4], v5 glc slc ; encoding: [0x00,0x00,0x0b,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x0b 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_add v1, v[3:4], v5 glc tfe ; encoding: [0x00,0x00,0x09,0xdd,0x03,0x05,0x80,0x01]
+0x00 0x00 0x09 0xdd 0x03 0x05 0x80 0x01
+
+# VI: flat_atomic_add v1, v[3:4], v5 glc slc tfe ; encoding: [0x00,0x00,0x0b,0xdd,0x03,0x05,0x80,0x01]
+0x00 0x00 0x0b 0xdd 0x03 0x05 0x80 0x01
+
+# VI: flat_atomic_add v[3:4], v5 slc ; encoding: [0x00,0x00,0x0a,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x0a 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_add v[3:4], v5 slc tfe ; encoding: [0x00,0x00,0x0a,0xdd,0x03,0x05,0x80,0x00]
+0x00 0x00 0x0a 0xdd 0x03 0x05 0x80 0x00
+
+# VI: flat_atomic_add v[3:4], v5 tfe ; encoding: [0x00,0x00,0x08,0xdd,0x03,0x05,0x80,0x00]
+0x00 0x00 0x08 0xdd 0x03 0x05 0x80 0x00
+
+# VI: flat_load_ubyte v1, v[3:4] ; encoding: [0x00,0x00,0x40,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x40 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_sbyte v1, v[3:4] ; encoding: [0x00,0x00,0x44,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x44 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_ushort v1, v[3:4] ; encoding: [0x00,0x00,0x48,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x48 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_sshort v1, v[3:4] ; encoding: [0x00,0x00,0x4c,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x4c 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dword v1, v[3:4] ; encoding: [0x00,0x00,0x50,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x50 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dwordx2 v[1:2], v[3:4] ; encoding: [0x00,0x00,0x54,0xdc,0x03,0x00,0x00,0x01]
+0x00 0x00 0x54 0xdc 0x03 0x00 0x00 0x01
+
+# VI: flat_load_dwordx4 v[5:8], v[3:4] ; encoding: [0x00,0x00,0x5c,0xdc,0x03,0x00,0x00,0x05]
+0x00 0x00 0x5c 0xdc 0x03 0x00 0x00 0x05
+
+# VI: flat_load_dwordx3 v[5:7], v[3:4] ; encoding: [0x00,0x00,0x58,0xdc,0x03,0x00,0x00,0x05]
+0x00 0x00 0x58 0xdc 0x03 0x00 0x00 0x05
+
+# VI: flat_store_dwordx4 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x7c,0xdc,0x03,0x05,0x00,0x00]
+0x00 0x00 0x7c 0xdc 0x03 0x05 0x00 0x00
+
+# VI: flat_store_dwordx3 v[3:4], v[5:7] ; encoding: [0x00,0x00,0x78,0xdc,0x03,0x05,0x00,0x00]
+0x00 0x00 0x78 0xdc 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_swap v[3:4], v5 ; encoding: [0x00,0x00,0x00,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x00 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_swap v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x01,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x01 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_cmpswap v[3:4], v[5:6] ; encoding: [0x00,0x00,0x04,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x04 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_cmpswap v1, v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x05,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x05 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_add v[3:4], v5 ; encoding: [0x00,0x00,0x08,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x08 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_add v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x09,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x09 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_sub v[3:4], v5 ; encoding: [0x00,0x00,0x0c,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x0c 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_sub v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x0d,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x0d 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_smin v[3:4], v5 ; encoding: [0x00,0x00,0x10,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x10 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_smin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x11,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x11 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_umin v[3:4], v5 ; encoding: [0x00,0x00,0x14,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x14 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_umin v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x15,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x15 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_smax v[3:4], v5 ; encoding: [0x00,0x00,0x18,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x18 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_smax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x19,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x19 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_umax v[3:4], v5 ; encoding: [0x00,0x00,0x1c,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x1c 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_umax v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x1d,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x1d 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_and v[3:4], v5 ; encoding: [0x00,0x00,0x20,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x20 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_and v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x21,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x21 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_or v[3:4], v5 ; encoding: [0x00,0x00,0x24,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x24 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_or v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x25,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x25 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_xor v[3:4], v5 ; encoding: [0x00,0x00,0x28,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x28 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_xor v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x29,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x29 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_inc v[3:4], v5 ; encoding: [0x00,0x00,0x2c,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x2c 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_inc v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x2d,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x2d 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_dec v[3:4], v5 ; encoding: [0x00,0x00,0x30,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x30 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_dec v1, v[3:4], v5 glc ; encoding: [0x00,0x00,0x31,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x31 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_swap_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x80,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x80 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_swap_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x81,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x81 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_cmpswap_x2 v[3:4], v[5:8] ; encoding: [0x00,0x00,0x84,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x84 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_cmpswap_x2 v[1:2], v[3:4], v[5:8] glc ; encoding: [0x00,0x00,0x85,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x85 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_add_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x88,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x88 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_add_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x89,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x89 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_sub_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x8c,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x8c 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_sub_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x8d,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x8d 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_smin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x90,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x90 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_smin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x91,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x91 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_umin_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x94,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x94 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_umin_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x95,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x95 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_smax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x98,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x98 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_smax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x99,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x99 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_umax_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0x9c,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0x9c 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_umax_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0x9d,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0x9d 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_and_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa0,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0xa0 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_and_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa1,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0xa1 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_or_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa4,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0xa4 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_or_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa5,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0xa5 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_xor_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xa8,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0xa8 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_xor_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xa9,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0xa9 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_inc_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xac,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0xac 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_inc_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xad,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0xad 0xdd 0x03 0x05 0x00 0x01
+
+# VI: flat_atomic_dec_x2 v[3:4], v[5:6] ; encoding: [0x00,0x00,0xb0,0xdd,0x03,0x05,0x00,0x00]
+0x00 0x00 0xb0 0xdd 0x03 0x05 0x00 0x00
+
+# VI: flat_atomic_dec_x2 v[1:2], v[3:4], v[5:6] glc ; encoding: [0x00,0x00,0xb1,0xdd,0x03,0x05,0x00,0x01]
+0x00 0x00 0xb1 0xdd 0x03 0x05 0x00 0x01
diff --git a/test/MC/Disassembler/AMDGPU/lit.local.cfg b/test/MC/Disassembler/AMDGPU/lit.local.cfg
new file mode 100644
index 000000000000..2a665f06be72
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/lit.local.cfg
@@ -0,0 +1,2 @@
+if not 'AMDGPU' in config.root.targets:
+ config.unsupported = True
diff --git a/test/MC/Disassembler/AMDGPU/mov.txt b/test/MC/Disassembler/AMDGPU/mov.txt
new file mode 100644
index 000000000000..3b6ba4210b83
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/mov.txt
@@ -0,0 +1,31 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s
+
+# CHECK: v_mov_b32_e32 v2, v1 ; encoding: [0x01,0x03,0x04,0x7e]
+0x01 0x03 0x04 0x7e
+
+# CHECK: v_mov_b32_e32 v1, 0.5 ; encoding: [0xf0,0x02,0x02,0x7e]
+0xf0 0x02 0x02 0x7e
+
+# CHECK: v_mov_b32_e32 v15, s100 ; encoding: [0x64,0x02,0x1e,0x7e]
+0x64 0x02 0x1e 0x7e
+
+# CHECK: v_mov_b32_e32 v90, flat_scratch_lo ; encoding: [0x66,0x02,0xb4,0x7e]
+0x66 0x02 0xb4 0x7e
+
+# CHECK: v_mov_b32_e32 v150, vcc_lo ; encoding: [0x6a,0x02,0x2c,0x7f]
+0x6a 0x02 0x2c 0x7f
+
+# CHECK: v_mov_b32_e32 v199, exec_lo ; encoding: [0x7e,0x02,0x8e,0x7f]
+0x7e 0x02 0x8e 0x7f
+
+# CHECK: v_mov_b32_e32 v222, m0 ; encoding: [0x7c,0x02,0xbc,0x7f]
+0x7c 0x02 0xbc 0x7f
+
+# CHECK: v_mov_b32_e32 v255, -13 ; encoding: [0xcd,0x02,0xfe,0x7f]
+0xcd 0x02 0xfe 0x7f
+
+# CHECK: v_cvt_f32_i32_e32 v153, s98 ; encoding: [0x62,0x0a,0x32,0x7f]
+0x62 0x0a 0x32 0x7f
+
+# CHECK: v_cvt_f32_u32_e32 v33, -4.0 ; encoding: [0xf7,0x0c,0x42,0x7e]
+0xf7 0x0c 0x42 0x7e \ No newline at end of file
diff --git a/test/MC/Disassembler/AMDGPU/mubuf_vi.txt b/test/MC/Disassembler/AMDGPU/mubuf_vi.txt
new file mode 100644
index 000000000000..e88e7c549f56
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/mubuf_vi.txt
@@ -0,0 +1,355 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x50 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x00 0x50 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x50,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x40 0x50 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x52,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x00 0x52 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x81,0x01]
+0x04 0x00 0x50 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x50,0xe0,0x00,0x01,0x81,0x01]
+0x00 0x40 0x50 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x52,0xe0,0x00,0x01,0x81,0x01]
+0x04 0x40 0x52 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x10 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x10 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x50 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x52,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x10 0x52 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x10 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x50 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x52,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x50 0x52 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x20 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x20 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x60 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x52,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x20 0x52 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x20 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x60 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x52,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x60 0x52 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x30 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x30 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x50,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x70 0x50 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x52,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x30 0x52 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x30 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x50,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x70 0x50 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x52,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x70 0x52 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x70 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x00 0x70 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x40 0x70 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x72,0xe0,0x00,0x01,0x01,0x01]
+0x04 0x00 0x72 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
+0x04 0x00 0x70 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
+0x00 0x40 0x70 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x72,0xe0,0x00,0x01,0x81,0x01]
+0x04 0x40 0x72 0xe0 0x00 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x10 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x10 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x50 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x72,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x10 0x72 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x10 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x50 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x72,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x50 0x72 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x20 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x20 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x60 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x72,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x20 0x72 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x20 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x60 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x72,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x60 0x72 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x00 0x30 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x30 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x70 0x70 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x72,0xe0,0x02,0x01,0x01,0x01]
+0x04 0x30 0x72 0xe0 0x02 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x30 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
+0x00 0x70 0x70 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x72,0xe0,0x02,0x01,0x81,0x01]
+0x04 0x70 0x72 0xe0 0x02 0x01 0x81 0x01
+
+# VI: buffer_load_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x00 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x04 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x08 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x0c 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_format_x v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x10 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_format_xy v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x14 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_format_xyz v[1:3], off, s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x18 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_format_xyzw v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x1c 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_ubyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x40 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_sbyte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x44,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x44 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_ushort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x48,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x48 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_sshort v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x4c,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x4c 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x50 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x54,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x54 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_load_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x5c 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_byte v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x60 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_short v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x68 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dword v1, off, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x70 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dwordx2 v[1:2], off, s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x74 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_store_dwordx4 v[1:4], off, s[4:7], s1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x01,0x01]
+0x00 0x00 0x7c 0xe0 0x00 0x01 0x01 0x01
+
+# VI: buffer_wbinvl1 ; encoding: [0x00,0x00,0xf8,0xe0,0x00,0x00,0x00,0x00]
+0x00 0x00 0xf8 0xe0 0x00 0x00 0x00 0x00
+
+# VI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
+0x00 0x00 0xfc 0xe0 0x00 0x00 0x00 0x00
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 ; encoding: [0x00,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+0x00 0x00 0x2c 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+0x00 0x00 0x2e 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], s4 slc ; encoding: [0x00,0x00,0x2e,0xe1,0x00,0x01,0x02,0x04]
+0x00 0x00 0x2e 0xe1 0x00 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 ; encoding: [0x04,0x00,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+0x04 0x00 0x2c 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 slc ; encoding: [0x04,0x00,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+0x04 0x00 0x2e 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen ; encoding: [0x00,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x10 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen slc ; encoding: [0x00,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x10 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x10 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 ; encoding: [0x04,0x10,0x2c,0xe1,0x02,0x01,0x02,0x04]
+0x04 0x10 0x2c 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 slc ; encoding: [0x04,0x10,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x10 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen ; encoding: [0x00,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x20 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen slc ; encoding: [0x00,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x20 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 ; encoding: [0x04,0x20,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x20 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x20 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 slc ; encoding: [0x04,0x20,0x2e,0xe1,0x02,0x01,0x02,0x04]
+0x04 0x20 0x2e 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x30 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen ; encoding: [0x00,0x30,0x2c,0xe1,0x02,0x01,0x02,0x04]
+0x00 0x30 0x2c 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen slc ; encoding: [0x00,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x30 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 ; encoding: [0x04,0x30,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x30 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x30 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 glc ; encoding: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+0x00 0x40 0x2c 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+0x00 0x40 0x2e 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], s4 glc slc ; encoding: [0x00,0x40,0x2e,0xe1,0x00,0x01,0x02,0x04]
+0x00 0x40 0x2e 0xe1 0x00 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc ; encoding: [0x04,0x40,0x2c,0xe1,0x00,0x01,0x02,0xb8]
+0x04 0x40 0x2c 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, off, s[8:11], 56 offset:4 glc slc ; encoding: [0x04,0x40,0x2e,0xe1,0x00,0x01,0x02,0xb8]
+0x04 0x40 0x2e 0xe1 0x00 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc ; encoding: [0x00,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x50 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen glc slc ; encoding: [0x00,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x50 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x50 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], s4 offen offset:4 glc ; encoding: [0x04,0x50,0x2c,0xe1,0x02,0x01,0x02,0x04]
+0x04 0x50 0x2c 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 offen offset:4 glc slc ; encoding: [0x04,0x50,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x50 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc ; encoding: [0x00,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x60 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen glc slc ; encoding: [0x00,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x60 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc ; encoding: [0x04,0x60,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x60 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], 56 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x60 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v2, s[8:11], s4 idxen offset:4 glc slc ; encoding: [0x04,0x60,0x2e,0xe1,0x02,0x01,0x02,0x04]
+0x04 0x60 0x2e 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x70 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], s4 idxen offen glc ; encoding: [0x00,0x70,0x2c,0xe1,0x02,0x01,0x02,0x04]
+0x00 0x70 0x2c 0xe1 0x02 0x01 0x02 0x04
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen glc slc ; encoding: [0x00,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x00 0x70 0x2e 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x2c,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x70 0x2c 0xe1 0x02 0x01 0x02 0xb8
+
+# VI: buffer_atomic_inc v1, v[2:3], s[8:11], 56 idxen offen offset:4 glc slc ; encoding: [0x04,0x70,0x2e,0xe1,0x02,0x01,0x02,0xb8]
+0x04 0x70 0x2e 0xe1 0x02 0x01 0x02 0xb8
diff --git a/test/MC/Disassembler/AMDGPU/nop.txt b/test/MC/Disassembler/AMDGPU/nop.txt
new file mode 100644
index 000000000000..0305765e6f57
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/nop.txt
@@ -0,0 +1,4 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s
+
+# CHECK: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
+0x00 0x00 0x00 0x7e
diff --git a/test/MC/Disassembler/AMDGPU/sdwa_vi.txt b/test/MC/Disassembler/AMDGPU/sdwa_vi.txt
new file mode 100644
index 000000000000..2daf89a6121a
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sdwa_vi.txt
@@ -0,0 +1,347 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_mov_b32_sdwa v1, v2 dst_sel:BYTE_0 dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x02,0x10,0x06,0x06]
+0xf9 0x02 0x02 0x7e 0x02 0x10 0x06 0x06
+
+# VI: v_mov_b32_sdwa v3, v4 dst_sel:BYTE_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x06,0x7e,0x04,0x11,0x05,0x06]
+0xf9 0x02 0x06 0x7e 0x04 0x11 0x05 0x06
+
+# VI: v_mov_b32_sdwa v15, v99 dst_sel:BYTE_2 dst_unused:UNUSED_SEXT src0_sel:WORD_0 ; encoding: [0xf9,0x02,0x1e,0x7e,0x63,0x0a,0x04,0x06]
+0xf9 0x02 0x1e 0x7e 0x63 0x0a 0x04 0x06
+
+# VI: v_min_u32_sdwa v194, v13, v1 dst_sel:BYTE_3 dst_unused:UNUSED_SEXT src0_sel:BYTE_3 src1_sel:BYTE_2 ; encoding: [0xf9,0x02,0x84,0x1d,0x0d,0x0b,0x03,0x02]
+0xf9 0x02 0x84 0x1d 0x0d 0x0b 0x03 0x02
+
+# VI: v_min_u32_sdwa v255, v4, v1 dst_sel:WORD_0 dst_unused:UNUSED_PAD src0_sel:BYTE_2 src1_sel:WORD_1 ; encoding: [0xf9,0x02,0xfe,0x1d,0x04,0x04,0x02,0x05]
+0xf9 0x02 0xfe 0x1d 0x04 0x04 0x02 0x05
+
+# VI: v_min_u32_sdwa v200, v200, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_1 src1_sel:DWORD ; encoding: [0xf9,0x02,0x90,0x1d,0xc8,0x05,0x01,0x06]
+0xf9 0x02 0x90 0x1d 0xc8 0x05 0x01 0x06
+
+# VI: v_min_u32_sdwa v1, v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x1c,0x01,0x06,0x00,0x06]
+0xf9 0x02 0x02 0x1c 0x01 0x06 0x00 0x06
+
+# VI: v_cvt_u32_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x0e,0x00,0x7e,0x00,0x16,0x06,0x06]
+0xf9 0x0e 0x00 0x7e 0x00 0x16 0x06 0x06
+
+# VI: v_fract_f32_sdwa v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x26,0x06,0x06]
+0xf9 0x36 0x00 0x7e 0x00 0x26 0x06 0x06
+
+# VI: v_sin_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x52 0x00 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x05,0x06]
+0xf9 0x02 0x02 0x7e 0x00 0x16 0x05 0x06
+
+# VI: v_trunc_f32_sdwa v1, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:WORD_1 ; encoding: [0xf9,0x38,0x02,0x7e,0x00,0x36,0x05,0x06]
+0xf9 0x38 0x02 0x7e 0x00 0x36 0x05 0x06
+
+# VI: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x16,0x06,0x06]
+0xf9 0x02 0x02 0x7e 0x00 0x16 0x06 0x06
+
+# VI: v_add_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x05,0x06]
+0xf9 0x00 0x00 0x02 0x00 0x06 0x05 0x06
+
+# VI: v_min_f32_sdwa v0, v0, v0 clamp dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x36,0x06,0x02]
+0xf9 0x00 0x00 0x14 0x00 0x36 0x06 0x02
+
+# VI: v_and_b32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x06,0x02]
+0xf9 0x00 0x00 0x26 0x00 0x06 0x06 0x02
+
+# VI: v_mul_i32_i24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PRESERVE src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x06,0x02,0x0c,0x02,0x16,0x06,0x06]
+0xf9 0x06 0x02 0x0c 0x02 0x16 0x06 0x06
+
+# VI: v_fract_f32_sdwa v0, |v0| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x06,0x25,0x06]
+0xf9 0x36 0x00 0x7e 0x00 0x06 0x25 0x06
+
+# VI: v_sin_f32_sdwa v0, -|v0| dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x35,0x06]
+0xf9 0x52 0x00 0x7e 0x00 0x06 0x35 0x06
+
+# VI: v_add_f32_sdwa v0, -|v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x35,0x12]
+0xf9 0x00 0x00 0x02 0x00 0x06 0x35 0x12
+
+# VI: v_min_f32_sdwa v0, |v0|, -v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x06,0x25,0x12]
+0xf9 0x00 0x00 0x14 0x00 0x06 0x25 0x12
+
+# VI: v_nop ; encoding: [0xf9,0x00,0x00,0x7e,0x00,0x16,0x06,0x06]
+0xf9 0x00 0x00 0x7e 0x00 0x16 0x06 0x06
+
+# VI: v_cvt_u32_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0e,0x00,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x0e 0x00 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_fract_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x36,0x00,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x36 0x00 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_sin_f32_sdwa v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x52,0x00,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x52 0x00 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_mov_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x02,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x02 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_i32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x0a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_u32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x0c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x0c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x10,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x10 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f16_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x14,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x14 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x16,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x16 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_rpi_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x18,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x18 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_flr_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x1a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x1a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_off_f32_i4_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x1c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x1c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_ubyte0_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x22,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x22 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_ubyte1_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x24,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x24 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_ubyte2_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x26,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x26 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f32_ubyte3_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x28,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x28 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_trunc_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x38,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x38 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_ceil_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x3a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rndne_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x3c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_floor_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x3e,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x3e 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_exp_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x40,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x40 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_log_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x42,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x42 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rcp_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x44,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x44 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rcp_iflag_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x46,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x46 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rsq_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x48,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x48 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_sqrt_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x4e,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x4e 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cos_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x54,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x54 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_not_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x56,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x56 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_bfrev_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x58,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x58 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_ffbh_u32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x5a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_ffbl_b32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x5c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_ffbh_i32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x5e,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x5e 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_frexp_exp_i32_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x66,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x66 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_frexp_mant_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x68,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x68 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_log_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x98,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x98 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_exp_legacy_f32_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x96,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x96 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f16_u16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x72,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x72 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_f16_i16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x74,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x74 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_u16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x76,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x76 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cvt_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x78,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x78 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rcp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x7a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_sqrt_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x7c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rsq_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x7e,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x7e 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_log_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x80,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x80 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_exp_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x82,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x82 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_frexp_mant_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x84,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x84 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_frexp_exp_i16_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x86,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x86 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_floor_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x88,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x88 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_ceil_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8a,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x8a 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_trunc_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8c,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x8c 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_rndne_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x8e,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x8e 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_fract_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x90,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x90 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_sin_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x92,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x92 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_cos_f16_sdwa v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 ; encoding: [0xf9,0x94,0x02,0x7e,0x00,0x06,0x05,0x06]
+0xf9 0x94 0x02 0x7e 0x00 0x06 0x05 0x06
+
+# VI: v_add_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x02,0x00,0x06,0x05,0x02]
+0xf9 0x00 0x00 0x02 0x00 0x06 0x05 0x02
+
+# VI: v_min_f32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x14,0x00,0x06,0x05,0x02]
+0xf9 0x00 0x00 0x14 0x00 0x06 0x05 0x02
+
+# VI: v_and_b32_sdwa v0, v0, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x00,0x00,0x26,0x00,0x06,0x05,0x02]
+0xf9 0x00 0x00 0x26 0x00 0x06 0x05 0x02
+
+# VI: v_mul_i32_i24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0c,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x0c 0x02 0x06 0x05 0x02
+
+# VI: v_sub_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x04,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x04 0x02 0x06 0x05 0x02
+
+# VI: v_subrev_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x06,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x06 0x02 0x06 0x05 0x02
+
+# VI: v_mul_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0a,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x0a 0x02 0x06 0x05 0x02
+
+# VI: v_mul_hi_i32_i24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x0e,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x0e 0x02 0x06 0x05 0x02
+
+# VI: v_mul_u32_u24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x10,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x10 0x02 0x06 0x05 0x02
+
+# VI: v_mul_hi_u32_u24_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x12,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x12 0x02 0x06 0x05 0x02
+
+# VI: v_max_f32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x16,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x16 0x02 0x06 0x05 0x02
+
+# VI: v_min_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x18,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x18 0x02 0x06 0x05 0x02
+
+# VI: v_max_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1a,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x1a 0x02 0x06 0x05 0x02
+
+# VI: v_min_u32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1c,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x1c 0x02 0x06 0x05 0x02
+
+# VI: v_max_u32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x1e,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x1e 0x02 0x06 0x05 0x02
+
+# VI: v_lshrrev_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x20,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x20 0x02 0x06 0x05 0x02
+
+# VI: v_ashrrev_i32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x22,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x22 0x02 0x06 0x05 0x02
+
+# VI: v_lshlrev_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x24,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x24 0x02 0x06 0x05 0x02
+
+# VI: v_or_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x28,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x28 0x02 0x06 0x05 0x02
+
+# VI: v_xor_b32_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x2a,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x2a 0x02 0x06 0x05 0x02
+
+# VI: v_add_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x3e,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x3e 0x02 0x06 0x05 0x02
+
+# VI: v_sub_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x40,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x40 0x02 0x06 0x05 0x02
+
+# VI: v_subrev_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x42,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x42 0x02 0x06 0x05 0x02
+
+# VI: v_mul_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x44,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x44 0x02 0x06 0x05 0x02
+
+# VI: v_mac_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x46,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x46 0x02 0x06 0x05 0x02
+
+# VI: v_add_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4c,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x4c 0x02 0x06 0x05 0x02
+
+# VI: v_sub_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x4e,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x4e 0x02 0x06 0x05 0x02
+
+# VI: v_subrev_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x50,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x50 0x02 0x06 0x05 0x02
+
+# VI: v_mul_lo_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x52,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x52 0x02 0x06 0x05 0x02
+
+# VI: v_lshlrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x54,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x54 0x02 0x06 0x05 0x02
+
+# VI: v_lshrrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x56,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x56 0x02 0x06 0x05 0x02
+
+# VI: v_ashrrev_b16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x58,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x58 0x02 0x06 0x05 0x02
+
+# VI: v_max_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5a,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x5a 0x02 0x06 0x05 0x02
+
+# VI: v_min_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5c,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x5c 0x02 0x06 0x05 0x02
+
+# VI: v_max_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x5e,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x5e 0x02 0x06 0x05 0x02
+
+# VI: v_max_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x60,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x60 0x02 0x06 0x05 0x02
+
+# VI: v_min_u16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x62,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x62 0x02 0x06 0x05 0x02
+
+# VI: v_min_i16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x64,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x64 0x02 0x06 0x05 0x02
+
+# VI: v_ldexp_f16_sdwa v1, v2, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_sel:BYTE_2 ; encoding: [0xf9,0x06,0x02,0x66,0x02,0x06,0x05,0x02]
+0xf9 0x06 0x02 0x66 0x02 0x06 0x05 0x02
+
diff --git a/test/MC/Disassembler/AMDGPU/smem_vi.txt b/test/MC/Disassembler/AMDGPU/smem_vi.txt
new file mode 100644
index 000000000000..d98597b7fcb7
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/smem_vi.txt
@@ -0,0 +1,10 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x00 0x84 0xc0 0x00 0x00 0x00 0x00
+
+# VI: s_dcache_wb_vol ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x00 0x8c 0xc0 0x00 0x00 0x00 0x00
+
+# VI: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x01 0x94 0xc0 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/AMDGPU/smrd_vi.txt b/test/MC/Disassembler/AMDGPU/smrd_vi.txt
new file mode 100644
index 000000000000..8191bd1845ec
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/smrd_vi.txt
@@ -0,0 +1,76 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: s_load_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x02,0xc0,0xfc,0x00,0x00,0x00]
+0x41 0x00 0x02 0xc0 0xfc 0x00 0x00 0x00
+
+# VI: s_load_dword s1, s[2:3], 0xff ; encoding: [0x41,0x00,0x02,0xc0,0xff,0x00,0x00,0x00]
+0x41 0x00 0x02 0xc0 0xff 0x00 0x00 0x00
+
+# VI: s_load_dword s1, s[2:3], 0x1 ; encoding: [0x41,0x00,0x02,0xc0,0x01,0x00,0x00,0x00]
+0x41 0x00 0x02 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_load_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x00,0xc0,0x04,0x00,0x00,0x00]
+0x41 0x00 0x00 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_load_dwordx2 s[2:3], s[2:3], 0x1 ; encoding: [0x81,0x00,0x06,0xc0,0x01,0x00,0x00,0x00]
+0x81 0x00 0x06 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_load_dwordx2 s[2:3], s[2:3], s4 ; encoding: [0x81,0x00,0x04,0xc0,0x04,0x00,0x00,0x00]
+0x81 0x00 0x04 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_load_dwordx4 s[4:7], s[2:3], 0x1 ; encoding: [0x01,0x01,0x0a,0xc0,0x01,0x00,0x00,0x00]
+0x01 0x01 0x0a 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_load_dwordx4 s[4:7], s[2:3], s4 ; encoding: [0x01,0x01,0x08,0xc0,0x04,0x00,0x00,0x00]
+0x01 0x01 0x08 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_load_dwordx8 s[8:15], s[2:3], 0x1 ; encoding: [0x01,0x02,0x0e,0xc0,0x01,0x00,0x00,0x00]
+0x01 0x02 0x0e 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_load_dwordx8 s[8:15], s[2:3], s4 ; encoding: [0x01,0x02,0x0c,0xc0,0x04,0x00,0x00,0x00]
+0x01 0x02 0x0c 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_load_dwordx16 s[16:31], s[2:3], 0x1 ; encoding: [0x01,0x04,0x12,0xc0,0x01,0x00,0x00,0x00]
+0x01 0x04 0x12 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_load_dwordx16 s[16:31], s[2:3], s4 ; encoding: [0x01,0x04,0x10,0xc0,0x04,0x00,0x00,0x00]
+0x01 0x04 0x10 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_buffer_load_dword s1, s[4:7], 0x1 ; encoding: [0x42,0x00,0x22,0xc0,0x01,0x00,0x00,0x00]
+0x42 0x00 0x22 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_buffer_load_dword s1, s[4:7], s4 ; encoding: [0x42,0x00,0x20,0xc0,0x04,0x00,0x00,0x00]
+0x42 0x00 0x20 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx2 s[8:9], s[4:7], 0x1 ; encoding: [0x02,0x02,0x26,0xc0,0x01,0x00,0x00,0x00]
+0x02 0x02 0x26 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx2 s[8:9], s[4:7], s4 ; encoding: [0x02,0x02,0x24,0xc0,0x04,0x00,0x00,0x00]
+0x02 0x02 0x24 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx4 s[8:11], s[4:7], 0x1 ; encoding: [0x02,0x02,0x2a,0xc0,0x01,0x00,0x00,0x00]
+0x02 0x02 0x2a 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx4 s[8:11], s[4:7], s4 ; encoding: [0x02,0x02,0x28,0xc0,0x04,0x00,0x00,0x00]
+0x02 0x02 0x28 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx8 s[8:15], s[4:7], 0x1 ; encoding: [0x02,0x02,0x2e,0xc0,0x01,0x00,0x00,0x00]
+0x02 0x02 0x2e 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx8 s[8:15], s[4:7], s4 ; encoding: [0x02,0x02,0x2c,0xc0,0x04,0x00,0x00,0x00]
+0x02 0x02 0x2c 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx16 s[16:31], s[4:7], 0x1 ; encoding: [0x02,0x04,0x32,0xc0,0x01,0x00,0x00,0x00]
+0x02 0x04 0x32 0xc0 0x01 0x00 0x00 0x00
+
+# VI: s_buffer_load_dwordx16 s[16:31], s[4:7], s4 ; encoding: [0x02,0x04,0x30,0xc0,0x04,0x00,0x00,0x00]
+0x02 0x04 0x30 0xc0 0x04 0x00 0x00 0x00
+
+# VI: s_dcache_inv ; encoding: [0x00,0x00,0x80,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x00 0x80 0xc0 0x00 0x00 0x00 0x00
+
+# VI: s_dcache_inv_vol ; encoding: [0x00,0x00,0x88,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x00 0x88 0xc0 0x00 0x00 0x00 0x00
+
+# VI: s_memtime s[4:5] ; encoding: [0x00,0x01,0x90,0xc0,0x00,0x00,0x00,0x00]
+0x00 0x01 0x90 0xc0 0x00 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/AMDGPU/sop1_vi.txt b/test/MC/Disassembler/AMDGPU/sop1_vi.txt
new file mode 100644
index 000000000000..49c030594e57
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sop1_vi.txt
@@ -0,0 +1,172 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: s_mov_b32 s1, s2 ; encoding: [0x02,0x00,0x81,0xbe]
+0x02 0x00 0x81 0xbe
+
+# VI: s_mov_b32 s1, 1 ; encoding: [0x81,0x00,0x81,0xbe]
+0x81 0x00 0x81 0xbe
+
+# VI: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x00,0x81,0xbe,0x64,0x00,0x00,0x00]
+0xff 0x00 0x81 0xbe 0x64 0x00 0x00 0x00
+
+# VI: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x00,0x81,0xbe,0x00,0x00,0x00,0x80]
+0xff 0x00 0x81 0xbe 0x00 0x00 0x00 0x80
+
+# VI: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x00,0x80,0xbe,0xab,0x63,0x51,0xfe]
+0xff 0x00 0x80 0xbe 0xab 0x63 0x51 0xfe
+
+# VI: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x01,0x82,0xbe]
+0x04 0x01 0x82 0xbe
+
+# FIXME: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x01,0x82,0xbe]
+0xc1 0x01 0x82 0xbe
+
+# VI: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x01,0x82,0xbe,0xff,0xff,0xff,0xff]
+0xff 0x01 0x82 0xbe 0xff 0xff 0xff 0xff
+
+# VI: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x01,0x80,0xbe,0x00,0x00,0x00,0x80]
+0xff 0x01 0x80 0xbe 0x00 0x00 0x00 0x80
+
+# VI: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x02,0x81,0xbe,0xc8,0x00,0x00,0x00]
+0xff 0x02 0x81 0xbe 0xc8 0x00 0x00 0x00
+
+# VI: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x02,0x81,0xbe]
+0xf2 0x02 0x81 0xbe
+
+# VI: s_cmov_b32 s1, s2 ; encoding: [0x02,0x02,0x81,0xbe]
+0x02 0x02 0x81 0xbe
+
+# VI: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x03,0x82,0xbe]
+0x04 0x03 0x82 0xbe
+
+# VI: s_not_b32 s1, s2 ; encoding: [0x02,0x04,0x81,0xbe]
+0x02 0x04 0x81 0xbe
+
+# VI: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x05,0x82,0xbe]
+0x04 0x05 0x82 0xbe
+
+# VI: s_wqm_b32 s1, s2 ; encoding: [0x02,0x06,0x81,0xbe]
+0x02 0x06 0x81 0xbe
+
+# VI: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x07,0x82,0xbe]
+0x04 0x07 0x82 0xbe
+
+# VI: s_brev_b32 s1, s2 ; encoding: [0x02,0x08,0x81,0xbe]
+0x02 0x08 0x81 0xbe
+
+# VI: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x09,0x82,0xbe]
+0x04 0x09 0x82 0xbe
+
+# VI: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0a,0x81,0xbe]
+0x02 0x0a 0x81 0xbe
+
+# VI: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0b,0x81,0xbe]
+0x02 0x0b 0x81 0xbe
+
+# VI: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0c,0x81,0xbe]
+0x02 0x0c 0x81 0xbe
+
+# VI: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0d,0x81,0xbe]
+0x02 0x0d 0x81 0xbe
+
+# VI: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x0e,0x81,0xbe]
+0x02 0x0e 0x81 0xbe
+
+# VI: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0f,0x81,0xbe]
+0x02 0x0f 0x81 0xbe
+
+# VI: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x10,0x81,0xbe]
+0x02 0x10 0x81 0xbe
+
+# VI: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x11,0x81,0xbe]
+0x02 0x11 0x81 0xbe
+
+# VI: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x12,0x81,0xbe]
+0x02 0x12 0x81 0xbe
+
+# VI: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x13,0x81,0xbe]
+0x02 0x13 0x81 0xbe
+
+# VI: s_flbit_i32 s1, s2 ; encoding: [0x02,0x14,0x81,0xbe]
+0x02 0x14 0x81 0xbe
+
+# VI: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x15,0x81,0xbe]
+0x02 0x15 0x81 0xbe
+
+# VI: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x16,0x81,0xbe]
+0x02 0x16 0x81 0xbe
+
+# VI: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe]
+0x02 0x17 0x81 0xbe
+
+# VI: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x18,0x81,0xbe]
+0x02 0x18 0x81 0xbe
+
+# VI: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x19,0x82,0xbe]
+0x04 0x19 0x82 0xbe
+
+# VI: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe]
+0x02 0x1a 0x81 0xbe
+
+# VI: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1b,0x82,0xbe]
+0x04 0x1b 0x82 0xbe
+
+# VI: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1c,0x82,0xbe]
+0x00 0x1c 0x82 0xbe
+
+# VI: s_setpc_b64 s[4:5] ; encoding: [0x04,0x1d,0x80,0xbe]
+0x04 0x1d 0x80 0xbe
+
+# VI: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe]
+0x04 0x1e 0x82 0xbe
+
+# VI: s_rfe_b64 s[4:5] ; encoding: [0x04,0x1f,0x80,0xbe]
+0x04 0x1f 0x80 0xbe
+
+# VI: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe]
+0x04 0x20 0x82 0xbe
+
+# VI: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe]
+0x04 0x21 0x82 0xbe
+
+# VI: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe]
+0x04 0x22 0x82 0xbe
+
+# VI: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x23,0x82,0xbe]
+0x04 0x23 0x82 0xbe
+
+# VI: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe]
+0x04 0x24 0x82 0xbe
+
+# VI: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe]
+0x04 0x25 0x82 0xbe
+
+# VI: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe]
+0x04 0x26 0x82 0xbe
+
+# VI: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe]
+0x04 0x27 0x82 0xbe
+
+# VI: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x28,0x81,0xbe]
+0x02 0x28 0x81 0xbe
+
+# VI: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe]
+0x04 0x29 0x82 0xbe
+
+# VI: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2a,0x81,0xbe]
+0x02 0x2a 0x81 0xbe
+
+# VI: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe]
+0x04 0x2b 0x82 0xbe
+
+# VI: s_movreld_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe]
+0x02 0x2c 0x81 0xbe
+
+# VI: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe]
+0x04 0x2d 0x82 0xbe
+
+# VI: s_cbranch_join s[4:5] ; encoding: [0x04,0x2e,0x80,0xbe]
+0x04 0x2e 0x80 0xbe
+
+# VI: s_abs_i32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe]
+0x02 0x30 0x81 0xbe
diff --git a/test/MC/Disassembler/AMDGPU/sop2_vi.txt b/test/MC/Disassembler/AMDGPU/sop2_vi.txt
new file mode 100644
index 000000000000..853685c62f96
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sop2_vi.txt
@@ -0,0 +1,94 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: s_and_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x86]
+0x04 0x06 0x02 0x86
+
+# VI: s_and_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x86]
+0x04 0x06 0x82 0x86
+
+# VI: s_or_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x87]
+0x04 0x06 0x02 0x87
+
+# VI: s_or_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x87]
+0x04 0x06 0x82 0x87
+
+# VI: s_xor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x88]
+0x04 0x06 0x02 0x88
+
+# VI: s_xor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x88]
+0x04 0x06 0x82 0x88
+
+# VI: s_andn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x89]
+0x04 0x06 0x02 0x89
+
+# VI: s_andn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x89]
+0x04 0x06 0x82 0x89
+
+# VI: s_orn2_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8a]
+0x04 0x06 0x02 0x8a
+
+# VI: s_orn2_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8a]
+0x04 0x06 0x82 0x8a
+
+# VI: s_nand_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8b]
+0x04 0x06 0x02 0x8b
+
+# VI: s_nand_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8b]
+0x04 0x06 0x82 0x8b
+
+# VI: s_nor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8c]
+0x04 0x06 0x02 0x8c
+
+# VI: s_nor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8c]
+0x04 0x06 0x82 0x8c
+
+# VI: s_xnor_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8d]
+0x04 0x06 0x02 0x8d
+
+# VI: s_xnor_b64 s[2:3], s[4:5], s[6:7] ; encoding: [0x04,0x06,0x82,0x8d]
+0x04 0x06 0x82 0x8d
+
+# VI: s_lshl_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8e]
+0x04 0x06 0x02 0x8e
+
+# VI: s_lshl_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8e]
+0x04 0x06 0x82 0x8e
+
+# VI: s_lshr_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x8f]
+0x04 0x06 0x02 0x8f
+
+# VI: s_lshr_b64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x8f]
+0x04 0x06 0x82 0x8f
+
+# VI: s_ashr_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x90]
+0x04 0x06 0x02 0x90
+
+# VI: s_ashr_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x90]
+0x04 0x06 0x82 0x90
+
+# VI: s_bfm_b32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x91]
+0x04 0x06 0x02 0x91
+
+# VI: s_bfm_b64 s[2:3], s4, s6 ; encoding: [0x04,0x06,0x82,0x91]
+0x04 0x06 0x82 0x91
+
+# VI: s_mul_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x92]
+0x04 0x06 0x02 0x92
+
+# VI: s_bfe_u32 s2, s4, s6 ; encoding: [0x04,0x06,0x82,0x92]
+0x04 0x06 0x82 0x92
+
+# VI: s_bfe_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x93]
+0x04 0x06 0x02 0x93
+
+# VI: s_bfe_u64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x82,0x93]
+0x04 0x06 0x82 0x93
+
+# VI: s_bfe_i64 s[2:3], s[4:5], s6 ; encoding: [0x04,0x06,0x02,0x94]
+0x04 0x06 0x02 0x94
+
+# VI: s_cbranch_g_fork s[4:5], s[6:7] ; encoding: [0x04,0x06,0x80,0x94]
+0x04 0x06 0x80 0x94
+
+# VI: s_absdiff_i32 s2, s4, s6 ; encoding: [0x04,0x06,0x02,0x95]
+0x04 0x06 0x02 0x95
diff --git a/test/MC/Disassembler/AMDGPU/sopc_vi.txt b/test/MC/Disassembler/AMDGPU/sopc_vi.txt
new file mode 100644
index 000000000000..026dcbafed42
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sopc_vi.txt
@@ -0,0 +1,52 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GCN
+
+# GCN: s_cmp_eq_i32 s1, s2 ; encoding: [0x01,0x02,0x00,0xbf]
+0x01 0x02 0x00 0xbf
+
+# GCN: s_cmp_lg_i32 s1, s2 ; encoding: [0x01,0x02,0x01,0xbf]
+0x01 0x02 0x01 0xbf
+
+# GCN: s_cmp_gt_i32 s1, s2 ; encoding: [0x01,0x02,0x02,0xbf]
+0x01 0x02 0x02 0xbf
+
+# GCN: s_cmp_ge_i32 s1, s2 ; encoding: [0x01,0x02,0x03,0xbf]
+0x01 0x02 0x03 0xbf
+
+# GCN: s_cmp_lt_i32 s1, s2 ; encoding: [0x01,0x02,0x04,0xbf]
+0x01 0x02 0x04 0xbf
+
+# GCN: s_cmp_le_i32 s1, s2 ; encoding: [0x01,0x02,0x05,0xbf]
+0x01 0x02 0x05 0xbf
+
+# GCN: s_cmp_eq_u32 s1, s2 ; encoding: [0x01,0x02,0x06,0xbf]
+0x01 0x02 0x06 0xbf
+
+# GCN: s_cmp_lg_u32 s1, s2 ; encoding: [0x01,0x02,0x07,0xbf]
+0x01 0x02 0x07 0xbf
+
+# GCN: s_cmp_gt_u32 s1, s2 ; encoding: [0x01,0x02,0x08,0xbf]
+0x01 0x02 0x08 0xbf
+
+# GCN: s_cmp_ge_u32 s1, s2 ; encoding: [0x01,0x02,0x09,0xbf]
+0x01 0x02 0x09 0xbf
+
+# GCN: s_cmp_lt_u32 s1, s2 ; encoding: [0x01,0x02,0x0a,0xbf]
+0x01 0x02 0x0a 0xbf
+
+# GCN: s_cmp_le_u32 s1, s2 ; encoding: [0x01,0x02,0x0b,0xbf]
+0x01 0x02 0x0b 0xbf
+
+# GCN: s_bitcmp0_b32 s1, s2 ; encoding: [0x01,0x02,0x0c,0xbf]
+0x01 0x02 0x0c 0xbf
+
+# GCN: s_bitcmp1_b32 s1, s2 ; encoding: [0x01,0x02,0x0d,0xbf]
+0x01 0x02 0x0d 0xbf
+
+# GCN: s_bitcmp0_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0e,0xbf]
+0x02 0x04 0x0e 0xbf
+
+# GCN: s_bitcmp1_b64 s[2:3], s4 ; encoding: [0x02,0x04,0x0f,0xbf]
+0x02 0x04 0x0f 0xbf
+
+# GCN: s_setvskip s3, s5 ; encoding: [0x03,0x05,0x10,0xbf]
+0x03 0x05 0x10 0xbf
diff --git a/test/MC/Disassembler/AMDGPU/sopk_vi.txt b/test/MC/Disassembler/AMDGPU/sopk_vi.txt
new file mode 100644
index 000000000000..499b862884d1
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sopk_vi.txt
@@ -0,0 +1,64 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb0]
+0x06 0x00 0x82 0xb0
+
+# VI: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1]
+0x06 0x00 0x02 0xb1
+
+# VI: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1]
+0x06 0x00 0x82 0xb1
+
+# VI: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2]
+0x06 0x00 0x02 0xb2
+
+# VI: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2]
+0x06 0x00 0x82 0xb2
+
+# VI: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3]
+0x06 0x00 0x02 0xb3
+
+# VI: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3]
+0x06 0x00 0x82 0xb3
+
+# VI: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4]
+0x06 0x00 0x02 0xb4
+
+# VI: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4]
+0x06 0x00 0x82 0xb4
+
+# VI: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5]
+0x06 0x00 0x02 0xb5
+
+# VI: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5]
+0x06 0x00 0x82 0xb5
+
+# VI: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6]
+0x06 0x00 0x02 0xb6
+
+# VI: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6]
+0x06 0x00 0x82 0xb6
+
+# VI: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7]
+0x06 0x00 0x02 0xb7
+
+# VI: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7]
+0x06 0x00 0x82 0xb7
+
+# VI: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x02,0xb8]
+0x06 0x00 0x02 0xb8
+
+# VI: s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC) ; encoding: [0x06,0xf8,0x82,0xb8]
+0x06 0xf8 0x82 0xb8
+
+# VI: s_getreg_b32 s2, hwreg(51) ; encoding: [0x33,0xf8,0x82,0xb8]
+0x33,0xf8,0x82,0xb8
+
+# VI: s_getreg_b32 s2, hwreg(51, 1, 31) ; encoding: [0x73,0xf0,0x82,0xb8]
+0x73,0xf0,0x82,0xb8
+
+# VI: s_setreg_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), s2 ; encoding: [0x06,0x00,0x02,0xb9]
+0x06 0x00 0x02 0xb9
+
+# VI: s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff ; encoding: [0x45,0xf0,0x00,0xba,0xff,0x00,0x00,0x00]
+0x45 0xf0 0x00 0xba 0xff 0x00 0x00 0x00
diff --git a/test/MC/Disassembler/AMDGPU/sopp_vi.txt b/test/MC/Disassembler/AMDGPU/sopp_vi.txt
new file mode 100644
index 000000000000..fb8b0e47c6b2
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/sopp_vi.txt
@@ -0,0 +1,127 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GCN
+
+# GCN: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf]
+0x00 0x00 0x80 0xbf
+
+# GCN: s_nop 0xffff ; encoding: [0xff,0xff,0x80,0xbf]
+0xff 0xff 0x80 0xbf
+
+# GCN: s_nop 1 ; encoding: [0x01,0x00,0x80,0xbf]
+0x01 0x00 0x80 0xbf
+
+# GCN: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
+0x00 0x00 0x81 0xbf
+
+# GCN: s_branch 2 ; encoding: [0x02,0x00,0x82,0xbf]
+0x02 0x00 0x82 0xbf
+
+# GCN: s_cbranch_scc0 3 ; encoding: [0x03,0x00,0x84,0xbf]
+0x03 0x00 0x84 0xbf
+
+# GCN: s_cbranch_scc1 4 ; encoding: [0x04,0x00,0x85,0xbf]
+0x04 0x00 0x85 0xbf
+
+# GCN: s_cbranch_vccz 5 ; encoding: [0x05,0x00,0x86,0xbf]
+0x05 0x00 0x86 0xbf
+
+# GCN: s_cbranch_vccnz 6 ; encoding: [0x06,0x00,0x87,0xbf]
+0x06 0x00 0x87 0xbf
+
+# GCN: s_cbranch_execz 7 ; encoding: [0x07,0x00,0x88,0xbf]
+0x07 0x00 0x88 0xbf
+
+# GCN: s_cbranch_execnz 8 ; encoding: [0x08,0x00,0x89,0xbf]
+0x08 0x00 0x89 0xbf
+
+# GCN: s_barrier ; encoding: [0x00,0x00,0x8a,0xbf]
+0x00 0x00 0x8a 0xbf
+
+# GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+0x00 0x00 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+0x00 0x00 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+0x00 0x00 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+0x00 0x00 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(1) ; encoding: [0x71,0x0f,0x8c,0xbf]
+0x71 0x0f 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(9) ; encoding: [0x79,0x0f,0x8c,0xbf]
+0x79 0x0f 0x8c 0xbf
+
+# GCN: s_waitcnt expcnt(2) ; encoding: [0x2f,0x0f,0x8c,0xbf]
+0x2f 0x0f 0x8c 0xbf
+
+# GCN: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0x03,0x8c,0xbf]
+0x7f 0x03 0x8c 0xbf
+
+# GCN: s_waitcnt lgkmcnt(9) ; encoding: [0x7f,0x09,0x8c,0xbf]
+0x7f 0x09 0x8c 0xbf
+
+# GCN: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x0f,0x8c,0xbf]
+0x00 0x0f 0x8c 0xbf
+
+# GCN: s_sethalt 9 ; encoding: [0x09,0x00,0x8d,0xbf]
+0x09 0x00 0x8d 0xbf
+
+# GCN: s_sleep 10 ; encoding: [0x0a,0x00,0x8e,0xbf]
+0x0a 0x00 0x8e 0xbf
+
+# GCN: s_setprio 1 ; encoding: [0x01,0x00,0x8f,0xbf]
+0x01 0x00 0x8f 0xbf
+
+# GCN: s_sendmsg 2 ; encoding: [0x02,0x00,0x90,0xbf]
+0x02 0x00 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_INTERRUPT) ; encoding: [0x01,0x00,0x90,0xbf]
+0x01 0x00 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_CUT, 0) ; encoding: [0x12,0x00,0x90,0xbf]
+0x12 0x00 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x90,0xbf]
+0x22 0x01 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_GS, GS_OP_EMIT_CUT, 2) ; encoding: [0x32,0x02,0x90,0xbf]
+0x32 0x02 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x90,0xbf]
+0x03 0x00 0x90 0xbf
+
+# GCN: s_sendmsg 11 ; encoding: [0x0b,0x00,0x90,0xbf]
+0x0b 0x00 0x90 0xbf
+
+# GCN: s_sendmsg sendmsg(MSG_SYSMSG, SYSMSG_OP_ECC_ERR_INTERRUPT) ; encoding: [0x1f,0x00,0x90,0xbf]
+0x1f 0x00 0x90 0xbf
+
+# GCN: s_sendmsg 111 ; encoding: [0x6f,0x00,0x90,0xbf]
+0x6f 0x00 0x90 0xbf
+
+# GCN: s_sendmsghalt sendmsg(MSG_GS_DONE, GS_OP_NOP) ; encoding: [0x03,0x00,0x91,0xbf]
+0x03 0x00 0x91 0xbf
+
+# GCN: s_sendmsghalt sendmsg(MSG_GS, GS_OP_EMIT, 1) ; encoding: [0x22,0x01,0x91,0xbf]
+0x22 0x01 0x91 0xbf
+
+# GCN: s_sendmsghalt 111 ; encoding: [0x6f,0x00,0x91,0xbf]
+0x6f 0x00 0x91 0xbf
+
+# GCN: s_trap 4 ; encoding: [0x04,0x00,0x92,0xbf]
+0x04 0x00 0x92 0xbf
+
+# GCN: s_icache_inv ; encoding: [0x00,0x00,0x93,0xbf]
+0x00 0x00 0x93 0xbf
+
+# GCN: s_incperflevel 5 ; encoding: [0x05,0x00,0x94,0xbf]
+0x05 0x00 0x94 0xbf
+
+# GCN: s_decperflevel 6 ; encoding: [0x06,0x00,0x95,0xbf]
+0x06 0x00 0x95 0xbf
+
+# GCN: s_ttracedata ; encoding: [0x00,0x00,0x96,0xbf]
+0x00 0x00 0x96 0xbf
diff --git a/test/MC/Disassembler/AMDGPU/trap_vi.txt b/test/MC/Disassembler/AMDGPU/trap_vi.txt
new file mode 100644
index 000000000000..8b131512050c
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/trap_vi.txt
@@ -0,0 +1,109 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+#===----------------------------------------------------------------------===#
+# Trap Handler related - 32 bit registers
+#===----------------------------------------------------------------------===#
+
+# VI: s_add_u32 ttmp0, ttmp0, 4 ; encoding: [0x70,0x84,0x70,0x80]
+0x70,0x84,0x70,0x80
+
+# VI: s_add_u32 ttmp4, 8, ttmp4 ; encoding: [0x88,0x74,0x74,0x80]
+0x88,0x74,0x74,0x80
+
+# VI: s_add_u32 ttmp4, ttmp4, 0x100 ; encoding: [0x74,0xff,0x74,0x80,0x00,0x01,0x00,0x00]
+0x74,0xff,0x74,0x80,0x00,0x01,0x00,0x00
+
+# VI: s_add_u32 ttmp4, ttmp4, 4 ; encoding: [0x74,0x84,0x74,0x80]
+0x74,0x84,0x74,0x80
+
+# VI: s_add_u32 ttmp4, ttmp8, ttmp4 ; encoding: [0x78,0x74,0x74,0x80]
+0x78,0x74,0x74,0x80
+
+# VI: s_and_b32 ttmp10, ttmp8, 0x80 ; encoding: [0x78,0xff,0x7a,0x86,0x80,0x00,0x00,0x00]
+0x78,0xff,0x7a,0x86,0x80,0x00,0x00,0x00
+
+# VI: s_and_b32 ttmp9, tma_hi, 0xffff ; encoding: [0x6f,0xff,0x79,0x86,0xff,0xff,0x00,0x00]
+0x6f,0xff,0x79,0x86,0xff,0xff,0x00,0x00
+
+# VI: s_and_b32 ttmp9, ttmp9, 0x1ff ; encoding: [0x79,0xff,0x79,0x86,0xff,0x01,0x00,0x00]
+0x79,0xff,0x79,0x86,0xff,0x01,0x00,0x00
+
+# VI: s_and_b32 ttmp9, tma_lo, 0xffff0000 ; encoding: [0x6e,0xff,0x79,0x86,0x00,0x00,0xff,0xff]
+0x6e,0xff,0x79,0x86,0x00,0x00,0xff,0xff
+
+# VI: s_and_b32 ttmp9, ttmp9, ttmp8 ; encoding: [0x79,0x78,0x79,0x86]
+0x79,0x78,0x79,0x86
+
+# VI: s_and_b32 ttmp8, ttmp1, 0x1000000 ; encoding: [0x71,0xff,0x78,0x86,0x00,0x00,0x00,0x01]
+0x71,0xff,0x78,0x86,0x00,0x00,0x00,0x01
+
+# VI: s_cmp_eq_i32 ttmp8, 0 ; encoding: [0x78,0x80,0x00,0xbf]
+0x78,0x80,0x00,0xbf
+
+# VI: s_cmp_eq_i32 ttmp8, 0xfe ; encoding: [0x78,0xff,0x00,0xbf,0xfe,0x00,0x00,0x00]
+0x78,0xff,0x00,0xbf,0xfe,0x00,0x00,0x00
+
+# VI: s_lshr_b32 ttmp8, ttmp8, 12 ; encoding: [0x78,0x8c,0x78,0x8f]
+0x78,0x8c,0x78,0x8f
+
+# VI: v_mov_b32_e32 v1, ttmp8 ; encoding: [0x78,0x02,0x02,0x7e]
+0x78,0x02,0x02,0x7e
+
+# VI: s_mov_b32 m0, ttmp8 ; encoding: [0x78,0x00,0xfc,0xbe]
+0x78,0x00,0xfc,0xbe
+
+# VI: s_mov_b32 ttmp10, 0 ; encoding: [0x80,0x00,0xfa,0xbe]
+0x80,0x00,0xfa,0xbe
+
+# VI: s_mov_b32 ttmp11, 0x1024fac ; encoding: [0xff,0x00,0xfb,0xbe,0xac,0x4f,0x02,0x01]
+0xff,0x00,0xfb,0xbe,0xac,0x4f,0x02,0x01
+
+# VI: s_mov_b32 ttmp8, m0 ; encoding: [0x7c,0x00,0xf8,0xbe]
+0x7c,0x00,0xf8,0xbe
+
+# VI: s_mov_b32 ttmp8, tma_lo ; encoding: [0x6e,0x00,0xf8,0xbe]
+0x6e,0x00,0xf8,0xbe
+
+# VI: s_mul_i32 ttmp8, 0x324, ttmp8 ; encoding: [0xff,0x78,0x78,0x92,0x24,0x03,0x00,0x00]
+0xff,0x78,0x78,0x92,0x24,0x03,0x00,0x00
+
+# VI: s_or_b32 ttmp9, ttmp9, 0x280000 ; encoding: [0x79,0xff,0x79,0x87,0x00,0x00,0x28,0x00]
+0x79,0xff,0x79,0x87,0x00,0x00,0x28,0x00
+
+#===----------------------------------------------------------------------===#
+# Trap Handler related - Pairs and quadruples of registers
+#===----------------------------------------------------------------------===#
+
+# VI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x01,0xf4,0xbe]
+0x7e,0x01,0xf4,0xbe
+
+# VI: s_mov_b64 ttmp[4:5], exec ; encoding: [0x7e,0x01,0xf4,0xbe]
+0x7e,0x01,0xf4,0xbe
+
+# VI: s_mov_b64 exec, ttmp[4:5] ; encoding: [0x74,0x01,0xfe,0xbe]
+0x74,0x01,0xfe,0xbe
+
+# VI: s_mov_b64 tba, ttmp[4:5] ; encoding: [0x74,0x01,0xec,0xbe]
+0x74,0x01,0xec,0xbe
+
+# VI: s_mov_b64 ttmp[4:5], tba ; encoding: [0x6c,0x01,0xf4,0xbe]
+0x6c,0x01,0xf4,0xbe
+
+# VI: s_mov_b64 tma, ttmp[4:5] ; encoding: [0x74,0x01,0xee,0xbe]
+0x74,0x01,0xee,0xbe
+
+# VI: s_mov_b64 ttmp[4:5], tma ; encoding: [0x6e,0x01,0xf4,0xbe]
+0x6e,0x01,0xf4,0xbe
+
+#===----------------------------------------------------------------------===#
+# Trap Handler related - Some specific instructions
+#===----------------------------------------------------------------------===#
+
+# VI: s_setpc_b64 ttmp[2:3] ; encoding: [0x72,0x1d,0x80,0xbe]
+0x72,0x1d,0x80,0xbe
+
+# VI: v_readfirstlane_b32 ttmp8, v1 ; encoding: [0x01,0x05,0xf0,0x7e]
+0x01,0x05,0xf0,0x7e
+
+# VI: buffer_atomic_inc v1, off, ttmp[8:11], 56 glc ; encoding: [0x00,0x40,0x2c,0xe1,0x00,0x01,0x1e,0xb8]
+0x00,0x40,0x2c,0xe1,0x00,0x01,0x1e,0xb8
diff --git a/test/MC/Disassembler/AMDGPU/vop1.txt b/test/MC/Disassembler/AMDGPU/vop1.txt
new file mode 100644
index 000000000000..d3af4a57a086
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/vop1.txt
@@ -0,0 +1,250 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s
+
+# CHECK: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
+0x00 0x00 0x00 0x7e
+
+# CHECK: v_clrexcp ; encoding: [0x00,0x6a,0x00,0x7e]
+0x00 0x6a 0x00 0x7e
+
+# CHECK: v_mov_b32_e32 v2, v1 ; encoding: [0x01,0x03,0x04,0x7e]
+0x01 0x03 0x04 0x7e
+
+# CHECK: v_mov_b32_e32 v1, 0.5 ; encoding: [0xf0,0x02,0x02,0x7e]
+0xf0 0x02 0x02 0x7e
+
+# CHECK: v_mov_b32_e32 v15, s100 ; encoding: [0x64,0x02,0x1e,0x7e]
+0x64 0x02 0x1e 0x7e
+
+# CHECK: v_mov_b32_e32 v90, flat_scratch_lo ; encoding: [0x66,0x02,0xb4,0x7e]
+0x66 0x02 0xb4 0x7e
+
+# CHECK: v_mov_b32_e32 v150, vcc_lo ; encoding: [0x6a,0x02,0x2c,0x7f]
+0x6a 0x02 0x2c 0x7f
+
+# CHECK: v_mov_b32_e32 v199, exec_lo ; encoding: [0x7e,0x02,0x8e,0x7f]
+0x7e 0x02 0x8e 0x7f
+
+# CHECK: v_mov_b32_e32 v222, m0 ; encoding: [0x7c,0x02,0xbc,0x7f]
+0x7c 0x02 0xbc 0x7f
+
+# CHECK: v_mov_b32_e32 v255, -13 ; encoding: [0xcd,0x02,0xfe,0x7f]
+0xcd 0x02 0xfe 0x7f
+
+# CHECK: v_cvt_f32_i32_e32 v153, s98 ; encoding: [0x62,0x0a,0x32,0x7f]
+0x62 0x0a 0x32 0x7f
+
+# CHECK: v_cvt_f32_u32_e32 v33, -4.0 ; encoding: [0xf7,0x0c,0x42,0x7e]
+0xf7 0x0c 0x42 0x7e
+
+# CHECK: v_cvt_i32_f64_e32 v2, s[0:1] ; encoding: [0x00,0x06,0x04,0x7e]
+0x00 0x06 0x04 0x7e
+
+# CHECK: v_cvt_u32_f32_e32 v123, vcc_hi ; encoding: [0x6b,0x0e,0xf6,0x7e]
+0x6b 0x0e 0xf6 0x7e
+
+# CHECK: v_cvt_i32_f32_e32 v123, flat_scratch_lo ; encoding: [0x66,0x10,0xf6,0x7e]
+0x66 0x10 0xf6 0x7e
+
+# CHECK: v_cvt_rpi_i32_f32_e32 v123, s101 ; encoding: [0x65,0x18,0xf6,0x7e]
+0x65 0x18 0xf6 0x7e
+
+# CHECK: v_cvt_flr_i32_f32_e32 v123, -4.0 ; encoding: [0xf7,0x1a,0xf6,0x7e]
+0xf7 0x1a 0xf6 0x7e
+
+# CHECK: v_cvt_f32_f64_e32 v123, vcc ; encoding: [0x6a,0x1e,0xf6,0x7e]
+0x6a 0x1e 0xf6 0x7e
+
+# CHECK: v_cvt_u32_f64_e32 v123, exec ; encoding: [0x7e,0x2a,0xf6,0x7e]
+0x7e 0x2a 0xf6 0x7e
+
+# CHECK: v_fract_f32_e32 v123, m0 ; encoding: [0x7c,0x36,0xf6,0x7e]
+0x7c 0x36 0xf6 0x7e
+
+# CHECK: v_trunc_f32_e32 v123, exec_lo ; encoding: [0x7e,0x38,0xf6,0x7e]
+0x7e 0x38 0xf6 0x7e
+
+# CHECK: v_ceil_f32_e32 v123, exec_hi ; encoding: [0x7f,0x3a,0xf6,0x7e]
+0x7f 0x3a 0xf6 0x7e
+
+# CHECK: v_rndne_f32_e32 v123, 0 ; encoding: [0x80,0x3c,0xf6,0x7e]
+0x80 0x3c 0xf6 0x7e
+
+# CHECK: v_floor_f32_e32 v123, -0.5 ; encoding: [0xf1,0x3e,0xf6,0x7e]
+0xf1 0x3e 0xf6 0x7e
+
+# CHECK: v_exp_f32_e32 v123, 1.0 ; encoding: [0xf2,0x40,0xf6,0x7e]
+0xf2 0x40 0xf6 0x7e
+
+# CHECK: v_log_f32_e32 v123, -1.0 ; encoding: [0xf3,0x42,0xf6,0x7e]
+0xf3 0x42 0xf6 0x7e
+
+# CHECK: v_rcp_f32_e32 v123, 2.0 ; encoding: [0xf4,0x44,0xf6,0x7e]
+0xf4 0x44 0xf6 0x7e
+
+# CHECK: v_rcp_iflag_f32_e32 v123, -2.0 ; encoding: [0xf5,0x46,0xf6,0x7e]
+0xf5 0x46 0xf6 0x7e
+
+# CHECK: v_rsq_f32_e32 v123, 4.0 ; encoding: [0xf6,0x48,0xf6,0x7e]
+0xf6 0x48 0xf6 0x7e
+
+# CHECK: v_sqrt_f32_e32 v123, v12 ; encoding: [0x0c,0x4f,0xf6,0x7e]
+0x0c 0x4f 0xf6 0x7e
+
+# CHECK: v_sin_f32_e32 v123, v12 ; encoding: [0x0c,0x53,0xf6,0x7e]
+0x0c 0x53 0xf6 0x7e
+
+# CHECK: v_cos_f32_e32 v123, v12 ; encoding: [0x0c,0x55,0xf6,0x7e]
+0x0c 0x55 0xf6 0x7e
+
+# CHECK: v_not_b32_e32 v123, v12 ; encoding: [0x0c,0x57,0xf6,0x7e]
+0x0c 0x57 0xf6 0x7e
+
+# CHECK: v_bfrev_b32_e32 v123, v12 ; encoding: [0x0c,0x59,0xf6,0x7e]
+0x0c 0x59 0xf6 0x7e
+
+# CHECK: v_ffbh_u32_e32 v123, v12 ; encoding: [0x0c,0x5b,0xf6,0x7e]
+0x0c 0x5b 0xf6 0x7e
+
+# CHECK: v_ffbl_b32_e32 v123, v12 ; encoding: [0x0c,0x5d,0xf6,0x7e]
+0x0c 0x5d 0xf6 0x7e
+
+# CHECK: v_ffbh_i32_e32 v123, v12 ; encoding: [0x0c,0x5f,0xf6,0x7e]
+0x0c 0x5f 0xf6 0x7e
+
+# CHECK: v_frexp_exp_i32_f64_e32 v123, 2.0 ; encoding: [0xf4,0x60,0xf6,0x7e]
+0xf4 0x60 0xf6 0x7e
+
+# CHECK: v_frexp_exp_i32_f32_e32 v123, s33 ; encoding: [0x21,0x66,0xf6,0x7e]
+0x21 0x66 0xf6 0x7e
+
+# CHECK: v_frexp_mant_f32_e32 v123, s33 ; encoding: [0x21,0x68,0xf6,0x7e]
+0x21 0x68 0xf6 0x7e
+
+# CHECK: v_movreld_b32_e32 v123, s33 ; encoding: [0x21,0x6c,0xf6,0x7e]
+0x21 0x6c 0xf6 0x7e
+
+# CHECK: v_movrels_b32_e32 v123, s33 ; encoding: [0x21,0x6e,0xf6,0x7e]
+0x21 0x6e 0xf6 0x7e
+
+# CHECK: v_movrelsd_b32_e32 v123, s33 ; encoding: [0x21,0x70,0xf6,0x7e]
+0x21 0x70 0xf6 0x7e
+
+# CHECK: v_cvt_f16_f32_e32 v123, flat_scratch_hi ; encoding: [0x67,0x14,0xf6,0x7e]
+0x67 0x14 0xf6 0x7e
+
+# CHECK: v_cvt_f32_f16_e32 v123, s55 ; encoding: [0x37,0x16,0xf6,0x7e]
+0x37 0x16 0xf6 0x7e
+
+# CHECK: v_cvt_off_f32_i4_e32 v123, v12 ; encoding: [0x0c,0x1d,0xf6,0x7e]
+0x0c 0x1d 0xf6 0x7e
+
+# CHECK: v_cvt_f32_ubyte0_e32 v123, v12 ; encoding: [0x0c,0x23,0xf6,0x7e]
+0x0c 0x23 0xf6 0x7e
+
+# CHECK: v_cvt_f32_ubyte1_e32 v123, v12 ; encoding: [0x0c,0x25,0xf6,0x7e]
+0x0c 0x25 0xf6 0x7e
+
+# CHECK: v_cvt_f32_ubyte2_e32 v123, v12 ; encoding: [0x0c,0x27,0xf6,0x7e]
+0x0c 0x27 0xf6 0x7e
+
+# CHECK: v_cvt_f32_ubyte3_e32 v123, v12 ; encoding: [0x0c,0x29,0xf6,0x7e]
+0x0c 0x29 0xf6 0x7e
+
+# CHECK: v_cvt_f64_i32_e32 v[222:223], 1.0 ; encoding: [0xf2,0x08,0xbc,0x7f]
+0xf2 0x08 0xbc 0x7f
+
+# CHECK: v_cvt_f64_i32_e32 v[222:223], exec_hi ; encoding: [0x7f,0x08,0xbc,0x7f]
+0x7f 0x08 0xbc 0x7f
+
+# CHECK: v_cvt_f64_f32_e32 v[222:223], s33 ; encoding: [0x21,0x20,0xbc,0x7f]
+0x21 0x20 0xbc 0x7f
+
+# CHECK: v_cvt_f64_u32_e32 v[222:223], s33 ; encoding: [0x21,0x2c,0xbc,0x7f]
+0x21 0x2c 0xbc 0x7f
+
+# CHECK: v_rcp_f64_e32 v[222:223], s[22:23] ; encoding: [0x16,0x4a,0xbc,0x7f]
+0x16 0x4a 0xbc 0x7f
+
+# CHECK: v_rsq_f64_e32 v[222:223], s[22:23] ; encoding: [0x16,0x4c,0xbc,0x7f]
+0x16 0x4c 0xbc 0x7f
+
+# CHECK: v_sqrt_f64_e32 v[222:223], s[22:23] ; encoding: [0x16,0x50,0xbc,0x7f]
+0x16 0x50 0xbc 0x7f
+
+# CHECK: v_frexp_mant_f64_e32 v[222:223], s[22:23] ; encoding: [0x16,0x62,0xbc,0x7f]
+0x16 0x62 0xbc 0x7f
+
+# CHECK: v_fract_f64_e32 v[222:223], s[22:23] ; encoding: [0x16,0x64,0xbc,0x7f]
+0x16 0x64 0xbc 0x7f
+
+# CHECK: v_cvt_f16_u16_e32 v123, 23 ; encoding: [0x97,0x72,0xf6,0x7e]
+0x97 0x72 0xf6 0x7e
+
+# CHECK: v_cvt_f16_i16_e32 v123, vcc_hi ; encoding: [0x6b,0x74,0xf6,0x7e]
+0x6b 0x74 0xf6 0x7e
+
+# CHECK: v_cvt_u16_f16_e32 v123, m0 ; encoding: [0x7c,0x76,0xf6,0x7e]
+0x7c 0x76 0xf6 0x7e
+
+# CHECK: v_cvt_i16_f16_e32 v123, exec_lo ; encoding: [0x7e,0x78,0xf6,0x7e]
+0x7e 0x78 0xf6 0x7e
+
+# CHECK: v_rcp_f16_e32 v123, 1.0 ; encoding: [0xf2,0x7a,0xf6,0x7e]
+0xf2 0x7a 0xf6 0x7e
+
+# CHECK: v_sqrt_f16_e32 v123, 4.0 ; encoding: [0xf6,0x7c,0xf6,0x7e]
+0xf6 0x7c 0xf6 0x7e
+
+# CHECK: v_rsq_f16_e32 v123, -1.0 ; encoding: [0xf3,0x7e,0xf6,0x7e]
+0xf3 0x7e 0xf6 0x7e
+
+# CHECK: v_log_f16_e32 v123, s33 ; encoding: [0x21,0x80,0xf6,0x7e]
+0x21 0x80 0xf6 0x7e
+
+# CHECK: v_exp_f16_e32 v123, v12 ; encoding: [0x0c,0x83,0xf6,0x7e]
+0x0c 0x83 0xf6 0x7e
+
+# CHECK: v_frexp_mant_f16_e32 v123, v12 ; encoding: [0x0c,0x85,0xf6,0x7e]
+0x0c 0x85 0xf6 0x7e
+
+# CHECK: v_frexp_exp_i16_f16_e32 v123, v12 ; encoding: [0x0c,0x87,0xf6,0x7e]
+0x0c 0x87 0xf6 0x7e
+
+# CHECK: v_floor_f16_e32 v123, v12 ; encoding: [0x0c,0x89,0xf6,0x7e]
+0x0c 0x89 0xf6 0x7e
+
+# CHECK: v_ceil_f16_e32 v123, v12 ; encoding: [0x0c,0x8b,0xf6,0x7e]
+0x0c 0x8b 0xf6 0x7e
+
+# CHECK: v_trunc_f16_e32 v123, s33 ; encoding: [0x21,0x8c,0xf6,0x7e]
+0x21 0x8c 0xf6 0x7e
+
+# CHECK: v_rndne_f16_e32 v123, s33 ; encoding: [0x21,0x8e,0xf6,0x7e]
+0x21 0x8e 0xf6 0x7e
+
+# CHECK: v_fract_f16_e32 v123, s33 ; encoding: [0x21,0x90,0xf6,0x7e]
+0x21 0x90 0xf6 0x7e
+
+# CHECK: v_sin_f16_e32 v123, s33 ; encoding: [0x21,0x92,0xf6,0x7e]
+0x21 0x92 0xf6 0x7e
+
+# CHECK: v_cos_f16_e32 v123, s33 ; encoding: [0x21,0x94,0xf6,0x7e]
+0x21 0x94 0xf6 0x7e
+
+# CHECK: v_mov_b32_e32 v2, 0x75bcd15 ; encoding: [0xff,0x02,0x04,0x7e,0x15,0xcd,0x5b,0x07]
+0xff 0x02 0x04 0x7e 0x15 0xcd 0x5b 0x07
+
+# CHECK: v_cvt_f32_u32_e32 v33, 0x4236b732 ; encoding: [0xff,0x0c,0x42,0x7e,0x32,0xb7,0x36,0x42]
+0xff 0x0c 0x42 0x7e 0x32 0xb7 0x36 0x42
+
+# CHECK: v_cvt_i32_f64_e32 v2, 0x4236b732 ; encoding: [0xff,0x06,0x04,0x7e,0x32,0xb7,0x36,0x42]
+0xff 0x06 0x04 0x7e 0x32 0xb7 0x36 0x42
+
+# CHECK: v_cvt_f16_u16_e32 v123, 0x3ade68b1 ; encoding: [0xff,0x72,0xf6,0x7e,0xb1,0x68,0xde,0x3a]
+0xff 0x72 0xf6 0x7e 0xb1 0x68 0xde 0x3a
+
+# CHECK: v_cvt_f16_i16_e32 v123, 0x21c2 ; encoding: [0xff,0x74,0xf6,0x7e,0xc2,0x21,0x00,0x00]
+0xff 0x74 0xf6 0x7e 0xc2 0x21 0x00 0x00
+
+# CHECK: v_cvt_u16_f16_e32 v123, 0x3f200000 ; encoding: [0xff,0x76,0xf6,0x7e,0x00,0x00,0x20,0x3f]
+0xff 0x76 0xf6 0x7e 0x00 0x00 0x20 0x3f \ No newline at end of file
diff --git a/test/MC/Disassembler/AMDGPU/vop1_vi.txt b/test/MC/Disassembler/AMDGPU/vop1_vi.txt
new file mode 100644
index 000000000000..c42c0a628106
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/vop1_vi.txt
@@ -0,0 +1,220 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_mov_b32_e32 v1, v2 ; encoding: [0x02,0x03,0x02,0x7e]
+0x02 0x03 0x02 0x7e
+
+# VI: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
+0x00 0x00 0x00 0x7e
+
+# VI: v_clrexcp ; encoding: [0x00,0x6a,0x00,0x7e]
+0x00 0x6a 0x00 0x7e
+
+# VI: v_nop ; encoding: [0x00,0x00,0x00,0x7e]
+0x00 0x00 0x00 0x7e
+
+# VI: v_mov_b32_e32 v1, v2 ; encoding: [0x02,0x03,0x02,0x7e]
+0x02 0x03 0x02 0x7e
+
+# VI: v_readfirstlane_b32 s1, v2 ; encoding: [0x02,0x05,0x02,0x7e]
+0x02 0x05 0x02 0x7e
+
+# VI: v_cvt_i32_f64_e32 v1, v[2:3] ; encoding: [0x02,0x07,0x02,0x7e]
+0x02 0x07 0x02 0x7e
+
+# VI: v_cvt_f64_i32_e32 v[1:2], v2 ; encoding: [0x02,0x09,0x02,0x7e]
+0x02 0x09 0x02 0x7e
+
+# VI: v_cvt_f32_i32_e32 v1, v2 ; encoding: [0x02,0x0b,0x02,0x7e]
+0x02 0x0b 0x02 0x7e
+
+# VI: v_cvt_f32_u32_e32 v1, v2 ; encoding: [0x02,0x0d,0x02,0x7e]
+0x02 0x0d 0x02 0x7e
+
+# VI: v_cvt_i32_f32_e32 v1, v2 ; encoding: [0x02,0x11,0x02,0x7e]
+0x02 0x11 0x02 0x7e
+
+# VI: v_cvt_f16_f32_e32 v1, v2 ; encoding: [0x02,0x15,0x02,0x7e]
+0x02 0x15 0x02 0x7e
+
+# VI: v_cvt_f32_f16_e32 v1, v2 ; encoding: [0x02,0x17,0x02,0x7e]
+0x02 0x17 0x02 0x7e
+
+# VI: v_cvt_rpi_i32_f32_e32 v1, v2 ; encoding: [0x02,0x19,0x02,0x7e]
+0x02 0x19 0x02 0x7e
+
+# VI: v_cvt_flr_i32_f32_e32 v1, v2 ; encoding: [0x02,0x1b,0x02,0x7e]
+0x02 0x1b 0x02 0x7e
+
+# VI: v_cvt_off_f32_i4_e32 v1, v2 ; encoding: [0x02,0x1d,0x02,0x7e]
+0x02 0x1d 0x02 0x7e
+
+# VI: v_cvt_f32_f64_e32 v1, v[2:3] ; encoding: [0x02,0x1f,0x02,0x7e]
+0x02 0x1f 0x02 0x7e
+
+# VI: v_cvt_f64_f32_e32 v[1:2], v2 ; encoding: [0x02,0x21,0x02,0x7e]
+0x02 0x21 0x02 0x7e
+
+# VI: v_cvt_f32_ubyte0_e32 v1, v2 ; encoding: [0x02,0x23,0x02,0x7e]
+0x02 0x23 0x02 0x7e
+
+# VI: v_cvt_f32_ubyte1_e32 v1, v2 ; encoding: [0x02,0x25,0x02,0x7e]
+0x02 0x25 0x02 0x7e
+
+# VI: v_cvt_f32_ubyte2_e32 v1, v2 ; encoding: [0x02,0x27,0x02,0x7e]
+0x02 0x27 0x02 0x7e
+
+# VI: v_cvt_f32_ubyte3_e32 v1, v2 ; encoding: [0x02,0x29,0x02,0x7e]
+0x02 0x29 0x02 0x7e
+
+# VI: v_cvt_u32_f64_e32 v1, v[2:3] ; encoding: [0x02,0x2b,0x02,0x7e]
+0x02 0x2b 0x02 0x7e
+
+# VI: v_cvt_f64_u32_e32 v[1:2], v2 ; encoding: [0x02,0x2d,0x02,0x7e]
+0x02 0x2d 0x02 0x7e
+
+# VI: v_fract_f32_e32 v1, v2 ; encoding: [0x02,0x37,0x02,0x7e]
+0x02 0x37 0x02 0x7e
+
+# VI: v_trunc_f32_e32 v1, v2 ; encoding: [0x02,0x39,0x02,0x7e]
+0x02 0x39 0x02 0x7e
+
+# VI: v_ceil_f32_e32 v1, v2 ; encoding: [0x02,0x3b,0x02,0x7e]
+0x02 0x3b 0x02 0x7e
+
+# VI: v_rndne_f32_e32 v1, v2 ; encoding: [0x02,0x3d,0x02,0x7e]
+0x02 0x3d 0x02 0x7e
+
+# VI: v_floor_f32_e32 v1, v2 ; encoding: [0x02,0x3f,0x02,0x7e]
+0x02 0x3f 0x02 0x7e
+
+# VI: v_exp_f32_e32 v1, v2 ; encoding: [0x02,0x41,0x02,0x7e]
+0x02 0x41 0x02 0x7e
+
+# VI: v_log_f32_e32 v1, v2 ; encoding: [0x02,0x43,0x02,0x7e]
+0x02 0x43 0x02 0x7e
+
+# VI: v_rcp_f32_e32 v1, v2 ; encoding: [0x02,0x45,0x02,0x7e]
+0x02 0x45 0x02 0x7e
+
+# VI: v_rcp_iflag_f32_e32 v1, v2 ; encoding: [0x02,0x47,0x02,0x7e]
+0x02 0x47 0x02 0x7e
+
+# VI: v_rsq_f32_e32 v1, v2 ; encoding: [0x02,0x49,0x02,0x7e]
+0x02 0x49 0x02 0x7e
+
+# VI: v_rcp_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x4b,0x02,0x7e]
+0x02 0x4b 0x02 0x7e
+
+# VI: v_rsq_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x4d,0x02,0x7e]
+0x02 0x4d 0x02 0x7e
+
+# VI: v_sqrt_f32_e32 v1, v2 ; encoding: [0x02,0x4f,0x02,0x7e]
+0x02 0x4f 0x02 0x7e
+
+# VI: v_sqrt_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x51,0x02,0x7e]
+0x02 0x51 0x02 0x7e
+
+# VI: v_sin_f32_e32 v1, v2 ; encoding: [0x02,0x53,0x02,0x7e]
+0x02 0x53 0x02 0x7e
+
+# VI: v_cos_f32_e32 v1, v2 ; encoding: [0x02,0x55,0x02,0x7e]
+0x02 0x55 0x02 0x7e
+
+# VI: v_not_b32_e32 v1, v2 ; encoding: [0x02,0x57,0x02,0x7e]
+0x02 0x57 0x02 0x7e
+
+# VI: v_bfrev_b32_e32 v1, v2 ; encoding: [0x02,0x59,0x02,0x7e]
+0x02 0x59 0x02 0x7e
+
+# VI: v_ffbh_u32_e32 v1, v2 ; encoding: [0x02,0x5b,0x02,0x7e]
+0x02 0x5b 0x02 0x7e
+
+# VI: v_ffbl_b32_e32 v1, v2 ; encoding: [0x02,0x5d,0x02,0x7e]
+0x02 0x5d 0x02 0x7e
+
+# VI: v_ffbh_i32_e32 v1, v2 ; encoding: [0x02,0x5f,0x02,0x7e]
+0x02 0x5f 0x02 0x7e
+
+# VI: v_frexp_exp_i32_f64_e32 v1, v[2:3] ; encoding: [0x02,0x61,0x02,0x7e]
+0x02 0x61 0x02 0x7e
+
+# VI: v_fract_f64_e32 v[1:2], v[2:3] ; encoding: [0x02,0x65,0x02,0x7e]
+0x02 0x65 0x02 0x7e
+
+# VI: v_frexp_exp_i32_f32_e32 v1, v2 ; encoding: [0x02,0x67,0x02,0x7e]
+0x02 0x67 0x02 0x7e
+
+# VI: v_frexp_mant_f32_e32 v1, v2 ; encoding: [0x02,0x69,0x02,0x7e]
+0x02 0x69 0x02 0x7e
+
+# VI: v_clrexcp ; encoding: [0x00,0x6a,0x00,0x7e]
+0x00 0x6a 0x00 0x7e
+
+# VI: v_movreld_b32_e32 v1, v2 ; encoding: [0x02,0x6d,0x02,0x7e]
+0x02 0x6d 0x02 0x7e
+
+# VI: v_movrels_b32_e32 v1, v2 ; encoding: [0x02,0x6f,0x02,0x7e]
+0x02 0x6f 0x02 0x7e
+
+# VI: v_movrelsd_b32_e32 v1, v2 ; encoding: [0x02,0x71,0x02,0x7e]
+0x02 0x71 0x02 0x7e
+
+# VI: v_log_legacy_f32_e32 v1, v2 ; encoding: [0x02,0x99,0x02,0x7e]
+0x02 0x99 0x02 0x7e
+
+# VI: v_exp_legacy_f32_e32 v1, v2 ; encoding: [0x02,0x97,0x02,0x7e]
+0x02 0x97 0x02 0x7e
+
+# VI: v_cvt_f16_u16_e32 v1, v2 ; encoding: [0x02,0x73,0x02,0x7e]
+0x02 0x73 0x02 0x7e
+
+# VI: v_cvt_f16_i16_e32 v1, v2 ; encoding: [0x02,0x75,0x02,0x7e]
+0x02 0x75 0x02 0x7e
+
+# VI: v_cvt_u16_f16_e32 v1, v2 ; encoding: [0x02,0x77,0x02,0x7e]
+0x02 0x77 0x02 0x7e
+
+# VI: v_cvt_i16_f16_e32 v1, v2 ; encoding: [0x02,0x79,0x02,0x7e]
+0x02 0x79 0x02 0x7e
+
+# VI: v_rcp_f16_e32 v1, v2 ; encoding: [0x02,0x7b,0x02,0x7e]
+0x02 0x7b 0x02 0x7e
+
+# VI: v_sqrt_f16_e32 v1, v2 ; encoding: [0x02,0x7d,0x02,0x7e]
+0x02 0x7d 0x02 0x7e
+
+# VI: v_rsq_f16_e32 v1, v2 ; encoding: [0x02,0x7f,0x02,0x7e]
+0x02 0x7f 0x02 0x7e
+
+# VI: v_log_f16_e32 v1, v2 ; encoding: [0x02,0x81,0x02,0x7e]
+0x02 0x81 0x02 0x7e
+
+# VI: v_exp_f16_e32 v1, v2 ; encoding: [0x02,0x83,0x02,0x7e]
+0x02 0x83 0x02 0x7e
+
+# VI: v_frexp_mant_f16_e32 v1, v2 ; encoding: [0x02,0x85,0x02,0x7e]
+0x02 0x85 0x02 0x7e
+
+# VI: v_frexp_exp_i16_f16_e32 v1, v2 ; encoding: [0x02,0x87,0x02,0x7e]
+0x02 0x87 0x02 0x7e
+
+# VI: v_floor_f16_e32 v1, v2 ; encoding: [0x02,0x89,0x02,0x7e]
+0x02 0x89 0x02 0x7e
+
+# VI: v_ceil_f16_e32 v1, v2 ; encoding: [0x02,0x8b,0x02,0x7e]
+0x02 0x8b 0x02 0x7e
+
+# VI: v_trunc_f16_e32 v1, v2 ; encoding: [0x02,0x8d,0x02,0x7e]
+0x02 0x8d 0x02 0x7e
+
+# VI: v_rndne_f16_e32 v1, v2 ; encoding: [0x02,0x8f,0x02,0x7e]
+0x02 0x8f 0x02 0x7e
+
+# VI: v_fract_f16_e32 v1, v2 ; encoding: [0x02,0x91,0x02,0x7e]
+0x02 0x91 0x02 0x7e
+
+# VI: v_sin_f16_e32 v1, v2 ; encoding: [0x02,0x93,0x02,0x7e]
+0x02 0x93 0x02 0x7e
+
+# VI: v_cos_f16_e32 v1, v2 ; encoding: [0x02,0x95,0x02,0x7e]
+0x02 0x95 0x02 0x7e
diff --git a/test/MC/Disassembler/AMDGPU/vop2_vi.txt b/test/MC/Disassembler/AMDGPU/vop2_vi.txt
new file mode 100644
index 000000000000..b1c6c8005726
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/vop2_vi.txt
@@ -0,0 +1,256 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00]
+0x02 0x07 0x02 0x00
+
+# VI: v_readlane_b32 s1, v2, s3 ; encoding: [0x01,0x00,0x89,0xd2,0x02,0x07,0x00,0x00]
+0x01 0x00 0x89 0xd2 0x02 0x07 0x00 0x00
+
+# VI: v_writelane_b32 v1, s2, s3 ; encoding: [0x01,0x00,0x8a,0xd2,0x02,0x06,0x00,0x00]
+0x01 0x00 0x8a 0xd2 0x02 0x06 0x00 0x00
+
+# VI: v_add_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x02]
+0x02 0x07 0x02 0x02
+
+# VI: v_sub_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x04]
+0x02 0x07 0x02 0x04
+
+# VI: v_subrev_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x06]
+0x02 0x07 0x02 0x06
+
+# VI: v_mul_legacy_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x08]
+0x02 0x07 0x02 0x08
+
+# VI: v_mul_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0a]
+0x02 0x07 0x02 0x0a
+
+# VI: v_mul_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0c]
+0x02 0x07 0x02 0x0c
+
+# VI: v_mul_hi_i32_i24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x0e]
+0x02 0x07 0x02 0x0e
+
+# VI: v_mul_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x10]
+0x02 0x07 0x02 0x10
+
+# VI: v_mul_hi_u32_u24_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x12]
+0x02 0x07 0x02 0x12
+
+# VI: v_min_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x14]
+0x02 0x07 0x02 0x14
+
+# VI: v_max_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x16]
+0x02 0x07 0x02 0x16
+
+# VI: v_min_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x18]
+0x02 0x07 0x02 0x18
+
+# VI: v_max_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1a]
+0x02 0x07 0x02 0x1a
+
+# VI: v_min_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1c]
+0x02 0x07 0x02 0x1c
+
+# VI: v_max_u32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x1e]
+0x02 0x07 0x02 0x1e
+
+# VI: v_lshrrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x20]
+0x02 0x07 0x02 0x20
+
+# VI: v_ashrrev_i32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x22]
+0x02 0x07 0x02 0x22
+
+# VI: v_lshlrev_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x24]
+0x02 0x07 0x02 0x24
+
+# VI: v_and_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x26]
+0x02 0x07 0x02 0x26
+
+# VI: v_or_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x28]
+0x02 0x07 0x02 0x28
+
+# VI: v_xor_b32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2a]
+0x02 0x07 0x02 0x2a
+
+# VI: v_bfm_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x93,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x93 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_mac_f32_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x2c]
+0x02 0x07 0x02 0x2c
+
+# VI: v_madmk_f32_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x2e,0x00,0x00,0x80,0x42]
+0x02 0x07 0x02 0x2e 0x00 0x00 0x80 0x42
+
+# VI: v_madak_f32_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x30,0x00,0x00,0x80,0x42]
+0x02 0x07 0x02 0x30 0x00 0x00 0x80 0x42
+
+# VI: v_bcnt_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8b,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x8b 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_mbcnt_lo_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8c,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x8c 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_mbcnt_hi_u32_b32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x8d,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x8d 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32]
+0x02 0x07 0x02 0x32
+
+# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_add_i32_e64 v1, vcc, v2, v3 ; encoding: [0x01,0x6a,0x19,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x6a 0x19 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_add_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x32]
+0x02 0x07 0x02 0x32
+
+# VI: v_add_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x19,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x19 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34]
+0x02 0x07 0x02 0x34
+
+# VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x1a 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_sub_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x34]
+0x02 0x07 0x02 0x34
+
+# VI: v_sub_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1a,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x1a 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36]
+0x02 0x07 0x02 0x36
+
+# VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x1b 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_subrev_i32_e32 v1, vcc, v2, v3 ; encoding: [0x02,0x07,0x02,0x36]
+0x02 0x07 0x02 0x36
+
+# VI: v_subrev_i32_e64 v1, s[0:1], v2, v3 ; encoding: [0x01,0x00,0x1b,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0x1b 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38]
+0x02 0x07 0x02 0x38
+
+# VI: v_addc_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x38]
+0x02 0x07 0x02 0x38
+
+# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0xaa,0x01]
+0x01 0x00 0x1c 0xd1 0x02 0x07 0xaa 0x01
+
+# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00]
+0x01 0x00 0x1c 0xd1 0x02 0x07 0x0a 0x00
+
+# VI: v_addc_u32_e64 v1, s[0:1], v2, v3, s[2:3] ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x0a,0x00]
+0x01 0x00 0x1c 0xd1 0x02 0x07 0x0a 0x00
+
+# FIXME: v_addc_u32_e64 v1, s[0:1], v2, v3, -1 ; encoding: [0x01,0x00,0x1c,0xd1,0x02,0x07,0x06,0x03]
+#0x01 0x00 0x1c 0xd1 0x02 0x07 0x06 0x03
+
+# FIXME: v_addc_u32_e64 v1, vcc, v2, v3, -1 ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0x06,0x03]
+#0x01 0x6a 0x1c 0xd1 0x02 0x07 0x06 0x03
+
+# VI: v_addc_u32_e64 v1, vcc, v2, v3, vcc ; encoding: [0x01,0x6a,0x1c,0xd1,0x02,0x07,0xaa,0x01]
+0x01 0x6a 0x1c 0xd1 0x02 0x07 0xaa 0x01
+
+# VI: v_subb_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3a]
+0x02 0x07 0x02 0x3a
+
+# VI: v_subb_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1d,0xd1,0x02,0x07,0xaa,0x01]
+0x01 0x00 0x1d 0xd1 0x02 0x07 0xaa 0x01
+
+# VI: v_subbrev_u32_e32 v1, vcc, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x3c]
+0x02 0x07 0x02 0x3c
+
+# VI: v_subbrev_u32_e64 v1, s[0:1], v2, v3, vcc ; encoding: [0x01,0x00,0x1e,0xd1,0x02,0x07,0xaa,0x01]
+0x01 0x00 0x1e 0xd1 0x02 0x07 0xaa 0x01
+
+# VI: v_ldexp_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x88,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x88 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pkaccum_u8_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0xf0,0xd1,0x02,0x07,0x02,0x00]
+0x01 0x00 0xf0 0xd1 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pknorm_i16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x94,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x94 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pknorm_u16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x95,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x95 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pkrtz_f16_f32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x96,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x96 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pk_u16_u32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x97,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x97 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_cvt_pk_i16_i32_e64 v1, v2, v3 ; encoding: [0x01,0x00,0x98,0xd2,0x02,0x07,0x02,0x00]
+0x01 0x00 0x98 0xd2 0x02 0x07 0x02 0x00
+
+# VI: v_add_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x3e]
+0x02 0x07 0x02 0x3e
+
+# VI: v_sub_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x40]
+0x02 0x07 0x02 0x40
+
+# VI: v_subrev_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x42]
+0x02 0x07 0x02 0x42
+
+# VI: v_mul_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x44]
+0x02 0x07 0x02 0x44
+
+# VI: v_mac_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x46]
+0x02 0x07 0x02 0x46
+
+# VI: v_madmk_f16_e32 v1, v2, 0x42800000, v3 ; encoding: [0x02,0x07,0x02,0x48,0x00,0x00,0x80,0x42]
+0x02 0x07 0x02 0x48 0x00 0x00 0x80 0x42
+
+# VI: v_madak_f16_e32 v1, v2, v3, 0x42800000 ; encoding: [0x02,0x07,0x02,0x4a,0x00,0x00,0x80,0x42]
+0x02 0x07 0x02 0x4a 0x00 0x00 0x80 0x42
+
+# VI: v_add_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4c]
+0x02 0x07 0x02 0x4c
+
+# VI: v_sub_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x4e]
+0x02 0x07 0x02 0x4e
+
+# VI: v_subrev_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x50]
+0x02 0x07 0x02 0x50
+
+# VI: v_mul_lo_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x52]
+0x02 0x07 0x02 0x52
+
+# VI: v_lshlrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x54]
+0x02 0x07 0x02 0x54
+
+# VI: v_lshrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x56]
+0x02 0x07 0x02 0x56
+
+# VI: v_ashrrev_b16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x58]
+0x02 0x07 0x02 0x58
+
+# VI: v_max_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5a]
+0x02 0x07 0x02 0x5a
+
+# VI: v_min_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5c]
+0x02 0x07 0x02 0x5c
+
+# VI: v_max_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x5e]
+0x02 0x07 0x02 0x5e
+
+# VI: v_max_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x60]
+0x02 0x07 0x02 0x60
+
+# VI: v_min_u16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x62]
+0x02 0x07 0x02 0x62
+
+# VI: v_min_i16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x64]
+0x02 0x07 0x02 0x64
+
+# VI: v_ldexp_f16_e32 v1, v2, v3 ; encoding: [0x02,0x07,0x02,0x66]
+0x02 0x07 0x02 0x66
diff --git a/test/MC/Disassembler/AMDGPU/vop3_vi.txt b/test/MC/Disassembler/AMDGPU/vop3_vi.txt
new file mode 100644
index 000000000000..d28a231edf2c
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/vop3_vi.txt
@@ -0,0 +1,217 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x40]
+0x02 0x00 0x41 0xd0 0x04 0x0d 0x02 0x40
+
+# VI: v_cmp_lt_f32_e64 vcc, v4, v6 ; encoding: [0x6a,0x00,0x41,0xd0,0x04,0x0d,0x02,0x00]
+0x6a 0x00 0x41 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -v4, v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x20]
+0x02 0x00 0x41 0xd0 0x04 0x0d 0x02 0x20
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x40]
+0x02 0x00 0x41 0xd0 0x04 0x0d 0x02 0x40
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -v4, -v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x60]
+0x02 0x00 0x41 0xd0 0x04 0x0d 0x02 0x60
+
+# VI: v_cmp_lt_f32_e64 s[2:3], |v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x01 0x41 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, |v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x02 0x41 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lt_f32_e64 s[2:3], |v4|, |v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x03 0x41 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20]
+0x02 0x01 0x41 0xd0 0x04 0x0d 0x02 0x20
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, v6 ; encoding: [0x02,0x01,0x41,0xd0,0x04,0x0d,0x02,0x20]
+0x02 0x01 0x41 0xd0 0x04 0x0d 0x02 0x20
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40]
+0x02 0x02 0x41 0xd0 0x04 0x0d 0x02 0x40
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, -|v6| ; encoding: [0x02,0x02,0x41,0xd0,0x04,0x0d,0x02,0x40]
+0x02 0x02 0x41 0xd0 0x04 0x0d 0x02 0x40
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60]
+0x02 0x03 0x41 0xd0 0x04 0x0d 0x02 0x60
+
+# VI: v_cmp_lt_f32_e64 s[2:3], -|v4|, -|v6| ; encoding: [0x02,0x03,0x41,0xd0,0x04,0x0d,0x02,0x60]
+0x02 0x03 0x41 0xd0 0x04 0x0d 0x02 0x60
+
+# VI: v_cmp_f_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x40,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x40 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x41,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x41 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_eq_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x42,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x42 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_le_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x43,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x43 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_gt_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x44,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x44 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_lg_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x45,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x45 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_ge_f32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0x46,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x46 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_f_f64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0x60,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0x60 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_f_i32_e64 s[2:3], v4, v6 ; encoding: [0x02,0x00,0xc0,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0xc0 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_cmp_f_i64_e64 s[2:3], v[4:5], v[6:7] ; encoding: [0x02,0x00,0xe0,0xd0,0x04,0x0d,0x02,0x00]
+0x02 0x00 0xe0 0xd0 0x04 0x0d 0x02 0x00
+
+# VI: v_mov_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x41,0xd1,0x02,0x01,0x00,0x00]
+0x01 0x00 0x41 0xd1 0x02 0x01 0x00 0x00
+
+# VI: v_nop ; encoding: [0x00,0x00,0x40,0xd1,0x00,0x00,0x00,0x00]
+0x00 0x00 0x40 0xd1 0x00 0x00 0x00 0x00
+
+# VI: v_clrexcp ; encoding: [0x00,0x00,0x75,0xd1,0x00,0x00,0x00,0x00]
+0x00 0x00 0x75 0xd1 0x00 0x00 0x00 0x00
+
+# VI: v_fract_f32_e64 v1, -v2 ; encoding: [0x01,0x00,0x5b,0xd1,0x02,0x01,0x00,0x20]
+0x01 0x00 0x5b 0xd1 0x02 0x01 0x00 0x20
+
+# VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00]
+0x01 0x01 0x5b 0xd1 0x02 0x01 0x00 0x00
+
+# VI: v_fract_f32_e64 v1, |v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x00]
+0x01 0x01 0x5b 0xd1 0x02 0x01 0x00 0x00
+
+# VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20]
+0x01 0x01 0x5b 0xd1 0x02 0x01 0x00 0x20
+
+# VI: v_fract_f32_e64 v1, -|v2| ; encoding: [0x01,0x01,0x5b,0xd1,0x02,0x01,0x00,0x20]
+0x01 0x01 0x5b 0xd1 0x02 0x01 0x00 0x20
+
+# VI: v_fract_f32_e64 v1, v2 clamp ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x00]
+0x01 0x80 0x5b 0xd1 0x02 0x01 0x00 0x00
+
+# VI: v_fract_f32_e64 v1, v2 mul:2 ; encoding: [0x01,0x00,0x5b,0xd1,0x02,0x01,0x00,0x08]
+0x01 0x00 0x5b 0xd1 0x02 0x01 0x00 0x08
+
+# VI: v_fract_f32_e64 v1, v2 clamp div:2 ; encoding: [0x01,0x80,0x5b,0xd1,0x02,0x01,0x00,0x18]
+0x01 0x80 0x5b 0xd1 0x02 0x01 0x00 0x18
+
+# VI: v_add_f32_e64 v1, v3, v5 ; encoding: [0x01,0x00,0x01,0xd1,0x03,0x0b,0x02,0x00]
+0x01 0x00 0x01 0xd1 0x03 0x0b 0x02 0x00
+
+# VI: v_cndmask_b32_e64 v1, v3, v5, s[4:5] ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0x12,0x00]
+0x01 0x00 0x00 0xd1 0x03 0x0b 0x12 0x00
+
+# VI: v_cndmask_b32_e64 v1, v3, v5, vcc ; encoding: [0x01,0x00,0x00,0xd1,0x03,0x0b,0xaa,0x01]
+0x01 0x00 0x00 0xd1 0x03 0x0b 0xaa 0x01
+
+# VI: v_add_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x01,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x01 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_sub_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x02,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x02 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_subrev_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x03,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x03 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_mul_legacy_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x04,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x04 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_mul_f32_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x05,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x05 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_mul_i32_i24_e64 v1, v3, s5 ; encoding: [0x01,0x00,0x06,0xd1,0x03,0x0b,0x00,0x00]
+0x01 0x00 0x06 0xd1 0x03 0x0b 0x00 0x00
+
+# VI: v_mad_legacy_f32 v2, v4, v6, v8 ; encoding: [0x02,0x00,0xc0,0xd1,0x04,0x0d,0x22,0x04]
+0x02 0x00 0xc0 0xd1 0x04 0x0d 0x22 0x04
+
+# VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x20
+
+# VI: v_add_f64 v[0:1], -v[2:3], v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x20]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x20
+
+# VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x40
+
+# VI: v_add_f64 v[0:1], v[2:3], -v[5:6] ; encoding: [0x00,0x00,0x80,0xd2,0x02,0x0b,0x02,0x40]
+0x00 0x00 0x80 0xd2 0x02 0x0b 0x02 0x40
+
+# VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x01 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x01 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x01 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], |v[2:3]|, v[5:6] ; encoding: [0x00,0x01,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x01 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x02 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x02 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x02 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], v[2:3], |v[5:6]| ; encoding: [0x00,0x02,0x80,0xd2,0x02,0x0b,0x02,0x00]
+0x00 0x02 0x80 0xd2 0x02 0x0b 0x02 0x00
+
+# VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+0x00 0x82 0x80 0xd2 0x02 0x0b 0x02 0x30
+
+# VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+0x00 0x82 0x80 0xd2 0x02 0x0b 0x02 0x30
+
+# VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+0x00 0x82 0x80 0xd2 0x02 0x0b 0x02 0x30
+
+# VI: v_add_f64 v[0:1], -v[2:3], |v[5:6]| clamp mul:4 ; encoding: [0x00,0x82,0x80,0xd2,0x02,0x0b,0x02,0x30]
+0x00 0x82 0x80 0xd2 0x02 0x0b 0x02 0x30
+
+# VI: v_div_scale_f64 v[24:25], vcc, v[22:23], v[22:23], v[20:21] ; encoding: [0x18,0x6a,0xe1,0xd1,0x16,0x2d,0x52,0x04]
+0x18 0x6a 0xe1 0xd1 0x16 0x2d 0x52 0x04
+
+# VI: v_div_scale_f64 v[24:25], s[10:11], v[22:23], v[20:21], v[20:21] ; encoding: [0x18,0x0a,0xe1,0xd1,0x16,0x29,0x52,0x04]
+0x18 0x0a 0xe1 0xd1 0x16 0x29 0x52 0x04
+
+# VI: v_div_scale_f32 v24, vcc, v22, v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0x52,0x04]
+0x18 0x6a 0xe0 0xd1 0x16 0x2d 0x52 0x04
+
+# FIXME: v_div_scale_f32 v24, vcc, s[10:11], v22, v20 ; encoding: [0x18,0x6a,0xe0,0xd1,0x0a,0x2c,0x52,0x04]
+0x18 0x6a 0xe0 0xd1 0x0a 0x2c 0x52 0x04
+
+# VI: v_div_scale_f32 v24, s[10:11], v22, v22, v20 ; encoding: [0x18,0x0a,0xe0,0xd1,0x16,0x2d,0x52,0x04]
+0x18 0x0a 0xe0 0xd1 0x16 0x2d 0x52 0x04
+
+# VI: v_div_scale_f32 v24, vcc, v22, 1.0, v22 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0xe5,0x59,0x04]
+0x18 0x6a 0xe0 0xd1 0x16 0xe5 0x59 0x04
+
+# VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd6,0x03]
+0x18 0x6a 0xe0 0xd1 0x16 0x2d 0xd6 0x03
+
+# VI: v_div_scale_f32 v24, vcc, v22, v22, -2.0 ; encoding: [0x18,0x6a,0xe0,0xd1,0x16,0x2d,0xd6,0x03]
+0x18 0x6a 0xe0 0xd1 0x16 0x2d 0xd6 0x03
+
+# VI: v_mad_f32 v9, 0.5, v5, -v8 ; encoding: [0x09,0x00,0xc1,0xd1,0xf0,0x0a,0x22,0x84]
+0x09 0x00 0xc1 0xd1 0xf0 0x0a 0x22 0x84
diff --git a/test/MC/Disassembler/AMDGPU/vopc_vi.txt b/test/MC/Disassembler/AMDGPU/vopc_vi.txt
new file mode 100644
index 000000000000..7840b6247b57
--- /dev/null
+++ b/test/MC/Disassembler/AMDGPU/vopc_vi.txt
@@ -0,0 +1,31 @@
+# RUN: llvm-mc -arch=amdgcn -mcpu=tonga -disassemble -show-encoding < %s | FileCheck %s -check-prefix=VI
+
+# VI: v_cmp_lt_f32_e32 vcc, s2, v4 ; encoding: [0x02,0x08,0x82,0x7c]
+0x02 0x08 0x82 0x7c
+
+# VI: v_cmp_lt_f32_e32 vcc, 0, v4 ; encoding: [0x80,0x08,0x82,0x7c]
+0x80 0x08 0x82 0x7c
+
+# VI: v_cmp_lt_f32_e32 vcc, 0x41200000, v4 ; encoding: [0xff,0x08,0x82,0x7c,0x00,0x00,0x20,0x41]
+0xff 0x08 0x82 0x7c 0x00 0x00 0x20 0x41
+
+# VI: v_cmp_lt_f32_e32 vcc, v255, v255 ; encoding: [0xff,0xff,0x83,0x7c]
+0xff 0xff 0x83 0x7c
+
+# VI: v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x82,0x7c]
+0x02 0x09 0x82 0x7c
+
+# VI: v_cmp_f_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x80,0x7c]
+0x02 0x09 0x80 0x7c
+
+# VI: v_cmp_lt_f32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x82,0x7c]
+0x02 0x09 0x82 0x7c
+
+# VI: v_cmp_f_f64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0xc0,0x7c]
+0x02 0x09 0xc0 0x7c
+
+# VI: v_cmp_f_i32_e32 vcc, v2, v4 ; encoding: [0x02,0x09,0x80,0x7d]
+0x02 0x09 0x80 0x7d
+
+# VI: v_cmp_f_i64_e32 vcc, v[2:3], v[4:5] ; encoding: [0x02,0x09,0xc0,0x7d]
+0x02 0x09 0xc0 0x7d
diff --git a/test/MC/Disassembler/ARM/fullfp16-arm-neg.txt b/test/MC/Disassembler/ARM/fullfp16-arm-neg.txt
new file mode 100644
index 000000000000..cd26f09a4e92
--- /dev/null
+++ b/test/MC/Disassembler/ARM/fullfp16-arm-neg.txt
@@ -0,0 +1,188 @@
+# RUN: not llvm-mc -disassemble -triple armv8a-none-eabi -mattr=-fullfp16 -show-encoding < %s 2>&1 | FileCheck %s
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0x09,0x30,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0x30,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0x09,0x80,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0x09,0x20,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0x20,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x00,0x09,0x41,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x40,0x09,0x41,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x40,0x09,0x51,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x00,0x09,0x51,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x60,0x09,0xb4,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x40,0x19,0xb5,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0xf4,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0xb5,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0xb0,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x40,0x09,0xb1,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0xb1,0xee]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xc0,0x09,0xb8,0xee]
+[0x40,0x09,0xb8,0xee]
+[0xc0,0x09,0xbd,0xee]
+[0xc0,0x09,0xbc,0xee]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x60,0x09,0xbd,0xee]
+[0x60,0x09,0xbc,0xee]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xc6,0x09,0xbb,0xee]
+[0x67,0x09,0xbb,0xee]
+[0xc6,0x09,0xfa,0xee]
+[0x67,0x89,0xfa,0xee]
+[0xc6,0x69,0xbf,0xee]
+[0x67,0xe9,0xbf,0xee]
+[0xc6,0x09,0xfe,0xee]
+[0x67,0x89,0xfe,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xe1,0x19,0xbc,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0xeb,0x39,0xbd,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0xc2,0x09,0xbe,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0xc4,0x89,0xff,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x61,0x19,0xbc,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x6b,0x39,0xbd,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x42,0x09,0xbe,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x44,0x89,0xff,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0xab,0x29,0x20,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0x09,0x30,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x2b,0xf9,0x0e,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x07,0xa9,0x58,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x00,0x29,0xc6,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x46,0x09,0x80,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0xcc,0x19,0xf6,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x64,0x09,0xb6,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x47,0x59,0xb7,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x60,0x69,0xb8,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x60,0x69,0xb9,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x60,0x69,0xba,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x60,0x69,0xbb,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+[0x82,0x19,0xa3,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc2,0x19,0xa3,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0xc2,0x19,0x93,0xee]
+
+# CHECK: warning: invalid instruction encoding
+[0x82,0x19,0x93,0xee]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x62,0x1a,0xb0,0xfe]
+[0xe2,0x1a,0xb0,0xfe]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x03,0x09,0xdf,0xed]
+[0xff,0x19,0x9f,0xed]
+[0xff,0x19,0x5f,0xed]
+[0x09,0x29,0x14,0xed]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x03,0x09,0xcf,0xed]
+[0xff,0x19,0x8f,0xed]
+[0xff,0x19,0x4f,0xed]
+[0x09,0x29,0x04,0xed]
+
+# CHECK: warning: invalid instruction encoding
+[0x00,0x09,0xb7,0xee]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x90,0x29,0x00,0xee]
+[0x10,0x39,0x12,0xee]
+
+# CHECK-NOT: warning: invalid instruction encoding
diff --git a/test/MC/Disassembler/ARM/fullfp16-arm.txt b/test/MC/Disassembler/ARM/fullfp16-arm.txt
new file mode 100644
index 000000000000..8a7ce68933eb
--- /dev/null
+++ b/test/MC/Disassembler/ARM/fullfp16-arm.txt
@@ -0,0 +1,186 @@
+# RUN: llvm-mc -disassemble -triple armv8a-none-eabi -mattr=+fullfp16 -show-encoding < %s | FileCheck %s
+
+# CHECK: vadd.f16 s0, s1, s0
+[0x80,0x09,0x30,0xee]
+
+# CHECK: vsub.f16 s0, s1, s0
+[0xc0,0x09,0x30,0xee]
+
+# CHECK: vdiv.f16 s0, s1, s0
+[0x80,0x09,0x80,0xee]
+
+# CHECK: vmul.f16 s0, s1, s0
+[0x80,0x09,0x20,0xee]
+
+# CHECK: vnmul.f16 s0, s1, s0
+[0xc0,0x09,0x20,0xee]
+
+# CHECK: vmla.f16 s1, s2, s0
+[0x00,0x09,0x41,0xee]
+
+# CHECK: vmls.f16 s1, s2, s0
+[0x40,0x09,0x41,0xee]
+
+# CHECK: vnmla.f16 s1, s2, s0
+[0x40,0x09,0x51,0xee]
+
+# CHECK: vnmls.f16 s1, s2, s0
+[0x00,0x09,0x51,0xee]
+
+# CHECK: vcmp.f16 s0, s1
+[0x60,0x09,0xb4,0xee]
+
+# CHECK: vcmp.f16 s2, #0
+[0x40,0x19,0xb5,0xee]
+
+# CHECK: vcmpe.f16 s1, s0
+[0xc0,0x09,0xf4,0xee]
+
+# CHECK: vcmpe.f16 s0, #0
+[0xc0,0x09,0xb5,0xee]
+
+# CHECK: vabs.f16 s0, s0
+[0xc0,0x09,0xb0,0xee]
+
+# CHECK: vneg.f16 s0, s0
+[0x40,0x09,0xb1,0xee]
+
+# CHECK: vsqrt.f16 s0, s0
+[0xc0,0x09,0xb1,0xee]
+
+# CHECK: vcvt.f16.s32 s0, s0
+# CHECK: vcvt.f16.u32 s0, s0
+# CHECK: vcvt.s32.f16 s0, s0
+# CHECK: vcvt.u32.f16 s0, s0
+[0xc0,0x09,0xb8,0xee]
+[0x40,0x09,0xb8,0xee]
+[0xc0,0x09,0xbd,0xee]
+[0xc0,0x09,0xbc,0xee]
+
+# CHECK: vcvtr.s32.f16 s0, s1
+# CHECK: vcvtr.u32.f16 s0, s1
+[0x60,0x09,0xbd,0xee]
+[0x60,0x09,0xbc,0xee]
+
+# CHECK: vcvt.f16.u32 s0, s0, #20
+# CHECK: vcvt.f16.u16 s0, s0, #1
+# CHECK: vcvt.f16.s32 s1, s1, #20
+# CHECK: vcvt.f16.s16 s17, s17, #1
+# CHECK: vcvt.u32.f16 s12, s12, #20
+# CHECK: vcvt.u16.f16 s28, s28, #1
+# CHECK: vcvt.s32.f16 s1, s1, #20
+# CHECK: vcvt.s16.f16 s17, s17, #1
+[0xc6,0x09,0xbb,0xee]
+[0x67,0x09,0xbb,0xee]
+[0xc6,0x09,0xfa,0xee]
+[0x67,0x89,0xfa,0xee]
+[0xc6,0x69,0xbf,0xee]
+[0x67,0xe9,0xbf,0xee]
+[0xc6,0x09,0xfe,0xee]
+[0x67,0x89,0xfe,0xee]
+
+# CHECK: vcvta.s32.f16 s2, s3
+[0xe1,0x19,0xbc,0xfe]
+
+# CHECK: vcvtn.s32.f16 s6, s23
+[0xeb,0x39,0xbd,0xfe]
+
+# CHECK: vcvtp.s32.f16 s0, s4
+[0xc2,0x09,0xbe,0xfe]
+
+# CHECK: vcvtm.s32.f16 s17, s8
+[0xc4,0x89,0xff,0xfe]
+
+# CHECK: vcvta.u32.f16 s2, s3
+[0x61,0x19,0xbc,0xfe]
+
+# CHECK: vcvtn.u32.f16 s6, s23
+[0x6b,0x39,0xbd,0xfe]
+
+# CHECK: vcvtp.u32.f16 s0, s4
+[0x42,0x09,0xbe,0xfe]
+
+# CHECK: vcvtm.u32.f16 s17, s8
+[0x44,0x89,0xff,0xfe]
+
+# CHECK: vselge.f16 s4, s1, s23
+[0xab,0x29,0x20,0xfe]
+
+# CHECK: vselgt.f16 s0, s1, s0
+[0x80,0x09,0x30,0xfe]
+
+# CHECK: vseleq.f16 s30, s28, s23
+[0x2b,0xf9,0x0e,0xfe]
+
+# CHECK: vselvs.f16 s21, s16, s14
+[0x07,0xa9,0x58,0xfe]
+
+# CHECK: vmaxnm.f16 s5, s12, s0
+[0x00,0x29,0xc6,0xfe]
+
+# CHECK: vminnm.f16 s0, s0, s12
+[0x46,0x09,0x80,0xfe]
+
+# CHECK: vrintz.f16 s3, s24
+[0xcc,0x19,0xf6,0xee]
+
+# CHECK: vrintr.f16 s0, s9
+[0x64,0x09,0xb6,0xee]
+
+# CHECK: vrintx.f16 s10, s14
+[0x47,0x59,0xb7,0xee]
+
+# CHECK: vrinta.f16 s12, s1
+[0x60,0x69,0xb8,0xfe]
+
+# CHECK: vrintn.f16 s12, s1
+[0x60,0x69,0xb9,0xfe]
+
+# CHECK: vrintp.f16 s12, s1
+[0x60,0x69,0xba,0xfe]
+
+# CHECK: vrintm.f16 s12, s1
+[0x60,0x69,0xbb,0xfe]
+
+# CHECK: vfma.f16 s2, s7, s4
+[0x82,0x19,0xa3,0xee]
+
+# CHECK: vfms.f16 s2, s7, s4
+[0xc2,0x19,0xa3,0xee]
+
+# CHECK: vfnma.f16 s2, s7, s4
+[0xc2,0x19,0x93,0xee]
+
+# CHECK: vfnms.f16 s2, s7, s4
+[0x82,0x19,0x93,0xee]
+
+# CHECK: vmovx.f16 s2, s5
+# CHECK: vins.f16 s2, s5
+[0x62,0x1a,0xb0,0xfe]
+[0xe2,0x1a,0xb0,0xfe]
+
+# CHECK: vldr.16 s1, [pc, #6]
+# CHECK: vldr.16 s2, [pc, #510]
+# CHECK: vldr.16 s3, [pc, #-510]
+# CHECK: vldr.16 s4, [r4, #-18]
+[0x03,0x09,0xdf,0xed]
+[0xff,0x19,0x9f,0xed]
+[0xff,0x19,0x5f,0xed]
+[0x09,0x29,0x14,0xed]
+
+# CHECK: vstr.16 s1, [pc, #6]
+# CHECK: vstr.16 s2, [pc, #510]
+# CHECK: vstr.16 s3, [pc, #-510]
+# CHECK: vstr.16 s4, [r4, #-18]
+[0x03,0x09,0xcf,0xed]
+[0xff,0x19,0x8f,0xed]
+[0xff,0x19,0x4f,0xed]
+[0x09,0x29,0x04,0xed]
+
+# CHECK: vmov.f16 s0, #1.0
+[0x00,0x09,0xb7,0xee]
+
+# CHECK: vmov.f16 s1, r2
+# CHECK: vmov.f16 r3, s4
+[0x90,0x29,0x00,0xee]
+[0x10,0x39,0x12,0xee]
diff --git a/test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt b/test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt
new file mode 100644
index 000000000000..ecb8fabd4cae
--- /dev/null
+++ b/test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt
@@ -0,0 +1,186 @@
+# RUN: not llvm-mc -disassemble -triple thumbv8a-none-eabi -mattr=-fullfp16,+thumb-mode -show-encoding < %s 2>&1 | FileCheck %s
+
+# CHECK: warning: invalid instruction encoding
+[0x30,0xee,0x80,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x30,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0xee,0x80,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x20,0xee,0x80,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x20,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x41,0xee,0x00,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x41,0xee,0x40,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x51,0xee,0x40,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x51,0xee,0x00,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb4,0xee,0x60,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb5,0xee,0x40,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0xf4,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb5,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb0,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb1,0xee,0x40,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb1,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xb8,0xee,0xc0,0x09]
+[0xb8,0xee,0x40,0x09]
+[0xbd,0xee,0xc0,0x09]
+[0xbc,0xee,0xc0,0x09]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xbd,0xee,0x60,0x09]
+[0xbc,0xee,0x60,0x09]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xbb,0xee,0xc6,0x09]
+[0xbb,0xee,0x67,0x09]
+[0xfa,0xee,0xc6,0x09]
+[0xfa,0xee,0x67,0x89]
+[0xbf,0xee,0xc6,0x69]
+[0xbf,0xee,0x67,0xe9]
+[0xfe,0xee,0xc6,0x09]
+[0xfe,0xee,0x67,0x89]
+
+# CHECK: warning: invalid instruction encoding
+[0xbc,0xfe,0xe1,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0xbd,0xfe,0xeb,0x39]
+
+# CHECK: warning: invalid instruction encoding
+[0xbe,0xfe,0xc2,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xff,0xfe,0xc4,0x89]
+
+# CHECK: warning: invalid instruction encoding
+[0xbc,0xfe,0x61,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0xbd,0xfe,0x6b,0x39]
+
+# CHECK: warning: invalid instruction encoding
+[0xbe,0xfe,0x42,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xff,0xfe,0x44,0x89]
+
+# CHECK: warning: invalid instruction encoding
+[0x20,0xfe,0xab,0x29]
+
+# CHECK: warning: invalid instruction encoding
+[0x30,0xfe,0x80,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0x0e,0xfe,0x2b,0xf9]
+
+# CHECK: warning: invalid instruction encoding
+[0x58,0xfe,0x07,0xa9]
+
+# CHECK: warning: invalid instruction encoding
+[0xc6,0xfe,0x00,0x29]
+
+# CHECK: warning: invalid instruction encoding
+[0x80,0xfe,0x46,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xf6,0xee,0xcc,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0xb6,0xee,0x64,0x09]
+
+# CHECK: warning: invalid instruction encoding
+[0xb7,0xee,0x47,0x59]
+
+# CHECK: warning: invalid instruction encoding
+[0xb8,0xfe,0x60,0x69]
+
+# CHECK: warning: invalid instruction encoding
+[0xb9,0xfe,0x60,0x69]
+
+# CHECK: warning: invalid instruction encoding
+[0xba,0xfe,0x60,0x69]
+
+# CHECK: warning: invalid instruction encoding
+[0xbb,0xfe,0x60,0x69]
+
+# CHECK: warning: invalid instruction encoding
+[0xa3,0xee,0x82,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0xa3,0xee,0xc2,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0x93,0xee,0xc2,0x19]
+
+# CHECK: warning: invalid instruction encoding
+[0x93,0xee,0x82,0x19]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xb0,0xfe,0x62,0x1a]
+[0xb0,0xfe,0xe2,0x1a]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xdf,0xed,0x03,0x09]
+[0x9f,0xed,0xff,0x19]
+[0x5f,0xed,0xff,0x19]
+[0x14,0xed,0x09,0x29]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0xcf,0xed,0x03,0x09]
+[0x8f,0xed,0xff,0x19]
+[0x4f,0xed,0xff,0x19]
+[0x04,0xed,0x09,0x29]
+
+# CHECK: warning: invalid instruction encoding
+[0xb7,0xee,0x00,0x09]
+
+# CHECK: warning: invalid instruction encoding
+# CHECK: warning: invalid instruction encoding
+[0x00,0xee,0x90,0x29]
+[0x12,0xee,0x10,0x39]
diff --git a/test/MC/Disassembler/ARM/fullfp16-thumb.txt b/test/MC/Disassembler/ARM/fullfp16-thumb.txt
new file mode 100644
index 000000000000..451172051436
--- /dev/null
+++ b/test/MC/Disassembler/ARM/fullfp16-thumb.txt
@@ -0,0 +1,186 @@
+# RUN: llvm-mc -disassemble -triple thumbv8a-none-eabi -mattr=+fullfp16,+thumb-mode -show-encoding < %s | FileCheck %s
+
+# CHECK: vadd.f16 s0, s1, s0
+[0x30,0xee,0x80,0x09]
+
+# CHECK: vsub.f16 s0, s1, s0
+[0x30,0xee,0xc0,0x09]
+
+# CHECK: vdiv.f16 s0, s1, s0
+[0x80,0xee,0x80,0x09]
+
+# CHECK: vmul.f16 s0, s1, s0
+[0x20,0xee,0x80,0x09]
+
+# CHECK: vnmul.f16 s0, s1, s0
+[0x20,0xee,0xc0,0x09]
+
+# CHECK: vmla.f16 s1, s2, s0
+[0x41,0xee,0x00,0x09]
+
+# CHECK: vmls.f16 s1, s2, s0
+[0x41,0xee,0x40,0x09]
+
+# CHECK: vnmla.f16 s1, s2, s0
+[0x51,0xee,0x40,0x09]
+
+# CHECK: vnmls.f16 s1, s2, s0
+[0x51,0xee,0x00,0x09]
+
+# CHECK: vcmp.f16 s0, s1
+[0xb4,0xee,0x60,0x09]
+
+# CHECK: vcmp.f16 s2, #0
+[0xb5,0xee,0x40,0x19]
+
+# CHECK: vcmpe.f16 s1, s0
+[0xf4,0xee,0xc0,0x09]
+
+# CHECK: vcmpe.f16 s0, #0
+[0xb5,0xee,0xc0,0x09]
+
+# CHECK: vabs.f16 s0, s0
+[0xb0,0xee,0xc0,0x09]
+
+# CHECK: vneg.f16 s0, s0
+[0xb1,0xee,0x40,0x09]
+
+# CHECK: vsqrt.f16 s0, s0
+[0xb1,0xee,0xc0,0x09]
+
+# CHECK: vcvt.f16.s32 s0, s0
+# CHECK: vcvt.f16.u32 s0, s0
+# CHECK: vcvt.s32.f16 s0, s0
+# CHECK: vcvt.u32.f16 s0, s0
+[0xb8,0xee,0xc0,0x09]
+[0xb8,0xee,0x40,0x09]
+[0xbd,0xee,0xc0,0x09]
+[0xbc,0xee,0xc0,0x09]
+
+# CHECK: vcvtr.s32.f16 s0, s1
+# CHECK: vcvtr.u32.f16 s0, s1
+[0xbd,0xee,0x60,0x09]
+[0xbc,0xee,0x60,0x09]
+
+# CHECK: vcvt.f16.u32 s0, s0, #20
+# CHECK: vcvt.f16.u16 s0, s0, #1
+# CHECK: vcvt.f16.s32 s1, s1, #20
+# CHECK: vcvt.f16.s16 s17, s17, #1
+# CHECK: vcvt.u32.f16 s12, s12, #20
+# CHECK: vcvt.u16.f16 s28, s28, #1
+# CHECK: vcvt.s32.f16 s1, s1, #20
+# CHECK: vcvt.s16.f16 s17, s17, #1
+[0xbb,0xee,0xc6,0x09]
+[0xbb,0xee,0x67,0x09]
+[0xfa,0xee,0xc6,0x09]
+[0xfa,0xee,0x67,0x89]
+[0xbf,0xee,0xc6,0x69]
+[0xbf,0xee,0x67,0xe9]
+[0xfe,0xee,0xc6,0x09]
+[0xfe,0xee,0x67,0x89]
+
+# CHECK: vcvta.s32.f16 s2, s3
+[0xbc,0xfe,0xe1,0x19]
+
+# CHECK: vcvtn.s32.f16 s6, s23
+[0xbd,0xfe,0xeb,0x39]
+
+# CHECK: vcvtp.s32.f16 s0, s4
+[0xbe,0xfe,0xc2,0x09]
+
+# CHECK: vcvtm.s32.f16 s17, s8
+[0xff,0xfe,0xc4,0x89]
+
+# CHECK: vcvta.u32.f16 s2, s3
+[0xbc,0xfe,0x61,0x19]
+
+# CHECK: vcvtn.u32.f16 s6, s23
+[0xbd,0xfe,0x6b,0x39]
+
+# CHECK: vcvtp.u32.f16 s0, s4
+[0xbe,0xfe,0x42,0x09]
+
+# CHECK: vcvtm.u32.f16 s17, s8
+[0xff,0xfe,0x44,0x89]
+
+# CHECK: vselge.f16 s4, s1, s23
+[0x20,0xfe,0xab,0x29]
+
+# CHECK: vselgt.f16 s0, s1, s0
+[0x30,0xfe,0x80,0x09]
+
+# CHECK: vseleq.f16 s30, s28, s23
+[0x0e,0xfe,0x2b,0xf9]
+
+# CHECK: vselvs.f16 s21, s16, s14
+[0x58,0xfe,0x07,0xa9]
+
+# CHECK: vmaxnm.f16 s5, s12, s0
+[0xc6,0xfe,0x00,0x29]
+
+# CHECK: vminnm.f16 s0, s0, s12
+[0x80,0xfe,0x46,0x09]
+
+# CHECK: vrintz.f16 s3, s24
+[0xf6,0xee,0xcc,0x19]
+
+# CHECK: vrintr.f16 s0, s9
+[0xb6,0xee,0x64,0x09]
+
+# CHECK: vrintx.f16 s10, s14
+[0xb7,0xee,0x47,0x59]
+
+# CHECK: vrinta.f16 s12, s1
+[0xb8,0xfe,0x60,0x69]
+
+# CHECK: vrintn.f16 s12, s1
+[0xb9,0xfe,0x60,0x69]
+
+# CHECK: vrintp.f16 s12, s1
+[0xba,0xfe,0x60,0x69]
+
+# CHECK: vrintm.f16 s12, s1
+[0xbb,0xfe,0x60,0x69]
+
+# CHECK: vfma.f16 s2, s7, s4
+[0xa3,0xee,0x82,0x19]
+
+# CHECK: vfms.f16 s2, s7, s4
+[0xa3,0xee,0xc2,0x19]
+
+# CHECK: vfnma.f16 s2, s7, s4
+[0x93,0xee,0xc2,0x19]
+
+# CHECK: vfnms.f16 s2, s7, s4
+[0x93,0xee,0x82,0x19]
+
+# CHECK: vmovx.f16 s2, s5
+# CHECK: vins.f16 s2, s5
+[0xb0,0xfe,0x62,0x1a]
+[0xb0,0xfe,0xe2,0x1a]
+
+# CHECK: vldr.16 s1, [pc, #6]
+# CHECK: vldr.16 s2, [pc, #510]
+# CHECK: vldr.16 s3, [pc, #-510]
+# CHECK: vldr.16 s4, [r4, #-18]
+[0xdf,0xed,0x03,0x09]
+[0x9f,0xed,0xff,0x19]
+[0x5f,0xed,0xff,0x19]
+[0x14,0xed,0x09,0x29]
+
+# CHECK: vstr.16 s1, [pc, #6]
+# CHECK: vstr.16 s2, [pc, #510]
+# CHECK: vstr.16 s3, [pc, #-510]
+# CHECK: vstr.16 s4, [r4, #-18]
+[0xcf,0xed,0x03,0x09]
+[0x8f,0xed,0xff,0x19]
+[0x4f,0xed,0xff,0x19]
+[0x04,0xed,0x09,0x29]
+
+# CHECK: vmov.f16 s0, #1.0
+[0xb7,0xee,0x00,0x09]
+
+# CHECK: vmov.f16 s1, r2
+# CHECK: vmov.f16 r3, s4
+[0x00,0xee,0x90,0x29]
+[0x12,0xee,0x10,0x39]
diff --git a/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt b/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt
index 26fa907084e9..f40c721fc5a0 100644
--- a/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt
+++ b/test/MC/Disassembler/ARM/invalid-thumb-MSR-MClass.txt
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc -disassemble %s -triple=thumbv7em 2>&1 | FileCheck --check-prefix=CHECK %s
+# RUN: not llvm-mc -disassemble %s -triple=thumbv7em 2>&1 | FileCheck %s
# RUN: not llvm-mc -disassemble %s -triple=thumbv7m 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V7M %s
#------------------------------------------------------------------------------
diff --git a/test/MC/Disassembler/ARM/ras-extension-arm.txt b/test/MC/Disassembler/ARM/ras-extension-arm.txt
new file mode 100644
index 000000000000..075f905f2a82
--- /dev/null
+++ b/test/MC/Disassembler/ARM/ras-extension-arm.txt
@@ -0,0 +1,6 @@
+# RUN: llvm-mc < %s -triple armv8a-none-eabi -mattr=+ras -disassemble | FileCheck %s --check-prefix=RAS
+# RUN: llvm-mc < %s -triple armv8a-none-eabi -mattr=-ras -disassemble | FileCheck %s --check-prefix=NO-RAS
+
+[0x10,0xf0,0x20,0xe3]
+# RAS: esb
+# NO-RAS: hint #16
diff --git a/test/MC/Disassembler/ARM/ras-extension-thumb.txt b/test/MC/Disassembler/ARM/ras-extension-thumb.txt
new file mode 100644
index 000000000000..4189b525132f
--- /dev/null
+++ b/test/MC/Disassembler/ARM/ras-extension-thumb.txt
@@ -0,0 +1,6 @@
+# RUN: llvm-mc < %s -triple thumbv8a-none-eabi -mattr=+ras -disassemble | FileCheck %s --check-prefix=RAS
+# RUN: llvm-mc < %s -triple thumbv8a-none-eabi -mattr=-ras -disassemble | FileCheck %s --check-prefix=NO-RAS
+
+[0xaf,0xf3,0x10,0x80]
+# RAS: esb
+# NO-RAS: hint.w #16
diff --git a/test/MC/Disassembler/ARM/thumb2-v8m.txt b/test/MC/Disassembler/ARM/thumb2-v8m.txt
new file mode 100644
index 000000000000..007d7dc46ba7
--- /dev/null
+++ b/test/MC/Disassembler/ARM/thumb2-v8m.txt
@@ -0,0 +1,25 @@
+# RUN: llvm-mc -triple=thumbv8m.base -disassemble < %s 2>%t | FileCheck %s
+# RUN: FileCheck < %t %s --check-prefix=CHECK-STDERR
+# RUN: llvm-mc -triple=thumbv8m.main -disassemble < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-MAINLINE
+
+0xef 0xf3 0x0a 0x83
+# CHECK: mrs r3, msplim
+0xef 0xf3 0x0b 0x84
+# CHECK: mrs r4, psplim
+0x8b 0xf3 0x0a 0x88
+# CHECK: msr msplim, r11
+0x8c 0xf3 0x0b 0x88
+# CHECK: msr psplim, r12
+
+0xef 0xf3 0x90 0x86
+# CHECK: mrs r6, primask_ns
+0x88 0xf3 0x98 0x88
+# CHECK: msr sp_ns, r8
+
+0xef 0xf3 0x8a 0x85
+# CHECK-STDERR: warning: invalid instruction encoding
+# CHECK-MAINLINE: mrs r5, msplim_ns
+0x87 0xf3 0x93 0x88
+# CHECK-STDERR: warning: invalid instruction encoding
+# CHECK-MAINLINE: msr faultmask_ns, r7
+
diff --git a/test/MC/Disassembler/Hexagon/jr.txt b/test/MC/Disassembler/Hexagon/jr.txt
index c9deb5fdd7e3..a10b186ddb02 100644
--- a/test/MC/Disassembler/Hexagon/jr.txt
+++ b/test/MC/Disassembler/Hexagon/jr.txt
@@ -17,7 +17,7 @@
0x00 0xc0 0x95 0x52
# CHECK: jumpr r21
0x00 0xc1 0x55 0x53
-# CHECK: if (p1) jumpr r21
+# CHECK: if (p1) jumpr:nt r21
0x03 0x40 0x45 0x85 0x00 0xcb 0x55 0x53
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) jumpr:nt r21
@@ -25,7 +25,7 @@
# CHECK: p3 = r5
# CHECK-NEXT: if (p3.new) jumpr:t r21
0x00 0xc3 0x75 0x53
-# CHECK: if (!p3) jumpr r21
+# CHECK: if (!p3) jumpr:nt r21
0x03 0x40 0x45 0x85 0x00 0xcb 0x75 0x53
# CHECK: p3 = r5
# CHECK-NEXT: if (!p3.new) jumpr:nt r21
diff --git a/test/MC/Disassembler/Lanai/lit.local.cfg b/test/MC/Disassembler/Lanai/lit.local.cfg
new file mode 100644
index 000000000000..3f30d055364c
--- /dev/null
+++ b/test/MC/Disassembler/Lanai/lit.local.cfg
@@ -0,0 +1,3 @@
+if not 'Lanai' in config.root.targets:
+ config.unsupported = True
+
diff --git a/test/MC/Disassembler/Lanai/v11.txt b/test/MC/Disassembler/Lanai/v11.txt
new file mode 100644
index 000000000000..8e956f93e20b
--- /dev/null
+++ b/test/MC/Disassembler/Lanai/v11.txt
@@ -0,0 +1,762 @@
+# RUN: llvm-mc -disassemble -triple lanai %s | FileCheck %s
+
+0x0a 0xc4 0x00 0x00
+# CHECK: add %r17, 0x0, %r21
+0x0a 0xc4 0x12 0x34
+# CHECK: add %r17, 0x1234, %r21
+0x0a 0xc5 0x12 0x34
+# CHECK: add %r17, 0x12340000, %r21
+0x0a 0xc6 0x00 0x00
+# CHECK: add.f %r17, 0x0, %r21
+0x0a 0xc6 0x12 0x34
+# CHECK: add.f %r17, 0x1234, %r21
+0x0a 0xc7 0x12 0x34
+# CHECK: add.f %r17, 0x12340000, %r21
+0xca 0xc4 0x90 0x00
+# CHECK: add %r17, %r18, %r21
+0xca 0xc6 0x90 0x00
+# CHECK: add.f %r17, %r18, %r21
+0xca 0xc4 0x91 0x00
+# CHECK: addc %r17, %r18, %r21
+0xca 0xc6 0x91 0x00
+# CHECK: addc.f %r17, %r18, %r21
+0x1a 0xc4 0x00 0x00
+# CHECK: addc %r17, 0x0, %r21
+0x1a 0xc4 0x12 0x34
+# CHECK: addc %r17, 0x1234, %r21
+0x1a 0xc5 0x12 0x34
+# CHECK: addc %r17, 0x12340000, %r21
+0x1a 0xc6 0x00 0x00
+# CHECK: addc.f %r17, 0x0, %r21
+0x1a 0xc6 0x12 0x34
+# CHECK: addc.f %r17, 0x1234, %r21
+0x1a 0xc7 0x12 0x34
+# CHECK: addc.f %r17, 0x12340000, %r21
+0x4a 0xc4 0x12 0x34
+# CHECK: and %r17, 0xffff1234, %r21
+0x4a 0xc5 0x12 0x34
+# CHECK: and %r17, 0x1234ffff, %r21
+0x4a 0xc6 0x12 0x34
+# CHECK: and.f %r17, 0xffff1234, %r21
+0x4a 0xc7 0x12 0x34
+# CHECK: and.f %r17, 0x1234ffff, %r21
+0xca 0xc4 0x94 0x00
+# CHECK: and %r17, %r18, %r21
+0xca 0xc6 0x94 0x00
+# CHECK: and.f %r17, %r18, %r21
+0xe0 0x12 0x34 0x54
+# CHECK: bt 0x123454
+0xe0 0x12 0x34 0x55
+# CHECK: bf 0x123454
+0xe2 0x12 0x34 0x54
+# CHECK: bugt 0x123454
+0xe2 0x12 0x34 0x55
+# CHECK: bule 0x123454
+0xe4 0x12 0x34 0x54
+# CHECK: bult 0x123454
+0xe4 0x12 0x34 0x55
+# CHECK: buge 0x123454
+0xe6 0x12 0x34 0x54
+# CHECK: bne 0x123454
+0xe6 0x12 0x34 0x55
+# CHECK: beq 0x123454
+0xe8 0x12 0x34 0x54
+# CHECK: bvc 0x123454
+0xe8 0x12 0x34 0x55
+# CHECK: bvs 0x123454
+0xea 0x12 0x34 0x54
+# CHECK: bpl 0x123454
+0xea 0x12 0x34 0x55
+# CHECK: bmi 0x123454
+0xec 0x12 0x34 0x54
+# CHECK: bge 0x123454
+0xec 0x12 0x34 0x55
+# CHECK: blt 0x123454
+0xee 0x12 0x34 0x54
+# CHECK: bgt 0x123454
+0xc1 0x00 0x9d 0x00
+# CHECK: bt %r19
+0xe1 0x00 0x56 0x7a
+# CHECK: bt.r 0x5678
+0xe1 0x00 0x56 0x7b
+# CHECK: bf.r 0x5678
+0xe3 0x00 0x56 0x7a
+# CHECK: bugt.r 0x5678
+0xe3 0x00 0x56 0x7b
+# CHECK: bule.r 0x5678
+0xe5 0x00 0x56 0x7a
+# CHECK: bult.r 0x5678
+0xe5 0x00 0x56 0x7b
+# CHECK: buge.r 0x5678
+0xe7 0x00 0x56 0x7a
+# CHECK: bne.r 0x5678
+0xe7 0x00 0x56 0x7b
+# CHECK: beq.r 0x5678
+0xe9 0x00 0x56 0x7a
+# CHECK: bvc.r 0x5678
+0xe9 0x00 0x56 0x7b
+# CHECK: bvs.r 0x5678
+0xeb 0x00 0x56 0x7a
+# CHECK: bpl.r 0x5678
+0xeb 0x00 0x56 0x7b
+# CHECK: bmi.r 0x5678
+0xed 0x00 0x56 0x7a
+# CHECK: bge.r 0x5678
+0xed 0x00 0x56 0x7b
+# CHECK: blt.r 0x5678
+0xef 0x00 0x56 0x7a
+# CHECK: bgt.r 0x5678
+0x8a 0xc6 0x80 0x00
+# CHECK: ld -32768[%r17], %r21
+0x8a 0xc6 0xfc 0x00
+# CHECK: ld -1024[%r17], %r21
+0x8a 0xc4 0x00 0x00
+# CHECK: ld 0[%r17], %r21
+0x8a 0xc6 0x04 0x00
+# CHECK: ld 1024[%r17], %r21
+0x8a 0xc6 0x7f 0xff
+# CHECK: ld 32767[%r17], %r21
+0xaa 0xc6 0x90 0x02
+# CHECK: ld [%r17 add %r18], %r21
+0xaa 0xc6 0x90 0x03
+# CHECK: uld [%r17 add %r18], %r21
+0xfa 0xc7 0x0a 0x00
+# CHECK: ld.h -512[%r17], %r21
+0xfa 0xc7 0x0b 0xf3
+# CHECK: ld.h -13[%r17], %r21
+0xfa 0xc7 0x08 0x12
+# CHECK: ld.h 18[%r17], %r21
+0xfa 0xc7 0x09 0xff
+# CHECK: ld.h 511[%r17], %r21
+0xfa 0xc7 0x4a 0x00
+# CHECK: ld.b -512[%r17], %r21
+0xfa 0xc7 0x4b 0xf3
+# CHECK: ld.b -13[%r17], %r21
+0xfa 0xc7 0x48 0x12
+# CHECK: ld.b 18[%r17], %r21
+0xfa 0xc7 0x49 0xff
+# CHECK: ld.b 511[%r17], %r21
+0xfa 0xc7 0x1a 0x00
+# CHECK: uld.h -512[%r17], %r21
+0xfa 0xc7 0x1b 0xf3
+# CHECK: uld.h -13[%r17], %r21
+0xfa 0xc7 0x18 0x12
+# CHECK: uld.h 18[%r17], %r21
+0xfa 0xc7 0x19 0xff
+# CHECK: uld.h 511[%r17], %r21
+0xfa 0xc7 0x5a 0x00
+# CHECK: uld.b -512[%r17], %r21
+0xfa 0xc7 0x5b 0xf3
+# CHECK: uld.b -13[%r17], %r21
+0xfa 0xc7 0x58 0x12
+# CHECK: uld.b 18[%r17], %r21
+0xfa 0xc7 0x59 0xff
+# CHECK: uld.b 511[%r17], %r21
+0x8a 0xc7 0x80 0x00
+# CHECK: ld -32768[*%r17], %r21
+0x8a 0xc7 0xfc 0x00
+# CHECK: ld -1024[*%r17], %r21
+0x8a 0xc7 0x04 0x00
+# CHECK: ld 1024[*%r17], %r21
+0x8a 0xc7 0x7f 0xff
+# CHECK: ld 32767[*%r17], %r21
+0x8a 0xc7 0xff 0xfc
+# CHECK: ld [--%r17], %r21
+0x8a 0xc7 0x00 0x04
+# CHECK: ld [++%r17], %r21
+0xfa 0xc7 0x0f 0xfe
+# CHECK: ld.h [--%r17], %r21
+0xfa 0xc7 0x0c 0x02
+# CHECK: ld.h [++%r17], %r21
+0xfa 0xc7 0x1f 0xfe
+# CHECK: uld.h [--%r17], %r21
+0xfa 0xc7 0x1c 0x02
+# CHECK: uld.h [++%r17], %r21
+0xfa 0xc7 0x4f 0xff
+# CHECK: ld.b [--%r17], %r21
+0xfa 0xc7 0x4c 0x01
+# CHECK: ld.b [++%r17], %r21
+0xfa 0xc7 0x5f 0xff
+# CHECK: uld.b [--%r17], %r21
+0xfa 0xc7 0x5c 0x01
+# CHECK: uld.b [++%r17], %r21
+0xaa 0xc7 0x90 0x02
+# CHECK: ld [*%r17 add %r18], %r21
+0xfa 0xc7 0x0e 0x00
+# CHECK: ld.h -512[*%r17], %r21
+0xfa 0xc7 0x0f 0xf3
+# CHECK: ld.h -13[*%r17], %r21
+0xfa 0xc7 0x0c 0x12
+# CHECK: ld.h 18[*%r17], %r21
+0xfa 0xc7 0x0d 0xff
+# CHECK: ld.h 511[*%r17], %r21
+0xfa 0xc7 0x4e 0x00
+# CHECK: ld.b -512[*%r17], %r21
+0xfa 0xc7 0x4f 0xf3
+# CHECK: ld.b -13[*%r17], %r21
+0xfa 0xc7 0x4c 0x12
+# CHECK: ld.b 18[*%r17], %r21
+0xfa 0xc7 0x4d 0xff
+# CHECK: ld.b 511[*%r17], %r21
+0xfa 0xc7 0x1e 0x00
+# CHECK: uld.h -512[*%r17], %r21
+0xfa 0xc7 0x1f 0xf3
+# CHECK: uld.h -13[*%r17], %r21
+0xfa 0xc7 0x1c 0x12
+# CHECK: uld.h 18[*%r17], %r21
+0xfa 0xc7 0x1d 0xff
+# CHECK: uld.h 511[*%r17], %r21
+0xfa 0xc7 0x5e 0x00
+# CHECK: uld.b -512[*%r17], %r21
+0xfa 0xc7 0x5f 0xf3
+# CHECK: uld.b -13[*%r17], %r21
+0xfa 0xc7 0x5c 0x12
+# CHECK: uld.b 18[*%r17], %r21
+0xfa 0xc7 0x5d 0xff
+# CHECK: uld.b 511[*%r17], %r21
+0x8a 0xc5 0x80 0x00
+# CHECK: ld -32768[%r17*], %r21
+0x8a 0xc5 0xfc 0x00
+# CHECK: ld -1024[%r17*], %r21
+0x8a 0xc5 0x04 0x00
+# CHECK: ld 1024[%r17*], %r21
+0x8a 0xc5 0x7f 0xff
+# CHECK: ld 32767[%r17*], %r21
+0x8a 0xc5 0xff 0xfc
+# CHECK: ld [%r17--], %r21
+0x8a 0xc5 0x00 0x04
+# CHECK: ld [%r17++], %r21
+0xfa 0xc7 0x07 0xfe
+# CHECK: ld.h [%r17--], %r21
+0xfa 0xc7 0x04 0x02
+# CHECK: ld.h [%r17++], %r21
+0xfa 0xc7 0x17 0xfe
+# CHECK: uld.h [%r17--], %r21
+0xfa 0xc7 0x14 0x02
+# CHECK: uld.h [%r17++], %r21
+0xfa 0xc7 0x47 0xff
+# CHECK: ld.b [%r17--], %r21
+0xfa 0xc7 0x44 0x01
+# CHECK: ld.b [%r17++], %r21
+0xfa 0xc7 0x57 0xff
+# CHECK: uld.b [%r17--], %r21
+0xfa 0xc7 0x54 0x01
+# CHECK: uld.b [%r17++], %r21
+0xaa 0xc5 0x90 0x02
+# CHECK: ld [%r17* add %r18], %r21
+0xfa 0xc7 0x06 0x00
+# CHECK: ld.h -512[%r17*], %r21
+0xfa 0xc7 0x07 0xf3
+# CHECK: ld.h -13[%r17*], %r21
+0xfa 0xc7 0x04 0x12
+# CHECK: ld.h 18[%r17*], %r21
+0xfa 0xc7 0x05 0xff
+# CHECK: ld.h 511[%r17*], %r21
+0xfa 0xc7 0x46 0x00
+# CHECK: ld.b -512[%r17*], %r21
+0xfa 0xc7 0x47 0xf3
+# CHECK: ld.b -13[%r17*], %r21
+0xfa 0xc7 0x44 0x12
+# CHECK: ld.b 18[%r17*], %r21
+0xfa 0xc7 0x45 0xff
+# CHECK: ld.b 511[%r17*], %r21
+0xfa 0xc7 0x16 0x00
+# CHECK: uld.h -512[%r17*], %r21
+0xfa 0xc7 0x17 0xf3
+# CHECK: uld.h -13[%r17*], %r21
+0xfa 0xc7 0x14 0x12
+# CHECK: uld.h 18[%r17*], %r21
+0xfa 0xc7 0x15 0xff
+# CHECK: uld.h 511[%r17*], %r21
+0xfa 0xc7 0x56 0x00
+# CHECK: uld.b -512[%r17*], %r21
+0xfa 0xc7 0x57 0xf3
+# CHECK: uld.b -13[%r17*], %r21
+0xfa 0xc7 0x54 0x12
+# CHECK: uld.b 18[%r17*], %r21
+0xfa 0xc7 0x55 0xff
+# CHECK: uld.b 511[%r17*], %r21
+0xaa 0xc6 0x90 0x02
+# CHECK: ld [%r17 add %r18], %r21
+0xaa 0xc6 0x91 0x02
+# CHECK: ld [%r17 addc %r18], %r21
+0xaa 0xc6 0x92 0x02
+# CHECK: ld [%r17 sub %r18], %r21
+0xaa 0xc6 0x93 0x02
+# CHECK: ld [%r17 subb %r18], %r21
+0xaa 0xc6 0x94 0x02
+# CHECK: ld [%r17 and %r18], %r21
+0xaa 0xc6 0x95 0x02
+# CHECK: ld [%r17 or %r18], %r21
+0xaa 0xc6 0x96 0x02
+# CHECK: ld [%r17 xor %r18], %r21
+0xaa 0xc6 0x97 0x82
+# CHECK: ld [%r17 sh %r18], %r21
+0xaa 0xc6 0x97 0xc2
+# CHECK: ld [%r17 sha %r18], %r21
+0xaa 0xc7 0x90 0x02
+# CHECK: ld [*%r17 add %r18], %r21
+0xaa 0xc7 0x91 0x02
+# CHECK: ld [*%r17 addc %r18], %r21
+0xaa 0xc7 0x92 0x02
+# CHECK: ld [*%r17 sub %r18], %r21
+0xaa 0xc7 0x93 0x02
+# CHECK: ld [*%r17 subb %r18], %r21
+0xaa 0xc7 0x94 0x02
+# CHECK: ld [*%r17 and %r18], %r21
+0xaa 0xc7 0x95 0x02
+# CHECK: ld [*%r17 or %r18], %r21
+0xaa 0xc7 0x96 0x02
+# CHECK: ld [*%r17 xor %r18], %r21
+0xaa 0xc7 0x97 0x82
+# CHECK: ld [*%r17 sh %r18], %r21
+0xaa 0xc7 0x97 0xc2
+# CHECK: ld [*%r17 sha %r18], %r21
+0xaa 0xc5 0x90 0x02
+# CHECK: ld [%r17* add %r18], %r21
+0xaa 0xc5 0x91 0x02
+# CHECK: ld [%r17* addc %r18], %r21
+0xaa 0xc5 0x92 0x02
+# CHECK: ld [%r17* sub %r18], %r21
+0xaa 0xc5 0x93 0x02
+# CHECK: ld [%r17* subb %r18], %r21
+0xaa 0xc5 0x94 0x02
+# CHECK: ld [%r17* and %r18], %r21
+0xaa 0xc5 0x95 0x02
+# CHECK: ld [%r17* or %r18], %r21
+0xaa 0xc5 0x96 0x02
+# CHECK: ld [%r17* xor %r18], %r21
+0xaa 0xc5 0x97 0x82
+# CHECK: ld [%r17* sh %r18], %r21
+0xaa 0xc5 0x97 0xc2
+# CHECK: ld [%r17* sha %r18], %r21
+0xfa 0x84 0x23 0x44
+# CHECK: ld [0x12344], %r21
+0xda 0xc4 0x00 0x02
+# CHECK: leadz %r17, %r21
+0x08 0x80 0x00 0x00
+# CHECK: mov 0x0, %r17
+0x08 0x80 0x12 0x34
+# CHECK: mov 0x1234, %r17
+0x08 0x81 0x12 0x34
+# CHECK: mov 0x12340000, %r17
+0x08 0x81 0xaa 0xaa
+# CHECK: mov 0xaaaa0000, %r17
+0xc8 0xc8 0x00 0x00
+# CHECK: mov %r18, %r17
+0xf8 0x86 0x23 0x44
+# CHECK: mov 0x12344, %r17
+0x48 0x84 0x12 0x34
+# CHECK: mov 0xffff1234, %r17
+0x48 0x85 0x12 0x34
+# CHECK: mov 0x1234ffff, %r17
+0x00 0x00 0x00 0x01
+# CHECK: nop
+0x5a 0xc4 0x00 0x00
+# CHECK: or %r17, 0x0, %r21
+0x5a 0xc4 0x12 0x34
+# CHECK: or %r17, 0x1234, %r21
+0x5a 0xc5 0x12 0x34
+# CHECK: or %r17, 0x12340000, %r21
+0x5a 0xc6 0x00 0x00
+# CHECK: or.f %r17, 0x0, %r21
+0x5a 0xc6 0x12 0x34
+# CHECK: or.f %r17, 0x1234, %r21
+0x5a 0xc7 0x12 0x34
+# CHECK: or.f %r17, 0x12340000, %r21
+0xca 0xc4 0x95 0x00
+# CHECK: or %r17, %r18, %r21
+0xca 0xc6 0x95 0x00
+# CHECK: or.f %r17, %r18, %r21
+0xda 0xc4 0x00 0x01
+# CHECK: popc %r17, %r21
+0xe0 0x54 0x00 0x02
+# CHECK: st %r21
+0xe2 0x54 0x00 0x02
+# CHECK: sugt %r21
+0xe2 0x54 0x00 0x03
+# CHECK: sule %r21
+0xe4 0x54 0x00 0x02
+# CHECK: sult %r21
+0xe4 0x54 0x00 0x03
+# CHECK: suge %r21
+0xe6 0x54 0x00 0x02
+# CHECK: sne %r21
+0xe6 0x54 0x00 0x03
+# CHECK: seq %r21
+0xe8 0x54 0x00 0x02
+# CHECK: svc %r21
+0xe8 0x54 0x00 0x03
+# CHECK: svs %r21
+0xea 0x54 0x00 0x02
+# CHECK: spl %r21
+0xea 0x54 0x00 0x03
+# CHECK: smi %r21
+0xec 0x54 0x00 0x02
+# CHECK: sge %r21
+0xec 0x54 0x00 0x03
+# CHECK: slt %r21
+0xee 0x54 0x00 0x02
+# CHECK: sgt %r21
+0x7a 0xc4 0xff 0xe1
+# CHECK: sh %r17, -0x1f, %r21
+0x7a 0xc4 0xff 0xfb
+# CHECK: sh %r17, -0x5, %r21
+0x7a 0xc4 0x00 0x02
+# CHECK: sh %r17, 0x2, %r21
+0x7a 0xc4 0x00 0x1f
+# CHECK: sh %r17, 0x1f, %r21
+0x7a 0xc6 0xff 0xe1
+# CHECK: sh.f %r17, -0x1f, %r21
+0x7a 0xc6 0xff 0xfb
+# CHECK: sh.f %r17, -0x5, %r21
+0x7a 0xc6 0x00 0x02
+# CHECK: sh.f %r17, 0x2, %r21
+0x7a 0xc6 0x00 0x1f
+# CHECK: sh.f %r17, 0x1f, %r21
+0xca 0xc4 0x97 0x80
+# CHECK: sh %r17, %r18, %r21
+0xca 0xc6 0x97 0x80
+# CHECK: sh.f %r17, %r18, %r21
+0x7a 0xc5 0xff 0xe1
+# CHECK: sha %r17, -0x1f, %r21
+0x7a 0xc5 0xff 0xfb
+# CHECK: sha %r17, -0x5, %r21
+0x7a 0xc5 0x00 0x02
+# CHECK: sha %r17, 0x2, %r21
+0x7a 0xc5 0x00 0x1f
+# CHECK: sha %r17, 0x1f, %r21
+0x7a 0xc7 0xff 0xe1
+# CHECK: sha.f %r17, -0x1f, %r21
+0x7a 0xc7 0xff 0xfb
+# CHECK: sha.f %r17, -0x5, %r21
+0x7a 0xc7 0x00 0x02
+# CHECK: sha.f %r17, 0x2, %r21
+0x7a 0xc7 0x00 0x1f
+# CHECK: sha.f %r17, 0x1f, %r21
+0xca 0xc4 0x97 0xc0
+# CHECK: sha %r17, %r18, %r21
+0xca 0xc6 0x97 0xc0
+# CHECK: sha.f %r17, %r18, %r21
+0x98 0xce 0x80 0x00
+# CHECK: st %r17, -32768[%r19]
+0x98 0xce 0xfc 0x00
+# CHECK: st %r17, -1024[%r19]
+0x98 0xcc 0x00 0x00
+# CHECK: st %r17, 0[%r19]
+0x98 0xce 0x04 0x00
+# CHECK: st %r17, 1024[%r19]
+0x98 0xce 0x7f 0xff
+# CHECK: st %r17, 32767[%r19]
+0xf8 0xcf 0x2a 0x00
+# CHECK: st.h %r17, -512[%r19]
+0xf8 0xcf 0x2b 0xf3
+# CHECK: st.h %r17, -13[%r19]
+0xf8 0xcf 0x28 0x12
+# CHECK: st.h %r17, 18[%r19]
+0xf8 0xcf 0x29 0xff
+# CHECK: st.h %r17, 511[%r19]
+0xf8 0xcf 0x6a 0x00
+# CHECK: st.b %r17, -512[%r19]
+0xf8 0xcf 0x6b 0xf3
+# CHECK: st.b %r17, -13[%r19]
+0xf8 0xcf 0x68 0x12
+# CHECK: st.b %r17, 18[%r19]
+0xf8 0xcf 0x69 0xff
+# CHECK: st.b %r17, 511[%r19]
+0xb8 0xce 0x90 0x02
+# CHECK: st %r17, [%r19 add %r18]
+0xb8 0xce 0x90 0x00
+# CHECK: st.h %r17, [%r19 add %r18]
+0xb8 0xce 0x90 0x04
+# CHECK: st.b %r17, [%r19 add %r18]
+0x98 0xcf 0x80 0x00
+# CHECK: st %r17, -32768[*%r19]
+0x98 0xcf 0xfc 0x00
+# CHECK: st %r17, -1024[*%r19]
+0x98 0xcf 0x04 0x00
+# CHECK: st %r17, 1024[*%r19]
+0x98 0xcf 0x7f 0xff
+# CHECK: st %r17, 32767[*%r19]
+0xf8 0xcf 0x2e 0x00
+# CHECK: st.h %r17, -512[*%r19]
+0xf8 0xcf 0x2f 0xf3
+# CHECK: st.h %r17, -13[*%r19]
+0xf8 0xcf 0x2c 0x12
+# CHECK: st.h %r17, 18[*%r19]
+0xf8 0xcf 0x2d 0xff
+# CHECK: st.h %r17, 511[*%r19]
+0xf8 0xcf 0x6e 0x00
+# CHECK: st.b %r17, -512[*%r19]
+0xf8 0xcf 0x6f 0xf3
+# CHECK: st.b %r17, -13[*%r19]
+0xf8 0xcf 0x6c 0x12
+# CHECK: st.b %r17, 18[*%r19]
+0xf8 0xcf 0x6d 0xff
+# CHECK: st.b %r17, 511[*%r19]
+0x98 0xcf 0xff 0xfc
+# CHECK: st %r17, [--%r19]
+0x98 0xcf 0x00 0x04
+# CHECK: st %r17, [++%r19]
+0xf8 0xcf 0x2f 0xfe
+# CHECK: st.h %r17, [--%r19]
+0xf8 0xcf 0x2c 0x02
+# CHECK: st.h %r17, [++%r19]
+0xf8 0xcf 0x6f 0xff
+# CHECK: st.b %r17, [--%r19]
+0xf8 0xcf 0x6c 0x01
+# CHECK: st.b %r17, [++%r19]
+0xb8 0xcf 0x90 0x02
+# CHECK: st %r17, [*%r19 add %r18]
+0xb8 0xcf 0x90 0x00
+# CHECK: st.h %r17, [*%r19 add %r18]
+0xb8 0xcf 0x90 0x04
+# CHECK: st.b %r17, [*%r19 add %r18]
+0x98 0xcd 0x80 0x00
+# CHECK: st %r17, -32768[%r19*]
+0x98 0xcd 0xfc 0x00
+# CHECK: st %r17, -1024[%r19*]
+0x98 0xcd 0x04 0x00
+# CHECK: st %r17, 1024[%r19*]
+0x98 0xcd 0x7f 0xff
+# CHECK: st %r17, 32767[%r19*]
+0xf8 0xcf 0x26 0x00
+# CHECK: st.h %r17, -512[%r19*]
+0xf8 0xcf 0x27 0xf3
+# CHECK: st.h %r17, -13[%r19*]
+0xf8 0xcf 0x24 0x12
+# CHECK: st.h %r17, 18[%r19*]
+0xf8 0xcf 0x25 0xff
+# CHECK: st.h %r17, 511[%r19*]
+0xf8 0xcf 0x66 0x00
+# CHECK: st.b %r17, -512[%r19*]
+0xf8 0xcf 0x67 0xf3
+# CHECK: st.b %r17, -13[%r19*]
+0xf8 0xcf 0x64 0x12
+# CHECK: st.b %r17, 18[%r19*]
+0xf8 0xcf 0x65 0xff
+# CHECK: st.b %r17, 511[%r19*]
+0x98 0xcd 0xff 0xfc
+# CHECK: st %r17, [%r19--]
+0x98 0xcd 0x00 0x04
+# CHECK: st %r17, [%r19++]
+0xf8 0xcf 0x27 0xfe
+# CHECK: st.h %r17, [%r19--]
+0xf8 0xcf 0x24 0x02
+# CHECK: st.h %r17, [%r19++]
+0xf8 0xcf 0x67 0xff
+# CHECK: st.b %r17, [%r19--]
+0xf8 0xcf 0x64 0x01
+# CHECK: st.b %r17, [%r19++]
+0xb8 0xcd 0x90 0x02
+# CHECK: st %r17, [%r19* add %r18]
+0xb8 0xcd 0x90 0x00
+# CHECK: st.h %r17, [%r19* add %r18]
+0xb8 0xcd 0x90 0x04
+# CHECK: st.b %r17, [%r19* add %r18]
+0xba 0xc6 0x90 0x02
+# CHECK: st %r21, [%r17 add %r18]
+0xba 0xc6 0x91 0x02
+# CHECK: st %r21, [%r17 addc %r18]
+0xba 0xc6 0x92 0x02
+# CHECK: st %r21, [%r17 sub %r18]
+0xba 0xc6 0x93 0x02
+# CHECK: st %r21, [%r17 subb %r18]
+0xba 0xc6 0x94 0x02
+# CHECK: st %r21, [%r17 and %r18]
+0xba 0xc6 0x95 0x02
+# CHECK: st %r21, [%r17 or %r18]
+0xba 0xc6 0x96 0x02
+# CHECK: st %r21, [%r17 xor %r18]
+0xba 0xc6 0x97 0x82
+# CHECK: st %r21, [%r17 sh %r18]
+0xba 0xc6 0x97 0xc2
+# CHECK: st %r21, [%r17 sha %r18]
+0xba 0xc6 0x90 0x00
+# CHECK: st.h %r21, [%r17 add %r18]
+0xba 0xc6 0x91 0x00
+# CHECK: st.h %r21, [%r17 addc %r18]
+0xba 0xc6 0x92 0x00
+# CHECK: st.h %r21, [%r17 sub %r18]
+0xba 0xc6 0x93 0x00
+# CHECK: st.h %r21, [%r17 subb %r18]
+0xba 0xc6 0x94 0x00
+# CHECK: st.h %r21, [%r17 and %r18]
+0xba 0xc6 0x95 0x00
+# CHECK: st.h %r21, [%r17 or %r18]
+0xba 0xc6 0x96 0x00
+# CHECK: st.h %r21, [%r17 xor %r18]
+0xba 0xc6 0x97 0x80
+# CHECK: st.h %r21, [%r17 sh %r18]
+0xba 0xc6 0x97 0xc0
+# CHECK: st.h %r21, [%r17 sha %r18]
+0xba 0xc6 0x90 0x04
+# CHECK: st.b %r21, [%r17 add %r18]
+0xba 0xc6 0x91 0x04
+# CHECK: st.b %r21, [%r17 addc %r18]
+0xba 0xc6 0x92 0x04
+# CHECK: st.b %r21, [%r17 sub %r18]
+0xba 0xc6 0x93 0x04
+# CHECK: st.b %r21, [%r17 subb %r18]
+0xba 0xc6 0x94 0x04
+# CHECK: st.b %r21, [%r17 and %r18]
+0xba 0xc6 0x95 0x04
+# CHECK: st.b %r21, [%r17 or %r18]
+0xba 0xc6 0x96 0x04
+# CHECK: st.b %r21, [%r17 xor %r18]
+0xba 0xc6 0x97 0x84
+# CHECK: st.b %r21, [%r17 sh %r18]
+0xba 0xc6 0x97 0xc4
+# CHECK: st.b %r21, [%r17 sha %r18]
+0xba 0xc7 0x90 0x02
+# CHECK: st %r21, [*%r17 add %r18]
+0xba 0xc7 0x91 0x02
+# CHECK: st %r21, [*%r17 addc %r18]
+0xba 0xc7 0x92 0x02
+# CHECK: st %r21, [*%r17 sub %r18]
+0xba 0xc7 0x93 0x02
+# CHECK: st %r21, [*%r17 subb %r18]
+0xba 0xc7 0x94 0x02
+# CHECK: st %r21, [*%r17 and %r18]
+0xba 0xc7 0x95 0x02
+# CHECK: st %r21, [*%r17 or %r18]
+0xba 0xc7 0x96 0x02
+# CHECK: st %r21, [*%r17 xor %r18]
+0xba 0xc7 0x97 0xc2
+# CHECK: st %r21, [*%r17 sha %r18]
+0xba 0xc7 0x90 0x00
+# CHECK: st.h %r21, [*%r17 add %r18]
+0xba 0xc7 0x91 0x00
+# CHECK: st.h %r21, [*%r17 addc %r18]
+0xba 0xc7 0x92 0x00
+# CHECK: st.h %r21, [*%r17 sub %r18]
+0xba 0xc7 0x93 0x00
+# CHECK: st.h %r21, [*%r17 subb %r18]
+0xba 0xc7 0x94 0x00
+# CHECK: st.h %r21, [*%r17 and %r18]
+0xba 0xc7 0x95 0x00
+# CHECK: st.h %r21, [*%r17 or %r18]
+0xba 0xc7 0x96 0x00
+# CHECK: st.h %r21, [*%r17 xor %r18]
+0xba 0xc7 0x97 0xc0
+# CHECK: st.h %r21, [*%r17 sha %r18]
+0xba 0xc7 0x90 0x04
+# CHECK: st.b %r21, [*%r17 add %r18]
+0xba 0xc7 0x91 0x04
+# CHECK: st.b %r21, [*%r17 addc %r18]
+0xba 0xc7 0x92 0x04
+# CHECK: st.b %r21, [*%r17 sub %r18]
+0xba 0xc7 0x93 0x04
+# CHECK: st.b %r21, [*%r17 subb %r18]
+0xba 0xc7 0x94 0x04
+# CHECK: st.b %r21, [*%r17 and %r18]
+0xba 0xc7 0x95 0x04
+# CHECK: st.b %r21, [*%r17 or %r18]
+0xba 0xc7 0x96 0x04
+# CHECK: st.b %r21, [*%r17 xor %r18]
+0xba 0xc7 0x97 0xc4
+# CHECK: st.b %r21, [*%r17 sha %r18]
+0xba 0xc5 0x90 0x02
+# CHECK: st %r21, [%r17* add %r18]
+0xba 0xc5 0x91 0x02
+# CHECK: st %r21, [%r17* addc %r18]
+0xba 0xc5 0x92 0x02
+# CHECK: st %r21, [%r17* sub %r18]
+0xba 0xc5 0x93 0x02
+# CHECK: st %r21, [%r17* subb %r18]
+0xba 0xc5 0x94 0x02
+# CHECK: st %r21, [%r17* and %r18]
+0xba 0xc5 0x95 0x02
+# CHECK: st %r21, [%r17* or %r18]
+0xba 0xc5 0x96 0x02
+# CHECK: st %r21, [%r17* xor %r18]
+0xba 0xc5 0x97 0x82
+# CHECK: st %r21, [%r17* sh %r18]
+0xba 0xc5 0x97 0xc2
+# CHECK: st %r21, [%r17* sha %r18]
+0xba 0xc5 0x90 0x00
+# CHECK: st.h %r21, [%r17* add %r18]
+0xba 0xc5 0x91 0x00
+# CHECK: st.h %r21, [%r17* addc %r18]
+0xba 0xc5 0x92 0x00
+# CHECK: st.h %r21, [%r17* sub %r18]
+0xba 0xc5 0x93 0x00
+# CHECK: st.h %r21, [%r17* subb %r18]
+0xba 0xc5 0x94 0x00
+# CHECK: st.h %r21, [%r17* and %r18]
+0xba 0xc5 0x95 0x00
+# CHECK: st.h %r21, [%r17* or %r18]
+0xba 0xc5 0x96 0x00
+# CHECK: st.h %r21, [%r17* xor %r18]
+0xba 0xc5 0x97 0x80
+# CHECK: st.h %r21, [%r17* sh %r18]
+0xba 0xc5 0x97 0xc0
+# CHECK: st.h %r21, [%r17* sha %r18]
+0xba 0xc5 0x90 0x04
+# CHECK: st.b %r21, [%r17* add %r18]
+0xba 0xc5 0x91 0x04
+# CHECK: st.b %r21, [%r17* addc %r18]
+0xba 0xc5 0x92 0x04
+# CHECK: st.b %r21, [%r17* sub %r18]
+0xba 0xc5 0x93 0x04
+# CHECK: st.b %r21, [%r17* subb %r18]
+0xba 0xc5 0x94 0x04
+# CHECK: st.b %r21, [%r17* and %r18]
+0xba 0xc5 0x95 0x04
+# CHECK: st.b %r21, [%r17* or %r18]
+0xba 0xc5 0x96 0x04
+# CHECK: st.b %r21, [%r17* xor %r18]
+0xba 0xc5 0x97 0x84
+# CHECK: st.b %r21, [%r17* sh %r18]
+0xba 0xc5 0x97 0xc4
+# CHECK: st.b %r21, [%r17* sha %r18]
+0xfa 0x85 0x23 0x44
+# CHECK: st %r21, [0x12344]
+0x2a 0xc4 0x00 0x00
+# CHECK: sub %r17, 0x0, %r21
+0x2a 0xc4 0x12 0x34
+# CHECK: sub %r17, 0x1234, %r21
+0x2a 0xc5 0x12 0x34
+# CHECK: sub %r17, 0x12340000, %r21
+0x2a 0xc6 0x00 0x00
+# CHECK: sub.f %r17, 0x0, %r21
+0x2a 0xc6 0x12 0x34
+# CHECK: sub.f %r17, 0x1234, %r21
+0x2a 0xc7 0x12 0x34
+# CHECK: sub.f %r17, 0x12340000, %r21
+0xca 0xc4 0x92 0x00
+# CHECK: sub %r17, %r18, %r21
+0xca 0xc6 0x92 0x00
+# CHECK: sub.f %r17, %r18, %r21
+0x3a 0xc4 0x00 0x00
+# CHECK: subb %r17, 0x0, %r21
+0x3a 0xc4 0x12 0x34
+# CHECK: subb %r17, 0x1234, %r21
+0x3a 0xc5 0x12 0x34
+# CHECK: subb %r17, 0x12340000, %r21
+0x3a 0xc6 0x00 0x00
+# CHECK: subb.f %r17, 0x0, %r21
+0x3a 0xc6 0x12 0x34
+# CHECK: subb.f %r17, 0x1234, %r21
+0x3a 0xc7 0x12 0x34
+# CHECK: subb.f %r17, 0x12340000, %r21
+0xca 0xc4 0x93 0x00
+# CHECK: subb %r17, %r18, %r21
+0xca 0xc6 0x93 0x00
+# CHECK: subb.f %r17, %r18, %r21
+0x6a 0xc4 0x00 0x00
+# CHECK: xor %r17, 0x0, %r21
+0x6a 0xc4 0x12 0x34
+# CHECK: xor %r17, 0x1234, %r21
+0x6a 0xc5 0x12 0x34
+# CHECK: xor %r17, 0x12340000, %r21
+0x6a 0xc6 0x00 0x00
+# CHECK: xor.f %r17, 0x0, %r21
+0x6a 0xc6 0x12 0x34
+# CHECK: xor.f %r17, 0x1234, %r21
+0x6a 0xc7 0x12 0x34
+# CHECK: xor.f %r17, 0x12340000, %r21
+0xca 0xc4 0x96 0x00
+# CHECK: xor %r17, %r18, %r21
+0xca 0xc6 0x96 0x00
+# CHECK: xor.f %r17, %r18, %r21
diff --git a/test/MC/Disassembler/Mips/micromips-dsp/valid-micromips32r3.txt b/test/MC/Disassembler/Mips/micromips-dsp/valid-micromips32r3.txt
new file mode 100644
index 000000000000..a4c363105f76
--- /dev/null
+++ b/test/MC/Disassembler/Mips/micromips-dsp/valid-micromips32r3.txt
@@ -0,0 +1,3 @@
+# RUN: llvm-mc --disassemble %s -triple=mips-unknown-linux -mcpu=mips32r3 -mattr=micromips -mattr=+dsp | FileCheck %s
+
+0x43 0x60 0x00 0xab # CHECK: bposge32 342
diff --git a/test/MC/Disassembler/Mips/micromips-dsp/valid.txt b/test/MC/Disassembler/Mips/micromips-dsp/valid.txt
index fdd404c43492..f3d6f3dc0367 100644
--- a/test/MC/Disassembler/Mips/micromips-dsp/valid.txt
+++ b/test/MC/Disassembler/Mips/micromips-dsp/valid.txt
@@ -101,3 +101,15 @@
0x00 0x01 0x82 0x7c # CHECK: mthlip $1, $ac2
0x00 0xa7 0xd6 0x7c # CHECK: wrdsp $5
0x00 0xa0 0x96 0x7c # CHECK: wrdsp $5, 2
+0x00 0xc5 0x22 0x95 # CHECK: modsub $4, $5, $6
+0x00 0x43 0x3c 0xbc # CHECK: mulsaq_s.w.ph $ac0, $3, $2
+0x00 0x43 0x31 0x3c # CHECK: bitrev $2, $3
+0x00 0x62 0x00 0x05 # CHECK: cmp.eq.ph $2, $3
+0x00 0x62 0x00 0x85 # CHECK: cmp.le.ph $2, $3
+0x00 0x62 0x00 0x45 # CHECK: cmp.lt.ph $2, $3
+0x58 0x62 0x08 0xc5 # CHECK: cmpgu.eq.qb $1, $2, $3
+0x58 0x62 0x09 0x05 # CHECK: cmpgu.lt.qb $1, $2, $3
+0x58 0x62 0x09 0x45 # CHECK: cmpgu.le.qb $1, $2, $3
+0x00 0x41 0x02 0x45 # CHECK: cmpu.eq.qb $1, $2
+0x00 0x41 0x02 0x85 # CHECK: cmpu.lt.qb $1, $2
+0x00 0x41 0x02 0xc5 # CHECK: cmpu.le.qb $1, $2
diff --git a/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt b/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt
index 1d9fc9e80d73..2f564fcea582 100644
--- a/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt
+++ b/test/MC/Disassembler/Mips/micromips-dspr2/valid.txt
@@ -123,3 +123,19 @@
0x00 0x22 0x1a 0x55 # CHECK: prepend $1, $2, 3
0x00 0xa7 0xd6 0x7c # CHECK: wrdsp $5
0x00 0xa0 0x96 0x7c # CHECK: wrdsp $5, 2
+0x00 0x64 0x2a 0x15 # CHECK: append $3, $4, 5
+0x00 0x43 0x2c 0xbc # CHECK: mulsa.w.ph $ac0, $3, $2
+0x00 0x43 0xc8 0xbc # CHECK: balign $2, $3, 3
+0x00 0x43 0x31 0x3c # CHECK: bitrev $2, $3
+0x00 0x62 0x00 0x05 # CHECK: cmp.eq.ph $2, $3
+0x00 0x62 0x00 0x85 # CHECK: cmp.le.ph $2, $3
+0x00 0x62 0x00 0x45 # CHECK: cmp.lt.ph $2, $3
+0x00 0x62 0x09 0x85 # CHECK: cmpgdu.eq.qb $1, $2, $3
+0x00 0x62 0x09 0xc5 # CHECK: cmpgdu.lt.qb $1, $2, $3
+0x00 0x62 0x0a 0x05 # CHECK: cmpgdu.le.qb $1, $2, $3
+0x58 0x62 0x08 0xc5 # CHECK: cmpgu.eq.qb $1, $2, $3
+0x58 0x62 0x09 0x05 # CHECK: cmpgu.lt.qb $1, $2, $3
+0x58 0x62 0x09 0x45 # CHECK: cmpgu.le.qb $1, $2, $3
+0x00 0x41 0x02 0x45 # CHECK: cmpu.eq.qb $1, $2
+0x00 0x41 0x02 0x85 # CHECK: cmpu.lt.qb $1, $2
+0x00 0x41 0x02 0xc5 # CHECK: cmpu.le.qb $1, $2
diff --git a/test/MC/Disassembler/Mips/micromips-dspr3/valid.txt b/test/MC/Disassembler/Mips/micromips-dspr3/valid.txt
new file mode 100644
index 000000000000..43a7cdcf79ae
--- /dev/null
+++ b/test/MC/Disassembler/Mips/micromips-dspr3/valid.txt
@@ -0,0 +1,3 @@
+# RUN: llvm-mc --disassemble %s -triple=mips-unknown-linux -mcpu=mips32r6 -mattr=micromips -mattr=+dspr3 | FileCheck %s
+
+0x43 0x20 0x00 0xab # CHECK: bposge32c 342
diff --git a/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt b/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt
index d6c7de4e3a53..53007a9bd042 100644
--- a/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt
+++ b/test/MC/Disassembler/Mips/micromips32r3/valid-el.txt
@@ -68,12 +68,10 @@
0xa9 0x41 0x67 0x45 # CHECK: lui $9, 17767
0xe6 0x00 0x50 0x4a # CHECK: and $9, $6, $7
0x26 0xd1 0x67 0x45 # CHECK: andi $9, $6, 17767
-0x26 0xd1 0x67 0x45 # CHECK: andi $9, $6, 17767
0xa4 0x00 0x90 0x1a # CHECK: or $3, $4, $5
0x26 0x51 0x67 0x45 # CHECK: ori $9, $6, 17767
0xa3 0x00 0x10 0x1b # CHECK: xor $3, $3, $5
0x26 0x71 0x67 0x45 # CHECK: xori $9, $6, 17767
-0x26 0x71 0x67 0x45 # CHECK: xori $9, $6, 17767
0xe6 0x00 0xd0 0x4a # CHECK: nor $9, $6, $7
0x08 0x00 0xd0 0x3a # CHECK: not $7, $8
0xe6 0x00 0x10 0x4a # CHECK: mul $9, $6, $7
@@ -189,3 +187,11 @@
0x04 0x63 0x02 0x64 # CHECK: lwle $24, 2($4)
0x44 0x60 0x08 0x6c # CHECK: lle $2, 8($4)
0x44 0x60 0x08 0xac # CHECK: sce $2, 8($4)
+0x00 0x00 0x7c 0x8b # CHECK: syscall
+0x8c 0x01 0x7c 0x8b # CHECK: syscall 396
+0xea 0xbc 0x2c 0x01 # CHECK: ldc1 $f7, 300($10)
+0x0a 0xbd 0x2c 0x01 # CHECK: ldc1 $f8, 300($10)
+0x46 0x9c 0x04 0x00 # CHECK: lwc1 $f2, 4($6)
+0xea 0xb8 0x40 0x00 # CHECK: sdc1 $f7, 64($10)
+0x46 0xb8 0x04 0x00 # CHECK: sdc1 $f2, 4($6)
+0x46 0x98 0x04 0x00 # CHECK: swc1 $f2, 4($6)
diff --git a/test/MC/Disassembler/Mips/micromips32r3/valid.txt b/test/MC/Disassembler/Mips/micromips32r3/valid.txt
index 030afb36723d..1691dbc84553 100644
--- a/test/MC/Disassembler/Mips/micromips32r3/valid.txt
+++ b/test/MC/Disassembler/Mips/micromips32r3/valid.txt
@@ -68,12 +68,10 @@
0x41 0xa9 0x45 0x67 # CHECK: lui $9, 17767
0x00 0xe6 0x4a 0x50 # CHECK: and $9, $6, $7
0xd1 0x26 0x45 0x67 # CHECK: andi $9, $6, 17767
-0xd1 0x26 0x45 0x67 # CHECK: andi $9, $6, 17767
0x00 0xa4 0x1a 0x90 # CHECK: or $3, $4, $5
0x51 0x26 0x45 0x67 # CHECK: ori $9, $6, 17767
0x00 0xa3 0x1b 0x10 # CHECK: xor $3, $3, $5
0x71 0x26 0x45 0x67 # CHECK: xori $9, $6, 17767
-0x71 0x26 0x45 0x67 # CHECK: xori $9, $6, 17767
0x00 0xe6 0x4a 0xd0 # CHECK: nor $9, $6, $7
0x00 0x08 0x3a 0xd0 # CHECK: not $7, $8
0x00 0xe6 0x4a 0x10 # CHECK: mul $9, $6, $7
@@ -189,3 +187,11 @@
0x63 0x04 0x64 0x02 # CHECK: lwle $24, 2($4)
0x60 0x44 0x6c 0x08 # CHECK: lle $2, 8($4)
0x60 0x44 0xac 0x08 # CHECK: sce $2, 8($4)
+0x00 0x00 0x8b 0x7c # CHECK: syscall
+0x01 0x8c 0x8b 0x7c # CHECK: syscall 396
+0xbc 0xea 0x01 0x2c # CHECK: ldc1 $f7, 300($10)
+0xbd 0x0a 0x01 0x2c # CHECK: ldc1 $f8, 300($10)
+0x9c 0x46 0x00 0x04 # CHECK: lwc1 $f2, 4($6)
+0xb8 0x46 0x00 0x04 # CHECK: sdc1 $f2, 4($6)
+0xb8 0xea 0x00 0x40 # CHECK: sdc1 $f7, 64($10)
+0x98 0x46 0x00 0x04 # CHECK: swc1 $f2, 4($6)
diff --git a/test/MC/Disassembler/Mips/micromips32r6/valid.txt b/test/MC/Disassembler/Mips/micromips32r6/valid.txt
index b8e69f833a03..3a93a4cfd345 100644
--- a/test/MC/Disassembler/Mips/micromips32r6/valid.txt
+++ b/test/MC/Disassembler/Mips/micromips32r6/valid.txt
@@ -21,6 +21,7 @@
0x29 0x82 # CHECK: lhu16 $3, 4($16)
0x09 0x94 # CHECK: lbu16 $3, 4($17)
0x09 0x9f # CHECK: lbu16 $3, -1($17)
+0x84 0x34 # CHECK: movep $5, $6, $2, $3
0x04 0xcc # CHECK: addu16 $6, $17, $4
0x44 0x21 # CHECK: and16 $16, $2
0x2e 0x56 # CHECK: andi16 $4, $5, 8
@@ -38,12 +39,20 @@
0x00 0xa4 0x1a 0x50 # CHECK: and $3, $4, $5
0xd0 0x64 0x04 0xd2 # CHECK: andi $3, $4, 1234
0x10 0x62 0xff 0xe9 # CHECK: aui $3, $2, -23
+0x74 0x83 0x00 0x08 # CHECK: beqc $3, $4, 16
+0xe4 0x83 0x00 0x08 # CHECK: bgec $3, $4, 16
+0xc0 0x83 0x00 0x08 # CHECK: bgeuc $3, $4, 16
+0xc4 0x83 0x00 0x08 # CHECK: bltc $3, $4, 16
+0xe0 0x83 0x00 0x08 # CHECK: bltuc $3, $4, 16
+0x7c 0x83 0x00 0x08 # CHECK: bnec $3, $4, 16
0x74 0x40 0x02 0x9a # CHECK: beqzalc $2, 1332
0x7c 0x40 0x02 0x9a # CHECK: bnezalc $2, 1332
0xc0 0x42 0x02 0x9a # CHECK: bgezalc $2, 1332
0xe0 0x40 0x02 0x9a # CHECK: bgtzalc $2, 1332
0xe0 0x42 0x02 0x9a # CHECK: bltzalc $2, 1332
0xc0 0x40 0x02 0x9a # CHECK: blezalc $2, 1332
+0x80 0x60 0x00 0x20 # CHECK: beqzc $3, 64
+0xa0 0x60 0x00 0x20 # CHECK: bnezc $3, 64
0xb4 0x37 0x96 0xb8 # CHECK: balc 7286128
0x94 0x37 0x96 0xb8 # CHECK: bc 7286128
0x00 0x44 0x0b 0x3c # CHECK: bitswap $4, $2
@@ -63,6 +72,19 @@
0x00 0x01 0xf3 0x7c # CHECK: eretnc
0x80 0x05 0x01 0x00 # CHECK: jialc $5, 256
0xa0 0x05 0x01 0x00 # CHECK: jic $5, 256
+0x3c 0x44 0x00 0x08 # CHECK: lh $2, 8($4)
+0x60 0x82 0x6a 0x08 # CHECK: lhe $4, 8($2)
+0x34 0x82 0x00 0x08 # CHECK: lhu $4, 8($2)
+0x60 0x82 0x62 0x08 # CHECK: lhue $4, 8($2)
+0x60 0x44 0x30 0x08 # CHECK: ll $2, 8($4)
+0x20 0x44 0x50 0x08 # CHECK: lwm32 $16, $17, 8($4)
+0x21 0x3b 0x59 0x84 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27)
+0x01 0x26 0x38 0xc0 # CHECK: rotr $9, $6, 7
+0x00 0xc7 0x48 0xd0 # CHECK: rotrv $9, $6, $7
+0x60 0x44 0xb0 0x08 # CHECK: sc $2, 8($4)
+0x20 0x44 0xd0 0x08 # CHECK: swm32 $16, $17, 8($4)
+0x00 0x00 0x8b 0x7c # CHECK: syscall
+0x01 0x8c 0x8b 0x7c # CHECK: syscall 396
0x78 0x48 0x00 0x43 # CHECK: lwpc $2, 268
0x00 0x43 0x26 0x0f # CHECK: lsa $2, $3, $4, 4
0x00 0xa4 0x19 0x58 # CHECK: mod $3, $4, $5
@@ -203,10 +225,6 @@
0x09 0x94 # CHECK: lbu16 $3, 4($17)
0x09 0x9f # CHECK: lbu16 $3, -1($17)
0x04 0xcc # CHECK: addu16 $6, $17, $4
-0x44 0x21 # CHECK: and16 $16, $2
-0x2e 0x56 # CHECK: andi16 $4, $5, 8
-0x46 0x70 # CHECK: not16 $4, $7
-0x45 0xf9 # CHECK: or16 $3, $7
0x25 0xe0 # CHECK: sll16 $3, $6, 8
0x25 0xe1 # CHECK: srl16 $3, $6, 8
0x46 0x1B # CHECK: break16 8
@@ -256,3 +274,64 @@
0x54 0x82 0x02 0x60 # CHECK: class.d $f2, $f4
0x00 0x00 0x47 0x7c # CHECK: di
0x00 0x0f 0x47 0x7c # CHECK: di $15
+0x00 0x00 0x43 0x7c # CHECK: tlbinv
+0x00 0x00 0x53 0x7c # CHECK: tlbinvf
+0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0
+0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9
+0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7
+0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4
+0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6
+0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0
+0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8
+0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1
+0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12
+0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14
+0x00 0x67 0x00 0xfc # CHECK: mfc0 $3, $7, 0
+0x00 0x67 0x18 0xfc # CHECK: mfc0 $3, $7, 3
+0x54 0xaa 0x20 0x3b # CHECK: mfc1 $5, $f10
+0x01 0xe5 0x4d 0x3c # CHECK: mfc2 $15, $5
+0x02 0x95 0x00 0xf4 # CHECK: mfhc0 $20, $21, 0
+0x00 0x22 0x08 0xf4 # CHECK: mfhc0 $1, $2, 1
+0x54 0x06 0x30 0x3b # CHECK: mfhc1 $zero, $f6
+0x02 0xf0 0x8d 0x3c # CHECK: mfhc2 $23, $16
+0x00 0x00 0x03 0x7c # CHECK: tlbp
+0x00 0x00 0x13 0x7c # CHECK: tlbr
+0x00 0x00 0x23 0x7c # CHECK: tlbwi
+0x00 0x00 0x33 0x7c # CHECK: tlbwr
+0x00 0x00 0x19 0x7c # CHECK: dvp
+0x00 0x04 0x19 0x7c # CHECK: dvp $4
+0x00 0x00 0x39 0x7c # CHECK: evp
+0x00 0x04 0x39 0x7c # CHECK: evp $4
+0x03 0xe4 0x1f 0x3c # CHECK: jalrc.hb $4
+0x00 0x85 0x1f 0x3c # CHECK: jalrc.hb $4, $5
+0x00 0x65 0x10 0x10 # CHECK: sllv $2, $3, $5
+0x00 0x83 0x38 0x80 # CHECK: sra $4, $3, 7
+0x00 0x65 0x10 0x90 # CHECK: srav $2, $3, $5
+0x00 0x83 0x38 0x40 # CHECK: srl $4, $3, 7
+0x00 0x65 0x10 0x50 # CHECK: srlv $2, $3, $5
+0x22 0x04 0x10 0x08 # CHECK: lwp $16, 8($4)
+0x22 0x04 0x90 0x08 # CHECK: swp $16, 8($4)
+0x41 0x1f 0x00 0x02 # CHECK: bc1eqzc $f31, 4
+0x41 0x3f 0x00 0x02 # CHECK: bc1nezc $f31, 4
+0x41 0x5f 0x00 0x04 # CHECK: bc2eqzc $31, 8
+0x41 0x7f 0x00 0x04 # CHECK: bc2nezc $31, 8
+0x01 0x26 0x30 0xec # CHECK: ext $9, $6, 3, 7
+0x01 0x26 0x48 0xcc # CHECK: ins $9, $6, 3, 7
+0x00 0x85 0x0f 0x3c # CHECK: jalrc $4, $5
+0x03 0xe5 0x0f 0x3c # CHECK: jalrc $5
+0x74 0x44 0x00 0x0c # CHECK: bovc $2, $4, 24
+0x7c 0x44 0x00 0x0c # CHECK: bnvc $2, $4, 24
+0xd0 0x64 0x00 0x05 # CHECK: andi $3, $4, 5
+0x50 0x64 0x00 0x05 # CHECK: ori $3, $4, 5
+0x70 0x64 0x00 0x05 # CHECK: xori $3, $4, 5
+0x00 0x04 0x1a 0xd0 # CHECK: not $3, $4
+0xbc 0xea 0x01 0x2c # CHECK: ldc1 $f7, 300($10)
+0xbd 0x0a 0x01 0x2c # CHECK: ldc1 $f8, 300($10)
+0x21 0x6c 0x23 0xff # CHECK: ldc2 $11, 1023($12)
+0x9c 0x45 0x00 0x20 # CHECK: lwc1 $f2, 32($5)
+0x20 0x24 0x00 0x10 # CHECK: lwc2 $1, 16($4)
+0xb8 0xea 0x00 0x40 # CHECK: sdc1 $f7, 64($10)
+0xb9 0x0a 0x00 0x40 # CHECK: sdc1 $f8, 64($10)
+0x20 0x50 0xa0 0x08 # CHECK: sdc2 $2, 8($16)
+0x98 0xcd 0x01 0x71 # CHECK: swc1 $f6, 369($13)
+0x20 0xf1 0x83 0x09 # CHECK: swc2 $7, 777($17)
diff --git a/test/MC/Disassembler/Mips/micromips64r6/valid.txt b/test/MC/Disassembler/Mips/micromips64r6/valid.txt
index 4f2325fe7ce1..26536e6c8a3a 100644
--- a/test/MC/Disassembler/Mips/micromips64r6/valid.txt
+++ b/test/MC/Disassembler/Mips/micromips64r6/valid.txt
@@ -9,6 +9,8 @@
0x4c 0x01 # CHECK: addiusp 1024
0x4c 0x03 # CHECK: addiusp 1028
0x4f 0xf9 # CHECK: addiusp -16
+0x44 0x21 # CHECK: and16 $16, $2
+0x2e 0x56 # CHECK: andi16 $4, $5, 8
0xcc 0x42 # CHECK: bc16 132
0x8f 0x0a # CHECK: beqzc16 $6, 20
0xaf 0x0a # CHECK: bnezc16 $6, 20
@@ -21,17 +23,28 @@
0x45 0x2b # CHECK: jalr $9
0x45 0x23 # CHECK: jrc16 $9
0x44 0xb3 # CHECK: jrcaddiusp 20
+0x84 0x34 # CHECK: movep $5, $6, $2, $3
+0x45 0xf9 # CHECK: or16 $3, $7
+0x60 0x44 0x30 0x08 # CHECK: ll $2, 8($4)
+0x20 0x44 0x50 0x08 # CHECK: lwm32 $16, $17, 8($4)
+0x21 0x3b 0x59 0x84 # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, -1660($27)
+0x01 0x26 0x38 0xc0 # CHECK: rotr $9, $6, 7
+0x00 0xc7 0x48 0xd0 # CHECK: rotrv $9, $6, $7
+0x60 0x44 0xb0 0x08 # CHECK: sc $2, 8($4)
+0x20 0x44 0xd0 0x08 # CHECK: swm32 $16, $17, 8($4)
+0x00 0x00 0x8b 0x7c # CHECK: syscall
+0x01 0x8c 0x8b 0x7c # CHECK: syscall 396
0xf0 0x64 0x00 0x05 # CHECK: daui $3, $4, 5
0x42 0x23 0x00 0x04 # CHECK: dahi $3, 4
0x42 0x03 0x00 0x04 # CHECK: dati $3, 4
0x59 0x26 0x30 0xec # CHECK: dext $9, $6, 3, 7
-0x59 0x26 0x30 0xe4 # CHECK: dextm $9, $6, 3, 7
-0x59 0x26 0x30 0xd4 # CHECK: dextu $9, $6, 3, 7
+0x59 0x26 0x30 0xe4 # CHECK: dextm $9, $6, 3, 39
+0x59 0x26 0x30 0xd4 # CHECK: dextu $9, $6, 35, 7
0x58 0x43 0x25 0x1c # CHECK: dalign $4, $2, $3, 5
-0x58 0x64 0x29 0x18 # CHECK: ddiv $3, $4, $5
-0x58 0x64 0x29 0x58 # CHECK: dmod $3, $4, $5
-0x58 0x64 0x29 0x98 # CHECK: ddivu $3, $4, $5
-0x58 0x64 0x29 0xd8 # CHECK: dmodu $3, $4, $5
+0x58 0xa4 0x19 0x18 # CHECK: ddiv $3, $4, $5
+0x58 0xa4 0x19 0x58 # CHECK: dmod $3, $4, $5
+0x58 0xa4 0x19 0x98 # CHECK: ddivu $3, $4, $5
+0x58 0xa4 0x19 0xd8 # CHECK: dmodu $3, $4, $5
0x54 0xa4 0x18 0x30 # CHECK: add.s $f3, $f4, $f5
0x54 0xc4 0x11 0x30 # CHECK: add.d $f2, $f4, $f6
0x54 0xa4 0x18 0x70 # CHECK: sub.s $f3, $f4, $f5
@@ -131,6 +144,7 @@
0x60 0x25 0xa6 0x08 # CHECK: cachee 1, 8($5)
0x00 0x64 0xf1 0x7c # CHECK: wrpgpr $3, $4
0x00 0x64 0x7b 0x3c # CHECK: wsbh $3, $4
+0x78 0x58 0x00 0x02 # CHECK: ldpc $2, 16
0x65 0x88 # CHECK: lw $3, 32($gp)
0x48 0x66 # CHECK: lw $3, 24($sp)
0x6a 0x12 # CHECK: lw16 $4, 8($17)
@@ -169,3 +183,126 @@
0x00 0x00 0xe3 0x7c # CHECK: deret
0x00 0x00 0x47 0x7c # CHECK: di
0x00 0x0f 0x47 0x7c # CHECK: di $15
+0x00 0x00 0x43 0x7c # CHECK: tlbinv
+0x00 0x00 0x53 0x7c # CHECK: tlbinvf
+0x58 0x82 0x20 0x34 # CHECK: dinsu $4, $2, 32, 5
+0x58 0x82 0x38 0xc4 # CHECK: dinsm $4, $2, 3, 5
+0x58 0x82 0x38 0xcc # CHECK: dins $4, $2, 3, 5
+0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9, 0
+0x00 0xa9 0x02 0xfc # CHECK: mtc0 $5, $9
+0x00 0x22 0x3a 0xfc # CHECK: mtc0 $1, $2, 7
+0x54 0x64 0x28 0x3b # CHECK: mtc1 $3, $f4
+0x00 0xa6 0x5d 0x3c # CHECK: mtc2 $5, $6
+0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8, 0
+0x00 0xe8 0x02 0xf4 # CHECK: mthc0 $7, $8
+0x01 0x2a 0x0a 0xf4 # CHECK: mthc0 $9, $10, 1
+0x55 0x6c 0x38 0x3b # CHECK: mthc1 $11, $f12
+0x01 0xae 0x9d 0x3c # CHECK: mthc2 $13, $14
+0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16, 0
+0x59 0xf0 0x02 0xfc # CHECK: dmtc0 $15, $16
+0x5a 0x32 0x2a 0xfc # CHECK: dmtc0 $17, $18, 5
+0x56 0x74 0x2c 0x3b # CHECK: dmtc1 $19, $f20
+0x02 0xb6 0x7d 0x3c # CHECK: dmtc2 $21, $22
+0x5a 0x51 0x00 0xfc # CHECK: dmfc0 $18, $17
+0x59 0x21 0x08 0xfc # CHECK: dmfc0 $9, $1, 1
+0x55 0x24 0x24 0x3b # CHECK: dmfc1 $9, $f4
+0x01 0xd2 0x6d 0x3c # CHECK: dmfc2 $14, $18
+0x58 0xe6 0x49 0x10 # CHECK: dadd $9, $6, $7
+0x5b 0xe1 0x99 0x10 # CHECK: dadd $19, $1, $ra
+0x5f 0x02 0x46 0x9f # CHECK: daddiu $24, $2, 18079
+0x5d 0x26 0xc5 0x67 # CHECK: daddiu $9, $6, -15001
+0x5d 0x29 0xc5 0x67 # CHECK: daddiu $9, $9, -15001
+0x5d 0x23 0x00 0x20 # CHECK: daddiu $9, $3, 32
+0x5f 0x56 0xee 0x16 # CHECK: daddiu $26, $22, -4586
+0x5d 0xeb 0xec 0x5f # CHECK: daddiu $15, $11, -5025
+0x5d 0xce 0x11 0xea # CHECK: daddiu $14, $14, 4586
+0x5e 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943
+0x5d 0x7a 0x7c 0xcd # CHECK: daddiu $11, $26, 31949
+0x5f 0xbd 0xff 0xe0 # CHECK: daddiu $sp, $sp, -32
+0x59 0x61 0xd1 0x50 # CHECK: daddu $26, $1, $11
+0x5b 0xe1 0x99 0x50 # CHECK: daddu $19, $1, $ra
+0x58 0xe6 0x49 0x50 # CHECK: daddu $9, $6, $7
+0x58 0x69 0x49 0x50 # CHECK: daddu $9, $9, $3
+0x5d 0x26 0xc5 0x67 # CHECK: daddiu $9, $6, -15001
+0x5d 0x29 0x00 0x0a # CHECK: daddiu $9, $9, 10
+0x5e 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943
+0x5f 0x02 0x46 0x9f # CHECK: daddiu $24, $2, 18079
+0x5c 0x63 0xff 0xfb # CHECK: daddiu $3, $3, -5
+0x5c 0x64 0xff 0xfb # CHECK: daddiu $3, $4, -5
+0x00 0x00 0x03 0x7c # CHECK: tlbp
+0x00 0x00 0x13 0x7c # CHECK: tlbr
+0x00 0x00 0x23 0x7c # CHECK: tlbwi
+0x00 0x00 0x33 0x7c # CHECK: tlbwr
+0x00 0x00 0x19 0x7c # CHECK: dvp
+0x00 0x04 0x19 0x7c # CHECK: dvp $4
+0x00 0x00 0x39 0x7c # CHECK: evp
+0x00 0x04 0x39 0x7c # CHECK: evp $4
+0x03 0xe4 0x1f 0x3c # CHECK: jalrc.hb $4
+0x00 0x85 0x1f 0x3c # CHECK: jalrc.hb $4, $5
+0x00 0x83 0x38 0x00 # CHECK: sll $4, $3, 7
+0x00 0x65 0x10 0x10 # CHECK: sllv $2, $3, $5
+0x00 0x83 0x38 0x80 # CHECK: sra $4, $3, 7
+0x00 0x65 0x10 0x90 # CHECK: srav $2, $3, $5
+0x00 0x83 0x38 0x40 # CHECK: srl $4, $3, 7
+0x00 0x65 0x10 0x50 # CHECK: srlv $2, $3, $5
+0x58 0x62 0x09 0x90 # CHECK: dsub $1, $2, $3
+0x59 0xe7 0x19 0xd0 # CHECK: dsubu $3, $7, $15
+0x59 0xe0 0x39 0x90 # CHECK: dneg $7, $15
+0x59 0x40 0x51 0x90 # CHECK: dneg $10, $10
+0x59 0x60 0x09 0xd0 # CHECK: dnegu $1, $11
+0x58 0xa0 0x29 0xd0 # CHECK: dnegu $5, $5
+0x3c 0x44 0x00 0x08 # CHECK: lh $2, 8($4)
+0x60 0x82 0x6a 0x08 # CHECK: lhe $4, 8($2)
+0x34 0x82 0x00 0x08 # CHECK: lhu $4, 8($2)
+0x60 0x82 0x62 0x08 # CHECK: lhue $4, 8($2)
+0x00 0xa4 0x18 0x18 # CHECK: mul $3, $4, $5
+0x00 0xa4 0x18 0x58 # CHECK: muh $3, $4, $5
+0x00 0xa4 0x18 0x98 # CHECK: mulu $3, $4, $5
+0x00 0xa4 0x18 0xd8 # CHECK: muhu $3, $4, $5
+0x58 0xa4 0x18 0x18 # CHECK: dmul $3, $4, $5
+0x58 0xa4 0x18 0x58 # CHECK: dmuh $3, $4, $5
+0x58 0xa4 0x18 0x98 # CHECK: dmulu $3, $4, $5
+0x58 0xa4 0x18 0xd8 # CHECK: dmuhu $3, $4, $5
+0x22 0x04 0x10 0x08 # CHECK: lwp $16, 8($4)
+0x22 0x04 0x90 0x08 # CHECK: swp $16, 8($4)
+0x58 0x64 0x7b 0x3c # CHECK: dsbh $3, $4
+0x58 0x64 0xfb 0x3c # CHECK: dshd $3, $4
+0x58 0x64 0x28 0x00 # CHECK: dsll $3, $4, 5
+0x58 0x64 0x28 0x08 # CHECK: dsll32 $3, $4, 5
+0x58 0xa6 0x20 0x10 # CHECK: dsllv $4, $5, $6
+0x58 0x85 0x28 0x80 # CHECK: dsra $4, $5, 5
+0x58 0xa6 0x20 0x90 # CHECK: dsrav $4, $5, $6
+0x41 0x1f 0x00 0x02 # CHECK: bc1eqzc $f31, 4
+0x41 0x3f 0x00 0x02 # CHECK: bc1nezc $f31, 4
+0x41 0x5f 0x00 0x04 # CHECK: bc2eqzc $31, 8
+0x41 0x7f 0x00 0x04 # CHECK: bc2nezc $31, 8
+0x00 0xa4 0x1a 0x50 # CHECK: and $3, $4, $5
+0xd0 0x64 0x04 0xd2 # CHECK: andi $3, $4, 1234
+0x00 0xa4 0x1a 0x90 # CHECK: or $3, $4, $5
+0x50 0x64 0x04 0xd2 # CHECK: ori $3, $4, 1234
+0x00 0xa4 0x1b 0x10 # CHECK: xor $3, $4, $5
+0x70 0x64 0x04 0xd2 # CHECK: xori $3, $4, 1234
+0x00 0xa4 0x1a 0xd0 # CHECK: nor $3, $4, $5
+0x00 0x04 0x1a 0xd0 # CHECK: not $3, $4
+0x58 0x22 0x4b 0x3c # CHECK: dclo $1, $2
+0x58 0x22 0x5b 0x3c # CHECK: dclz $1, $2
+0x58 0xaa 0x40 0xc0 # CHECK: drotr $5, $10, 8
+0x58 0x22 0x20 0xc8 # CHECK: drotr32 $1, $2, 4
+0x58 0xc4 0x18 0xd0 # CHECK: drotrv $3, $6, $4
+0xdc 0x82 0x00 0x05 # CHECK: ld $4, 5($2)
+0x60 0x48 0x70 0x03 # CHECK: lld $2, 3($8)
+0x60 0x22 0xe0 0x0a # CHECK: lwu $1, 10($2)
+0xd8 0x83 0x00 0x05 # CHECK: sd $4, 5($3)
+0x58 0x22 0x10 0x40 # CHECK: dsrl $1, $2, 2
+0x58 0x64 0x28 0x48 # CHECK: dsrl32 $3, $4, 5
+0x58 0x63 0x08 0x50 # CHECK: dsrlv $1, $3, $3
+0xbc 0xea 0x01 0x2c # CHECK: ldc1 $f7, 300($10)
+0xbd 0x0a 0x01 0x2c # CHECK: ldc1 $f8, 300($10)
+0x21 0x6c 0x23 0xff # CHECK: ldc2 $11, 1023($12)
+0x9c 0x45 0x00 0x20 # CHECK: lwc1 $f2, 32($5)
+0x20 0x24 0x00 0x10 # CHECK: lwc2 $1, 16($4)
+0xb8 0xea 0x00 0x40 # CHECK: sdc1 $f7, 64($10)
+0xb9 0x0a 0x00 0x40 # CHECK: sdc1 $f8, 64($10)
+0x20 0x50 0xa0 0x08 # CHECK: sdc2 $2, 8($16)
+0x98 0xcd 0x01 0x71 # CHECK: swc1 $f6, 369($13)
+0x20 0xf1 0x83 0x09 # CHECK: swc2 $7, 777($17)
diff --git a/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt b/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt
index 5bdf8f17eb68..382e085acf96 100644
--- a/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt
+++ b/test/MC/Disassembler/Mips/mips2/valid-mips2-el.txt
@@ -136,11 +136,11 @@
0x22 0x98 0xd1 0xb9 # CHECK: swr $17, -26590($14)
0x34 0x00 0x03 0x00 # CHECK: teq $zero, $3
0x34 0x9b 0xa7 0x00 # CHECK: teq $5, $7, 620
-0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, 48032
+0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, -17504
0x30 0x00 0xea 0x00 # CHECK: tge $7, $10
0x30 0x55 0xb3 0x00 # CHECK: tge $5, $19, 340
0xa1 0x13 0x28 0x06 # CHECK: tgei $17, 5025
-0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, 36915
+0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, -28621
0x31 0x00 0xdc 0x02 # CHECK: tgeu $22, $gp
0xf1 0x5e 0x8e 0x02 # CHECK: tgeu $20, $14, 379
0x08 0x00 0x00 0x42 # CHECK: tlbp
@@ -149,13 +149,13 @@
0x06 0x00 0x00 0x42 # CHECK: tlbwr
0x32 0x00 0xed 0x01 # CHECK: tlt $15, $13
0x72 0x21 0x53 0x00 # CHECK: tlt $2, $19, 133
-0xbd 0xad 0xca 0x05 # CHECK: tlti $14, 44477
-0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, 60460
+0xbd 0xad 0xca 0x05 # CHECK: tlti $14, -21059
+0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, -5076
0x33 0x00 0x70 0x01 # CHECK: tltu $11, $16
0x33 0xfe 0x1d 0x02 # CHECK: tltu $16, $sp, 1016
0x36 0x00 0xd1 0x00 # CHECK: tne $6, $17
0x76 0xdd 0xe8 0x00 # CHECK: tne $7, $8, 885
-0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, 35889
+0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, -29647
0x8d 0x75 0x20 0x46 # CHECK: trunc.w.d $f22, $f14
0x0d 0xf7 0x00 0x46 # CHECK: trunc.w.s $f28, $f30
0x26 0x90 0x9e 0x00 # CHECK: xor $18, $4, $fp
diff --git a/test/MC/Disassembler/Mips/mips2/valid-mips2.txt b/test/MC/Disassembler/Mips/mips2/valid-mips2.txt
index a0b766a5dc1b..6158ea8ca026 100644
--- a/test/MC/Disassembler/Mips/mips2/valid-mips2.txt
+++ b/test/MC/Disassembler/Mips/mips2/valid-mips2.txt
@@ -72,14 +72,14 @@
0x04 0xd0 0x14 0x9b # CHECK: bltzal $6, 21104
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x09 0x33 0x00 0x2a # CHECK: j 80478376
0x0b 0x2a 0xd1 0x44 # CHECK: j 212550928
diff --git a/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt b/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt
index 6ffe7748e950..939b79668599 100644
--- a/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt
+++ b/test/MC/Disassembler/Mips/mips3/valid-mips3-el.txt
@@ -184,11 +184,11 @@
0x22 0x98 0xd1 0xb9 # CHECK: swr $17, -26590($14)
0x34 0x00 0x03 0x00 # CHECK: teq $zero, $3
0x34 0x9b 0xa7 0x00 # CHECK: teq $5, $7, 620
-0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, 48032
+0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, -17504
0x30 0x00 0xea 0x00 # CHECK: tge $7, $10
0x30 0x55 0xb3 0x00 # CHECK: tge $5, $19, 340
0xa1 0x13 0x28 0x06 # CHECK: tgei $17, 5025
-0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, 36915
+0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, -28621
0x31 0x00 0xdc 0x02 # CHECK: tgeu $22, $gp
0xf1 0x5e 0x8e 0x02 # CHECK: tgeu $20, $14, 379
0x08 0x00 0x00 0x42 # CHECK: tlbp
@@ -197,13 +197,13 @@
0x06 0x00 0x00 0x42 # CHECK: tlbwr
0x32 0x00 0xed 0x01 # CHECK: tlt $15, $13
0x72 0x21 0x53 0x00 # CHECK: tlt $2, $19, 133
-0xbd 0xad 0xca 0x05 # CHECK: tlti $14, 44477
-0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, 60460
+0xbd 0xad 0xca 0x05 # CHECK: tlti $14, -21059
+0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, -5076
0x33 0x00 0x70 0x01 # CHECK: tltu $11, $16
0x33 0xfe 0x1d 0x02 # CHECK: tltu $16, $sp, 1016
0x36 0x00 0xd1 0x00 # CHECK: tne $6, $17
0x76 0xdd 0xe8 0x00 # CHECK: tne $7, $8, 885
-0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, 35889
+0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, -29647
0xc9 0xbd 0x20 0x46 # CHECK: trunc.l.d $f23, $f23
0x09 0xff 0x00 0x46 # CHECK: trunc.l.s $f28, $f31
0x8d 0x75 0x20 0x46 # CHECK: trunc.w.d $f22, $f14
diff --git a/test/MC/Disassembler/Mips/mips3/valid-mips3.txt b/test/MC/Disassembler/Mips/mips3/valid-mips3.txt
index fb244e2f1543..4877280000f1 100644
--- a/test/MC/Disassembler/Mips/mips3/valid-mips3.txt
+++ b/test/MC/Disassembler/Mips/mips3/valid-mips3.txt
@@ -103,14 +103,14 @@
0x04 0xd0 0x14 0x9b # CHECK: bltzal $6, 21104
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x09 0x33 0x00 0x2a # CHECK: j 80478376
0x0b 0x2a 0xd1 0x44 # CHECK: j 212550928
diff --git a/test/MC/Disassembler/Mips/mips32/valid-mips32.txt b/test/MC/Disassembler/Mips/mips32/valid-mips32.txt
index f71b2a16fcfc..d86f9e518fae 100644
--- a/test/MC/Disassembler/Mips/mips32/valid-mips32.txt
+++ b/test/MC/Disassembler/Mips/mips32/valid-mips32.txt
@@ -105,14 +105,14 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt b/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt
index acce76bcfddd..7ee4f4bf7fa8 100644
--- a/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt
+++ b/test/MC/Disassembler/Mips/mips32r2/valid-mips32r2.txt
@@ -110,15 +110,15 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
0x07 0xdf 0xe8 0x07 # CHECK: synci -6137($fp)
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt b/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt
index 18dbd9ea7a40..8e5c16b4a337 100644
--- a/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt
+++ b/test/MC/Disassembler/Mips/mips32r3/valid-mips32r3.txt
@@ -107,15 +107,15 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
0x07 0xdf 0xe8 0x07 # CHECK: synci -6137($fp)
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt b/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt
index 8b553cfab2cc..afe1b695dea5 100644
--- a/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt
+++ b/test/MC/Disassembler/Mips/mips32r5/valid-mips32r5.txt
@@ -107,15 +107,15 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
0x07 0xdf 0xe8 0x07 # CHECK: synci -6137($fp)
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt b/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
index 4164988b2b8f..34bfd769f2d3 100644
--- a/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
+++ b/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
@@ -7,8 +7,8 @@
0xe9 0xff 0x62 0x3c # CHECK: aui $3, $2, -23
0xff 0xff 0x7e 0xec # CHECK: auipc $3, -1
0x9b 0x14 0x11 0x04 # CHECK: bal 21104
-0xb8 0x96 0x37 0xe8 # CHECK: balc 14572256
-0xb8 0x96 0x37 0xc8 # CHECK: bc 14572256
+0xb8 0x96 0x37 0xe8 # CHECK: balc 14572260
+0xb8 0x96 0x37 0xc8 # CHECK: bc 14572260
0x01 0x00 0x20 0x45 # CHECK: bc1eqz $f0, 8
0x01 0x00 0x3f 0x45 # CHECK: bc1eqz $f31, 8
0x01 0x00 0xa0 0x45 # CHECK: bc1nez $f0, 8
@@ -17,31 +17,44 @@
0x02 0x00 0x3f 0x49 # CHECK: bc2eqz $31, 12
0x02 0x00 0xa0 0x49 # CHECK: bc2nez $0, 12
0x02 0x00 0xbf 0x49 # CHECK: bc2nez $31, 12
-0x40 0x00 0xa6 0x20 # CHECK: beqc $5, $6, 256
-0x4d 0x01 0x02 0x20 # CHECK: beqzalc $2, 1332
-0x40 0x00 0xa6 0x60 # CHECK: bnec $5, $6, 256
-0x4d 0x01 0x02 0x60 # CHECK: bnezalc $2, 1332
-0x90 0x46 0xa0 0xd8 # CHECK: beqzc $5, 72256
-0x40 0x00 0x43 0x58 # CHECK: bgec $2, $3, 256
-0x40 0x00 0x43 0x18 # CHECK: bgeuc $2, $3, 256
-0x4d 0x01 0x42 0x18 # CHECK: bgezalc $2, 1332
-0x90 0x46 0xa0 0xf8 # CHECK: bnezc $5, 72256
-0x40 0x00 0xa5 0x5c # CHECK: bltzc $5, 256
-0x40 0x00 0xa5 0x58 # CHECK: bgezc $5, 256
-0x4d 0x01 0x02 0x1c # CHECK: bgtzalc $2, 1332
-0x40 0x00 0x05 0x58 # CHECK: blezc $5, 256
-0x4d 0x01 0x42 0x1c # CHECK: bltzalc $2, 1332
-0x40 0x00 0x05 0x5c # CHECK: bgtzc $5, 256
+0x40 0x00 0xa6 0x20 # CHECK: beqc $5, $6, 260
+0x4d 0x01 0x02 0x20 # CHECK: beqzalc $2, 1336
+0x40 0x00 0xa6 0x60 # CHECK: bnec $5, $6, 260
+0xfa 0xff 0x43 0x60 # CHECK: bnec $2, $3, -20
+0x4d 0x01 0x02 0x60 # CHECK: bnezalc $2, 1336
+0x90 0x46 0xa0 0xd8 # CHECK: beqzc $5, 72260
+0x40 0x00 0x43 0x58 # CHECK: bgec $2, $3, 260
+0xfa 0xff 0x43 0x58 # CHECK: bgec $2, $3, -20
+0x40 0x00 0x43 0x18 # CHECK: bgeuc $2, $3, 260
+0xfa 0xff 0x43 0x18 # CHECK: bgeuc $2, $3, -20
+0x4d 0x01 0x42 0x18 # CHECK: bgezalc $2, 1336
+0xfa 0xff 0x42 0x18 # CHECK: bgezalc $2, -20
+0x90 0x46 0xa0 0xf8 # CHECK: bnezc $5, 72260
+0x40 0x00 0xa5 0x5c # CHECK: bltzc $5, 260
+0xfa 0xff 0xa5 0x5c # CHECK: bltzc $5, -20
+0x40 0x00 0xa5 0x58 # CHECK: bgezc $5, 260
+0xfa 0xff 0xa5 0x58 # CHECK: bgezc $5, -20
+0x4d 0x01 0x02 0x1c # CHECK: bgtzalc $2, 1336
+0xfa 0xff 0x02 0x1c # CHECK: bgtzalc $2, -20
+0x40 0x00 0x05 0x58 # CHECK: blezc $5, 260
+0xfa 0xff 0x05 0x58 # CHECK: blezc $5, -20
+0x4d 0x01 0x42 0x1c # CHECK: bltzalc $2, 1336
+0xfa 0xff 0x42 0x1c # CHECK: bltzalc $2, -20
+0x40 0x00 0x05 0x5c # CHECK: bgtzc $5, 260
+0xfa 0xff 0x05 0x5c # CHECK: bgtzc $5, -20
0x20 0x20 0x02 0x7c # CHECK: bitswap $4, $2
-0x4d 0x01 0x02 0x18 # CHECK: blezalc $2, 1332
-0x40 0x00 0xa6 0x5c # CHECK: bltc $5, $6, 256
-0x40 0x00 0xa6 0x1c # CHECK: bltuc $5, $6, 256
-0x01 0x00 0x00 0x60 # CHECK: bnvc $zero, $zero, 4
-0x01 0x00 0x40 0x60 # CHECK: bnvc $2, $zero, 4
-0x01 0x00 0x82 0x60 # CHECK: bnvc $4, $2, 4
-0x01 0x00 0x00 0x20 # CHECK: bovc $zero, $zero, 4
-0x01 0x00 0x40 0x20 # CHECK: bovc $2, $zero, 4
-0x01 0x00 0x82 0x20 # CHECK: bovc $4, $2, 4
+0x4d 0x01 0x02 0x18 # CHECK: blezalc $2, 1336
+0xfa 0xff 0x02 0x18 # CHECK: blezalc $2, -20
+0x40 0x00 0xa6 0x5c # CHECK: bltc $5, $6, 260
+0xfa 0xff 0xa6 0x5c # CHECK: bltc $5, $6, -20
+0x40 0x00 0xa6 0x1c # CHECK: bltuc $5, $6, 260
+0xfa 0xff 0xa6 0x1c # CHECK: bltuc $5, $6, -20
+0x01 0x00 0x00 0x60 # CHECK: bnvc $zero, $zero, 8
+0x01 0x00 0x40 0x60 # CHECK: bnvc $2, $zero, 8
+0x01 0x00 0x82 0x60 # CHECK: bnvc $4, $2, 8
+0x01 0x00 0x00 0x20 # CHECK: bovc $zero, $zero, 8
+0x01 0x00 0x40 0x20 # CHECK: bovc $2, $zero, 8
+0x01 0x00 0x82 0x20 # CHECK: bovc $4, $2, 8
0x80 0x18 0x84 0x46 # CHECK: cmp.af.s $f2, $f3, $f4
0x80 0x18 0xa4 0x46 # CHECK: cmp.af.d $f2, $f3, $f4
0x81 0x18 0x84 0x46 # CHECK: cmp.un.s $f2, $f3, $f4
@@ -117,8 +130,10 @@
0x9b 0x20 0x00 0x46 # CHECK: class.s $f2, $f4
0x9b 0x20 0x20 0x46 # CHECK: class.d $f2, $f4
0x09 0x04 0x80 0x00 # CHECK: jr.hb $4
+0x00 0x00 0x1b 0xd8 # CHECK: jrc $27
0x09 0xfc 0x80 0x00 # CHECK: jalr.hb $4
0x09 0x24 0xa0 0x00 # CHECK: jalr.hb $4, $5
+0x00 0x00 0x19 0xf8 # CHECK: jalrc $25
0xb6 0xb3 0x42 0x7e # CHECK: ll $2, -153($18)
0x26 0xec 0x6f 0x7e # CHECK: sc $15, -40($19)
0x51 0x58 0xa0 0x00 # CHECK: clo $11, $5
diff --git a/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt b/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
index 6af02fc61b86..7266848706d3 100644
--- a/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
+++ b/test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
@@ -18,8 +18,10 @@
0x00 0x64 0x10 0xda # CHECK: mod $2, $3, $4
0x00 0x64 0x10 0xdb # CHECK: modu $2, $3, $4
0x00 0x80 0x04 0x09 # CHECK: jr.hb $4
+0xd8 0x1b 0x00 0x00 # CHECK: jrc $27
0x00 0x80 0xfc 0x09 # CHECK: jalr.hb $4
0x00 0xa0 0x24 0x09 # CHECK: jalr.hb $4, $5
+0xf8 0x19 0x00 0x00 # CHECK: jalrc $25
0x00 0xa0 0x58 0x51 # CHECK: clo $11, $5
0x00 0xa7 0x9b 0x34 # CHECK: teq $5, $7, 620
0x00 0xb3 0x55 0x30 # CHECK: tge $5, $19, 340
@@ -33,22 +35,28 @@
0x02 0xdc 0x00 0x31 # CHECK: tgeu $22, $gp
0x03 0x80 0xe8 0x50 # CHECK: clz $sp, $gp
0x04 0x11 0x14 0x9b # CHECK: bal 21104
-# FIXME: The encode/decode functions are not inverses of each other.
-0x18 0x02 0x01 0x4d # CHECK: blezalc $2, 1332
-# FIXME: The encode/decode functions are not inverses of each other.
-0x18 0x42 0x01 0x4d # CHECK: bgezalc $2, 1332
-0x18 0x43 0x00 0x40 # CHECK: bgeuc $2, $3, 256
-# FIXME: The encode/decode functions are not inverses of each other.
-0x1c 0x02 0x01 0x4d # CHECK: bgtzalc $2, 1332
-# FIXME: The encode/decode functions are not inverses of each other.
-0x1c 0x42 0x01 0x4d # CHECK: bltzalc $2, 1332
-0x1c 0xa6 0x00 0x40 # CHECK: bltuc $5, $6, 256
-0x20 0x00 0x00 0x01 # CHECK: bovc $zero, $zero, 4
-# FIXME: The encode/decode functions are not inverses of each other.
-0x20 0x02 0x01 0x4d # CHECK: beqzalc $2, 1332
-0x20 0x40 0x00 0x01 # CHECK: bovc $2, $zero, 4
-0x20 0x82 0x00 0x01 # CHECK: bovc $4, $2, 4
-0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 256
+# The encode/decode functions are not inverses of each other.
+0x18 0x02 0x01 0x4d # CHECK: blezalc $2, 1336
+0x18 0x02 0xff 0xfa # CHECk: blezalc $2, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x18 0x42 0x01 0x4d # CHECK: bgezalc $2, 1336
+0x18 0x42 0xff 0xfa # CHECK: bgezalc $2, -20
+0x18 0x43 0x00 0x40 # CHECK: bgeuc $2, $3, 260
+0x18 0x43 0xff 0xfa # CHECK: bgeuc $2, $3, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x1c 0x02 0x01 0x4d # CHECK: bgtzalc $2, 1336
+0x1c 0x02 0xff 0xfa # CHECK: bgtzalc $2, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x1c 0x42 0x01 0x4d # CHECK: bltzalc $2, 1336
+0x1c 0x42 0xff 0xfa # CHECK: bltzalc $2, -20
+0x1c 0xa6 0x00 0x40 # CHECK: bltuc $5, $6, 260
+0x1c 0xa6 0xff 0xfa # CHECK: bltuc $5, $6, -20
+0x20 0x00 0x00 0x01 # CHECK: bovc $zero, $zero, 8
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x20 0x02 0x01 0x4d # CHECK: beqzalc $2, 1336
+0x20 0x40 0x00 0x01 # CHECK: bovc $2, $zero, 8
+0x20 0x82 0x00 0x01 # CHECK: bovc $4, $2, 8
+0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 260
0x25 0x29 0x00 0x0a # CHECK: addiu $9, $9, 10
0x30 0x42 0x00 0x04 # CHECK: andi $2, $2, 4
0x34 0x42 0x00 0x04 # CHECK: ori $2, $2, 4
@@ -143,32 +151,41 @@
0x49 0xbf 0x00 0x02 # CHECK: bc2nez $31, 12
0x49 0xc8 0x0d 0x43 # CHECK: ldc2 $8, -701($1)
0x49 0xf4 0x92 0x75 # CHECK: sdc2 $20, 629($18)
-0x58 0x05 0x00 0x40 # CHECK: blezc $5, 256
-0x58 0x43 0x00 0x40 # CHECK: bgec $2, $3, 256
-0x58 0xa5 0x00 0x40 # CHECK: bgezc $5, 256
-0x5c 0x05 0x00 0x40 # CHECK: bgtzc $5, 256
-0x5c 0xa5 0x00 0x40 # CHECK: bltzc $5, 256
-0x5c 0xa6 0x00 0x40 # CHECK: bltc $5, $6, 256
-0x60 0x00 0x00 0x01 # CHECK: bnvc $zero, $zero, 4
-# FIXME: The encode/decode functions are not inverses of each other.
-0x60 0x02 0x01 0x4d # CHECK: bnezalc $2, 1332
-0x60 0x40 0x00 0x01 # CHECK: bnvc $2, $zero, 4
-0x60 0x82 0x00 0x01 # CHECK: bnvc $4, $2, 4
-0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 256
+0x58 0x05 0x00 0x40 # CHECK: blezc $5, 260
+0x58 0x05 0xff 0xfa # CHECk: blezc $5, -20
+0x58 0x43 0x00 0x40 # CHECK: bgec $2, $3, 260
+0x58 0x43 0xff 0xfa # CHECK: bgec $2, $3, -20
+0x58 0xa5 0x00 0x40 # CHECK: bgezc $5, 260
+0x58 0xa5 0xff 0xfa # CHECK: bgezc $5, -20
+0x5c 0x05 0x00 0x40 # CHECK: bgtzc $5, 260
+0x5c 0x05 0xff 0xfa # CHECk: bgtzc $5, -20
+0x5c 0xa5 0x00 0x40 # CHECK: bltzc $5, 260
+0x5c 0xa5 0xff 0xfa # CHECK: bltzc $5, -20
+0x5c 0xa6 0x00 0x40 # CHECK: bltc $5, $6, 260
+0x5c 0xa6 0xff 0xfa # CHECK: bltc $5, $6, -20
+0x60 0x00 0x00 0x01 # CHECK: bnvc $zero, $zero, 8
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x60 0x02 0x01 0x4d # CHECK: bnezalc $2, 1336
+0x60 0x40 0x00 0x01 # CHECK: bnvc $2, $zero, 8
+0x60 0x82 0x00 0x01 # CHECK: bnvc $4, $2, 8
+0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 260
+0x60 0x43 0xff 0xfa # CHECK: bnec $2, $3, -20
0x7c 0x02 0x20 0x20 # CHECK: bitswap $4, $2
0x7c 0x43 0x22 0xa0 # CHECK: align $4, $2, $3, 2
0x7c 0xa1 0x04 0x25 # CHECK: cache 1, 8($5)
0x7c 0xa1 0x04 0x35 # CHECK: pref 1, 8($5)
0x7e 0x42 0xb3 0xb6 # CHECK: ll $2, -153($18)
0x7e 0x6f 0xec 0x26 # CHECK: sc $15, -40($19)
-0xc8 0x37 0x96 0xb8 # CHECK: bc 14572256
+0xc8 0x37 0x96 0xb8 # CHECK: bc 14572260
0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
-0xd8 0xa0 0x46 0x90 # CHECK: beqzc $5, 72256
-0xe8 0x37 0x96 0xb8 # CHECK: balc 14572256
+0xd8 0xa0 0x46 0x90 # CHECK: beqzc $5, 72260
+0xd8 0x5f 0xff 0xfa # CHECK: beqzc $2, -20
+0xe8 0x37 0x96 0xb8 # CHECK: balc 14572260
0xec 0x48 0x00 0x43 # CHECK: lwpc $2, 268
0xec 0x50 0x00 0x43 # CHECK: lwupc $2, 268
0xec 0x7e 0xff 0xff # CHECK: auipc $3, -1
0xec 0x7f 0x00 0x38 # CHECK: aluipc $3, 56
0xec 0x80 0x00 0x19 # CHECK: addiupc $4, 100
0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
-0xf8 0xa0 0x46 0x90 # CHECK: bnezc $5, 72256
+0xf8 0xa0 0x46 0x90 # CHECK: bnezc $5, 72260
+0xf8 0x5f 0xff 0xfa # CHECK: bnezc $2, -20
diff --git a/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt b/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt
index 1d1044d32055..4a3d78cde553 100644
--- a/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt
+++ b/test/MC/Disassembler/Mips/mips4/valid-mips4-el.txt
@@ -204,11 +204,11 @@
0x08 0x98 0x4c 0x4f # CHECK: swxc1 $f19, $12($26)
0x34 0x00 0x03 0x00 # CHECK: teq $zero, $3
0x34 0x9b 0xa7 0x00 # CHECK: teq $5, $7, 620
-0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, 48032
+0xa0 0xbb 0xac 0x06 # CHECK: teqi $21, -17504
0x30 0x00 0xea 0x00 # CHECK: tge $7, $10
0x30 0x55 0xb3 0x00 # CHECK: tge $5, $19, 340
0xa1 0x13 0x28 0x06 # CHECK: tgei $17, 5025
-0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, 36915
+0x33 0x90 0xa9 0x07 # CHECK: tgeiu $sp, -28621
0x31 0x00 0xdc 0x02 # CHECK: tgeu $22, $gp
0xf1 0x5e 0x8e 0x02 # CHECK: tgeu $20, $14, 379
0x08 0x00 0x00 0x42 # CHECK: tlbp
@@ -217,13 +217,13 @@
0x06 0x00 0x00 0x42 # CHECK: tlbwr
0x32 0x00 0xed 0x01 # CHECK: tlt $15, $13
0x72 0x21 0x53 0x00 # CHECK: tlt $2, $19, 133
-0xbd 0xad 0xca 0x05 # CHECK: tlti $14, 44477
-0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, 60460
+0xbd 0xad 0xca 0x05 # CHECK: tlti $14, -21059
+0x2c 0xec 0xeb 0x07 # CHECK: tltiu $ra, -5076
0x33 0x00 0x70 0x01 # CHECK: tltu $11, $16
0x33 0xfe 0x1d 0x02 # CHECK: tltu $16, $sp, 1016
0x36 0x00 0xd1 0x00 # CHECK: tne $6, $17
0x76 0xdd 0xe8 0x00 # CHECK: tne $7, $8, 885
-0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, 35889
+0x31 0x8c 0x8e 0x05 # CHECK: tnei $12, -29647
0xc9 0xbd 0x20 0x46 # CHECK: trunc.l.d $f23, $f23
0x09 0xff 0x00 0x46 # CHECK: trunc.l.s $f28, $f31
0x8d 0x75 0x20 0x46 # CHECK: trunc.w.d $f22, $f14
diff --git a/test/MC/Disassembler/Mips/mips4/valid-mips4.txt b/test/MC/Disassembler/Mips/mips4/valid-mips4.txt
index 47ab90809ec6..f225d2cc220d 100644
--- a/test/MC/Disassembler/Mips/mips4/valid-mips4.txt
+++ b/test/MC/Disassembler/Mips/mips4/valid-mips4.txt
@@ -107,14 +107,14 @@
0x04 0xd0 0x14 0x9b # CHECK: bltzal $6, 21104
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x09 0x33 0x00 0x2a # CHECK: j 80478376
0x0b 0x2a 0xd1 0x44 # CHECK: j 212550928
diff --git a/test/MC/Disassembler/Mips/mips64/valid-mips64.txt b/test/MC/Disassembler/Mips/mips64/valid-mips64.txt
index 2ba1ecdf5b8e..5b5427db1e10 100644
--- a/test/MC/Disassembler/Mips/mips64/valid-mips64.txt
+++ b/test/MC/Disassembler/Mips/mips64/valid-mips64.txt
@@ -147,14 +147,14 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt b/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt
index ac9d2b808622..5de751234c81 100644
--- a/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt
+++ b/test/MC/Disassembler/Mips/mips64r2/valid-mips64r2.txt
@@ -161,14 +161,14 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt b/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt
index 31b9f66bce12..01c02ad82224 100644
--- a/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt
+++ b/test/MC/Disassembler/Mips/mips64r3/valid-mips64r3.txt
@@ -158,14 +158,14 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt b/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt
index 1fa0e629b375..12e5294d36da 100644
--- a/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt
+++ b/test/MC/Disassembler/Mips/mips64r5/valid-mips64r5.txt
@@ -158,14 +158,14 @@
0x04 0xd1 0x01 0x4c # CHECK: bgezal $6, 1332
0x04 0xd1 0x14 0x9b # CHECK: bgezal $6, 21104
0x04 0xd2 0x00 0x7a # CHECK: bltzall $6, 492
-0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, 35889
+0x05 0x8e 0x8c 0x31 # CHECK: tnei $12, -29647
0x05 0x93 0x07 0x1f # CHECK: bgezall $12, 7296
-0x05 0xca 0xad 0xbd # CHECK: tlti $14, 44477
+0x05 0xca 0xad 0xbd # CHECK: tlti $14, -21059
0x06 0x22 0xf6 0x45 # CHECK: bltzl $17, -9960
0x06 0x28 0x13 0xa1 # CHECK: tgei $17, 5025
-0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, 48032
-0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, 36915
-0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, 60460
+0x06 0xac 0xbb 0xa0 # CHECK: teqi $21, -17504
+0x07 0xa9 0x90 0x33 # CHECK: tgeiu $sp, -28621
+0x07 0xeb 0xec 0x2c # CHECK: tltiu $ra, -5076
0x08 0x00 0x00 0x01 # CHECK: j 4
0x08 0x00 0x01 0x4c # CHECK: j 1328
0x09 0x33 0x00 0x2a # CHECK: j 80478376
diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
index 08f5e04ab4fa..2515e097c96a 100644
--- a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
+++ b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
@@ -7,8 +7,8 @@
0xe9 0xff 0x62 0x3c # CHECK: aui $3, $2, -23
0xff 0xff 0x7e 0xec # CHECK: auipc $3, -1
0x9b 0x14 0x11 0x04 # CHECK: bal 21104
-0xb8 0x96 0x37 0xe8 # CHECK: balc 14572256
-0xb8 0x96 0x37 0xc8 # CHECK: bc 14572256
+0xb8 0x96 0x37 0xe8 # CHECK: balc 14572260
+0xb8 0x96 0x37 0xc8 # CHECK: bc 14572260
0x01 0x00 0x20 0x45 # CHECK: bc1eqz $f0, 8
0x01 0x00 0x3f 0x45 # CHECK: bc1eqz $f31, 8
0x01 0x00 0xa0 0x45 # CHECK: bc1nez $f0, 8
@@ -17,31 +17,46 @@
0x02 0x00 0x3f 0x49 # CHECK: bc2eqz $31, 12
0x02 0x00 0xa0 0x49 # CHECK: bc2nez $0, 12
0x02 0x00 0xbf 0x49 # CHECK: bc2nez $31, 12
-0x40 0x00 0xa6 0x20 # CHECK: beqc $5, $6, 256
-0x4d 0x01 0x02 0x20 # CHECK: beqzalc $2, 1332
-0x90 0x46 0xa0 0xd8 # CHECK: beqzc $5, 72256
-0x40 0x00 0x43 0x58 # CHECK: bgec $2, $3, 256
-0x40 0x00 0x43 0x18 # CHECK: bgeuc $2, $3, 256
-0x4d 0x01 0x42 0x18 # CHECK: bgezalc $2, 1332
-0x40 0x00 0xa5 0x58 # CHECK: bgezc $5, 256
-0x4d 0x01 0x02 0x1c # CHECK: bgtzalc $2, 1332
-0x40 0x00 0x05 0x5c # CHECK: bgtzc $5, 256
+0x40 0x00 0xa6 0x20 # CHECK: beqc $5, $6, 260
+0x4d 0x01 0x02 0x20 # CHECK: beqzalc $2, 1336
+0x90 0x46 0xa0 0xd8 # CHECK: beqzc $5, 72260
+0xfa 0xff 0x5f 0xd8 # CHECK: beqzc $2, -20
+0x40 0x00 0x43 0x58 # CHECK: bgec $2, $3, 260
+0xfa 0xff 0x43 0x58 # CHECK: bgec $2, $3, -20
+0x40 0x00 0x43 0x18 # CHECK: bgeuc $2, $3, 260
+0xfa 0xff 0x43 0x18 # CHECK: bgeuc $2, $3, -20
+0x4d 0x01 0x42 0x18 # CHECK: bgezalc $2, 1336
+0xfa 0xff 0x42 0x18 # CHECK: bgezalc $2, -20
+0x40 0x00 0xa5 0x58 # CHECK: bgezc $5, 260
+0xfa 0xff 0xa5 0x58 # CHECK: bgezc $5, -20
+0x4d 0x01 0x02 0x1c # CHECK: bgtzalc $2, 1336
+0xfa 0xff 0x02 0x1c # CHECK: bgtzalc $2, -20
+0x40 0x00 0x05 0x5c # CHECK: bgtzc $5, 260
+0xfa 0xff 0x05 0x5c # CHECK: bgtzc $5, -20
0x20 0x20 0x02 0x7c # CHECK: bitswap $4, $2
-0x4d 0x01 0x02 0x18 # CHECK: blezalc $2, 1332
-0x40 0x00 0x05 0x58 # CHECK: blezc $5, 256
-0x40 0x00 0xa6 0x5c # CHECK: bltc $5, $6, 256
-0x40 0x00 0xa6 0x1c # CHECK: bltuc $5, $6, 256
-0x4d 0x01 0x42 0x1c # CHECK: bltzalc $2, 1332
-0x40 0x00 0xa5 0x5c # CHECK: bltzc $5, 256
-0x40 0x00 0xa6 0x60 # CHECK: bnec $5, $6, 256
-0x4d 0x01 0x02 0x60 # CHECK: bnezalc $2, 1332
-0x90 0x46 0xa0 0xf8 # CHECK: bnezc $5, 72256
-0x01 0x00 0x40 0x60 # CHECK: bnvc $2, $zero, 4
-0x01 0x00 0x82 0x60 # CHECK: bnvc $4, $2, 4
-0x01 0x00 0x00 0x60 # CHECK: bnvc $zero, $zero, 4
-0x01 0x00 0x40 0x20 # CHECK: bovc $2, $zero, 4
-0x01 0x00 0x82 0x20 # CHECK: bovc $4, $2, 4
-0x01 0x00 0x00 0x20 # CHECK: bovc $zero, $zero, 4
+0x4d 0x01 0x02 0x18 # CHECK: blezalc $2, 1336
+0xfa 0xff 0x02 0x18 # CHECK: blezalc $2, -20
+0x40 0x00 0x05 0x58 # CHECK: blezc $5, 260
+0xfa 0xff 0x05 0x58 # CHECK: blezc $5, -20
+0x40 0x00 0xa6 0x5c # CHECK: bltc $5, $6, 260
+0xfa 0xff 0xa6 0x5c # CHECK: bltc $5, $6, -20
+0x40 0x00 0xa6 0x1c # CHECK: bltuc $5, $6, 260
+0xfa 0xff 0xa6 0x1c # CHECK: bltuc $5, $6, -20
+0x4d 0x01 0x42 0x1c # CHECK: bltzalc $2, 1336
+0xfa 0xff 0x42 0x1c # CHECK: bltzalc $2, -20
+0x40 0x00 0xa5 0x5c # CHECK: bltzc $5, 260
+0xfa 0xff 0xa5 0x5c # CHECK: bltzc $5, -20
+0x40 0x00 0xa6 0x60 # CHECK: bnec $5, $6, 260
+0xfa 0xff 0x43 0x60 # CHECK: bnec $2, $3, -20
+0x4d 0x01 0x02 0x60 # CHECK: bnezalc $2, 1336
+0x90 0x46 0xa0 0xf8 # CHECK: bnezc $5, 72260
+0xfa 0xff 0x5f 0xf8 # CHECK: bnezc $2, -20
+0x01 0x00 0x40 0x60 # CHECK: bnvc $2, $zero, 8
+0x01 0x00 0x82 0x60 # CHECK: bnvc $4, $2, 8
+0x01 0x00 0x00 0x60 # CHECK: bnvc $zero, $zero, 8
+0x01 0x00 0x40 0x20 # CHECK: bovc $2, $zero, 8
+0x01 0x00 0x82 0x20 # CHECK: bovc $4, $2, 8
+0x01 0x00 0x00 0x20 # CHECK: bovc $zero, $zero, 8
0x25 0x04 0xa1 0x7c # CHECK: cache 1, 8($5)
0x9b 0x20 0x20 0x46 # CHECK: class.d $f2, $f4
0x9b 0x20 0x00 0x46 # CHECK: class.s $f2, $f4
@@ -104,8 +119,10 @@
0x20 0x60 0x6e 0x41 # CHECK: ei $14
0x09 0xfc 0x80 0x00 # CHECK: jalr.hb $4
0x09 0x24 0xa0 0x00 # CHECK: jalr.hb $4, $5
+0x00 0x00 0x19 0xf8 # CHECK: jalrc $25
0x00 0x01 0x05 0xf8 # CHECK: jialc $5, 256
0x00 0x01 0x05 0xd8 # CHECK: jic $5, 256
+0x00 0x00 0x1b 0xd8 # CHECK: jrc $27
0x09 0x04 0x80 0x00 # CHECK: jr.hb $4
0x43 0x0d 0xc8 0x49 # CHECK: ldc2 $8, -701($1)
0x48 0x3c 0x58 0xec # CHECK: ldpc $2, 123456
diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
index 7fa27a7c5420..3c3750a9fed2 100644
--- a/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
+++ b/test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
@@ -29,8 +29,10 @@
0x00 0x64 0x10 0xde # CHECK: dmod $2, $3, $4
0x00 0x64 0x10 0xdf # CHECK: dmodu $2, $3, $4
0x00 0x80 0x04 0x09 # CHECK: jr.hb $4
+0xd8 0x1b 0x00 0x00 # CHECK: jrc $27
0x00 0x80 0xfc 0x09 # CHECK: jalr.hb $4
0x00 0xa0 0x24 0x09 # CHECK: jalr.hb $4, $5
+0xf8 0x19 0x00 0x00 # CHECK: jalrc $25
0x00 0xa0 0x58 0x51 # CHECK: clo $11, $5
0x00 0xa7 0x9b 0x34 # CHECK: teq $5, $7, 620
0x00 0xb3 0x55 0x30 # CHECK: tge $5, $19, 340
@@ -50,22 +52,28 @@
0x04 0x11 0x14 0x9b # CHECK: bal 21104
0x04 0x66 0x56 0x78 # CHECK: dahi $3, 22136
0x04 0x7e 0xab 0xcd # CHECK: dati $3, -21555
-# FIXME: The encode/decode functions are not inverses of each other.
-0x18 0x02 0x01 0x4d # CHECK: blezalc $2, 1332
-# FIXME: The encode/decode functions are not inverses of each other.
-0x18 0x42 0x01 0x4d # CHECK: bgezalc $2, 1332
-0x18 0x43 0x00 0x40 # CHECK: bgeuc $2, $3, 256
-# FIXME: The encode/decode functions are not inverses of each other.
-0x1c 0x02 0x01 0x4d # CHECK: bgtzalc $2, 1332
-# FIXME: The encode/decode functions are not inverses of each other.
-0x1c 0x42 0x01 0x4d # CHECK: bltzalc $2, 1332
-0x1c 0xa6 0x00 0x40 # CHECK: bltuc $5, $6, 256
-0x20 0x00 0x00 0x01 # CHECK: bovc $zero, $zero, 4
-# FIXME: The encode/decode functions are not inverses of each other.
-0x20 0x02 0x01 0x4d # CHECK: beqzalc $2, 1332
-0x20 0x40 0x00 0x01 # CHECK: bovc $2, $zero, 4
-0x20 0x82 0x00 0x01 # CHECK: bovc $4, $2, 4
-0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 256
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x18 0x02 0x01 0x4d # CHECK: blezalc $2, 1336
+0x18 0x02 0xff 0xfa # CHECk: blezalc $2, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x18 0x42 0x01 0x4d # CHECK: bgezalc $2, 1336
+0x18 0x42 0xff 0xfa # CHECK: bgezalc $2, -20
+0x18 0x43 0x00 0x40 # CHECK: bgeuc $2, $3, 260
+0x18 0x43 0xff 0xfa # CHECK: bgeuc $2, $3, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x1c 0x02 0x01 0x4d # CHECK: bgtzalc $2, 1336
+0x1c 0x02 0xff 0xfa # CHECK: bgtzalc $2, -20
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x1c 0x42 0x01 0x4d # CHECK: bltzalc $2, 1336
+0x1c 0x42 0xff 0xfa # CHECK: bltzalc $2, -20
+0x1c 0xa6 0x00 0x40 # CHECK: bltuc $5, $6, 260
+0x1c 0xa6 0xff 0xfa # CHECK: bltuc $5, $6, -20
+0x20 0x00 0x00 0x01 # CHECK: bovc $zero, $zero, 8
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x20 0x02 0x01 0x4d # CHECK: beqzalc $2, 1336
+0x20 0x40 0x00 0x01 # CHECK: bovc $2, $zero, 8
+0x20 0x82 0x00 0x01 # CHECK: bovc $4, $2, 8
+0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 260
0x25 0x29 0x00 0x0a # CHECK: addiu $9, $9, 10
0x30 0x42 0x00 0x04 # CHECK: andi $2, $2, 4
0x34 0x42 0x00 0x04 # CHECK: ori $2, $2, 4
@@ -162,18 +170,25 @@
0x49 0xbf 0x00 0x02 # CHECK: bc2nez $31, 12
0x49 0xc8 0x0d 0x43 # CHECK: ldc2 $8, -701($1)
0x49 0xf4 0x92 0x75 # CHECK: sdc2 $20, 629($18)
-0x58 0x05 0x00 0x40 # CHECK: blezc $5, 256
-0x58 0x43 0x00 0x40 # CHECK: bgec $2, $3, 256
-0x58 0xa5 0x00 0x40 # CHECK: bgezc $5, 256
-0x5c 0x05 0x00 0x40 # CHECK: bgtzc $5, 256
-0x5c 0xa5 0x00 0x40 # CHECK: bltzc $5, 256
-0x5c 0xa6 0x00 0x40 # CHECK: bltc $5, $6, 256
-0x60 0x00 0x00 0x01 # CHECK: bnvc $zero, $zero, 4
-# FIXME: The encode/decode functions are not inverses of each other.
-0x60 0x02 0x01 0x4d # CHECK: bnezalc $2, 1332
-0x60 0x40 0x00 0x01 # CHECK: bnvc $2, $zero, 4
-0x60 0x82 0x00 0x01 # CHECK: bnvc $4, $2, 4
-0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 256
+0x58 0x05 0x00 0x40 # CHECK: blezc $5, 260
+0x58 0x05 0xff 0xfa # CHECk: blezc $5, -20
+0x58 0x43 0x00 0x40 # CHECK: bgec $2, $3, 260
+0x58 0x43 0xff 0xfa # CHECK: bgec $2, $3, -20
+0x58 0xa5 0x00 0x40 # CHECK: bgezc $5, 260
+0x58 0xa5 0xff 0xfa # CHECK: bgezc $5, -20
+0x5c 0x05 0x00 0x40 # CHECK: bgtzc $5, 260
+0x5c 0x05 0xff 0xfa # CHECk: bgtzc $5, -20
+0x5c 0xa5 0x00 0x40 # CHECK: bltzc $5, 260
+0x5c 0xa5 0xff 0xfa # CHECK: bltzc $5, -20
+0x5c 0xa6 0x00 0x40 # CHECK: bltc $5, $6, 260
+0x5c 0xa6 0xff 0xfa # CHECK: bltc $5, $6, -20
+0x60 0x00 0x00 0x01 # CHECK: bnvc $zero, $zero, 8
+# The encode/decode functions are not inverses of each other in the immediate case.
+0x60 0x02 0x01 0x4d # CHECK: bnezalc $2, 1336
+0x60 0x40 0x00 0x01 # CHECK: bnvc $2, $zero, 8
+0x60 0x82 0x00 0x01 # CHECK: bnvc $4, $2, 8
+0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 260
+0x60 0x43 0xff 0xfa # CHECK: bnec $2, $3, -20
0x74 0x62 0x12 0x34 # CHECK: daui $3, $2, 4660
0x7c 0x02 0x20 0x20 # CHECK: bitswap $4, $2
0x7c 0x02 0x20 0x24 # CHECK: dbitswap $4, $2
@@ -185,10 +200,11 @@
0x7e 0x6f 0xec 0x26 # CHECK: sc $15, -40($19)
0x7f 0xaf 0xe6 0xa7 # CHECK: scd $15, -51($sp)
0x7f 0xe0 0x38 0x37 # CHECK: lld $zero, 112($ra)
-0xc8 0x37 0x96 0xb8 # CHECK: bc 14572256
+0xc8 0x37 0x96 0xb8 # CHECK: bc 14572260
0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
-0xd8 0xa0 0x46 0x90 # CHECK: beqzc $5, 72256
-0xe8 0x37 0x96 0xb8 # CHECK: balc 14572256
+0xd8 0xa0 0x46 0x90 # CHECK: beqzc $5, 72260
+0xd8 0x5f 0xff 0xfa # CHECK: beqzc $2, -20
+0xe8 0x37 0x96 0xb8 # CHECK: balc 14572260
0xec 0x48 0x00 0x43 # CHECK: lwpc $2, 268
0xec 0x50 0x00 0x43 # CHECK: lwupc $2, 268
0xec 0x58 0x3c 0x48 # CHECK: ldpc $2, 123456
@@ -196,4 +212,5 @@
0xec 0x7f 0x00 0x38 # CHECK: aluipc $3, 56
0xec 0x80 0x00 0x19 # CHECK: addiupc $4, 100
0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
-0xf8 0xa0 0x46 0x90 # CHECK: bnezc $5, 72256
+0xf8 0xa0 0x46 0x90 # CHECK: bnezc $5, 72260
+0xf8 0x5f 0xff 0xfa # CHECK: bnezc $2, -20
diff --git a/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt b/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
index 8ca8b815414c..3fa9fec50637 100644
--- a/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
+++ b/test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
@@ -3,16 +3,16 @@
#
# RUN: llvm-mc %s -disassemble -triple=mips-unknown-linux -mcpu=mips64r6 | FileCheck %s
# XFAIL: *
-0x20 0x40 0x00 0x01 # CHECK: bovc $0, $2, 4
-0x20 0x82 0x00 0x01 # CHECK: bovc $2, $4, 4
-0x60 0x40 0x00 0x01 # CHECK: bnvc $0, $2, 4
-0x60 0x82 0x00 0x01 # CHECK: bnvc $2, $4, 4
-0x20 0xc0 0x00 0x40 # CHECK: beqc $6, $zero, 256
-0x20 0xa0 0x00 0x40 # CHECK: beqc $5, $zero, 256
-0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 256
-0x60 0xc0 0x00 0x40 # CHECK: bnec $6, $zero, 256
-0x60 0xa0 0x00 0x40 # CHECK: bnec $5, $zero, 256
-0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 256
+0x20 0x40 0x00 0x01 # CHECK: bovc $0, $2, 8
+0x20 0x82 0x00 0x01 # CHECK: bovc $2, $4, 8
+0x60 0x40 0x00 0x01 # CHECK: bnvc $0, $2, 8
+0x60 0x82 0x00 0x01 # CHECK: bnvc $2, $4, 8
+0x20 0xc0 0x00 0x40 # CHECK: beqc $6, $zero, 260
+0x20 0xa0 0x00 0x40 # CHECK: beqc $5, $zero, 260
+0x20 0xa6 0x00 0x40 # CHECK: beqc $5, $6, 260
+0x60 0xc0 0x00 0x40 # CHECK: bnec $6, $zero, 260
+0x60 0xa0 0x00 0x40 # CHECK: bnec $5, $zero, 260
+0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 260
0x64 0x58 0x46 0x9f # CHECK: daddiu $24, $2, 18079
0x66 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943
0x65 0x6f 0xec 0x5f # CHECK: daddiu $15, $11, -5025
diff --git a/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt b/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt
index 480681c67f1d..4f62c782fd7c 100644
--- a/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt
+++ b/test/MC/Disassembler/PowerPC/ppc64-encoding-bookII.txt
@@ -33,6 +33,12 @@
# CHECK: stdcx. 2, 3, 4
0x7c 0x43 0x21 0xad
+# CHECK: stwat 2, 3, 28
+0x7c 0x43 0xe5 0x8c
+
+# CHECK: stdat 2, 3, 28
+0x7c 0x43 0xe5 0xcc
+
# CHECK: ptesync
0x7c 0x40 0x04 0xac
@@ -72,6 +78,12 @@
# CHECK: ldarx 2, 3, 4, 1
0x7c 0x43 0x20 0xa9
+# CHECK: lwat 2, 3, 28
+0x7c 0x43 0xe4 0x8c
+
+# CHECK: ldat 2, 3, 28
+0x7c 0x43 0xe4 0xcc
+
# CHECK: sync
0x7c 0x00 0x04 0xac
diff --git a/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt b/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt
index 16ff14c794d6..b2b497658748 100644
--- a/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt
+++ b/test/MC/Disassembler/PowerPC/ppc64-encoding-vmx.txt
@@ -672,3 +672,207 @@
# CHECK: mfvscr 2
0x10 0x40 0x06 0x04
+# Power9 instructions
+
+# CHECK: vcmpneb 2, 3, 4
+0x10 0x43 0x20 0x07
+
+# CHECK: vcmpneb. 2, 3, 4
+0x10 0x43 0x24 0x07
+
+# CHECK: vcmpnezb 2, 3, 4
+0x10 0x43 0x21 0x07
+
+# CHECK: vcmpnezb. 2, 3, 4
+0x10 0x43 0x25 0x07
+
+# CHECK: vcmpneh 2, 3, 4
+0x10 0x43 0x20 0x47
+
+# CHECK: vcmpneh. 2, 3, 4
+0x10 0x43 0x24 0x47
+
+# CHECK: vcmpnezh 2, 3, 4
+0x10 0x43 0x21 0x47
+
+# CHECK: vcmpnezh. 2, 3, 4
+0x10 0x43 0x25 0x47
+
+# CHECK: vcmpnew 2, 3, 4
+0x10 0x43 0x20 0x87
+
+# CHECK: vcmpnew. 2, 3, 4
+0x10 0x43 0x24 0x87
+
+# CHECK: vcmpnezw 2, 3, 4
+0x10 0x43 0x21 0x87
+
+# CHECK: vcmpnezw. 2, 3, 4
+0x10 0x43 0x25 0x87
+
+# CHECK: vextractub 2, 3, 15
+0x10 0x4f 0x1a 0x0d
+
+# CHECK: vextractuh 2, 3, 14
+0x10 0x4e 0x1a 0x4d
+
+# CHECK: vextractuw 2, 3, 12
+0x10 0x4c 0x1a 0x8d
+
+# CHECK: vextractd 2, 3, 8
+0x10 0x48 0x1a 0xcd
+
+# CHECK: vextublx 2, 3, 4
+0x10 0x43 0x26 0x0d
+
+# CHECK: vextubrx 2, 3, 4
+0x10 0x43 0x27 0x0d
+
+# CHECK: vextuhlx 2, 3, 4
+0x10 0x43 0x26 0x4d
+
+# CHECK: vextuhrx 2, 3, 4
+0x10 0x43 0x27 0x4d
+
+# CHECK: vextuwlx 2, 3, 4
+0x10 0x43 0x26 0x8d
+
+# CHECK: vextuwrx 2, 3, 4
+0x10 0x43 0x27 0x8d
+
+# CHECK: vinsertb 2, 3, 15
+0x10 0x4f 0x1b 0x0d
+
+# CHECK: vinserth 2, 3, 14
+0x10 0x4e 0x1b 0x4d
+
+# CHECK: vinsertw 2, 3, 12
+0x10 0x4c 0x1b 0x8d
+
+# CHECK: vinsertd 2, 3, 8
+0x10 0x48 0x1b 0xcd
+
+# Power9 instructions
+
+# CHECK: vclzlsbb 2, 3
+0x10 0x40 0x1e 0x02
+
+# CHECK: vctzlsbb 2, 3
+0x10 0x41 0x1e 0x02
+
+# CHECK: vctzb 2, 3
+0x10 0x5c 0x1e 0x02
+
+# CHECK: vctzh 2, 3
+0x10 0x5d 0x1e 0x02
+
+# CHECK: vctzw 2, 3
+0x10 0x5e 0x1e 0x02
+
+# CHECK: vctzd 2, 3
+0x10 0x5f 0x1e 0x02
+
+# CHECK: vextsb2w 2, 3
+0x10 0x50 0x1e 0x02
+
+# CHECK: vextsh2w 2, 3
+0x10 0x51 0x1e 0x02
+
+# CHECK: vextsb2d 2, 3
+0x10 0x58 0x1e 0x02
+
+# CHECK: vextsh2d 2, 3
+0x10 0x59 0x1e 0x02
+
+# CHECK: vextsw2d 2, 3
+0x10 0x5a 0x1e 0x02
+
+# CHECK: vnegw 2, 3
+0x10 0x46 0x1e 0x02
+
+# CHECK: vnegd 2, 3
+0x10 0x47 0x1e 0x02
+
+# CHECK: vprtybw 2, 3
+0x10 0x48 0x1e 0x02
+
+# CHECK: vprtybd 2, 3
+0x10 0x49 0x1e 0x02
+
+# CHECK: vprtybq 2, 3
+0x10 0x4a 0x1e 0x02
+
+# CHECK: vbpermd 2, 5, 17
+0x10 0x45 0x8d 0xcc
+
+# CHECK: vpermr 2, 3, 4, 5
+0x10 0x43 0x21 0x7b
+
+# CHECK: vrlwnm 2, 3, 4
+0x10 0x43 0x21 0x85
+
+# CHECK: vrlwmi 2, 3, 4
+0x10 0x43 0x20 0x85
+
+# CHECK: vrldnm 2, 3, 4
+0x10 0x43 0x21 0xc5
+
+# CHECK: vrldmi 2, 3, 4
+0x10 0x43 0x20 0xc5
+
+# CHECK: vslv 2, 3, 4
+0x10 0x43 0x27 0x44
+
+# CHECK: vsrv 2, 3, 4
+0x10 0x43 0x27 0x04
+
+# CHECK: vmul10uq 2, 3
+0x10 0x43 0x02 0x01
+
+# CHECK: vmul10cuq 2, 3
+0x10 0x43 0x00 0x01
+
+# CHECK: vmul10euq 2, 3, 4
+0x10 0x43 0x22 0x41
+
+# CHECK: vmul10ecuq 2, 3, 4
+0x10 0x43 0x20 0x41
+
+# CHECK: bcdcfn. 27, 31, 1
+0x13 0x67 0xff 0x81
+
+# CHECK: bcdcfz. 27, 31, 1
+0x13 0x66 0xff 0x81
+
+# CHECK: bcdctn. 27, 31
+0x13 0x65 0xfd 0x81
+
+# CHECK: bcdctz. 27, 31, 1
+0x13 0x64 0xff 0x81
+
+# CHECK: bcdcfsq. 27, 31, 1
+0x13 0x62 0xff 0x81
+
+# CHECK: bcdctsq. 27, 31
+0x13 0x60 0xfd 0x81
+
+# CHECK: bcdcpsgn. 27, 31, 7
+0x13 0x7f 0x3b 0x41
+
+# CHECK: bcdsetsgn. 27, 31, 1
+0x13 0x7f 0xff 0x81
+
+# CHECK: bcds. 27, 31, 7, 1
+0x13 0x7f 0x3e 0xc1
+
+# CHECK: bcdus. 27, 31, 7
+0x13 0x7f 0x3c 0x81
+
+# CHECK: bcdsr. 27, 31, 7, 1
+0x13 0x7f 0x3f 0xc1
+
+# CHECK: bcdtrunc. 27, 31, 7, 1
+0x13 0x7f 0x3f 0x01
+
+# CHECK: bcdutrunc. 27, 31, 7
+0x13 0x7f 0x3d 0x41
diff --git a/test/MC/Disassembler/PowerPC/ppc64-encoding.txt b/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
index 74023340d500..a6d079297bcf 100644
--- a/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
+++ b/test/MC/Disassembler/PowerPC/ppc64-encoding.txt
@@ -151,6 +151,9 @@
# CHECK: ldux 2, 3, 4
0x7c 0x43 0x20 0x6a
+# CHECK: ldmx 2, 3, 4
+0x7c 0x43 0x22 0x6a
+
# CHECK: stb 2, 128(4)
0x98 0x44 0x00 0x80
@@ -415,6 +418,24 @@
# CHECK: cmplw 2, 3, 4
0x7d 0x03 0x20 0x40
+# CHECK: cmprb 3, 1, 7, 17
+0x7d 0xa7 0x89 0x80
+
+# CHECK: cmpeqb 3, 7, 17
+0x7d 0x87 0x89 0xc0
+
+# CHECK: cnttzw 7, 17
+0x7e 0x27 0x04 0x34
+
+# CHECK: cnttzw. 7, 17
+0x7e 0x27 0x04 0x35
+
+# CHECK: cnttzd 7, 17
+0x7e 0x27 0x04 0x74
+
+# CHECK: cnttzd. 7, 17
+0x7e 0x27 0x04 0x75
+
# CHECK: twllti 3, 4
0x0c 0x43 0x00 0x04
@@ -658,7 +679,32 @@
# CHECK: mfocrf 16, 8
0x7e 0x10 0x80 0x26
+# CHECK: mcrxrx 7
+0x7f 0x80 0x04 0x80
+
# CHECK: mtsrin 10, 12
0x7d 0x40 0x61 0xe4
+
# CHECK: mfsrin 10, 12
0x7d 0x40 0x65 0x26
+
+# CHECK: copy 2, 19, 1
+0x7c 0x22 0x9e 0x0c
+
+# CHECK: paste 17, 1, 1
+0x7c 0x31 0x0f 0x0c
+
+# CHECK: cp_abort
+0x7c 0x00 0x06 0x8c
+
+# CHECK: msgsync
+0x7c 0x00 0x06 0xec
+
+# CHECK: slbieg 6, 21
+0x7c 0xc0 0xab 0xa4
+
+# CHECK: slbsync
+0x7c 0x00 0x02 0xa4
+
+# CHECK: stop
+0x4c 0x00 0x02 0xe4
diff --git a/test/MC/Disassembler/PowerPC/vsx.txt b/test/MC/Disassembler/PowerPC/vsx.txt
index 37fd17b015ab..3f8adc912452 100644
--- a/test/MC/Disassembler/PowerPC/vsx.txt
+++ b/test/MC/Disassembler/PowerPC/vsx.txt
@@ -539,3 +539,332 @@
# CHECK: mtvsrwz 0, 3
0x7c 0x03 0x01 0xe6
+
+# Power9 Instructions:
+
+# CHECK: xscpsgnqp 7, 31, 27
+0xfc 0xff 0xd8 0xc8
+
+# CHECK: xsabsqp 7, 27
+0xfc 0xe0 0xde 0x48
+
+# CHECK: xsnegqp 7, 27
+0xfc 0xf0 0xde 0x48
+
+# CHECK: xsnabsqp 7, 27
+0xfc 0xe8 0xde 0x48
+
+# CHECK: xsaddqp 7, 31, 27
+0xfc 0xff 0xd8 0x08
+
+# CHECK: xsaddqpo 7, 31, 27
+0xfc 0xff 0xd8 0x09
+
+# CHECK: xsdivqp 7, 31, 27
+0xfc 0xff 0xdc 0x48
+
+# CHECK: xsdivqpo 7, 31, 27
+0xfc 0xff 0xdc 0x49
+
+# CHECK: xsmulqp 7, 31, 27
+0xfc 0xff 0xd8 0x48
+
+# CHECK: xsmulqpo 7, 31, 27
+0xfc 0xff 0xd8 0x49
+
+# CHECK: xssqrtqp 7, 31
+0xfc 0xfb 0xfe 0x48
+
+# CHECK: xssqrtqpo 7, 31
+0xfc 0xfb 0xfe 0x49
+
+# CHECK: xssubqp 7, 31, 27
+0xfc 0xff 0xdc 0x08
+
+# CHECK: xssubqpo 7, 31, 27
+0xfc 0xff 0xdc 0x09
+
+# CHECK: xsmaddqp 7, 31, 27
+0xfc 0xff 0xdb 0x08
+
+# CHECK: xsmaddqpo 7, 31, 27
+0xfc 0xff 0xdb 0x09
+
+# CHECK: xsmsubqp 7, 31, 27
+0xfc 0xff 0xdb 0x48
+
+# CHECK: xsmsubqpo 7, 31, 27
+0xfc 0xff 0xdb 0x49
+
+# CHECK: xsnmaddqp 7, 31, 27
+0xfc 0xff 0xdb 0x88
+
+# CHECK: xsnmaddqpo 7, 31, 27
+0xfc 0xff 0xdb 0x89
+
+# CHECK: xsnmsubqp 7, 31, 27
+0xfc 0xff 0xdb 0xc8
+
+# CHECK: xsnmsubqpo 7, 31, 27
+0xfc 0xff 0xdb 0xc9
+
+# CHECK: xscmpoqp 6, 31, 27
+0xff 0x1f 0xd9 0x08
+
+# CHECK: xscmpuqp 6, 31, 27
+0xff 0x1f 0xdd 0x08
+
+# CHECK: xscmpexpdp 6, 63, 27
+0xf3 0x1f 0xd9 0xdc
+
+# CHECK: xscmpexpqp 6, 31, 27
+0xff 0x1f 0xd9 0x48
+
+# CHECK: xscmpeqdp 7, 63, 27
+0xf0 0xff 0xd8 0x1c
+
+# CHECK: xscmpgedp 7, 63, 27
+0xf0 0xff 0xd8 0x9c
+
+# CHECK: xscmpgtdp 7, 63, 27
+0xf0 0xff 0xd8 0x5c
+
+# CHECK: xscmpnedp 7, 63, 27
+0xf0 0xff 0xd8 0xdc
+
+# CHECK: xvcmpnedp 7, 63, 27
+0xf0 0xff 0xdb 0xdc
+
+# CHECK: xvcmpnedp. 7, 63, 27
+0xf0 0xff 0xdf 0xdc
+
+# CHECK: xvcmpnesp 7, 63, 27
+0xf0 0xff 0xda 0xdc
+
+# CHECK: xvcmpnesp. 7, 63, 27
+0xf0 0xff 0xde 0xdc
+
+# CHECK: xscvdpqp 7, 27
+0xfc 0xf6 0xde 0x88
+
+# CHECK: xscvqpdp 7, 27
+0xfc 0xf4 0xde 0x88
+
+# CHECK: xscvqpdpo 7, 27
+0xfc 0xf4 0xde 0x89
+
+# CHECK: xscvqpsdz 7, 27
+0xfc 0xf9 0xde 0x88
+
+# CHECK: xscvqpswz 7, 27
+0xfc 0xe9 0xde 0x88
+
+# CHECK: xscvqpudz 7, 27
+0xfc 0xf1 0xde 0x88
+
+# CHECK: xscvqpuwz 7, 27
+0xfc 0xe1 0xde 0x88
+
+# CHECK: xscvsdqp 7, 27
+0xfc 0xea 0xde 0x88
+
+# CHECK: xscvudqp 7, 27
+0xfc 0xe2 0xde 0x88
+
+# CHECK: xscvdphp 7, 63
+0xf0 0xf1 0xfd 0x6e
+
+# CHECK: xscvhpdp 7, 63
+0xf0 0xf0 0xfd 0x6e
+
+# CHECK: xvcvhpsp 7, 63
+0xf0 0xf8 0xff 0x6e
+
+# CHECK: xvcvsphp 7, 63
+0xf0 0xf9 0xff 0x6e
+
+# CHECK: xsrqpi 1, 7, 27, 2
+0xfc 0xe1 0xdc 0x0a
+
+# CHECK: xsrqpix 1, 7, 27, 2
+0xfc 0xe1 0xdc 0x0b
+
+# CHECK: xsrqpxp 1, 7, 27, 2
+0xfc 0xe1 0xdc 0x4a
+
+# CHECK: xsiexpdp 63, 3, 4
+0xf3 0xe3 0x27 0x2d
+
+# CHECK: xsiexpqp 7, 31, 27
+0xfc 0xff 0xde 0xc8
+
+# CHECK: xviexpdp 7, 63, 27
+0xf0 0xff 0xdf 0xc4
+
+# CHECK: xviexpsp 7, 63, 27
+0xf0 0xff 0xde 0xc4
+
+# CHECK: xxextractuw 7, 63, 15
+0xf0 0xef 0xfa 0x96
+
+# CHECK: xxinsertw 7, 63, 15
+0xf0 0xef 0xfa 0xd6
+
+# CHECK: xsxexpdp 7, 63
+0xf0 0xe0 0xfd 0x6e
+
+# CHECK: xsxsigdp 7, 63
+0xf0 0xe1 0xfd 0x6e
+
+# CHECK: xsxexpqp 7, 31
+0xfc 0xe2 0xfe 0x48
+
+# CHECK: xsxsigqp 7, 31
+0xfc 0xf2 0xfe 0x48
+
+# CHECK: xvxexpdp 7, 63
+0xf0 0xe0 0xff 0x6e
+
+# CHECK: xvxexpsp 7, 63
+0xf0 0xe8 0xff 0x6e
+
+# CHECK: xvxsigdp 7, 63
+0xf0 0xe1 0xff 0x6e
+
+# CHECK: xvxsigsp 7, 63
+0xf0 0xe9 0xff 0x6e
+
+# CHECK: xststdcsp 7, 63, 127
+0xf3 0xff 0xfc 0xaa
+
+# CHECK: xststdcdp 7, 63, 127
+0xf3 0xff 0xfd 0xaa
+
+# CHECK: xststdcqp 7, 31, 127
+0xff 0xff 0xfd 0x88
+
+# CHECK: xststdcsp 7, 63, 127
+0xf3 0xff 0xfc 0xaa
+
+# CHECK: xststdcdp 7, 63, 127
+0xf3 0xff 0xfd 0xaa
+
+# CHECK: xststdcqp 7, 31, 127
+0xff 0xff 0xfd 0x88
+
+# CHECK: xsmaxcdp 7, 63, 27
+0xf0 0xff 0xdc 0x04
+
+# CHECK: xsmaxjdp 7, 63, 27
+0xf0 0xff 0xdc 0x84
+
+# CHECK: xsmincdp 7, 63, 27
+0xf0 0xff 0xdc 0x44
+
+# CHECK: xsminjdp 7, 63, 27
+0xf0 0xff 0xdc 0xc4
+
+# CHECK: xxbrh 7, 63
+0xf0 0xe7 0xff 0x6e
+
+# CHECK: xxbrw 7, 63
+0xf0 0xef 0xff 0x6e
+
+# CHECK: xxbrd 7, 63
+0xf0 0xf7 0xff 0x6e
+
+# CHECK: xxbrq 7, 63
+0xf0 0xff 0xff 0x6e
+
+# CHECK: xxperm 7, 63, 27
+0xf0 0xff 0xd8 0xd4
+
+# CHECK: xxpermr 7, 63, 27
+0xf0 0xff 0xd9 0xd4
+
+# CHECK: xxspltib 63, 255
+0xf3 0xe7 0xfa 0xd1
+
+# CHECK: lxv 61, 32752(31)
+0xf7 0xbf 0x7f 0xf9
+
+# CHECK: lxv 61, -32768(0)
+0xf7 0xa0 0x80 0x09
+
+# CHECK: stxv 61, 32752(31)
+0xf7 0xbf 0x7f 0xfd
+
+# CHECK: stxv 61, -32768(0)
+0xf7 0xa0 0x80 0x0d
+
+# CHECK: lxsd 31, -32768(0)
+0xe7 0xe0 0x80 0x02
+
+# CHECK: lxsd 31, 32764(12)
+0xe7 0xec 0x7f 0xfe
+
+# CHECK: lxssp 31, -32768(0)
+0xe7 0xe0 0x80 0x03
+
+# CHECK: lxssp 31, 32764(12)
+0xe7 0xec 0x7f 0xff
+
+# CHECK: stxsd 31, 32764(12)
+0xf7 0xec 0x7f 0xfe
+
+# CHECK: stxssp 31, -32768(0)
+0xf7 0xe0 0x80 0x03
+
+# CHECK: lxvx 57, 12, 27
+0x7f 0x2c 0xda 0x19
+
+# CHECK: lxsibzx 57, 12, 27
+0x7f 0x2c 0xde 0x1b
+
+# CHECK: lxsihzx 57, 12, 27
+0x7f 0x2c 0xde 0x5b
+
+# CHECK: lxvb16x 57, 12, 27
+0x7f 0x2c 0xde 0xd9
+
+# CHECK: lxvh8x 57, 12, 27
+0x7f 0x2c 0xde 0x59
+
+# CHECK: lxvl 57, 12, 27
+0x7f 0x2c 0xda 0x1b
+
+# CHECK: lxvll 57, 12, 27
+0x7f 0x2c 0xda 0x5b
+
+# CHECK: lxvwsx 57, 12, 27
+0x7f 0x2c 0xda 0xd9
+
+# CHECK: stxsibx 57, 12, 27
+0x7f 0x2c 0xdf 0x1b
+
+# CHECK: stxsihx 57, 12, 27
+0x7f 0x2c 0xdf 0x5b
+
+# CHECK: stxvh8x 57, 12, 27
+0x7f 0x2c 0xdf 0x59
+
+# CHECK: stxvb16x 57, 12, 27
+0x7f 0x2c 0xdf 0xd9
+
+# CHECK: stxvx 57, 12, 27
+0x7f 0x2c 0xdb 0x19
+
+# CHECK: stxvl 57, 12, 27
+0x7f 0x2c 0xdb 0x1b
+
+# CHECK: stxvll 57, 12, 27
+0x7f 0x2c 0xdb 0x5b
+
+# CHECK: mtvsrws 34, 3
+0x7c 0x43 0x03 0x27
+
+# CHECK: mtvsrdd 34, 3, 12
+0x7c 0x43 0x63 0x67
+
+# CHECK: mfvsrld 3, 34
+0x7c 0x43 0x02 0x67
diff --git a/test/MC/Disassembler/Sparc/sparc-special-registers.txt b/test/MC/Disassembler/Sparc/sparc-special-registers.txt
index f653dbda605d..b34816dfac68 100644
--- a/test/MC/Disassembler/Sparc/sparc-special-registers.txt
+++ b/test/MC/Disassembler/Sparc/sparc-special-registers.txt
@@ -32,3 +32,15 @@
# CHECK: wr %i0, 5, %tbr
0x81 0x9e 0x20 0x05
+
+# CHECK: st %fsr, [%i5]
+0xc1 0x2f 0x40 0x00
+
+# CHECK: st %csr, [%i5]
+0xc1 0xaf 0x40 0x00
+
+# CHECK: std %cq, [%o3+-93]
+0xc1 0xb2 0xff 0xa3
+
+# CHECK: std %fq, [%i5+%l1]
+0xc1 0x37 0x40 0x11
diff --git a/test/MC/Disassembler/Sparc/sparc-v9.txt b/test/MC/Disassembler/Sparc/sparc-v9.txt
index b8ca01ce04ee..0a81b8df4cda 100644
--- a/test/MC/Disassembler/Sparc/sparc-v9.txt
+++ b/test/MC/Disassembler/Sparc/sparc-v9.txt
@@ -2,3 +2,117 @@
# CHECK: popc %g1, %g2
0x85 0x70 0x00 0x01
+
+# CHECK: ta %icc, %i5
+0x91 0xd0 0x00 0x1d
+
+# CHECK: ta %icc, 82
+0x91 0xd0 0x20 0x52
+
+# CHECK: ta %icc, %g1 + %i2
+0x91 0xd0 0x40 0x1a
+
+# CHECK: ta %icc, %i5 + 41
+0x91 0xd7 0x60 0x29
+
+# CHECK: tn %icc, %i5
+0x81 0xd0 0x00 0x1d
+
+# CHECK: tne %icc, 82
+0x93 0xd0 0x20 0x52
+
+# CHECK: te %icc, %g1 + %i2
+0x83 0xd0 0x40 0x1a
+
+# CHECK: tg %icc, %i5 + 41
+0x95 0xd7 0x60 0x29
+
+# CHECK: tle %icc, %i5
+0x85 0xd0 0x00 0x1d
+
+# CHECK: tge %icc, 82
+0x97 0xd0 0x20 0x52
+
+# CHECK: tl %icc, %g1 + %i2
+0x87 0xd0 0x40 0x1a
+
+# CHECK: tgu %icc, %i5 + 41
+0x99 0xd7 0x60 0x29
+
+# CHECK: tleu %icc, %i5
+0x89 0xd0 0x00 0x1d
+
+# CHECK: tcc %icc, 82
+0x9b 0xd0 0x20 0x52
+
+# CHECK: tcs %icc, %g1 + %i2
+0x8b 0xd0 0x40 0x1a
+
+# CHECK: tpos %icc, %i5 + 41
+0x9d 0xd7 0x60 0x29
+
+# CHECK: tneg %icc, %i5
+0x8d 0xd0 0x00 0x1d
+
+# CHECK: tvc %icc, 82
+0x9f 0xd0 0x20 0x52
+
+# CHECK: tvs %icc, %g1 + %i2
+0x8f 0xd0 0x40 0x1a
+
+# CHECK: ta %xcc, %i5
+0x91 0xd0 0x10 0x1d
+
+# CHECK: ta %xcc, 82
+0x91 0xd0 0x30 0x52
+
+# CHECK: ta %xcc, %g1 + %i2
+0x91 0xd0 0x50 0x1a
+
+# CHECK: ta %xcc, %i5 + 41
+0x91 0xd7 0x70 0x29
+
+# CHECK: tn %xcc, %i5
+0x81 0xd0 0x10 0x1d
+
+# CHECK: tne %xcc, 82
+0x93 0xd0 0x30 0x52
+
+# CHECK: te %xcc, %g1 + %i2
+0x83 0xd0 0x50 0x1a
+
+# CHECK: tg %xcc, %i5 + 41
+0x95 0xd7 0x70 0x29
+
+# CHECK: tle %xcc, %i5
+0x85 0xd0 0x10 0x1d
+
+# CHECK: tge %xcc, 82
+0x97 0xd0 0x30 0x52
+
+# CHECK: tl %xcc, %g1 + %i2
+0x87 0xd0 0x50 0x1a
+
+# CHECK: tgu %xcc, %i5 + 41
+0x99 0xd7 0x70 0x29
+
+# CHECK: tleu %xcc, %i5
+0x89 0xd0 0x10 0x1d
+
+# CHECK: tcc %xcc, 82
+0x9b 0xd0 0x30 0x52
+
+# CHECK: tcs %xcc, %g1 + %i2
+0x8b 0xd0 0x50 0x1a
+
+# CHECK: tpos %xcc, %i5 + 41
+0x9d 0xd7 0x70 0x29
+
+# CHECK: tneg %xcc, %i5
+0x8d 0xd0 0x10 0x1d
+
+# CHECK: tvc %xcc, 82
+0x9f 0xd0 0x30 0x52
+
+# CHECK: tvs %xcc, %g1 + %i2
+0x8f 0xd0 0x50 0x1a \ No newline at end of file
diff --git a/test/MC/Disassembler/Sparc/sparc.txt b/test/MC/Disassembler/Sparc/sparc.txt
index 6724ebf8bf25..9c0b2a107394 100644
--- a/test/MC/Disassembler/Sparc/sparc.txt
+++ b/test/MC/Disassembler/Sparc/sparc.txt
@@ -168,6 +168,51 @@
# CHECK: fbo 4194303
0x1f 0xbf 0xff 0xff
+# CHECK: cba 4194303
+0x11 0xff 0xff 0xff
+
+# CHECK: cbn 4194303
+0x01 0xff 0xff 0xff
+
+# CHECK: cb3 4194303
+0x0f 0xff 0xff 0xff
+
+# CHECK: cb2 4194303
+0x0d 0xff 0xff 0xff
+
+# CHECK: cb23 4194303
+0x0b 0xff 0xff 0xff
+
+# CHECK: cb1 4194303
+0x09 0xff 0xff 0xff
+
+# CHECK: cb13 4194303
+0x07 0xff 0xff 0xff
+
+# CHECK: cb12 4194303
+0x05 0xff 0xff 0xff
+
+# CHECK: cb123 4194303
+0x03 0xff 0xff 0xff
+
+# CHECK: cb03 4194303
+0x15 0xff 0xff 0xff
+
+# CHECK: cb02 4194303
+0x17 0xff 0xff 0xff
+
+# CHECK: cb023 4194303
+0x19 0xff 0xff 0xff
+
+# CHECK: cb01 4194303
+0x1b 0xff 0xff 0xff
+
+# CHECK: cb013 4194303
+0x1d 0xff 0xff 0xff
+
+# CHECK: cb012 4194303
+0x1f 0xff 0xff 0xff
+
# CHECK: restore
0x81 0xe8 0x00 0x00
@@ -187,16 +232,73 @@
0x00 0x00 0x00 0x0c
# CHECK: jmp %g1+12
-0x81,0xc0,0x60,0x0c
+0x81 0xc0 0x60 0x0c
# CHECK: retl
0x81 0xc3 0xe0 0x08
# CHECK: ret
-0x81,0xc7,0xe0,0x08
+0x81 0xc7 0xe0 0x08
# CHECK: rett %i7+8
0x81 0xcf 0xe0 0x08
# CHECK: stbar
0x81 0x43 0xc0 0x00
+
+# CHECK: ta %i5
+0x91 0xd0 0x00 0x1d
+
+# CHECK: ta 82
+0x91 0xd0 0x20 0x52
+
+# CHECK: ta %g1 + %i2
+0x91 0xd0 0x40 0x1a
+
+# CHECK: ta %i5 + 41
+0x91 0xd7 0x60 0x29
+
+# CHECK: tn %i5
+0x81 0xd0 0x00 0x1d
+
+# CHECK: tne 82
+0x93 0xd0 0x20 0x52
+
+# CHECK: te %g1 + %i2
+0x83 0xd0 0x40 0x1a
+
+# CHECK: tg %i5 + 41
+0x95 0xd7 0x60 0x29
+
+# CHECK: tle %i5
+0x85 0xd0 0x00 0x1d
+
+# CHECK: tge 82
+0x97 0xd0 0x20 0x52
+
+# CHECK: tl %g1 + %i2
+0x87 0xd0 0x40 0x1a
+
+# CHECK: tgu %i5 + 41
+0x99 0xd7 0x60 0x29
+
+# CHECK: tleu %i5
+0x89 0xd0 0x00 0x1d
+
+# CHECK: tcc 82
+0x9b 0xd0 0x20 0x52
+
+# CHECK: tcs %g1 + %i2
+0x8b 0xd0 0x40 0x1a
+
+# CHECK: tpos %i5 + 41
+0x9d 0xd7 0x60 0x29
+
+# CHECK: tneg %i5
+0x8d 0xd0 0x00 0x1d
+
+# CHECK: tvc 82
+0x9f 0xd0 0x20 0x52
+
+# CHECK: tvs %g1 + %i2
+0x8f 0xd0 0x40 0x1a
diff --git a/test/MC/Disassembler/SystemZ/insns-pcrel.txt b/test/MC/Disassembler/SystemZ/insns-pcrel.txt
index b7edab65e703..d3579481e1fa 100644
--- a/test/MC/Disassembler/SystemZ/insns-pcrel.txt
+++ b/test/MC/Disassembler/SystemZ/insns-pcrel.txt
@@ -1730,3 +1730,35 @@
# 0x000009d2:
# CHECK: clij %r0, 0, 15, 0x9d2
0xec 0x0f 0x00 0x00 0x00 0x7f
+
+# 0x000009d8:
+# CHECK: exrl %r0, 0x9d8
+0xc6 0x00 0x00 0x00 0x00 0x00
+
+# 0x000009de:
+# CHECK: exrl %r15, 0x9de
+0xc6 0xf0 0x00 0x00 0x00 0x00
+
+# 0x000009e4:
+# CHECK: exrl %r0, 0x9e2
+0xc6 0x00 0xff 0xff 0xff 0xff
+
+# 0x000009ea:
+# CHECK: exrl %r15, 0x9e8
+0xc6 0xf0 0xff 0xff 0xff 0xff
+
+# 0x000009f0:
+# CHECK: exrl %r0, 0xffffffff000009f0
+0xc6 0x00 0x80 0x00 0x00 0x00
+
+# 0x000009f6:
+# CHECK: exrl %r15, 0xffffffff000009f6
+0xc6 0xf0 0x80 0x00 0x00 0x00
+
+# 0x000009fc:
+# CHECK: exrl %r0, 0x1000009fa
+0xc6 0x00 0x7f 0xff 0xff 0xff
+
+# 0x00000a02:
+# CHECK: exrl %r15, 0x100000a00
+0xc6 0xf0 0x7f 0xff 0xff 0xff
diff --git a/test/MC/Disassembler/SystemZ/insns-z13.txt b/test/MC/Disassembler/SystemZ/insns-z13.txt
index 71e77664abb2..b6970ab3c6d7 100644
--- a/test/MC/Disassembler/SystemZ/insns-z13.txt
+++ b/test/MC/Disassembler/SystemZ/insns-z13.txt
@@ -3313,3 +3313,99 @@
#CHECK: wledb %v31, %v31, 7, 15
0xe7 0xff 0x00 0xff 0x3c 0xc5
+
+#CHECK: lochi %r11, 42, 0
+0xec 0xb0 0x00 0x2a 0x00 0x42
+
+#CHECK: lochio %r11, 42
+0xec 0xb1 0x00 0x2a 0x00 0x42
+
+#CHECK: lochih %r11, 42
+0xec 0xb2 0x00 0x2a 0x00 0x42
+
+#CHECK: lochinle %r11, 42
+0xec 0xb3 0x00 0x2a 0x00 0x42
+
+#CHECK: lochil %r11, -1
+0xec 0xb4 0xff 0xff 0x00 0x42
+
+#CHECK: lochinhe %r11, 42
+0xec 0xb5 0x00 0x2a 0x00 0x42
+
+#CHECK: lochilh %r11, -1
+0xec 0xb6 0xff 0xff 0x00 0x42
+
+#CHECK: lochine %r11, 0
+0xec 0xb7 0x00 0x00 0x00 0x42
+
+#CHECK: lochie %r11, 0
+0xec 0xb8 0x00 0x00 0x00 0x42
+
+#CHECK: lochinlh %r11, 42
+0xec 0xb9 0x00 0x2a 0x00 0x42
+
+#CHECK: lochihe %r11, 255
+0xec 0xba 0x00 0xff 0x00 0x42
+
+#CHECK: lochinl %r11, 255
+0xec 0xbb 0x00 0xff 0x00 0x42
+
+#CHECK: lochile %r11, 32767
+0xec 0xbc 0x7f 0xff 0x00 0x42
+
+#CHECK: lochinh %r11, 32767
+0xec 0xbd 0x7f 0xff 0x00 0x42
+
+#CHECK: lochino %r11, 32512
+0xec 0xbe 0x7f 0x00 0x00 0x42
+
+#CHECK: lochi %r11, 32512, 15
+0xec 0xbf 0x7f 0x00 0x00 0x42
+
+#CHECK: locghi %r11, 42, 0
+0xec 0xb0 0x00 0x2a 0x00 0x46
+
+#CHECK: locghio %r11, 42
+0xec 0xb1 0x00 0x2a 0x00 0x46
+
+#CHECK: locghih %r11, 42
+0xec 0xb2 0x00 0x2a 0x00 0x46
+
+#CHECK: locghinle %r11, 42
+0xec 0xb3 0x00 0x2a 0x00 0x46
+
+#CHECK: locghil %r11, -1
+0xec 0xb4 0xff 0xff 0x00 0x46
+
+#CHECK: locghinhe %r11, 42
+0xec 0xb5 0x00 0x2a 0x00 0x46
+
+#CHECK: locghilh %r11, -1
+0xec 0xb6 0xff 0xff 0x00 0x46
+
+#CHECK: locghine %r11, 0
+0xec 0xb7 0x00 0x00 0x00 0x46
+
+#CHECK: locghie %r11, 0
+0xec 0xb8 0x00 0x00 0x00 0x46
+
+#CHECK: locghinlh %r11, 42
+0xec 0xb9 0x00 0x2a 0x00 0x46
+
+#CHECK: locghihe %r11, 255
+0xec 0xba 0x00 0xff 0x00 0x46
+
+#CHECK: locghinl %r11, 255
+0xec 0xbb 0x00 0xff 0x00 0x46
+
+#CHECK: locghile %r11, 32767
+0xec 0xbc 0x7f 0xff 0x00 0x46
+
+#CHECK: locghinh %r11, 32767
+0xec 0xbd 0x7f 0xff 0x00 0x46
+
+#CHECK: locghino %r11, 32512
+0xec 0xbe 0x7f 0x00 0x00 0x46
+
+#CHECK: locghi %r11, 32512, 15
+0xec 0xbf 0x7f 0x00 0x00 0x46
diff --git a/test/MC/Disassembler/SystemZ/insns.txt b/test/MC/Disassembler/SystemZ/insns.txt
index 17c3a45b3e41..80756baed6ba 100644
--- a/test/MC/Disassembler/SystemZ/insns.txt
+++ b/test/MC/Disassembler/SystemZ/insns.txt
@@ -1288,6 +1288,90 @@
# CHECK: cgr %r7, %r8
0xb9 0x20 0x00 0x78
+# CHECK: cgrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xe4
+
+# CHECK: cgrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xe4
+
+# CHECK: cgrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xe4
+
+# CHECK: cgrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xe4
+
+# CHECK: cgrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xe4
+
+# CHECK: cgrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xe4
+
+# CHECK: cgrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xe4
+
+# CHECK: cgrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xe4
+
+# CHECK: cgrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xe4
+
+# CHECK: cgrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xe4
+
+# CHECK: cgrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xe4
+
+# CHECK: cgrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xe4
+
+# CHECK: cgrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xe4
+
+# CHECK: cgrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xe4
+
+# CHECK: cgrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xe4
+
+# CHECK: cgrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xe4
+
+# CHECK: cgrth %r0, %r1
+0xb9 0x60 0x20 0x01
+
+# CHECK: cgrtl %r0, %r1
+0xb9 0x60 0x40 0x01
+
+# CHECK: cgrte %r0, %r1
+0xb9 0x60 0x80 0x01
+
+# CHECK: cgrtlh %r0, %r1
+0xb9 0x60 0x60 0x01
+
+# CHECK: cgrthe %r0, %r1
+0xb9 0x60 0xa0 0x01
+
+# CHECK: cgrtle %r0, %r1
+0xb9 0x60 0xc0 0x01
+
# CHECK: cg %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x20
@@ -1318,6 +1402,96 @@
# CHECK: cg %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x20
+# CHECK: cgib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, -128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfc
+
+# CHECK: cgib %r0, -1, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfc
+
+# CHECK: cgib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfc
+
+# CHECK: cgib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfc
+
+# CHECK: cgib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfc
+
+# CHECK: cgiblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfc
+
+# CHECK: cgibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfc
+
+# CHECK: cgible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfc
+
+# CHECK: cgib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfc
+
+# CHECK: cgith %r0, 0
+0xec 0x00 0x00 0x00 0x20 0x70
+
+# CHECK: cgitl %r0, 0
+0xec 0x00 0x00 0x00 0x40 0x70
+
+# CHECK: cgite %r0, 0
+0xec 0x00 0x00 0x00 0x80 0x70
+
+# CHECK: cgitlh %r0, 0
+0xec 0x00 0x00 0x00 0x60 0x70
+
+# CHECK: cgithe %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0x70
+
+# CHECK: cgitle %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0x70
+
# CHECK: cgxbr %r0, 0, %f0
0xb3 0xaa 0x00 0x00
@@ -1498,6 +1672,78 @@
# CHECK: chy %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x79
+# CHECK: cib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, -128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfe
+
+# CHECK: cib %r0, -1, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfe
+
+# CHECK: cib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfe
+
+# CHECK: cib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfe
+
+# CHECK: cib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfe
+
+# CHECK: cib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfe
+
+# CHECK: cib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfe
+
+# CHECK: cibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfe
+
+# CHECK: cibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfe
+
+# CHECK: ciblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfe
+
+# CHECK: cibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfe
+
+# CHECK: cibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfe
+
+# CHECK: cible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfe
+
+# CHECK: cib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfe
+
# CHECK: cih %r0, -2147483648
0xcc 0x0d 0x80 0x00 0x00 0x00
@@ -1516,6 +1762,24 @@
# CHECK: cih %r15, 0
0xcc 0xfd 0x00 0x00 0x00 0x00
+# CHECK: cith %r0, 0
+0xec 0x00 0x00 0x00 0x20 0x72
+
+# CHECK: citl %r0, 0
+0xec 0x00 0x00 0x00 0x40 0x72
+
+# CHECK: cite %r0, 0
+0xec 0x00 0x00 0x00 0x80 0x72
+
+# CHECK: citlh %r0, 0
+0xec 0x00 0x00 0x00 0x60 0x72
+
+# CHECK: cithe %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0x72
+
+# CHECK: citle %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0x72
+
# CHECK: clc 0(1), 0
0xd5 0x00 0x00 0x00 0x00 0x00
@@ -1642,6 +1906,78 @@
# CHECK: clgebr %r15, 0, %f0, 1
0xb3 0xac 0x01 0xf0
+# CHECK: clgib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xfd
+
+# CHECK: clgib %r0, 255, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xfd
+
+# CHECK: clgib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xfd
+
+# CHECK: clgib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xfd
+
+# CHECK: clgib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xfd
+
+# CHECK: clgiblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xfd
+
+# CHECK: clgibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xfd
+
+# CHECK: clgible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xfd
+
+# CHECK: clgib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xfd
+
# CHECK: clgxbr %r0, 0, %f0, 1
0xb3 0xae 0x01 0x00
@@ -1690,6 +2026,42 @@
# CHECK: clfi %r15, 0
0xc2 0xff 0x00 0x00 0x00 0x00
+# CHECK: clfith %r0, 0
+0xec 0x00 0x00 0x00 0x20 0x73
+
+# CHECK: clfitl %r0, 0
+0xec 0x00 0x00 0x00 0x40 0x73
+
+# CHECK: clfite %r0, 0
+0xec 0x00 0x00 0x00 0x80 0x73
+
+# CHECK: clfitlh %r0, 0
+0xec 0x00 0x00 0x00 0x60 0x73
+
+# CHECK: clfithe %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0x73
+
+# CHECK: clfitle %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0x73
+
+# CHECK: clgith %r0, 0
+0xec 0x00 0x00 0x00 0x20 0x71
+
+# CHECK: clgitl %r0, 0
+0xec 0x00 0x00 0x00 0x40 0x71
+
+# CHECK: clgite %r0, 0
+0xec 0x00 0x00 0x00 0x80 0x71
+
+# CHECK: clgitlh %r0, 0
+0xec 0x00 0x00 0x00 0x60 0x71
+
+# CHECK: clgithe %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0x71
+
+# CHECK: clgitle %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0x71
+
# CHECK: clgfi %r0, 0
0xc2 0x0e 0x00 0x00 0x00 0x00
@@ -1774,6 +2146,72 @@
# CHECK: clgr %r7, %r8
0xb9 0x21 0x00 0x78
+# CHECK: clgrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xe5
+
+# CHECK: clgrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xe5
+
+# CHECK: clgrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xe5
+
+# CHECK: clgrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xe5
+
+# CHECK: clgrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xe5
+
+# CHECK: clgrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xe5
+
+# CHECK: clgrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xe5
+
+# CHECK: clgrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xe5
+
+# CHECK: clgrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xe5
+
+# CHECK: clgrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xe5
+
+# CHECK: clgrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xe5
+
+# CHECK: clgrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xe5
+
+# CHECK: clgrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xe5
+
+# CHECK: clgrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xe5
+
+# CHECK: clgrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xe5
+
+# CHECK: clgrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xe5
+
# CHECK: clg %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x21
@@ -1876,6 +2314,78 @@
# CHECK: cli 4095(%r15), 42
0x95 0x2a 0xff 0xff
+# CHECK: clib %r0, 0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 128, 0, 0
+0xec 0x00 0x00 0x00 0x80 0xff
+
+# CHECK: clib %r0, 255, 0, 0
+0xec 0x00 0x00 0x00 0xff 0xff
+
+# CHECK: clib %r0, 127, 0, 0
+0xec 0x00 0x00 0x00 0x7f 0xff
+
+# CHECK: clib %r15, 0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r7, 100, 0, 0
+0xec 0x70 0x00 0x00 0x64 0xff
+
+# CHECK: clib %r0, 0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xff
+
+# CHECK: clib %r0, 0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xff
+
+# CHECK: clib %r0, 0, 1, 0
+0xec 0x01 0x00 0x00 0x00 0xff
+
+# CHECK: clibh %r0, 0, 0
+0xec 0x02 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 3, 0
+0xec 0x03 0x00 0x00 0x00 0xff
+
+# CHECK: clibl %r0, 0, 0
+0xec 0x04 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 5, 0
+0xec 0x05 0x00 0x00 0x00 0xff
+
+# CHECK: cliblh %r0, 0, 0
+0xec 0x06 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 7, 0
+0xec 0x07 0x00 0x00 0x00 0xff
+
+# CHECK: clibe %r0, 0, 0
+0xec 0x08 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 9, 0
+0xec 0x09 0x00 0x00 0x00 0xff
+
+# CHECK: clibhe %r0, 0, 0
+0xec 0x0a 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 11, 0
+0xec 0x0b 0x00 0x00 0x00 0xff
+
+# CHECK: clible %r0, 0, 0
+0xec 0x0c 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 13, 0
+0xec 0x0d 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 14, 0
+0xec 0x0e 0x00 0x00 0x00 0xff
+
+# CHECK: clib %r0, 0, 15, 0
+0xec 0x0f 0x00 0x00 0x00 0xff
+
# CHECK: clih %r0, 0
0xcc 0x0f 0x00 0x00 0x00 0x00
@@ -1930,6 +2440,108 @@
# CHECK: clr %r7, %r8
0x15 0x78
+# CHECK: clrb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xf7
+
+# CHECK: clrb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xf7
+
+# CHECK: clrbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xf7
+
+# CHECK: clrb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xf7
+
+# CHECK: clrbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xf7
+
+# CHECK: clrb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xf7
+
+# CHECK: clrblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xf7
+
+# CHECK: clrb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xf7
+
+# CHECK: clrbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xf7
+
+# CHECK: clrb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xf7
+
+# CHECK: clrbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xf7
+
+# CHECK: clrb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xf7
+
+# CHECK: clrble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xf7
+
+# CHECK: clrb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xf7
+
+# CHECK: clrb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xf7
+
+# CHECK: clrb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xf7
+
+# CHECK: clgrth %r0, %r1
+0xb9 0x61 0x20 0x01
+
+# CHECK: clgrtl %r0, %r1
+0xb9 0x61 0x40 0x01
+
+# CHECK: clgrte %r0, %r1
+0xb9 0x61 0x80 0x01
+
+# CHECK: clgrtlh %r0, %r1
+0xb9 0x61 0x60 0x01
+
+# CHECK: clgrthe %r0, %r1
+0xb9 0x61 0xa0 0x01
+
+# CHECK: clgrtle %r0, %r1
+0xb9 0x61 0xc0 0x01
+
+# CHECK: clrth %r0, %r1
+0xb9 0x73 0x20 0x01
+
+# CHECK: clrtl %r0, %r1
+0xb9 0x73 0x40 0x01
+
+# CHECK: clrte %r0, %r1
+0xb9 0x73 0x80 0x01
+
+# CHECK: clrtlh %r0, %r1
+0xb9 0x73 0x60 0x01
+
+# CHECK: clrthe %r0, %r1
+0xb9 0x73 0xa0 0x01
+
+# CHECK: clrtle %r0, %r1
+0xb9 0x73 0xc0 0x01
+
# CHECK: clst %r0, %r0
0xb2 0x5d 0x00 0x00
@@ -2023,6 +2635,90 @@
# CHECK: cr %r7, %r8
0x19 0x78
+# CHECK: crb %r0, %r0, 0, 0
+0xec 0x00 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r15, 0, 0
+0xec 0x0f 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r15, %r0, 0, 0
+0xec 0xf0 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r7, %r8, 0, 0
+0xec 0x78 0x00 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 4095(%r15)
+0xec 0x00 0xff 0xff 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 0(%r8)
+0xec 0x00 0x80 0x00 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 0, 4095(%r7)
+0xec 0x00 0x7f 0xff 0x00 0xf6
+
+# CHECK: crb %r0, %r0, 1, 0
+0xec 0x00 0x00 0x00 0x10 0xf6
+
+# CHECK: crbh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x20 0xf6
+
+# CHECK: crb %r0, %r0, 3, 0
+0xec 0x00 0x00 0x00 0x30 0xf6
+
+# CHECK: crbl %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x40 0xf6
+
+# CHECK: crb %r0, %r0, 5, 0
+0xec 0x00 0x00 0x00 0x50 0xf6
+
+# CHECK: crblh %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x60 0xf6
+
+# CHECK: crb %r0, %r0, 7, 0
+0xec 0x00 0x00 0x00 0x70 0xf6
+
+# CHECK: crbe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0x80 0xf6
+
+# CHECK: crb %r0, %r0, 9, 0
+0xec 0x00 0x00 0x00 0x90 0xf6
+
+# CHECK: crbhe %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xa0 0xf6
+
+# CHECK: crb %r0, %r0, 11, 0
+0xec 0x00 0x00 0x00 0xb0 0xf6
+
+# CHECK: crble %r0, %r0, 0
+0xec 0x00 0x00 0x00 0xc0 0xf6
+
+# CHECK: crb %r0, %r0, 13, 0
+0xec 0x00 0x00 0x00 0xd0 0xf6
+
+# CHECK: crb %r0, %r0, 14, 0
+0xec 0x00 0x00 0x00 0xe0 0xf6
+
+# CHECK: crb %r0, %r0, 15, 0
+0xec 0x00 0x00 0x00 0xf0 0xf6
+
+# CHECK: crth %r0, %r1
+0xb9 0x72 0x20 0x01
+
+# CHECK: crtl %r0, %r1
+0xb9 0x72 0x40 0x01
+
+# CHECK: crte %r0, %r1
+0xb9 0x72 0x80 0x01
+
+# CHECK: crtlh %r0, %r1
+0xb9 0x72 0x60 0x01
+
+# CHECK: crthe %r0, %r1
+0xb9 0x72 0xa0 0x01
+
+# CHECK: crtle %r0, %r1
+0xb9 0x72 0xc0 0x01
+
# CHECK: csg %r0, %r0, -524288
0xeb 0x00 0x00 0x00 0x80 0x30
@@ -2512,6 +3208,27 @@
# CHECK: etnd %r7
0xb2 0xec 0x00 0x70
+# CHECK: ex %r0, 0
+0x44 0x00 0x00 0x00
+
+# CHECK: ex %r0, 4095
+0x44 0x00 0x0f 0xff
+
+# CHECK: ex %r0, 0(%r1)
+0x44 0x00 0x10 0x00
+
+# CHECK: ex %r0, 0(%r15)
+0x44 0x00 0xf0 0x00
+
+# CHECK: ex %r0, 4095(%r1,%r15)
+0x44 0x01 0xff 0xff
+
+# CHECK: ex %r0, 4095(%r15,%r1)
+0x44 0x0f 0x1f 0xff
+
+# CHECK: ex %r15, 0
+0x44 0xf0 0x00 0x00
+
# CHECK: fidbr %f0, 0, %f0
0xb3 0x5f 0x00 0x00
@@ -2644,6 +3361,87 @@
# CHECK: ic %r15, 0
0x43 0xf0 0x00 0x00
+# CHECK: icm %r0, 0, 0
+0xbf 0x00 0x00 0x00
+
+# CHECK: icm %r0, 15, 4095
+0xbf 0x0f 0x0f 0xff
+
+# CHECK: icm %r0, 0, 0(%r1)
+0xbf 0x00 0x10 0x00
+
+# CHECK: icm %r0, 0, 0(%r15)
+0xbf 0x00 0xf0 0x00
+
+# CHECK: icm %r0, 15, 4095(%r15)
+0xbf 0x0f 0xff 0xff
+
+# CHECK: icm %r0, 0, 4095(%r1)
+0xbf 0x00 0x1f 0xff
+
+# CHECK: icm %r15, 0, 0
+0xbf 0xf0 0x00 0x00
+
+# CHECK: icmh %r0, 0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x80
+
+# CHECK: icmh %r0, 0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x80
+
+# CHECK: icmh %r0, 15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x80
+
+# CHECK: icmh %r0, 15, 1
+0xeb 0x0f 0x00 0x01 0x00 0x80
+
+# CHECK: icmh %r0, 8, 524287
+0xeb 0x08 0x0f 0xff 0x7f 0x80
+
+# CHECK: icmh %r0, 8, 0(%r1)
+0xeb 0x08 0x10 0x00 0x00 0x80
+
+# CHECK: icmh %r0, 4, 0(%r15)
+0xeb 0x04 0xf0 0x00 0x00 0x80
+
+# CHECK: icmh %r0, 4, 524287(%r15)
+0xeb 0x04 0xff 0xff 0x7f 0x80
+
+# CHECK: icmh %r0, 0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x80
+
+# CHECK: icmh %r15, 0, 0
+0xeb 0xf0 0x00 0x00 0x00 0x80
+
+# CHECK: icmy %r0, 0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x81
+
+# CHECK: icmy %r0, 0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x81
+
+# CHECK: icmy %r0, 15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x81
+
+# CHECK: icmy %r0, 15, 1
+0xeb 0x0f 0x00 0x01 0x00 0x81
+
+# CHECK: icmy %r0, 8, 524287
+0xeb 0x08 0x0f 0xff 0x7f 0x81
+
+# CHECK: icmy %r0, 8, 0(%r1)
+0xeb 0x08 0x10 0x00 0x00 0x81
+
+# CHECK: icmy %r0, 4, 0(%r15)
+0xeb 0x04 0xf0 0x00 0x00 0x81
+
+# CHECK: icmy %r0, 4, 524287(%r15)
+0xeb 0x04 0xff 0xff 0x7f 0x81
+
+# CHECK: icmy %r0, 0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x81
+
+# CHECK: icmy %r15, 0, 0
+0xeb 0xf0 0x00 0x00 0x00 0x81
+
# CHECK: icy %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x73
@@ -4210,6 +5008,36 @@
# CHECK: llill %r15, 0
0xa5 0xff 0x00 0x00
+# CHECK: lm %r0, %r0, 0
+0x98 0x00 0x00 0x00
+
+# CHECK: lm %r0, %r15, 0
+0x98 0x0f 0x00 0x00
+
+# CHECK: lm %r14, %r15, 0
+0x98 0xef 0x00 0x00
+
+# CHECK: lm %r15, %r15, 0
+0x98 0xff 0x00 0x00
+
+# CHECK: lm %r0, %r0, 4095
+0x98 0x00 0x0f 0xff
+
+# CHECK: lm %r0, %r0, 1
+0x98 0x00 0x00 0x01
+
+# CHECK: lm %r0, %r0, 0(%r1)
+0x98 0x00 0x10 0x00
+
+# CHECK: lm %r0, %r0, 0(%r15)
+0x98 0x00 0xf0 0x00
+
+# CHECK: lm %r0, %r0, 4095(%r1)
+0x98 0x00 0x1f 0xff
+
+# CHECK: lm %r0, %r0, 4095(%r15)
+0x98 0x00 0xff 0xff
+
# CHECK: lmg %r0, %r0, 0
0xeb 0x00 0x00 0x00 0x00 0x04
@@ -4249,6 +5077,84 @@
# CHECK: lmg %r0, %r0, 524287(%r15)
0xeb 0x00 0xff 0xff 0x7f 0x04
+# CHECK: lmh %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x96
+
+# CHECK: lmh %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x96
+
+# CHECK: lmh %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x96
+
+# CHECK: lmh %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x96
+
+# CHECK: lmh %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x96
+
+# CHECK: lmh %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x96
+
+# CHECK: lmh %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x96
+
+# CHECK: lmh %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x96
+
+# CHECK: lmh %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x96
+
+# CHECK: lmh %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x96
+
+# CHECK: lmh %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x96
+
+# CHECK: lmh %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x96
+
+# CHECK: lmh %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x96
+
+# CHECK: lmy %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x98
+
+# CHECK: lmy %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x98
+
+# CHECK: lmy %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x98
+
+# CHECK: lmy %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x98
+
+# CHECK: lmy %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x98
+
+# CHECK: lmy %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x98
+
+# CHECK: lmy %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x98
+
+# CHECK: lmy %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x98
+
+# CHECK: lmy %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x98
+
+# CHECK: lmy %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x98
+
+# CHECK: lmy %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x98
+
+# CHECK: lmy %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x98
+
+# CHECK: lmy %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x98
+
# CHECK: lndbr %f0, %f9
0xb3 0x11 0x00 0x09
@@ -4657,6 +5563,36 @@
# CHECK: lrvr %r15, %r15
0xb9 0x1f 0x00 0xff
+# CHECK: lrvh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x1f
+
+# CHECK: lrvh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x1f
+
+# CHECK: lrvh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x1f
+
+# CHECK: lrvh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x1f
+
+# CHECK: lrvh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x1f
+
+# CHECK: lrvh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x1f
+
+# CHECK: lrvh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x1f
+
+# CHECK: lrvh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x1f
+
+# CHECK: lrvh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x1f
+
+# CHECK: lrvh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x1f
+
# CHECK: lrv %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x1e
@@ -6826,6 +7762,66 @@
# CHECK: shy %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x7b
+# CHECK: sla %r0, 0
+0x8b 0x00 0x00 0x00
+
+# CHECK: sla %r7, 0
+0x8b 0x70 0x00 0x00
+
+# CHECK: sla %r15, 0
+0x8b 0xf0 0x00 0x00
+
+# CHECK: sla %r0, 4095
+0x8b 0x00 0x0f 0xff
+
+# CHECK: sla %r0, 0(%r1)
+0x8b 0x00 0x10 0x00
+
+# CHECK: sla %r0, 0(%r15)
+0x8b 0x00 0xf0 0x00
+
+# CHECK: sla %r0, 4095(%r1)
+0x8b 0x00 0x1f 0xff
+
+# CHECK: sla %r0, 4095(%r15)
+0x8b 0x00 0xff 0xff
+
+# CHECK: slak %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0xdd
+
+# CHECK: slak %r15, %r1, 0
+0xeb 0xf1 0x00 0x00 0x00 0xdd
+
+# CHECK: slak %r1, %r15, 0
+0xeb 0x1f 0x00 0x00 0x00 0xdd
+
+# CHECK: slak %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0xdd
+
+# CHECK: slak %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0xdd
+
+# CHECK: slak %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0xdd
+
+# CHECK: slak %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0xdd
+
+# CHECK: slak %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0xdd
+
+# CHECK: slak %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0xdd
+
+# CHECK: slak %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0xdd
+
+# CHECK: slak %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0xdd
+
+# CHECK: slak %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0xdd
+
# CHECK: slbgr %r0, %r0
0xb9 0x89 0x00 0x00
@@ -7879,6 +8875,36 @@
# CHECK: sthy %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x70
+# CHECK: stm %r0, %r0, 0
+0x90 0x00 0x00 0x00
+
+# CHECK: stm %r0, %r15, 0
+0x90 0x0f 0x00 0x00
+
+# CHECK: stm %r14, %r15, 0
+0x90 0xef 0x00 0x00
+
+# CHECK: stm %r15, %r15, 0
+0x90 0xff 0x00 0x00
+
+# CHECK: stm %r0, %r0, 4095
+0x90 0x00 0x0f 0xff
+
+# CHECK: stm %r0, %r0, 1
+0x90 0x00 0x00 0x01
+
+# CHECK: stm %r0, %r0, 0(%r1)
+0x90 0x00 0x10 0x00
+
+# CHECK: stm %r0, %r0, 0(%r15)
+0x90 0x00 0xf0 0x00
+
+# CHECK: stm %r0, %r0, 4095(%r1)
+0x90 0x00 0x1f 0xff
+
+# CHECK: stm %r0, %r0, 4095(%r15)
+0x90 0x00 0xff 0xff
+
# CHECK: stmg %r0, %r0, 0
0xeb 0x00 0x00 0x00 0x00 0x24
@@ -7918,6 +8944,84 @@
# CHECK: stmg %r0, %r0, 524287(%r15)
0xeb 0x00 0xff 0xff 0x7f 0x24
+# CHECK: stmh %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x26
+
+# CHECK: stmh %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x26
+
+# CHECK: stmh %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x26
+
+# CHECK: stmh %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x26
+
+# CHECK: stmh %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x26
+
+# CHECK: stmh %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x26
+
+# CHECK: stmh %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x26
+
+# CHECK: stmh %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x26
+
+# CHECK: stmh %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x26
+
+# CHECK: stmh %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x26
+
+# CHECK: stmh %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x26
+
+# CHECK: stmh %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x26
+
+# CHECK: stmh %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x26
+
+# CHECK: stmy %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x90
+
+# CHECK: stmy %r0, %r15, 0
+0xeb 0x0f 0x00 0x00 0x00 0x90
+
+# CHECK: stmy %r14, %r15, 0
+0xeb 0xef 0x00 0x00 0x00 0x90
+
+# CHECK: stmy %r15, %r15, 0
+0xeb 0xff 0x00 0x00 0x00 0x90
+
+# CHECK: stmy %r0, %r0, -524288
+0xeb 0x00 0x00 0x00 0x80 0x90
+
+# CHECK: stmy %r0, %r0, -1
+0xeb 0x00 0x0f 0xff 0xff 0x90
+
+# CHECK: stmy %r0, %r0, 0
+0xeb 0x00 0x00 0x00 0x00 0x90
+
+# CHECK: stmy %r0, %r0, 1
+0xeb 0x00 0x00 0x01 0x00 0x90
+
+# CHECK: stmy %r0, %r0, 524287
+0xeb 0x00 0x0f 0xff 0x7f 0x90
+
+# CHECK: stmy %r0, %r0, 0(%r1)
+0xeb 0x00 0x10 0x00 0x00 0x90
+
+# CHECK: stmy %r0, %r0, 0(%r15)
+0xeb 0x00 0xf0 0x00 0x00 0x90
+
+# CHECK: stmy %r0, %r0, 524287(%r1)
+0xeb 0x00 0x1f 0xff 0x7f 0x90
+
+# CHECK: stmy %r0, %r0, 524287(%r15)
+0xeb 0x00 0xff 0xff 0x7f 0x90
+
# CHECK: strvg %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x2f
@@ -7948,6 +9052,36 @@
# CHECK: strvg %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x2f
+# CHECK: strvh %r0, -524288
+0xe3 0x00 0x00 0x00 0x80 0x3f
+
+# CHECK: strvh %r0, -1
+0xe3 0x00 0x0f 0xff 0xff 0x3f
+
+# CHECK: strvh %r0, 0
+0xe3 0x00 0x00 0x00 0x00 0x3f
+
+# CHECK: strvh %r0, 1
+0xe3 0x00 0x00 0x01 0x00 0x3f
+
+# CHECK: strvh %r0, 524287
+0xe3 0x00 0x0f 0xff 0x7f 0x3f
+
+# CHECK: strvh %r0, 0(%r1)
+0xe3 0x00 0x10 0x00 0x00 0x3f
+
+# CHECK: strvh %r0, 0(%r15)
+0xe3 0x00 0xf0 0x00 0x00 0x3f
+
+# CHECK: strvh %r0, 524287(%r1,%r15)
+0xe3 0x01 0xff 0xff 0x7f 0x3f
+
+# CHECK: strvh %r0, 524287(%r15,%r1)
+0xe3 0x0f 0x1f 0xff 0x7f 0x3f
+
+# CHECK: strvh %r15, 0
+0xe3 0xf0 0x00 0x00 0x00 0x3f
+
# CHECK: strv %r0, -524288
0xe3 0x00 0x00 0x00 0x80 0x3e
@@ -8146,6 +9280,18 @@
# CHECK: sty %r15, 0
0xe3 0xf0 0x00 0x00 0x00 0x50
+# CHECK: svc 0
+0x0a 0x00
+
+# CHECK: svc 3
+0x0a 0x03
+
+# CHECK: svc 128
+0x0a 0x80
+
+# CHECK: svc 255
+0x0a 0xff
+
# CHECK: sxbr %f0, %f0
0xb3 0x4b 0x00 0x00
@@ -8272,6 +9418,69 @@
# CHECK: tbeginc 4095(%r15), 42
0xe5 0x61 0xff 0xff 0x00 0x2a
+# CHECK: tcdb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x11
+
+# CHECK: tcdb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x11
+
+# CHECK: tcdb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x11
+
+# CHECK: tcdb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x11
+
+# CHECK: tcdb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x11
+
+# CHECK: tcdb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x11
+
+# CHECK: tcdb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x11
+
+# CHECK: tceb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x10
+
+# CHECK: tceb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x10
+
+# CHECK: tceb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x10
+
+# CHECK: tceb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x10
+
+# CHECK: tceb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x10
+
+# CHECK: tceb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x10
+
+# CHECK: tceb %f15, 0
+0xed 0xf0 0x00 0x00 0x00 0x10
+
+# CHECK: tcxb %f0, 0
+0xed 0x00 0x00 0x00 0x00 0x12
+
+# CHECK: tcxb %f0, 4095
+0xed 0x00 0x0f 0xff 0x00 0x12
+
+# CHECK: tcxb %f0, 0(%r1)
+0xed 0x00 0x10 0x00 0x00 0x12
+
+# CHECK: tcxb %f0, 0(%r15)
+0xed 0x00 0xf0 0x00 0x00 0x12
+
+# CHECK: tcxb %f0, 4095(%r1,%r15)
+0xed 0x01 0xff 0xff 0x00 0x12
+
+# CHECK: tcxb %f0, 4095(%r15,%r1)
+0xed 0x0f 0x1f 0xff 0x00 0x12
+
+# CHECK: tcxb %f13, 0
+0xed 0xd0 0x00 0x00 0x00 0x12
+
# CHECK: tend
0xb2 0xf8 0x00 0x00
diff --git a/test/MC/Disassembler/X86/intel-syntax.txt b/test/MC/Disassembler/X86/intel-syntax.txt
index 0a628af02c15..17d9d53e4183 100644
--- a/test/MC/Disassembler/X86/intel-syntax.txt
+++ b/test/MC/Disassembler/X86/intel-syntax.txt
@@ -108,10 +108,10 @@
# CHECK: vshufpd xmm0, xmm1, xmm2, 1
0xc5 0xf1 0xc6 0xc2 0x01
-# CHECK: vpgatherqq ymm2, qword ptr [rdi + 2*ymm1], ymm0
+# CHECK: vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
0xc4 0xe2 0xfd 0x91 0x14 0x4f
-# CHECK: vpgatherdd xmm10, dword ptr [r15 + 2*xmm9], xmm8
+# CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
0xc4 0x02 0x39 0x90 0x14 0x4f
# CHECK: xsave64 opaque ptr [rax]
diff --git a/test/MC/Disassembler/X86/simple-tests.txt b/test/MC/Disassembler/X86/simple-tests.txt
index 875c5b711a90..620f24919703 100644
--- a/test/MC/Disassembler/X86/simple-tests.txt
+++ b/test/MC/Disassembler/X86/simple-tests.txt
@@ -51,6 +51,12 @@
# CHECK: rdtscp
0x0f 0x01 0xf9
+# CHECK: monitorx
+0x0f 0x01 0xfa
+
+# CHECK: mwaitx
+0x0f 0x01 0xfb
+
# CHECK: vmxon
0xf3 0x0f 0xc7 0x30
@@ -905,12 +911,21 @@
# CHECK: vpcmov %ymm1, %ymm2, %ymm3, %ymm4
0x8f 0xe8 0x64 0xa2 0xe2 0x10
+# CHECK: vpcmov %ymm2, %ymm1, %ymm3, %ymm4
+0x8f 0xe8 0xe4 0xa2 0xe2 0x10
+
# CHECK: vpcmov (%rax), %ymm2, %ymm3, %ymm4
0x8f 0xe8 0xe4 0xa2 0x20 0x20
# CHECK: vpcmov %ymm1, (%rax), %ymm3, %ymm4
0x8f 0xe8 0x64 0xa2 0x20 0x10
+# CHECK: vpermil2pd $0, %xmm3, %xmm2, %xmm1, %xmm0
+0xc4 0xe3 0x71 0x49 0xc2 0x30
+
+# CHECK: vpermil2pd $0, %xmm2, %xmm3, %xmm1, %xmm0
+0xc4 0xe3 0xf1 0x49 0xc2 0x30
+
# CHECK: vpcomeqb %xmm6, %xmm4, %xmm2
0x8f 0xe8 0x58 0xcc 0xd6 0x04
diff --git a/test/MC/Disassembler/X86/x86-32.txt b/test/MC/Disassembler/X86/x86-32.txt
index c51e0a3dc379..f92d6057877b 100644
--- a/test/MC/Disassembler/X86/x86-32.txt
+++ b/test/MC/Disassembler/X86/x86-32.txt
@@ -90,6 +90,12 @@
# CHECK: rdtscp
0x0f 0x01 0xf9
+# CHECK: monitorx
+0x0f 0x01 0xfa
+
+# CHECK: mwaitx
+0x0f 0x01 0xfb
+
# CHECK: vmxon
0xf3 0x0f 0xc7 0x30
diff --git a/test/MC/ELF/cfi-version.ll b/test/MC/ELF/cfi-version.ll
index 6bb9f8ba8fe7..7087944a6a44 100644
--- a/test/MC/ELF/cfi-version.ll
+++ b/test/MC/ELF/cfi-version.ll
@@ -24,11 +24,10 @@ attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "n
!llvm.module.flags = !{!9, !10}
!llvm.ident = !{!11}
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !3, globals: !2, imports: !2)
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.5.0 ", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
!1 = !DIFile(filename: "test.c", directory: "/tmp")
!2 = !{}
-!3 = !{!4}
-!4 = distinct !DISubprogram(name: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 2, file: !1, scope: !5, type: !6, variables: !2)
+!4 = distinct !DISubprogram(name: "foo", line: 2, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 2, file: !1, scope: !5, type: !6, variables: !2)
!5 = !DIFile(filename: "test.c", directory: "/tmp")
!6 = !DISubroutineType(types: !7)
!7 = !{!8}
diff --git a/test/MC/ELF/compression.s b/test/MC/ELF/compression.s
index 5560ba78c68f..0777ee3f9032 100644
--- a/test/MC/ELF/compression.s
+++ b/test/MC/ELF/compression.s
@@ -1,36 +1,70 @@
-// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu < %s -o %t
-// RUN: llvm-objdump -s %t | FileCheck %s
-// RUN: llvm-dwarfdump -debug-dump=info %t | FileCheck --check-prefix=INFO %s
-// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple i386-pc-linux-gnu < %s \
-// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS %s
+// Check zlib-gnu style
+// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib-gnu -triple x86_64-pc-linux-gnu < %s -o %t
+// RUN: llvm-objdump -s %t | FileCheck --check-prefix=CHECK-GNU-STYLE %s
+// RUN: llvm-dwarfdump -debug-dump=str %t | FileCheck --check-prefix=STR %s
+// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib-gnu -triple i386-pc-linux-gnu < %s \
+// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS-GNU %s
-// REQUIRES: zlib
+// Check zlib style
+// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib -triple x86_64-pc-linux-gnu < %s -o %t
+// RUN: llvm-objdump -s %t | FileCheck --check-prefix=CHECK-ZLIB-STYLE %s
+// RUN: llvm-dwarfdump -debug-dump=str %t | FileCheck --check-prefix=STR %s
+// RUN: llvm-mc -filetype=obj -compress-debug-sections=zlib -triple i386-pc-linux-gnu < %s \
+// RUN: | llvm-readobj -symbols - | FileCheck --check-prefix=386-SYMBOLS-ZLIB %s
+// RUN: llvm-readobj -sections %t | FileCheck --check-prefix=ZLIB-STYLE-FLAGS %s
-// CHECK: Contents of section .zdebug_line:
-// Check for the 'ZLIB' file magic at the start of the section only
-// CHECK-NEXT: ZLIB
-// CHECK-NOT: ZLIB
+// REQUIRES: zlib
// Don't compress small sections, such as this simple debug_abbrev example
-// CHECK: Contents of section .debug_abbrev:
-// CHECK-NOT: ZLIB
-// CHECK-NOT: Contents of
+// CHECK-GNU-STYLE: Contents of section .debug_abbrev:
+// CHECK-GNU-STYLE-NOT: ZLIB
+// CHECK-GNU-STYLE-NOT: Contents of
-// CHECK: Contents of section .debug_info:
+// CHECK-GNU-STYLE: Contents of section .debug_info:
+// CHECK-GNU-STYLE: Contents of section .zdebug_str:
+// Check for the 'ZLIB' file magic at the start of the section only
+// CHECK-GNU-STYLE-NEXT: ZLIB
+// CHECK-GNU-STYLE-NOT: ZLIB
// FIXME: Handle compressing alignment fragments to support compressing debug_frame
-// CHECK: Contents of section .debug_frame:
-// CHECK-NOT: ZLIB
-// CHECK: Contents of
+// CHECK-GNU-STYLE: Contents of section .debug_frame:
+// CHECK-GNU-STYLE-NOT: ZLIB
+// CHECK-GNU-STYLE: Contents of
-// Decompress one valid dwarf section just to check that this roundtrips
-// INFO: 0x00000000: Compile Unit: length = 0x0000000c version = 0x0004 abbr_offset = 0x0000 addr_size = 0x08 (next unit at 0x00000010)
+// Decompress one valid dwarf section just to check that this roundtrips,
+// we use .zdebug_str section for that
+// STR: perfectly compressable data sample *****************************************
// In x86 32 bit named symbols are used for temporary symbols in merge
// sections, so make sure we handle symbols inside compressed sections
-// 386-SYMBOLS: Name: .Linfo_string0
-// 386-SYMBOLS-NOT: }
-// 386-SYMBOLS: Section: .zdebug_str
+// 386-SYMBOLS-GNU: Name: .Linfo_string0
+// 386-SYMBOLS-GNU-NOT: }
+// 386-SYMBOLS-GNU: Section: .zdebug_str
+
+// Now check the zlib style output:
+
+// Don't compress small sections, such as this simple debug_abbrev example
+// CHECK-ZLIB-STYLE: Contents of section .debug_abbrev:
+// CHECK-ZLIB-STYLE-NOT: ZLIB
+// CHECK-ZLIB-STYLE-NOT: Contents of
+// CHECK-ZLIB-STYLE: Contents of section .debug_info:
+// FIXME: Handle compressing alignment fragments to support compressing debug_frame
+// CHECK-ZLIB-STYLE: Contents of section .debug_frame:
+// CHECK-ZLIB-STYLE-NOT: ZLIB
+// CHECK-ZLIB-STYLE: Contents of
+
+// Check that debug_line section was not renamed, so it is
+// zlib-style, not zlib-gnu one. Check that SHF_COMPRESSED was set.
+// ZLIB-STYLE-FLAGS: Section {
+// ZLIB-STYLE-FLAGS: Index:
+// ZLIB-STYLE-FLAGS: Name: .debug_str
+// ZLIB-STYLE-FLAGS-NEXT: Type: SHT_PROGBITS
+// ZLIB-STYLE-FLAGS-NEXT: Flags [
+// ZLIB-STYLE-FLAGS-NEXT: SHF_COMPRESSED
+
+// 386-SYMBOLS-ZLIB: Name: .Linfo_string0
+// 386-SYMBOLS-ZLIB-NOT: }
+// 386-SYMBOLS-ZLIB: Section: .debug_str
.section .debug_line,"",@progbits
@@ -74,6 +108,9 @@ foo:
.cfi_endproc
.cfi_sections .debug_frame
+# Below is the section we will use to check that after compression with llvm-mc,
+# llvm-dwarfdump tool will be able to decompress data back and dump it. Data sample
+# should be compressable enough, so it is filled with some amount of equal symbols at the end
.section .debug_str,"MS",@progbits,1
.Linfo_string0:
- .asciz "compress this "
+ .asciz "perfectly compressable data sample *****************************************"
diff --git a/test/MC/ELF/got-relaxed-i386.s b/test/MC/ELF/got-relaxed-i386.s
new file mode 100644
index 000000000000..927066c68f2f
--- /dev/null
+++ b/test/MC/ELF/got-relaxed-i386.s
@@ -0,0 +1,22 @@
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux %s -o - | llvm-readobj -r | FileCheck %s
+// RUN: llvm-mc -filetype=obj -relax-relocations=false -triple i386-pc-linux %s -o - | llvm-readobj -r | FileCheck --check-prefix=OLD %s
+
+ movl mov@GOT(%ebx), %eax
+ mull mul@GOT(%ebx)
+ .long long@GOT
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section ({{.*}}) .rel.text {
+// CHECK-NEXT: R_386_GOT32X mov
+// CHECK-NEXT: R_386_GOT32 mul
+// CHECK-NEXT: R_386_GOT32 long
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+
+// OLD: Relocations [
+// OLD-NEXT: Section ({{.*}}) .rel.text {
+// OLD-NEXT: R_386_GOT32 mov
+// OLD-NEXT: R_386_GOT32 mul
+// OLD-NEXT: R_386_GOT32 long
+// OLD-NEXT: }
+// OLD-NEXT: ]
diff --git a/test/MC/ELF/got-relaxed-no-relax.s b/test/MC/ELF/got-relaxed-no-relax.s
new file mode 100644
index 000000000000..69511cd78cd9
--- /dev/null
+++ b/test/MC/ELF/got-relaxed-no-relax.s
@@ -0,0 +1,15 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o - | llvm-readobj -r | FileCheck %s
+
+// these should not produce relaxable relocations
+
+ movq foo@GOT, %rax
+ mulq foo@GOTPCREL(%rip)
+ .long foo@GOTPCREL
+
+// CHECK: Relocations [
+// CHECK: Section ({{.*}}) .rela.text {
+// CHECK-NEXT: R_X86_64_GOT32 foo
+// CHECK-NEXT: R_X86_64_GOTPCREL foo
+// CHECK-NEXT: R_X86_64_GOTPCREL foo
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
diff --git a/test/MC/ELF/got-relaxed-rex.s b/test/MC/ELF/got-relaxed-rex.s
new file mode 100644
index 000000000000..d35afaab3e52
--- /dev/null
+++ b/test/MC/ELF/got-relaxed-rex.s
@@ -0,0 +1,29 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o - | llvm-readobj -r | FileCheck %s
+
+// these should produce R_X86_64_REX_GOTPCRELX
+
+ movq mov@GOTPCREL(%rip), %rax
+ test %rax, test@GOTPCREL(%rip)
+ adc adc@GOTPCREL(%rip), %rax
+ add add@GOTPCREL(%rip), %rax
+ and and@GOTPCREL(%rip), %rax
+ cmp cmp@GOTPCREL(%rip), %rax
+ or or@GOTPCREL(%rip), %rax
+ sbb sbb@GOTPCREL(%rip), %rax
+ sub sub@GOTPCREL(%rip), %rax
+ xor xor@GOTPCREL(%rip), %rax
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section ({{.*}}) .rela.text {
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX mov
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX test
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX adc
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX add
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX and
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX cmp
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX or
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX sbb
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX sub
+// CHECK-NEXT: R_X86_64_REX_GOTPCRELX xor
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
diff --git a/test/MC/ELF/got-relaxed.s b/test/MC/ELF/got-relaxed.s
new file mode 100644
index 000000000000..c89e462095d8
--- /dev/null
+++ b/test/MC/ELF/got-relaxed.s
@@ -0,0 +1,21 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o - | llvm-readobj -r | FileCheck %s
+// RUN: llvm-mc -filetype=obj -relax-relocations=false -triple x86_64-pc-linux %s -o - | llvm-readobj -r | FileCheck --check-prefix=OLD %s
+
+// these should produce R_X86_64_GOTPCRELX
+
+ call *call@GOTPCREL(%rip)
+ jmp *jmp@GOTPCREL(%rip)
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section ({{.*}}) .rela.text {
+// CHECK-NEXT: R_X86_64_GOTPCRELX call
+// CHECK-NEXT: R_X86_64_GOTPCRELX jmp
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+
+// OLD: Relocations [
+// OLD-NEXT: Section ({{.*}}) .rela.text {
+// OLD-NEXT: R_X86_64_GOTPCREL call
+// OLD-NEXT: R_X86_64_GOTPCREL jmp
+// OLD-NEXT: }
+// OLD-NEXT: ]
diff --git a/test/MC/ELF/nocompression.s b/test/MC/ELF/nocompression.s
index e7b01f7ad479..1b535fde7588 100644
--- a/test/MC/ELF/nocompression.s
+++ b/test/MC/ELF/nocompression.s
@@ -1,4 +1,5 @@
-// RUN: not llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
+// RUN: not llvm-mc -filetype=obj -compress-debug-sections=zlib -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
+// RUN: not llvm-mc -filetype=obj -compress-debug-sections=zlib-gnu -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
// REQUIRES: nozlib
diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s
index 19efe0976129..e2c4e1073ad9 100644
--- a/test/MC/ELF/relocation-386.s
+++ b/test/MC/ELF/relocation-386.s
@@ -1,5 +1,5 @@
-// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | llvm-readobj -r | FileCheck %s --check-prefix=CHECK --check-prefix=I386
-// RUN: llvm-mc -filetype=obj -triple i386-pc-elfiamcu %s -o - | llvm-readobj -r | FileCheck %s --check-prefix=CHECK --check-prefix=IAMCU
+// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -relax-relocations=false -o - | llvm-readobj -r | FileCheck %s --check-prefix=CHECK --check-prefix=I386
+// RUN: llvm-mc -filetype=obj -triple i386-pc-elfiamcu %s -relax-relocations=false -o - | llvm-readobj -r | FileCheck %s --check-prefix=CHECK --check-prefix=IAMCU
// Test that we produce the correct relocation types and that the relocations
// correctly point to the section or the symbol.
diff --git a/test/MC/ELF/relocation-tls.s b/test/MC/ELF/relocation-tls.s
new file mode 100644
index 000000000000..d0c375551ccc
--- /dev/null
+++ b/test/MC/ELF/relocation-tls.s
@@ -0,0 +1,26 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sr | FileCheck %s
+
+// Test that we produce the correct relocation.
+
+ leaq _ZL3ccc@TLSDESC(%rip), %rax
+ call *_ZL3ccc@TLSCALL(%rax)
+ addq %fs:0, %rax
+
+// CHECK: Section {
+// CHECK: Index:
+// CHECK: Name: .rela.text
+// CHECK-NEXT: Type: SHT_RELA
+// CHECK-NEXT: Flags [
+// CHECK-NEXT: ]
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Offset:
+// CHECK-NEXT: Size:
+// CHECK-NEXT: Link:
+// CHECK-NEXT: Info:
+// CHECK-NEXT: AddressAlignment: 8
+// CHECK-NEXT: EntrySize: 24
+// CHECK-NEXT: Relocations [
+// CHECK-NEXT: 0x3 R_X86_64_GOTPC32_TLSDESC _ZL3ccc 0xFFFFFFFFFFFFFFFC
+// CHECK-NEXT: 0x9 R_X86_64_TLSDESC_CALL _ZL3ccc 0x0
+// CHECK-NEXT: ]
+// CHECK-NEXT: }
diff --git a/test/MC/ELF/relocation.s b/test/MC/ELF/relocation.s
index 0fec76792818..e0313904563a 100644
--- a/test/MC/ELF/relocation.s
+++ b/test/MC/ELF/relocation.s
@@ -63,6 +63,11 @@ pr24486:
.code16
call pr23771
+ .weak weak_sym
+weak_sym:
+ .long pr23272-weak_sym
+
+
// CHECK: Section {
// CHECK: Name: .rela.text
// CHECK: Relocations [
@@ -101,5 +106,6 @@ pr24486:
// CHECK-NEXT: 0xDC R_X86_64_PLT32 foo 0x0
// CHECK-NEXT: 0xF0 R_X86_64_32 .text 0xF0
// CHECK-NEXT: 0xF5 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE
+// CHECK-NEXT: 0xF7 R_X86_64_PC32 pr23272 0x0
// CHECK-NEXT: ]
// CHECK-NEXT: }
diff --git a/test/MC/ELF/section-sym-err.s b/test/MC/ELF/section-sym-err.s
deleted file mode 100644
index 789fee7c422c..000000000000
--- a/test/MC/ELF/section-sym-err.s
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o %t.o 2>&1 | FileCheck %s
-
-.section foo
-foo:
-
-// CHECK: error: invalid symbol redefinition
diff --git a/test/MC/ELF/section-sym-redefine.s b/test/MC/ELF/section-sym-redefine.s
new file mode 100644
index 000000000000..1f6dd5723af1
--- /dev/null
+++ b/test/MC/ELF/section-sym-redefine.s
@@ -0,0 +1,138 @@
+// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t -r --expand-relocs | FileCheck %s
+
+// Local symbol overriding section.
+.section x1,"a",@progbits
+.local x1
+.comm x1,4,4
+.long x1 // reloc: .bss + 0
+
+// Section declared after local. Local symbol wins.
+.local x2
+.comm x2,4,4
+.section x2,"a",@progbits
+.long x2 // reloc: .bss + 4
+
+// No overriding symbol.
+.section x3,"a",@progbits
+.long x3 // reloc: x3(section) + 0
+
+// Global vs section.
+.section x4,"a",@progbits
+.long 0
+.globl x4
+.section foo, "a", @progbits
+x4:
+.long 0
+.long x4 // reloc: x4(global) + 0
+
+// Global vs implicit section
+.globl .data
+.data:
+.long 42
+.long .data // reloc: .data(global) + 0
+
+// CHECK: Relocations [
+// CHECK: Section (4) .relax1 {
+// CHECK: Relocation {
+// CHECK: Offset: 0x0
+// CHECK: Type: R_X86_64_32 (10)
+// CHECK: Symbol: .bss (3)
+// CHECK: Addend: 0x0
+// CHECK: }
+// CHECK: }
+// CHECK: Section (7) .relax2 {
+// CHECK: Relocation {
+// CHECK: Offset: 0x0
+// CHECK: Type: R_X86_64_32 (10)
+// CHECK: Symbol: .bss (3)
+// CHECK: Addend: 0x4
+// CHECK: }
+// CHECK: }
+// CHECK: Section (9) .relax3 {
+// CHECK: Relocation {
+// CHECK: Offset: 0x0
+// CHECK: Type: R_X86_64_32 (10)
+// CHECK: Symbol: x3 (4)
+// CHECK: Addend: 0x0
+// CHECK: }
+// CHECK: }
+// CHECK: Section (12) .relafoo {
+// CHECK: Relocation {
+// CHECK: Offset: 0x4
+// CHECK: Type: R_X86_64_32 (10)
+// CHECK: Symbol: x4 (6)
+// CHECK: Addend: 0x0
+// CHECK: }
+// CHECK: Relocation {
+// CHECK: Offset: 0xC
+// CHECK: Type: R_X86_64_32 (10)
+// CHECK: Symbol: .data (5)
+// CHECK: Addend: 0x0
+// CHECK: }
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: (0)
+// CHECK: Value: 0x0
+// CHECK: Size: 0
+// CHECK: Binding: Local (0x0)
+// CHECK: Type: None (0x0)
+// CHECK: Other: 0
+// CHECK: Section: Undefined (0x0)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: x1 (67)
+// CHECK: Value: 0x0
+// CHECK: Size: 4
+// CHECK: Binding: Local (0x0)
+// CHECK: Type: Object (0x1)
+// CHECK: Other: 0
+// CHECK: Section: .bss (0x5)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: x2 (59)
+// CHECK: Value: 0x4
+// CHECK: Size: 4
+// CHECK: Binding: Local (0x0)
+// CHECK: Type: Object (0x1)
+// CHECK: Other: 0
+// CHECK: Section: .bss (0x5)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: (0)
+// CHECK: Value: 0x0
+// CHECK: Size: 0
+// CHECK: Binding: Local (0x0)
+// CHECK: Type: Section (0x3)
+// CHECK: Other: 0
+// CHECK: Section: .bss (0x5)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: (0)
+// CHECK: Value: 0x0
+// CHECK: Size: 0
+// CHECK: Binding: Local (0x0)
+// CHECK: Type: Section (0x3)
+// CHECK: Other: 0
+// CHECK: Section: x3 (0x8)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: .data (37)
+// CHECK: Value: 0x8
+// CHECK: Size: 0
+// CHECK: Binding: Global (0x1)
+// CHECK: Type: None (0x0)
+// CHECK: Other: 0
+// CHECK: Section: foo (0xB)
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: x4 (43)
+// CHECK: Value: 0x0
+// CHECK: Size: 0
+// CHECK: Binding: Global (0x1)
+// CHECK: Type: None (0x0)
+// CHECK: Other: 0
+// CHECK: Section: foo (0xB)
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/ELF/section.s b/test/MC/ELF/section.s
index 008c4605552a..0277be522361 100644
--- a/test/MC/ELF/section.s
+++ b/test/MC/ELF/section.s
@@ -6,11 +6,15 @@
.section .note.GNU-stack2,"",%progbits
.section .note.GNU-,"",@progbits
.section -.note.GNU,"","progbits"
+.section src/stack.c,"",@progbits
+.section ~!@$%^&*()_-+={[}]|\\:<>,"",@progbits
// CHECK: Name: .note.GNU-stack
// CHECK: Name: .note.GNU-stack2
// CHECK: Name: .note.GNU-
// CHECK: Name: -.note.GNU
+// CHECK: Name: src/stack.c
+// CHECK: Name: ~!@$%^&*()_-+={[}]|\\:<>
// Test that the defaults are used
diff --git a/test/MC/ELF/undefined-directional.s b/test/MC/ELF/undefined-directional.s
new file mode 100644
index 000000000000..e09acd731112
--- /dev/null
+++ b/test/MC/ELF/undefined-directional.s
@@ -0,0 +1,12 @@
+// RUN: not llvm-mc -triple x86_64-linux-gnu -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s
+
+// CHECK: [[@LINE+1]]:{{[0-9]+}}: error: directional label undefined
+ jmp 1b
+// CHECK: [[@LINE+1]]:{{[0-9]+}}: error: directional label undefined
+ jmp 1f
+# 10 "wibble.s"
+// CHECK: wibble.s:11:{{[0-9]+}}: error: directional label undefined
+ jmp 2f
+
+# 42 "invalid.s"
+
diff --git a/test/MC/Hexagon/align.s b/test/MC/Hexagon/align.s
new file mode 100644
index 000000000000..01a112392ed4
--- /dev/null
+++ b/test/MC/Hexagon/align.s
@@ -0,0 +1,60 @@
+# RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+
+# Verify that the .align directive emits the proper insn packets.
+
+{ r1 = sub(#1, r1) }
+# CHECK: 76414021 { r1 = sub(#1, r1)
+# CHECK-NEXT: 7f004000 nop
+# CHECK-NEXT: 7f004000 nop
+# CHECK-NEXT: 7f00c000 nop }
+
+.align 16
+{ r1 = sub(#1, r1)
+ r2 = sub(#1, r2) }
+# CHECK: 76414021 { r1 = sub(#1, r1)
+# CHECK-NEXT: 76424022 r2 = sub(#1, r2)
+# CHECK-NEXT: 7f004000 nop
+# CHECK-NEXT: 7f00c000 nop }
+
+.p2align 5
+{ r1 = sub(#1, r1)
+ r2 = sub(#1, r2)
+ r3 = sub(#1, r3) }
+# CHECK: 76434023 r3 = sub(#1, r3)
+# CHECK-NEXT: 7f00c000 nop }
+
+.align 16
+{ r1 = sub(#1, r1)
+ r2 = sub(#1, r2)
+ r3 = sub(#1, r3)
+ r4 = sub(#1, r4) }
+
+# Don't pad packets that can't be padded e.g. solo insts
+# CHECK: 9200c020 { r0 = vextract(v0,r0) }
+r0 = vextract(v0, r0)
+.align 128
+# CHECK: 76414021 { r1 = sub(#1, r1)
+# CHECK-NEXT: 7f00c000 nop }
+{ r1 = sub(#1, r1) }
+
+#CHECK: { r1 = sub(#1, r1)
+#CHECK: r2 = sub(#1, r2)
+#CHECK: r3 = sub(#1, r3) }
+.falign
+.align 8
+{ r1 = sub(#1, r1)
+ r2 = sub(#1, r2)
+ r3 = sub(#1, r3) }
+
+# CHECK: { immext(#0)
+# CHECK: r0 = sub(##1, r0)
+# CHECK: immext(#0)
+# CHECK: r1 = sub(##1, r1) }
+# CHECK: { nop
+# CHECK: nop
+# CHECK: nop }
+# CHECK: { r0 = sub(#1, r0) }
+{ r0 = sub (##1, r0)
+ r1 = sub (##1, r1) }
+.align 16
+{ r0 = sub (#1, r0) } \ No newline at end of file
diff --git a/test/MC/Hexagon/basic.ll b/test/MC/Hexagon/basic.ll
index 8a5d2e6f872c..98b4cbc0a31d 100644
--- a/test/MC/Hexagon/basic.ll
+++ b/test/MC/Hexagon/basic.ll
@@ -4,4 +4,4 @@
; OBJ: Format: ELF32-hexagon
; OBJ: Arch: hexagon
; OBJ: AddressSize: 32bit
-; OBJ: Machine: EM_HEXAGON
+; OBJ: Machine: EM_HEXAGON (0xA4)
diff --git a/test/MC/Hexagon/double-vector-producer.s b/test/MC/Hexagon/double-vector-producer.s
new file mode 100644
index 000000000000..5421653b5b47
--- /dev/null
+++ b/test/MC/Hexagon/double-vector-producer.s
@@ -0,0 +1,12 @@
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv60 -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+{
+ v1:0 = vshuff(v1,v0,r7)
+ v2.w = vadd(v13.w,v15.w)
+ v3.w = vadd(v8.w,v14.w)
+ vmem(r2+#-2) = v0.new
+}
+
+# CHECK: 60 61 07 1b
+# CHECK: 02 4d 4f 1c
+# CHECK: 03 48 4e 1c
+# CHECK: 26 e6 22 28
diff --git a/test/MC/Hexagon/duplex-registers.s b/test/MC/Hexagon/duplex-registers.s
new file mode 100644
index 000000000000..f0cde7f9628d
--- /dev/null
+++ b/test/MC/Hexagon/duplex-registers.s
@@ -0,0 +1,10 @@
+#RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+
+.text
+{
+ r16 = memuh(r17 + #0)
+ r18 = memuh(r19 + #0)
+}
+
+# CHECK: 289808ba
+# CHECK: r16 = memuh(r17 + #0);{{ *}}r18 = memuh(r19 + #0)
diff --git a/test/MC/Hexagon/elf-flags.s b/test/MC/Hexagon/elf-flags.s
new file mode 100644
index 000000000000..94dce8152144
--- /dev/null
+++ b/test/MC/Hexagon/elf-flags.s
@@ -0,0 +1,9 @@
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv4 --filetype=obj %s -o - | llvm-readobj -file-headers -elf-output-style=GNU | FileCheck --check-prefix=CHECK-V4 %s
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv5 --filetype=obj %s -o - | llvm-readobj -file-headers -elf-output-style=GNU | FileCheck --check-prefix=CHECK-V5 %s
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv55 --filetype=obj %s -o - | llvm-readobj -file-headers -elf-output-style=GNU | FileCheck --check-prefix=CHECK-V55 %s
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv60 --filetype=obj %s -o - | llvm-readobj -file-headers -elf-output-style=GNU | FileCheck --check-prefix=CHECK-V60 %s
+
+# CHECK-V4: Flags: 0x3
+# CHECK-V5: Flags: 0x4
+# CHECK-V55: Flags: 0x5
+# CHECK-V60: Flags: 0x60
diff --git a/test/MC/Hexagon/endloop.s b/test/MC/Hexagon/endloop.s
index 303f84fb14ff..d537eb00ed05 100644
--- a/test/MC/Hexagon/endloop.s
+++ b/test/MC/Hexagon/endloop.s
@@ -1,4 +1,4 @@
-# RUN: llvm-mc -triple=hexagon -filetype=asm %s 2>%t; FileCheck %s <%t
+# RUN: not llvm-mc -triple=hexagon -filetype=asm %s 2>&1 | FileCheck %s
# Check that a branch in an end-loop packet is caught.
diff --git a/test/MC/Hexagon/fixups.s b/test/MC/Hexagon/fixups.s
new file mode 100644
index 000000000000..059a18fa8822
--- /dev/null
+++ b/test/MC/Hexagon/fixups.s
@@ -0,0 +1,25 @@
+# RUN: llvm-mc -arch=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+
+ .text
+# CHECK-LABEL: 0:
+# CHECK: 2442e106
+# CHECK: if (!cmp.eq(r1.new, #1)) jump:t 0xc
+ {
+ r1 = zxth(r2)
+ if (!cmp.eq(r1.new, #1)) jump:t .L1
+ }
+ nop
+.L1:
+ .org 0x10
+# CHECK-LABEL: 10:
+# CHECK: 00004020
+# CHECK: immext(#2048)
+# CHECK: 2442e118
+# CHECK: if (!cmp.eq(r1.new, #1)) jump:t 0x81c
+ {
+ r1 = zxth(r2)
+ if (!cmp.eq(r1.new, #1)) jump:t .L2
+ }
+ .org .+2048
+.L2:
+
diff --git a/test/MC/Hexagon/iconst.s b/test/MC/Hexagon/iconst.s
new file mode 100644
index 000000000000..277c4de86923
--- /dev/null
+++ b/test/MC/Hexagon/iconst.s
@@ -0,0 +1,6 @@
+# RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-objdump -d -r - | FileCheck %s
+
+a:
+# CHECK: r0 = add(r0, #0)
+# CHECK: R_HEX_23_REG
+r0 = iconst(#a) \ No newline at end of file
diff --git a/test/MC/Hexagon/instructions/system_user.s b/test/MC/Hexagon/instructions/system_user.s
index d52f8b41182a..f0ead9645dd5 100644
--- a/test/MC/Hexagon/instructions/system_user.s
+++ b/test/MC/Hexagon/instructions/system_user.s
@@ -24,3 +24,39 @@ dcfetch(r17 + #168)
# Send value to ETM trace
# CHECK: 00 c0 51 62
trace(r17)
+
+# CHECK: 00 c0 00 a0
+dccleana(r0)
+
+# CHECK: 00 c0 41 a0
+dccleaninva(r1)
+
+# CHECK: 00 c0 22 a0
+dcinva(r2)
+
+# CHECK: 00 c0 c3 a0
+dczeroa(r3)
+
+# CHECK: 00 c0 c4 56
+icinva(r4)
+
+# CHECK: 02 c0 c0 57
+isync
+
+# CHECK: 00 c6 05 a6
+l2fetch(r5, r6)
+
+# CHECK: 00 c8 87 a6
+l2fetch(r7, r9:8)
+
+# CHECK: 1c df 40 54
+pause(#255)
+
+# CHECK: 00 c0 40 a8
+syncht
+
+# CHECK: 18 df 00 54
+trap0(#254)
+
+# CHECK: 14 df 80 54
+trap1(#253)
diff --git a/test/MC/Hexagon/lcomm.s b/test/MC/Hexagon/lcomm.s
new file mode 100644
index 000000000000..ba44bc842c7b
--- /dev/null
+++ b/test/MC/Hexagon/lcomm.s
@@ -0,0 +1,19 @@
+# RUN: llvm-mc -filetype=obj -triple=hexagon %s | llvm-objdump -t - | FileCheck %s
+.lcomm dst1,1,1,1
+.lcomm dst2,2,2,2
+.lcomm dst4,4,4,4
+.lcomm dst8,8,8,8
+
+r0 = add(pc, ##dst1@PCREL)
+r0 = add(pc, ##dst2@PCREL)
+r0 = add(pc, ##dst4@PCREL)
+r0 = add(pc, ##dst8@PCREL)
+
+# CHECK: 00000000 l .sbss.1 00000001 dst1
+# CHECK: 00000000 l .sbss.2 00000002 dst2
+# CHECK: 00000000 l .sbss.4 00000004 dst4
+# CHECK: 00000000 l .sbss.8 00000008 dst8
+# CHECK: 00000000 l d .sbss.1 00000000 .sbss.1
+# CHECK: 00000000 l d .sbss.2 00000000 .sbss.2
+# CHECK: 00000000 l d .sbss.4 00000000 .sbss.4
+# CHECK: 00000000 l d .sbss.8 00000000 .sbss.8 \ No newline at end of file
diff --git a/test/MC/Hexagon/new-value-check.s b/test/MC/Hexagon/new-value-check.s
index e46360a7bb3d..978d6f151480 100644
--- a/test/MC/Hexagon/new-value-check.s
+++ b/test/MC/Hexagon/new-value-check.s
@@ -1,7 +1,7 @@
-# RUN: llvm-mc -triple=hexagon < %s 2>%t ; \
-# RUN: FileCheck %s < %t --check-prefix=CHECK-STRICT
-# RUN: llvm-mc -triple=hexagon -relax-nv-checks < %s 2>%t ; \
-# RUN: FileCheck %s < %t --check-prefix=CHECK-RELAXED
+# RUN: not llvm-mc -triple=hexagon < %s 2>&1 | \
+# RUN: FileCheck %s --check-prefix=CHECK-STRICT
+# RUN: not llvm-mc -triple=hexagon -relax-nv-checks < %s 2>&1 | \
+# RUN: FileCheck %s --check-prefix=CHECK-RELAXED
# CHECK-STRICT: :12:1: error: register `R0' used with `.new' but not validly modified in the same packet
# CHECK-RELAXED: :12:1: error: register `R0' used with `.new' but not validly modified in the same packet
diff --git a/test/MC/Hexagon/out_of_range.s b/test/MC/Hexagon/out_of_range.s
index 2a98ef287f6b..f3f9e7a73b97 100644
--- a/test/MC/Hexagon/out_of_range.s
+++ b/test/MC/Hexagon/out_of_range.s
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc -triple=hexagon -filetype=asm %s 2> %t; FileCheck %s < %t
+# RUN: not llvm-mc -triple=hexagon -filetype=asm %s 2>&1 | FileCheck %s
r1:0=##0xFFFFFF7000001000
# CHECK: rror: value -144(0xffffffffffffff70) out of range: -128-127
diff --git a/test/MC/Hexagon/register-alt-names.s b/test/MC/Hexagon/register-alt-names.s
new file mode 100644
index 000000000000..97bfd32c51d9
--- /dev/null
+++ b/test/MC/Hexagon/register-alt-names.s
@@ -0,0 +1,14 @@
+# RUN: llvm-mc -arch=hexagon < %s | FileCheck %s
+
+# CHECK: r0 = r31
+r0 = lr
+
+# CHECK: r1 = r30
+r1 = fp
+
+# CHECK: r2 = r29
+r2 = sp
+
+# CHECK: r1:0 = combine(r31, r30)
+r1:0 = lr:fp
+
diff --git a/test/MC/Hexagon/relocations.s b/test/MC/Hexagon/relocations.s
new file mode 100644
index 000000000000..8b90bc7c0cdf
--- /dev/null
+++ b/test/MC/Hexagon/relocations.s
@@ -0,0 +1,244 @@
+# RUN: llvm-mc -filetype=obj -triple=hexagon %s | llvm-objdump -r - | FileCheck %s
+
+# CHECK: R_HEX_B22_PCREL
+r_hex_b22_pcrel:
+{ jump #undefined }
+
+# CHECK: R_HEX_B15_PCREL
+r_hex_b15_pcrel:
+{ if (p0) jump #undefined }
+
+# CHECK: R_HEX_B7_PCREL
+r_hex_b7_pcrel:
+{ loop1 (#undefined, #0) }
+
+# CHECK: R_HEX_32
+r_hex_32:
+.word undefined
+
+# CHECK: R_HEX_16
+r_hex_16:
+.half undefined
+.half 0
+
+# CHECK: R_HEX_8
+r_hex_8:
+.byte undefined
+.byte 0
+.byte 0
+.byte 0
+
+# CHECK: R_HEX_GPREL16_0
+r_hex_gprel16_0:
+{ r0 = memb (#undefined@gotrel) }
+
+# CHECK: R_HEX_GPREL16_1
+r_hex_gprel16_1:
+{ r0 = memh (#undefined@gotrel) }
+
+# CHECK: R_HEX_GPREL16_2
+r_hex_gprel16_2:
+{ r0 = memw (#undefined@gotrel) }
+
+# CHECK: R_HEX_GPREL16_3
+r_hex_gprel16_3:
+{ r1:0 = memd (#undefined@gotrel) }
+
+# CHECK: R_HEX_B13_PCREL
+r_hex_b13_pcrel:
+{ if (r0 != #0) jump:nt #undefined }
+
+# CHECK: R_HEX_B9_PCREL
+r_hex_b9_pcrel:
+{ r0 = #0 ; jump #undefined }
+
+# CHECK: R_HEX_B32_PCREL_X
+r_hex_b32_pcrel_x:
+{ jump ##undefined }
+
+# CHECK: R_HEX_32_6_X
+r_hex_32_6_x:
+{ r0 = ##undefined }
+
+# CHECK: R_HEX_B22_PCREL_X
+r_hex_b22_pcrel_x:
+{ jump ##undefined }
+
+# CHECK: R_HEX_B15_PCREL_X
+r_hex_b15_pcrel_x:
+{ if (p0) jump ##undefined }
+
+# CHECK: R_HEX_B9_PCREL_X
+r_hex_b9_pcrel_x:
+{ r0 = #0 ; jump ##undefined }
+
+# CHECK: R_HEX_B7_PCREL_X
+r_hex_b7_pcrel_x:
+{ loop1 (##undefined, #0) }
+
+# CHECK: R_HEX_32_PCREL
+r_hex_32_pcrel:
+.word undefined@pcrel
+
+# CHECK: R_HEX_PLT_B22_PCREL
+r_hex_plt_b22_pcrel:
+jump undefined@plt
+
+# CHECK: R_HEX_GOTREL_32
+r_hex_gotrel_32:
+.word undefined@gotrel
+
+# CHECK: R_HEX_GOT_32
+r_hex_got_32:
+.word undefined@got
+
+# CHECK: R_HEX_GOT_16
+r_hex_got_16:
+.half undefined@got
+.half 0
+
+# CHECK: R_HEX_DTPREL_32
+r_hex_dtprel_32:
+.word undefined@dtprel
+
+# CHECK: R_HEX_DTPREL_16
+r_hex_dtprel_16:
+.half undefined@dtprel
+.half 0
+
+# CHECK: R_HEX_GD_GOT_32
+r_hex_gd_got_32:
+.word undefined@gdgot
+
+# CHECK: R_HEX_GD_GOT_16
+r_hex_gd_got_16:
+.half undefined@gdgot
+.half 0
+
+# CHECK: R_HEX_IE_32
+r_hex_ie_32:
+.word undefined@ie
+
+# CHECK: R_HEX_IE_GOT_32
+r_hex_ie_got_32:
+.word undefined@iegot
+
+# CHECK: R_HEX_IE_GOT_16
+r_hex_ie_got_16:
+.half undefined@iegot
+.half 0
+
+# CHECK: R_HEX_TPREL_32
+r_hex_tprel_32:
+.word undefined@tprel
+
+# CHECK: R_HEX_TPREL_16
+r_hex_tprel_16:
+r0 = #undefined@tprel
+
+# CHECK: R_HEX_6_PCREL_X
+r_hex_6_pcrel_x:
+{ r0 = ##undefined@pcrel
+ r1 = r1 }
+
+# CHECK: R_HEX_GOTREL_32_6_X
+r_hex_gotrel_32_6_x:
+{ r0 = ##undefined@gotrel }
+
+# CHECK: R_HEX_GOTREL_16_X
+r_hex_gotrel_16_x:
+{ r0 = ##undefined@gotrel }
+
+# CHECK: R_HEX_GOTREL_11_X
+r_hex_gotrel_11_x:
+{ r0 = memw(r0 + ##undefined@gotrel) }
+
+# CHECK: R_HEX_GOT_32_6_X
+r_hex_got_32_6_x:
+{ r0 = ##undefined@got }
+
+# CHECK: R_HEX_GOT_16_X
+r_hex_got_16_x:
+{ r0 = ##undefined@got }
+
+# CHECK: R_HEX_GOT_11_X
+r_hex_got_11_x:
+{ r0 = memw(r0 + ##undefined@got) }
+
+# CHECK: R_HEX_DTPREL_32_6_X
+r_hex_dtprel_32_6_x:
+{ r0 = ##undefined@dtprel }
+
+# CHECK: R_HEX_DTPREL_16_X
+r_hex_dtprel_16_x:
+{ r0 = ##undefined@dtprel }
+
+# CHECK: R_HEX_DTPREL_11_X
+r_hex_dtprel_11_x:
+{ r0 = memw(r0 + ##undefined@dtprel) }
+
+# CHECK: R_HEX_GD_GOT_32_6_X
+r_hex_gd_got_32_6_x:
+{ r0 = ##undefined@gdgot }
+
+# CHECK: R_HEX_GD_GOT_16_X
+r_hex_gd_got_16_x:
+{ r0 = ##undefined@gdgot }
+
+# CHECK: R_HEX_GD_GOT_11_X
+r_hex_gd_got_11_x:
+{ r0 = memw(r0 + ##undefined@gdgot) }
+
+# CHECK: R_HEX_IE_32_6_X
+r_hex_ie_32_6_x:
+{ r0 = ##undefined@ie }
+
+# CHECK: R_HEX_IE_16_X
+r_hex_ie_16_x:
+{ r0 = ##undefined@ie }
+
+# CHECK: R_HEX_IE_GOT_32_6_X
+r_hex_ie_got_32_6_x:
+{ r0 = ##undefined@iegot }
+
+# CHECK: R_HEX_IE_GOT_16_X
+r_hex_ie_got_16_x:
+{ r0 = ##undefined@iegot }
+
+# CHECK: R_HEX_IE_GOT_11_X
+r_hex_ie_got_11_x:
+{ r0 = memw(r0 + ##undefined@iegot) }
+
+# CHECK: R_HEX_TPREL_32_6_X
+r_hex_tprel_32_6_x:
+{ r0 = ##undefined@tprel }
+
+# CHECK: R_HEX_TPREL_16_X
+r_hex_tprel_16_x:
+{ r0 = ##undefined@tprel }
+
+# CHECK: R_HEX_TPREL_11_X
+r_hex_tprel_11_x:
+{ r0 = memw(r0 + ##undefined@tprel) }
+
+# CHECK: R_HEX_LD_GOT_32
+r_hex_ld_got_32:
+.word undefined@ldgot
+
+# CHECK: R_HEX_LD_GOT_16
+r_hex_ld_got_16:
+.half undefined@ldgot
+.half 0
+
+# CHECK: R_HEX_LD_GOT_32_6_X
+r_hex_ld_got_32_6_x:
+{ r0 = ##undefined@ldgot }
+
+# CHECK: R_HEX_LD_GOT_16_X
+r_hex_ld_got_16_x:
+{ r0 = ##undefined@ldgot }
+
+# CHECK: R_HEX_LD_GOT_11_X
+r_hex_ld_got_11_x:
+{ r0 = memw(r0 + ##undefined@ldgot) }
+
diff --git a/test/MC/Hexagon/tprel_noextend.s b/test/MC/Hexagon/tprel_noextend.s
new file mode 100644
index 000000000000..0bc17c6ce576
--- /dev/null
+++ b/test/MC/Hexagon/tprel_noextend.s
@@ -0,0 +1,8 @@
+# RUN: llvm-mc -arch=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
+#
+
+# CHECK-NOT: immext
+r0 = #undefined@TPREL
+
+# CHECK-NOT: immext
+r0 = #undefined@DTPREL
diff --git a/test/MC/Hexagon/v60-misc.s b/test/MC/Hexagon/v60-misc.s
new file mode 100644
index 000000000000..e16034948dc3
--- /dev/null
+++ b/test/MC/Hexagon/v60-misc.s
@@ -0,0 +1,121 @@
+# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv60 -mattr=+hvx -filetype=obj %s | llvm-objdump -arch=hexagon -mcpu=hexagonv60 -d - | FileCheck %s
+
+.L0:
+
+# CHECK: 5c00c000 { if (p0) jump:nt
+if (p0) jump .L0
+
+# CHECK: 5cffe1fe { if (!p1) jump:nt
+if (!p1) jump .L0
+
+# CHECK: 5340c200 { if (p2) jumpr:nt
+if (p2) jumpr r0
+
+# CHECK: 5361c300 { if (!p3) jumpr:nt
+if (!p3) jumpr r1
+
+# CHECK: 1c2eceee { v14 = vxor(v14,{{ *}}v14) }
+v14 = #0
+
+# CHECK: 1c80c0a0 { v1:0.w = vsub(v1:0.w,v1:0.w) }
+v1:0 = #0
+
+# CHECK: 1f42c3e0 { v1:0 = vcombine(v3,v2) }
+v1:0 = v3:2
+
+# CHECK: 1f90cf00 { q0 = vcmp.eq(v15.b,v16.b) }
+q0 = vcmp.eq(v15.ub, v16.ub)
+
+# CHECK: 1c92f101 { q1 &= vcmp.eq(v17.b,v18.b) }
+q1 &= vcmp.eq(v17.ub, v18.ub)
+
+# CHECK: 1c94f342 { q2 |= vcmp.eq(v19.b,v20.b) }
+q2 |= vcmp.eq(v19.ub, v20.ub)
+
+# CHECK: 1c96f583 { q3 ^= vcmp.eq(v21.b,v22.b) }
+q3 ^= vcmp.eq(v21.ub, v22.ub)
+
+# CHECK: 1f81c004 { q0 = vcmp.eq(v0.h,v1.h) }
+q0 = vcmp.eq(v0.uh, v1.uh)
+
+# CHECK: 1c83e205 { q1 &= vcmp.eq(v2.h,v3.h) }
+q1 &= vcmp.eq(v2.uh, v3.uh)
+
+# CHECK: 1c85e446 { q2 |= vcmp.eq(v4.h,v5.h) }
+q2 |= vcmp.eq(v4.uh, v5.uh)
+
+# CHECK: 1c87e687 { q3 ^= vcmp.eq(v6.h,v7.h) }
+q3 ^= vcmp.eq(v6.uh, v7.uh)
+
+# CHECK: 1f89c808 { q0 = vcmp.eq(v8.w,v9.w) }
+q0 = vcmp.eq(v8.uw, v9.uw)
+
+# CHECK: 1c8aea09 { q1 &= vcmp.eq(v10.w,v10.w) }
+q1 &= vcmp.eq(v10.uw, v10.uw)
+
+# CHECK: 1c8ceb46 { q2 |= vcmp.eq(v11.h,v12.h) }
+q2 |= vcmp.eq(v11.uw, v12.uw)
+
+# CHECK: 1c8eed8b { q3 ^= vcmp.eq(v13.w,v14.w) }
+q3 ^= vcmp.eq(v13.uw, v14.uw)
+
+# CHECK: 2800c00f { v15 = vmem(r0+#0) }
+v15 = vmem(r0)
+
+# CHECK: 2841c010 { v16 = vmem(r1+#0):nt }
+v16 = vmem(r1):nt
+
+# CHECK: 2822c011 { vmem(r2+#0) = v17 }
+vmem(r2) = v17
+
+# CHECK: 2863c012 { vmem(r3+#0):nt = v18 }
+vmem(r3):nt = v18
+
+# CHECK: 2884c013 { if (q0) vmem(r4+#0) = v19 }
+if (q0) vmem(r4) = v19
+
+# CHECK: 2885c834 { if (!q1) vmem(r5+#0) = v20 }
+if (!q1) vmem(r5) = v20
+
+# CHECK: 28c6d015 { if (q2) vmem(r6+#0):nt = v21 }
+if (q2) vmem(r6):nt = v21
+
+# CHECK: 28c7d836 { if (!q3) vmem(r7+#0):nt = v22 }
+if (!q3) vmem(r7):nt = v22
+
+# CHECK: 28a8c017 { if (p0) vmem(r8+#0) = v23 }
+if (p0) vmem(r8) = v23
+
+# CHECK: 28a9c838 { if (!p1) vmem(r9+#0) = v24 }
+if (!p1) vmem(r9) = v24
+
+# CHECK: 28ead019 { if (p2) vmem(r10+#0):nt = v25 }
+if (p2) vmem(r10):nt = v25
+
+# CHECK: 28ebd83a { if (!p3) vmem(r11+#0):nt = v26 }
+if (!p3) vmem(r11):nt = v26
+
+# CHECK: 282cc022 vmem(r12+#0) = v27.new
+{
+ v27 = vxor(v28, v29)
+ vmem(r12) = v27.new
+}
+
+# CHECK: 286dc022 vmem(r13+#0):nt = v30.new
+{
+ v30 = vxor(v31, v0)
+ vmem(r13):nt = v30.new
+}
+
+# CHECK: 280ec0e1 { v1 = vmemu(r14+#0) }
+v1 = vmemu(r14)
+
+# CHECK: 282fc0e2 { vmemu(r15+#0) = v2 }
+vmemu(r15) = v2
+
+# CHECK: 28b0c0c3 { if (p0) vmemu(r16+#0) = v3 }
+if (p0) vmemu(r16) = v3
+
+# CHECK: 28b1c8e4 { if (!p1) vmemu(r17+#0) = v4 }
+if (!p1) vmemu(r17) = v4
+
diff --git a/test/MC/Lanai/conditional_inst.s b/test/MC/Lanai/conditional_inst.s
new file mode 100644
index 000000000000..58d9b634e4b6
--- /dev/null
+++ b/test/MC/Lanai/conditional_inst.s
@@ -0,0 +1,77 @@
+! RUN: llvm-mc -arch=lanai -show-encoding -show-inst < %s | FileCheck %s
+
+.text
+ .align 4
+ .global jump1
+
+ bt %r5
+! CHECK: encoding: [0xc1,0x00,0x2d,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} JR{{$}}
+! CHECK-NEXT: <MCOperand Reg:12>>
+
+! BR classes
+ bt 0x1234
+! CHECK: encoding: [0xe0,0x00,0x12,0x34]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BT{{$}}
+! CHECK-NEXT: <MCOperand Imm:4660>
+
+jump1:
+ blt 2000
+! CHECK: encoding: [0xec,0x00,0x07,0xd1]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
+! CHECK-NEXT: <MCOperand Imm:2000>
+! CHECK-NEXT: <MCOperand Imm:13>
+
+jump2:
+ blt jump1
+! CHECK: encoding: [0b1110110A,A,A,0x01'A']
+! CHECK-NEXT: fixup A - offset: 0, value: jump1, kind: FIXUP_LANAI_25
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
+! CHECK-NEXT: <MCOperand Expr:(jump1)>
+! CHECK-NEXT: <MCOperand Imm:13>
+
+ bpl jump2
+! CHECK: encoding: [0b1110101A,A,A,A]
+! CHECK-NEXT: fixup A - offset: 0, value: jump2, kind: FIXUP_LANAI_25
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
+! CHECK-NEXT: <MCOperand Expr:(jump2)>
+! CHECK-NEXT: <MCOperand Imm:10>
+
+ bt .
+! CHECK: .Ltmp{{[0-9]+}}
+! CHECK-NEXT: bt .Ltmp{{[0-9]+}}
+! CHECK: encoding: [0b1110000A,A,A,A]
+! CHECK-NEXT: fixup A - offset: 0, value: .Ltmp0, kind: FIXUP_LANAI_25
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BT{{$}}
+! CHECK-NEXT: <MCOperand Expr:(.Ltmp0)>
+
+! SCC
+ spl %r19
+! CHECK: encoding: [0xea,0x4c,0x00,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} SCC{{$}}
+! CHECK-NEXT: <MCOperand Reg:26>
+! CHECK-NEXT: <MCOperand Imm:10>
+
+! BRR
+ bf.r 0x456
+! CHECK: encoding: [0xe1,0x00,0x04,0x57]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} BRR{{$}}
+! CHECK-NEXT: <MCOperand Imm:1110>
+! CHECK-NEXT: <MCOperand Imm:1>
+
+! Conditional ALU
+ add.ge %r13, %r14, %r18
+! CHECK: encoding: [0xc9,0x34,0x70,0x06]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_R
+! CHECK-NEXT: <MCOperand Reg:25>
+! CHECK-NEXT: <MCOperand Reg:20>
+! CHECK-NEXT: <MCOperand Reg:21>
+! CHECK-NEXT: <MCOperand Imm:12>>
+
+ add.f %r13, %r14, %r18
+! CHECK: encoding: [0xc9,0x36,0x70,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_F_R
+! CHECK-NEXT: <MCOperand Reg:25>
+! CHECK-NEXT: <MCOperand Reg:20>
+! CHECK-NEXT: <MCOperand Reg:21>
+! CHECK-NEXT: <MCOperand Imm:0>>
diff --git a/test/MC/Lanai/ctrl-instructions.s b/test/MC/Lanai/ctrl-instructions.s
new file mode 100644
index 000000000000..2e5b2f263f48
--- /dev/null
+++ b/test/MC/Lanai/ctrl-instructions.s
@@ -0,0 +1,13 @@
+! RUN: llvm-mc -triple lanai-unknown-unknown -show-encoding -o - < %s | FileCheck %s
+
+! CHECK: bt .Ltmp0 ! encoding: [0b1110000A,A,A,A]
+! CHECK-NEXT: ! fixup A - offset: 0, value: .Ltmp0, kind: FIXUP_LANAI_25
+ bt 1f
+ nop
+1:
+
+! CHECK: bt foo ! encoding: [0b1110000A,A,A,A]
+! CHECK-NEXT: ! fixup A - offset: 0, value: foo, kind: FIXUP_LANAI_25
+ bt foo
+ nop
+
diff --git a/test/MC/Lanai/lit.local.cfg b/test/MC/Lanai/lit.local.cfg
new file mode 100644
index 000000000000..3f30d055364c
--- /dev/null
+++ b/test/MC/Lanai/lit.local.cfg
@@ -0,0 +1,3 @@
+if not 'Lanai' in config.root.targets:
+ config.unsupported = True
+
diff --git a/test/MC/Lanai/memory.s b/test/MC/Lanai/memory.s
new file mode 100644
index 000000000000..d34f917c7405
--- /dev/null
+++ b/test/MC/Lanai/memory.s
@@ -0,0 +1,247 @@
+! RUN: llvm-mc -arch=lanai -show-encoding -show-inst < %s | FileCheck %s
+
+! Checking the machine instructions generated from ASM instructions for ALU
+! operations.
+
+! RM class
+ ld [%r7], %r6
+! CHECK: encoding: [0x83,0x1c,0x00,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:0>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld [%r6], %r6
+! CHECK: encoding: [0x83,0x18,0x00,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Imm:0>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ st %r6, [%r7]
+! CHECK: encoding: [0x93,0x1c,0x00,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} SW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:0>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld 0x123[%r7*], %r6
+! CHECK: encoding: [0x83,0x1d,0x01,0x23]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:291>
+! CHECK-NEXT: <MCOperand Imm:128>
+
+ ld [%r7--], %r6
+! CHECK: encoding: [0x83,0x1d,0xff,0xfc]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:-4>
+! CHECK-NEXT: <MCOperand Imm:128>
+
+ ld 0x123[%r7], %r6
+! CHECK: encoding: [0x83,0x1e,0x01,0x23]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:291>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld 0x123[*%r7], %r6
+! CHECK: encoding: [0x83,0x1f,0x01,0x23]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:291>
+! CHECK-NEXT: <MCOperand Imm:64>
+
+ ld [--%r7], %r6
+! CHECK: encoding: [0x83,0x1f,0xff,0xfc]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:-4>
+! CHECK-NEXT: <MCOperand Imm:64>
+
+ st %r6, [%r7++]
+! CHECK: encoding: [0x93,0x1d,0x00,0x04]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} SW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:4>
+! CHECK-NEXT: <MCOperand Imm:128>
+
+ st.h %r6, [%r7++]
+! CHECK: encoding: [0xf3,0x1f,0x24,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STH_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:2>
+! CHECK-NEXT: <MCOperand Imm:128>>
+
+ ld.b [--%r7], %r6
+! CHECK: encoding: [0xf3,0x1f,0x4f,0xff]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDBs_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:-1>
+! CHECK-NEXT: <MCOperand Imm:64>>
+
+! Largest RM value before SLS encoding is used
+ ld [0x7fff], %r7
+! CHECK: encoding: [0x83,0x82,0x7f,0xff]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Reg:7>
+! CHECK-NEXT: <MCOperand Imm:32767>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld [0x8000], %r7
+! CHECK: encoding: [0xf3,0x80,0x80,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDADDR{{$}}
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Imm:32768>
+
+! Negative RM value
+ ld [0xfffffe8c], %pc
+! CHECK: encoding: [0x81,0x02,0xfe,0x8c]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:2>
+! CHECK-NEXT: <MCOperand Reg:7>
+! CHECK-NEXT: <MCOperand Imm:-372>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld [-372], %pc
+! CHECK: encoding: [0x81,0x02,0xfe,0x8c]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:2>
+! CHECK-NEXT: <MCOperand Reg:7>
+! CHECK-NEXT: <MCOperand Imm:-372>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+! RRM class
+ ld %r9[%r12*], %r20
+! CHECK: encoding: [0xaa,0x31,0x48,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:128>
+
+ ld %r9[%r12], %r20
+! CHECK: encoding: [0xaa,0x32,0x48,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ ld [%r12 sub %r9], %r20
+! CHECK: encoding: [0xaa,0x32,0x4a,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:2>
+
+ ld %r9[*%r12], %r20
+! CHECK: encoding: [0xaa,0x33,0x48,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDW_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:64>
+
+ st %r20, %r9[*%r12]
+! CHECK: encoding: [0xba,0x33,0x48,0x02]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} SW_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:64>
+
+ ld.b [%r12 sub %r9], %r20
+! CHECK: encoding: [0xaa,0x32,0x4a,0x04]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDBs_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:2>
+
+ uld.h [%r12 sub %r9], %r20
+! CHECK: encoding: [0xaa,0x32,0x4a,0x01]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDHz_RR{{$}}
+! CHECK-NEXT: <MCOperand Reg:27>
+! CHECK-NEXT: <MCOperand Reg:19>
+! CHECK-NEXT: <MCOperand Reg:16>
+! CHECK-NEXT: <MCOperand Imm:2>
+
+
+! SPLS class
+ st.b %r3, [%r6]
+! CHECK: encoding: [0xf1,0x9b,0x60,0x00]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STB_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:10>
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Imm:0>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ st.b %r3, 1[%r6*]
+! CHECK: encoding: [0xf1,0x9b,0x64,0x01]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STB_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:10>
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Imm:1>
+! CHECK-NEXT: <MCOperand Imm:128>
+
+ st.b %r3, 1[%r6]
+! CHECK: encoding: [0xf1,0x9b,0x68,0x01]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STB_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:10>
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Imm:1>
+! CHECK-NEXT: <MCOperand Imm:0>
+
+ st.b %r3, 1[*%r6]
+! CHECK: encoding: [0xf1,0x9b,0x6c,0x01]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STB_RI{{$}}
+! CHECK-NEXT: <MCOperand Reg:10>
+! CHECK-NEXT: <MCOperand Reg:13>
+! CHECK-NEXT: <MCOperand Imm:1>
+! CHECK-NEXT: <MCOperand Imm:64>
+
+! SLS class
+ st %r30, [0x1234]
+! CHECK: encoding: [0xff,0x01,0x12,0x34]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} STADDR{{$}}
+! CHECK-NEXT: <MCOperand Reg:37>
+! CHECK-NEXT: <MCOperand Imm:4660>
+
+ ld [0xfe8c], %pc
+! CHECK: encoding: [0xf1,0x00,0xfe,0x8c]
+! CHECK-NEXT: <MCInst #{{[0-9]+}} LDADDR{{$}}
+! CHECK-NEXT: <MCOperand Reg:2>
+! CHECK-NEXT: <MCOperand Imm:65164>
+
+! SLI class
+ mov hi(x), %r4
+! CHECK: encoding: [0x02,0x01,A,A]
+! CHECK-NEXT: fixup A - offset: 0, value: hi(x), kind: FIXUP_LANAI_HI16{{$}}
+! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_I_HI
+! CHECK-NEXT: <MCOperand Reg:11>
+! CHECK-NEXT: <MCOperand Reg:7>
+! CHECK-NEXT: <MCOperand Expr:(hi(x))>
+
+ mov hi(l+4), %r7
+! CHECK: encoding: [0x03,0x81,A,A]
+! CHECK-NEXT: fixup A - offset: 0, value: (hi(l))+4, kind: FIXUP_LANAI_HI16{{$}}
+! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_I_HI
+! CHECK-NEXT: <MCOperand Reg:14>
+! CHECK-NEXT: <MCOperand Reg:7>
+! CHECK-NEXT: <MCOperand Expr:((hi(l))+4)>
+
diff --git a/test/MC/Lanai/v11.s b/test/MC/Lanai/v11.s
new file mode 100644
index 000000000000..621c47de0235
--- /dev/null
+++ b/test/MC/Lanai/v11.s
@@ -0,0 +1,876 @@
+! RUN: llvm-mc -arch=lanai -show-encoding %s | FileCheck %s
+
+add %r17, 0, %r21
+! CHECK: 0x0a,0xc4,0x00,0x00
+add %r17, 0x00001234, %r21
+! CHECK: 0x0a,0xc4,0x12,0x34
+add %r17, 0x12340000, %r21
+! CHECK: 0x0a,0xc5,0x12,0x34
+add.f %r17, 0, %r21
+! CHECK: 0x0a,0xc6,0x00,0x00
+add.f %r17, 0x00001234, %r21
+! CHECK: 0x0a,0xc6,0x12,0x34
+add.f %r17, 0x12340000, %r21
+! CHECK: 0x0a,0xc7,0x12,0x34
+add %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x90,0x00
+add.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x90,0x00
+addc %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x91,0x00
+addc.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x91,0x00
+addc %r17, 0, %r21
+! CHECK: 0x1a,0xc4,0x00,0x00
+addc %r17, 0x00001234, %r21
+! CHECK: 0x1a,0xc4,0x12,0x34
+addc %r17, 0x12340000, %r21
+! CHECK: 0x1a,0xc5,0x12,0x34
+addc.f %r17, 0, %r21
+! CHECK: 0x1a,0xc6,0x00,0x00
+addc.f %r17, 0x00001234, %r21
+! CHECK: 0x1a,0xc6,0x12,0x34
+addc.f %r17, 0x12340000, %r21
+! CHECK: 0x1a,0xc7,0x12,0x34
+and %r17, 0xffff1234, %r21
+! CHECK: 0x4a,0xc4,0x12,0x34
+and %r17, 0x1234ffff, %r21
+! CHECK: 0x4a,0xc5,0x12,0x34
+and.f %r17, 0xffff1234, %r21
+! CHECK: 0x4a,0xc6,0x12,0x34
+and.f %r17, 0x1234ffff, %r21
+! CHECK: 0x4a,0xc7,0x12,0x34
+and %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x94,0x00
+and.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x94,0x00
+bt 0x123454
+! CHECK: 0xe0,0x12,0x34,0x54
+bf 0x123454
+! CHECK: 0xe0,0x12,0x34,0x55
+bhi 0x123454
+! CHECK: 0xe2,0x12,0x34,0x54
+bugt 0x123454
+! CHECK: 0xe2,0x12,0x34,0x54
+bls 0x123454
+! CHECK: 0xe2,0x12,0x34,0x55
+bule 0x123454
+! CHECK: 0xe2,0x12,0x34,0x55
+bcc 0x123454
+! CHECK: 0xe4,0x12,0x34,0x54
+bult 0x123454
+! CHECK: 0xe4,0x12,0x34,0x54
+bcs 0x123454
+! CHECK: 0xe4,0x12,0x34,0x55
+buge 0x123454
+! CHECK: 0xe4,0x12,0x34,0x55
+bne 0x123454
+! CHECK: 0xe6,0x12,0x34,0x54
+beq 0x123454
+! CHECK: 0xe6,0x12,0x34,0x55
+bvc 0x123454
+! CHECK: 0xe8,0x12,0x34,0x54
+bvs 0x123454
+! CHECK: 0xe8,0x12,0x34,0x55
+bpl 0x123454
+! CHECK: 0xea,0x12,0x34,0x54
+bmi 0x123454
+! CHECK: 0xea,0x12,0x34,0x55
+bge 0x123454
+! CHECK: 0xec,0x12,0x34,0x54
+blt 0x123454
+! CHECK: 0xec,0x12,0x34,0x55
+bgt 0x123454
+! CHECK: 0xee,0x12,0x34,0x54
+bt %r19
+! CHECK: 0xc1,0x00,0x9d,0x00
+bt.r 0x5678
+! CHECK: 0xe1,0x00,0x56,0x7a
+bf.r 0x5678
+! CHECK: 0xe1,0x00,0x56,0x7b
+bhi.r 0x5678
+! CHECK: 0xe3,0x00,0x56,0x7a
+bugt.r 0x5678
+! CHECK: 0xe3,0x00,0x56,0x7a
+bls.r 0x5678
+! CHECK: 0xe3,0x00,0x56,0x7b
+bule.r 0x5678
+! CHECK: 0xe3,0x00,0x56,0x7b
+bcc.r 0x5678
+! CHECK: 0xe5,0x00,0x56,0x7a
+bult.r 0x5678
+! CHECK: 0xe5,0x00,0x56,0x7a
+bcs.r 0x5678
+! CHECK: 0xe5,0x00,0x56,0x7b
+buge.r 0x5678
+! CHECK: 0xe5,0x00,0x56,0x7b
+bne.r 0x5678
+! CHECK: 0xe7,0x00,0x56,0x7a
+beq.r 0x5678
+! CHECK: 0xe7,0x00,0x56,0x7b
+bvc.r 0x5678
+! CHECK: 0xe9,0x00,0x56,0x7a
+bvs.r 0x5678
+! CHECK: 0xe9,0x00,0x56,0x7b
+bpl.r 0x5678
+! CHECK: 0xeb,0x00,0x56,0x7a
+bmi.r 0x5678
+! CHECK: 0xeb,0x00,0x56,0x7b
+bge.r 0x5678
+! CHECK: 0xed,0x00,0x56,0x7a
+blt.r 0x5678
+! CHECK: 0xed,0x00,0x56,0x7b
+bgt.r 0x5678
+! CHECK: 0xef,0x00,0x56,0x7a
+ld -32768[%r17], %r21
+! CHECK: 0x8a,0xc6,0x80,0x00
+ld -1024[%r17], %r21
+! CHECK: 0x8a,0xc6,0xfc,0x00
+ld 0[%r17], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+ld 1024[%r17], %r21
+! CHECK: 0x8a,0xc6,0x04,0x00
+ld 32767[%r17], %r21
+! CHECK: 0x8a,0xc6,0x7f,0xff
+uld -32768[%r17], %r21
+! CHECK: 0x8a,0xc6,0x80,0x00
+uld -1024[%r17], %r21
+! CHECK: 0x8a,0xc6,0xfc,0x00
+uld 0[%r17], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+uld 1024[%r17], %r21
+! CHECK: 0x8a,0xc6,0x04,0x00
+uld 32767[%r17], %r21
+! CHECK: 0x8a,0xc6,0x7f,0xff
+ld %r18[%r17], %r21
+! CHECK: 0xaa,0xc6,0x90,0x02
+uld %r18[%r17], %r21
+! CHECK: 0xaa,0xc6,0x90,0x03
+ld.h -512[%r17], %r21
+! CHECK: 0xfa,0xc7,0x0a,0x00
+ld.h -13[%r17], %r21
+! CHECK: 0xfa,0xc7,0x0b,0xf3
+ld.h 18[%r17], %r21
+! CHECK: 0xfa,0xc7,0x08,0x12
+ld.h 511[%r17], %r21
+! CHECK: 0xfa,0xc7,0x09,0xff
+ld.b -512[%r17], %r21
+! CHECK: 0xfa,0xc7,0x4a,0x00
+ld.b -13[%r17], %r21
+! CHECK: 0xfa,0xc7,0x4b,0xf3
+ld.b 18[%r17], %r21
+! CHECK: 0xfa,0xc7,0x48,0x12
+ld.b 511[%r17], %r21
+! CHECK: 0xfa,0xc7,0x49,0xff
+uld.h -512[%r17], %r21
+! CHECK: 0xfa,0xc7,0x1a,0x00
+uld.h -13[%r17], %r21
+! CHECK: 0xfa,0xc7,0x1b,0xf3
+uld.h 18[%r17], %r21
+! CHECK: 0xfa,0xc7,0x18,0x12
+uld.h 511[%r17], %r21
+! CHECK: 0xfa,0xc7,0x19,0xff
+uld.b -512[%r17], %r21
+! CHECK: 0xfa,0xc7,0x5a,0x00
+uld.b -13[%r17], %r21
+! CHECK: 0xfa,0xc7,0x5b,0xf3
+uld.b 18[%r17], %r21
+! CHECK: 0xfa,0xc7,0x58,0x12
+uld.b 511[%r17], %r21
+! CHECK: 0xfa,0xc7,0x59,0xff
+ld -32768[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x80,0x00
+ld -1024[*%r17], %r21
+! CHECK: 0x8a,0xc7,0xfc,0x00
+ld 0[*%r17], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+ld 1024[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x04,0x00
+ld 32767[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x7f,0xff
+uld -32768[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x80,0x00
+uld -1024[*%r17], %r21
+! CHECK: 0x8a,0xc7,0xfc,0x00
+uld 0[*%r17], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+uld 1024[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x04,0x00
+uld 32767[*%r17], %r21
+! CHECK: 0x8a,0xc7,0x7f,0xff
+ld [--%r17], %r21
+! CHECK: 0x8a,0xc7,0xff,0xfc
+ld [++%r17], %r21
+! CHECK: 0x8a,0xc7,0x00,0x04
+ld.h [--%r17], %r21
+! CHECK: 0xfa,0xc7,0x0f,0xfe
+ld.h [++%r17], %r21
+! CHECK: 0xfa,0xc7,0x0c,0x02
+uld.h [--%r17], %r21
+! CHECK: 0xfa,0xc7,0x1f,0xfe
+uld.h [++%r17], %r21
+! CHECK: 0xfa,0xc7,0x1c,0x02
+ld.b [--%r17], %r21
+! CHECK: 0xfa,0xc7,0x4f,0xff
+ld.b [++%r17], %r21
+! CHECK: 0xfa,0xc7,0x4c,0x01
+uld.b [--%r17], %r21
+! CHECK: 0xfa,0xc7,0x5f,0xff
+uld.b [++%r17], %r21
+! CHECK: 0xfa,0xc7,0x5c,0x01
+ld %r18[*%r17], %r21
+! CHECK: 0xaa,0xc7,0x90,0x02
+uld %r18[*%r17], %r21
+! CHECK: 0xaa,0xc7,0x90,0x03
+ld.h -512[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x0e,0x00
+ld.h -13[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x0f,0xf3
+ld.h 18[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x0c,0x12
+ld.h 511[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x0d,0xff
+ld.b -512[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x4e,0x00
+ld.b -13[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x4f,0xf3
+ld.b 18[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x4c,0x12
+ld.b 511[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x4d,0xff
+uld.h -512[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x1e,0x00
+uld.h -13[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x1f,0xf3
+uld.h 18[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x1c,0x12
+uld.h 511[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x1d,0xff
+uld.b -512[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x5e,0x00
+uld.b -13[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x5f,0xf3
+uld.b 18[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x5c,0x12
+uld.b 511[*%r17], %r21
+! CHECK: 0xfa,0xc7,0x5d,0xff
+ld -32768[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x80,0x00
+ld -1024[%r17*], %r21
+! CHECK: 0x8a,0xc5,0xfc,0x00
+ld 0[%r17*], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+ld 1024[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x04,0x00
+ld 32767[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x7f,0xff
+uld -32768[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x80,0x00
+uld -1024[%r17*], %r21
+! CHECK: 0x8a,0xc5,0xfc,0x00
+uld 0[%r17*], %r21
+! CHECK: 0x8a,0xc4,0x00,0x00
+uld 1024[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x04,0x00
+uld 32767[%r17*], %r21
+! CHECK: 0x8a,0xc5,0x7f,0xff
+ld [%r17--], %r21
+! CHECK: 0x8a,0xc5,0xff,0xfc
+ld [%r17++], %r21
+! CHECK: 0x8a,0xc5,0x00,0x04
+ld.h [%r17--], %r21
+! CHECK: 0xfa,0xc7,0x07,0xfe
+ld.h [%r17++], %r21
+! CHECK: 0xfa,0xc7,0x04,0x02
+uld.h [%r17--], %r21
+! CHECK: 0xfa,0xc7,0x17,0xfe
+uld.h [%r17++], %r21
+! CHECK: 0xfa,0xc7,0x14,0x02
+ld.b [%r17--], %r21
+! CHECK: 0xfa,0xc7,0x47,0xff
+ld.b [%r17++], %r21
+! CHECK: 0xfa,0xc7,0x44,0x01
+uld.b [%r17--], %r21
+! CHECK: 0xfa,0xc7,0x57,0xff
+uld.b [%r17++], %r21
+! CHECK: 0xfa,0xc7,0x54,0x01
+ld %r18[%r17*], %r21
+! CHECK: 0xaa,0xc5,0x90,0x02
+uld %r18[%r17*], %r21
+! CHECK: 0xaa,0xc5,0x90,0x03
+ld.h -512[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x06,0x00
+ld.h -13[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x07,0xf3
+ld.h 18[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x04,0x12
+ld.h 511[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x05,0xff
+ld.b -512[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x46,0x00
+ld.b -13[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x47,0xf3
+ld.b 18[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x44,0x12
+ld.b 511[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x45,0xff
+uld.h -512[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x16,0x00
+uld.h -13[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x17,0xf3
+uld.h 18[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x14,0x12
+uld.h 511[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x15,0xff
+uld.b -512[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x56,0x00
+uld.b -13[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x57,0xf3
+uld.b 18[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x54,0x12
+uld.b 511[%r17*], %r21
+! CHECK: 0xfa,0xc7,0x55,0xff
+ld [%r17 add %r18], %r21
+! CHECK: 0xaa,0xc6,0x90,0x02
+ld [%r17 addc %r18], %r21
+! CHECK: 0xaa,0xc6,0x91,0x02
+ld [%r17 sub %r18], %r21
+! CHECK: 0xaa,0xc6,0x92,0x02
+ld [%r17 subb %r18], %r21
+! CHECK: 0xaa,0xc6,0x93,0x02
+ld [%r17 and %r18], %r21
+! CHECK: 0xaa,0xc6,0x94,0x02
+ld [%r17 or %r18], %r21
+! CHECK: 0xaa,0xc6,0x95,0x02
+ld [%r17 xor %r18], %r21
+! CHECK: 0xaa,0xc6,0x96,0x02
+ld [%r17 sh %r18], %r21
+! CHECK: 0xaa,0xc6,0x97,0x82
+ld [%r17 sha %r18], %r21
+! CHECK: 0xaa,0xc6,0x97,0xc2
+ld [*%r17 add %r18], %r21
+! CHECK: 0xaa,0xc7,0x90,0x02
+ld [*%r17 addc %r18], %r21
+! CHECK: 0xaa,0xc7,0x91,0x02
+ld [*%r17 sub %r18], %r21
+! CHECK: 0xaa,0xc7,0x92,0x02
+ld [*%r17 subb %r18], %r21
+! CHECK: 0xaa,0xc7,0x93,0x02
+ld [*%r17 and %r18], %r21
+! CHECK: 0xaa,0xc7,0x94,0x02
+ld [*%r17 or %r18], %r21
+! CHECK: 0xaa,0xc7,0x95,0x02
+ld [*%r17 xor %r18], %r21
+! CHECK: 0xaa,0xc7,0x96,0x02
+ld [*%r17 sh %r18], %r21
+! CHECK: 0xaa,0xc7,0x97,0x82
+ld [*%r17 sha %r18], %r21
+! CHECK: 0xaa,0xc7,0x97,0xc2
+ld [%r17* add %r18], %r21
+! CHECK: 0xaa,0xc5,0x90,0x02
+ld [%r17* addc %r18], %r21
+! CHECK: 0xaa,0xc5,0x91,0x02
+ld [%r17* sub %r18], %r21
+! CHECK: 0xaa,0xc5,0x92,0x02
+ld [%r17* subb %r18], %r21
+! CHECK: 0xaa,0xc5,0x93,0x02
+ld [%r17* and %r18], %r21
+! CHECK: 0xaa,0xc5,0x94,0x02
+ld [%r17* or %r18], %r21
+! CHECK: 0xaa,0xc5,0x95,0x02
+ld [%r17* xor %r18], %r21
+! CHECK: 0xaa,0xc5,0x96,0x02
+ld [%r17* sh %r18], %r21
+! CHECK: 0xaa,0xc5,0x97,0x82
+ld [%r17* sha %r18], %r21
+! CHECK: 0xaa,0xc5,0x97,0xc2
+ld [0x12344], %r21
+! CHECK: 0xfa,0x84,0x23,0x44
+leadz %r17, %r21
+! CHECK: 0xda,0xc4,0x00,0x02
+mov 0, %r17
+! CHECK: 0x08,0x80,0x00,0x00
+mov 0x00001234, %r17
+! CHECK: 0x08,0x80,0x12,0x34
+mov 0x12340000, %r17
+! CHECK: 0x08,0x81,0x12,0x34
+mov 0xaaaa0000, %r17
+! CHECK: 0x08,0x81,0xaa,0xaa
+mov %r18, %r17
+! CHECK: 0xc8,0xc8,0x00,0x00
+mov 0x12344, %r17
+! CHECK: 0xf8,0x86,0x23,0x44
+mov 0xffff1234, %r17
+! CHECK: 0x48,0x84,0x12,0x34
+mov 0x1234ffff, %r17
+! CHECK: 0x48,0x85,0x12,0x34
+nop
+! CHECK: 0x00,0x00,0x00,0x01
+or %r17, 0, %r21
+! CHECK: 0x5a,0xc4,0x00,0x00
+or %r17, 0x00001234, %r21
+! CHECK: 0x5a,0xc4,0x12,0x34
+or %r17, 0x12340000, %r21
+! CHECK: 0x5a,0xc5,0x12,0x34
+or.f %r17, 0, %r21
+! CHECK: 0x5a,0xc6,0x00,0x00
+or.f %r17, 0x00001234, %r21
+! CHECK: 0x5a,0xc6,0x12,0x34
+or.f %r17, 0x12340000, %r21
+! CHECK: 0x5a,0xc7,0x12,0x34
+or %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x95,0x00
+or.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x95,0x00
+popc %r17, %r21
+! CHECK: 0xda,0xc4,0x00,0x01
+st %r21
+! CHECK: 0xe0,0x54,0x00,0x02
+shi %r21
+! CHECK: 0xe2,0x54,0x00,0x02
+sugt %r21
+! CHECK: 0xe2,0x54,0x00,0x02
+sls %r21
+! CHECK: 0xe2,0x54,0x00,0x03
+sule %r21
+! CHECK: 0xe2,0x54,0x00,0x03
+scc %r21
+! CHECK: 0xe4,0x54,0x00,0x02
+sult %r21
+! CHECK: 0xe4,0x54,0x00,0x02
+scs %r21
+! CHECK: 0xe4,0x54,0x00,0x03
+suge %r21
+! CHECK: 0xe4,0x54,0x00,0x03
+sne %r21
+! CHECK: 0xe6,0x54,0x00,0x02
+seq %r21
+! CHECK: 0xe6,0x54,0x00,0x03
+svc %r21
+! CHECK: 0xe8,0x54,0x00,0x02
+svs %r21
+! CHECK: 0xe8,0x54,0x00,0x03
+spl %r21
+! CHECK: 0xea,0x54,0x00,0x02
+smi %r21
+! CHECK: 0xea,0x54,0x00,0x03
+sge %r21
+! CHECK: 0xec,0x54,0x00,0x02
+slt %r21
+! CHECK: 0xec,0x54,0x00,0x03
+sgt %r21
+! CHECK: 0xee,0x54,0x00,0x02
+sh %r17, -31, %r21
+! CHECK: 0x7a,0xc4,0xff,0xe1
+sh %r17, -5, %r21
+! CHECK: 0x7a,0xc4,0xff,0xfb
+sh %r17, 2, %r21
+! CHECK: 0x7a,0xc4,0x00,0x02
+sh %r17, 31, %r21
+! CHECK: 0x7a,0xc4,0x00,0x1f
+sh.f %r17, -31, %r21
+! CHECK: 0x7a,0xc6,0xff,0xe1
+sh.f %r17, -5, %r21
+! CHECK: 0x7a,0xc6,0xff,0xfb
+sh.f %r17, 2, %r21
+! CHECK: 0x7a,0xc6,0x00,0x02
+sh.f %r17, 31, %r21
+! CHECK: 0x7a,0xc6,0x00,0x1f
+sh %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x97,0x80
+sh.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x97,0x80
+sha %r17, -31, %r21
+! CHECK: 0x7a,0xc5,0xff,0xe1
+sha %r17, -5, %r21
+! CHECK: 0x7a,0xc5,0xff,0xfb
+sha %r17, 2, %r21
+! CHECK: 0x7a,0xc5,0x00,0x02
+sha %r17, 31, %r21
+! CHECK: 0x7a,0xc5,0x00,0x1f
+sha.f %r17, -31, %r21
+! CHECK: 0x7a,0xc7,0xff,0xe1
+sha.f %r17, -5, %r21
+! CHECK: 0x7a,0xc7,0xff,0xfb
+sha.f %r17, 2, %r21
+! CHECK: 0x7a,0xc7,0x00,0x02
+sha.f %r17, 31, %r21
+! CHECK: 0x7a,0xc7,0x00,0x1f
+sha %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x97,0xc0
+sha.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x97,0xc0
+st %r17, -32768[%r19]
+! CHECK: 0x98,0xce,0x80,0x00
+st %r17, -1024[%r19]
+! CHECK: 0x98,0xce,0xfc,0x00
+st %r17, 0[%r19]
+! CHECK: 0x98,0xcc,0x00,0x00
+st %r17, 1024[%r19]
+! CHECK: 0x98,0xce,0x04,0x00
+st %r17, 32767[%r19]
+! CHECK: 0x98,0xce,0x7f,0xff
+st.h %r17, -512[%r19]
+! CHECK: 0xf8,0xcf,0x2a,0x00
+st.h %r17, -13[%r19]
+! CHECK: 0xf8,0xcf,0x2b,0xf3
+st.h %r17, 18[%r19]
+! CHECK: 0xf8,0xcf,0x28,0x12
+st.h %r17, 511[%r19]
+! CHECK: 0xf8,0xcf,0x29,0xff
+st.b %r17, -512[%r19]
+! CHECK: 0xf8,0xcf,0x6a,0x00
+st.b %r17, -13[%r19]
+! CHECK: 0xf8,0xcf,0x6b,0xf3
+st.b %r17, 18[%r19]
+! CHECK: 0xf8,0xcf,0x68,0x12
+st.b %r17, 511[%r19]
+! CHECK: 0xf8,0xcf,0x69,0xff
+st %r17, %r18[%r19]
+! CHECK: 0xb8,0xce,0x90,0x02
+st.h %r17, %r18[%r19]
+! CHECK: 0xb8,0xce,0x90,0x00
+st.b %r17, %r18[%r19]
+! CHECK: 0xb8,0xce,0x90,0x04
+st %r17, -32768[*%r19]
+! CHECK: 0x98,0xcf,0x80,0x00
+st %r17, -1024[*%r19]
+! CHECK: 0x98,0xcf,0xfc,0x00
+st %r17, 0[*%r19]
+! CHECK: 0x98,0xcc,0x00,0x00
+st %r17, 1024[*%r19]
+! CHECK: 0x98,0xcf,0x04,0x00
+st %r17, 32767[*%r19]
+! CHECK: 0x98,0xcf,0x7f,0xff
+st.h %r17, -512[*%r19]
+! CHECK: 0xf8,0xcf,0x2e,0x00
+st.h %r17, -13[*%r19]
+! CHECK: 0xf8,0xcf,0x2f,0xf3
+st.h %r17, 18[*%r19]
+! CHECK: 0xf8,0xcf,0x2c,0x12
+st.h %r17, 511[*%r19]
+! CHECK: 0xf8,0xcf,0x2d,0xff
+st.b %r17, -512[*%r19]
+! CHECK: 0xf8,0xcf,0x6e,0x00
+st.b %r17, -13[*%r19]
+! CHECK: 0xf8,0xcf,0x6f,0xf3
+st.b %r17, 18[*%r19]
+! CHECK: 0xf8,0xcf,0x6c,0x12
+st.b %r17, 511[*%r19]
+! CHECK: 0xf8,0xcf,0x6d,0xff
+st %r17, [--%r19]
+! CHECK: 0x98,0xcf,0xff,0xfc
+st %r17, [++%r19]
+! CHECK: 0x98,0xcf,0x00,0x04
+st.h %r17, [--%r19]
+! CHECK: 0xf8,0xcf,0x2f,0xfe
+st.h %r17, [++%r19]
+! CHECK: 0xf8,0xcf,0x2c,0x02
+st.b %r17, [--%r19]
+! CHECK: 0xf8,0xcf,0x6f,0xff
+st.b %r17, [++%r19]
+! CHECK: 0xf8,0xcf,0x6c,0x01
+st %r17, %r18[*%r19]
+! CHECK: 0xb8,0xcf,0x90,0x02
+st.h %r17, %r18[*%r19]
+! CHECK: 0xb8,0xcf,0x90,0x00
+st.b %r17, %r18[*%r19]
+! CHECK: 0xb8,0xcf,0x90,0x04
+st %r17, -32768[%r19*]
+! CHECK: 0x98,0xcd,0x80,0x00
+st %r17, -1024[%r19*]
+! CHECK: 0x98,0xcd,0xfc,0x00
+st %r17, 0[%r19*]
+! CHECK: 0x98,0xcc,0x00,0x00
+st %r17, 1024[%r19*]
+! CHECK: 0x98,0xcd,0x04,0x00
+st %r17, 32767[%r19*]
+! CHECK: 0x98,0xcd,0x7f,0xff
+st.h %r17, -512[%r19*]
+! CHECK: 0xf8,0xcf,0x26,0x00
+st.h %r17, -13[%r19*]
+! CHECK: 0xf8,0xcf,0x27,0xf3
+st.h %r17, 18[%r19*]
+! CHECK: 0xf8,0xcf,0x24,0x12
+st.h %r17, 511[%r19*]
+! CHECK: 0xf8,0xcf,0x25,0xff
+st.b %r17, -512[%r19*]
+! CHECK: 0xf8,0xcf,0x66,0x00
+st.b %r17, -13[%r19*]
+! CHECK: 0xf8,0xcf,0x67,0xf3
+st.b %r17, 18[%r19*]
+! CHECK: 0xf8,0xcf,0x64,0x12
+st.b %r17, 511[%r19*]
+! CHECK: 0xf8,0xcf,0x65,0xff
+st %r17, [%r19--]
+! CHECK: 0x98,0xcd,0xff,0xfc
+st %r17, [%r19++]
+! CHECK: 0x98,0xcd,0x00,0x04
+st.h %r17, [%r19--]
+! CHECK: 0xf8,0xcf,0x27,0xfe
+st.h %r17, [%r19++]
+! CHECK: 0xf8,0xcf,0x24,0x02
+st.b %r17, [%r19--]
+! CHECK: 0xf8,0xcf,0x67,0xff
+st.b %r17, [%r19++]
+! CHECK: 0xf8,0xcf,0x64,0x01
+st %r17, %r18[%r19*]
+! CHECK: 0xb8,0xcd,0x90,0x02
+st.h %r17, %r18[%r19*]
+! CHECK: 0xb8,0xcd,0x90,0x00
+st.b %r17, %r18[%r19*]
+! CHECK: 0xb8,0xcd,0x90,0x04
+st %r21, [%r17 add %r18]
+! CHECK: 0xba,0xc6,0x90,0x02
+st %r21, [%r17 addc %r18]
+! CHECK: 0xba,0xc6,0x91,0x02
+st %r21, [%r17 sub %r18]
+! CHECK: 0xba,0xc6,0x92,0x02
+st %r21, [%r17 subb %r18]
+! CHECK: 0xba,0xc6,0x93,0x02
+st %r21, [%r17 and %r18]
+! CHECK: 0xba,0xc6,0x94,0x02
+st %r21, [%r17 or %r18]
+! CHECK: 0xba,0xc6,0x95,0x02
+st %r21, [%r17 xor %r18]
+! CHECK: 0xba,0xc6,0x96,0x02
+st %r21, [%r17 sh %r18]
+! CHECK: 0xba,0xc6,0x97,0x82
+st %r21, [%r17 sha %r18]
+! CHECK: 0xba,0xc6,0x97,0xc2
+st.h %r21, [%r17 add %r18]
+! CHECK: 0xba,0xc6,0x90,0x00
+st.h %r21, [%r17 addc %r18]
+! CHECK: 0xba,0xc6,0x91,0x00
+st.h %r21, [%r17 sub %r18]
+! CHECK: 0xba,0xc6,0x92,0x00
+st.h %r21, [%r17 subb %r18]
+! CHECK: 0xba,0xc6,0x93,0x00
+st.h %r21, [%r17 and %r18]
+! CHECK: 0xba,0xc6,0x94,0x00
+st.h %r21, [%r17 or %r18]
+! CHECK: 0xba,0xc6,0x95,0x00
+st.h %r21, [%r17 xor %r18]
+! CHECK: 0xba,0xc6,0x96,0x00
+st.h %r21, [%r17 sh %r18]
+! CHECK: 0xba,0xc6,0x97,0x80
+st.h %r21, [%r17 sha %r18]
+! CHECK: 0xba,0xc6,0x97,0xc0
+st.b %r21, [%r17 add %r18]
+! CHECK: 0xba,0xc6,0x90,0x04
+st.b %r21, [%r17 addc %r18]
+! CHECK: 0xba,0xc6,0x91,0x04
+st.b %r21, [%r17 sub %r18]
+! CHECK: 0xba,0xc6,0x92,0x04
+st.b %r21, [%r17 subb %r18]
+! CHECK: 0xba,0xc6,0x93,0x04
+st.b %r21, [%r17 and %r18]
+! CHECK: 0xba,0xc6,0x94,0x04
+st.b %r21, [%r17 or %r18]
+! CHECK: 0xba,0xc6,0x95,0x04
+st.b %r21, [%r17 xor %r18]
+! CHECK: 0xba,0xc6,0x96,0x04
+st.b %r21, [%r17 sh %r18]
+! CHECK: 0xba,0xc6,0x97,0x84
+st.b %r21, [%r17 sha %r18]
+! CHECK: 0xba,0xc6,0x97,0xc4
+st %r21, [*%r17 add %r18]
+! CHECK: 0xba,0xc7,0x90,0x02
+st %r21, [*%r17 addc %r18]
+! CHECK: 0xba,0xc7,0x91,0x02
+st %r21, [*%r17 sub %r18]
+! CHECK: 0xba,0xc7,0x92,0x02
+st %r21, [*%r17 subb %r18]
+! CHECK: 0xba,0xc7,0x93,0x02
+st %r21, [*%r17 and %r18]
+! CHECK: 0xba,0xc7,0x94,0x02
+st %r21, [*%r17 or %r18]
+! CHECK: 0xba,0xc7,0x95,0x02
+st %r21, [*%r17 xor %r18]
+! CHECK: 0xba,0xc7,0x96,0x02
+st %r21, [*%r17 sha %r18]
+! CHECK: 0xba,0xc7,0x97,0xc2
+st.h %r21, [*%r17 add %r18]
+! CHECK: 0xba,0xc7,0x90,0x00
+st.h %r21, [*%r17 addc %r18]
+! CHECK: 0xba,0xc7,0x91,0x00
+st.h %r21, [*%r17 sub %r18]
+! CHECK: 0xba,0xc7,0x92,0x00
+st.h %r21, [*%r17 subb %r18]
+! CHECK: 0xba,0xc7,0x93,0x00
+st.h %r21, [*%r17 and %r18]
+! CHECK: 0xba,0xc7,0x94,0x00
+st.h %r21, [*%r17 or %r18]
+! CHECK: 0xba,0xc7,0x95,0x00
+st.h %r21, [*%r17 xor %r18]
+! CHECK: 0xba,0xc7,0x96,0x00
+st.h %r21, [*%r17 sha %r18]
+! CHECK: 0xba,0xc7,0x97,0xc0
+st.b %r21, [*%r17 add %r18]
+! CHECK: 0xba,0xc7,0x90,0x04
+st.b %r21, [*%r17 addc %r18]
+! CHECK: 0xba,0xc7,0x91,0x04
+st.b %r21, [*%r17 sub %r18]
+! CHECK: 0xba,0xc7,0x92,0x04
+st.b %r21, [*%r17 subb %r18]
+! CHECK: 0xba,0xc7,0x93,0x04
+st.b %r21, [*%r17 and %r18]
+! CHECK: 0xba,0xc7,0x94,0x04
+st.b %r21, [*%r17 or %r18]
+! CHECK: 0xba,0xc7,0x95,0x04
+st.b %r21, [*%r17 xor %r18]
+! CHECK: 0xba,0xc7,0x96,0x04
+st.b %r21, [*%r17 sha %r18]
+! CHECK: 0xba,0xc7,0x97,0xc4
+st %r21, [%r17* add %r18]
+! CHECK: 0xba,0xc5,0x90,0x02
+st %r21, [%r17* addc %r18]
+! CHECK: 0xba,0xc5,0x91,0x02
+st %r21, [%r17* sub %r18]
+! CHECK: 0xba,0xc5,0x92,0x02
+st %r21, [%r17* subb %r18]
+! CHECK: 0xba,0xc5,0x93,0x02
+st %r21, [%r17* and %r18]
+! CHECK: 0xba,0xc5,0x94,0x02
+st %r21, [%r17* or %r18]
+! CHECK: 0xba,0xc5,0x95,0x02
+st %r21, [%r17* xor %r18]
+! CHECK: 0xba,0xc5,0x96,0x02
+st %r21, [%r17* sh %r18]
+! CHECK: 0xba,0xc5,0x97,0x82
+st %r21, [%r17* sha %r18]
+! CHECK: 0xba,0xc5,0x97,0xc2
+st.h %r21, [%r17* add %r18]
+! CHECK: 0xba,0xc5,0x90,0x00
+st.h %r21, [%r17* addc %r18]
+! CHECK: 0xba,0xc5,0x91,0x00
+st.h %r21, [%r17* sub %r18]
+! CHECK: 0xba,0xc5,0x92,0x00
+st.h %r21, [%r17* subb %r18]
+! CHECK: 0xba,0xc5,0x93,0x00
+st.h %r21, [%r17* and %r18]
+! CHECK: 0xba,0xc5,0x94,0x00
+st.h %r21, [%r17* or %r18]
+! CHECK: 0xba,0xc5,0x95,0x00
+st.h %r21, [%r17* xor %r18]
+! CHECK: 0xba,0xc5,0x96,0x00
+st.h %r21, [%r17* sh %r18]
+! CHECK: 0xba,0xc5,0x97,0x80
+st.h %r21, [%r17* sha %r18]
+! CHECK: 0xba,0xc5,0x97,0xc0
+st.b %r21, [%r17* add %r18]
+! CHECK: 0xba,0xc5,0x90,0x04
+st.b %r21, [%r17* addc %r18]
+! CHECK: 0xba,0xc5,0x91,0x04
+st.b %r21, [%r17* sub %r18]
+! CHECK: 0xba,0xc5,0x92,0x04
+st.b %r21, [%r17* subb %r18]
+! CHECK: 0xba,0xc5,0x93,0x04
+st.b %r21, [%r17* and %r18]
+! CHECK: 0xba,0xc5,0x94,0x04
+st.b %r21, [%r17* or %r18]
+! CHECK: 0xba,0xc5,0x95,0x04
+st.b %r21, [%r17* xor %r18]
+! CHECK: 0xba,0xc5,0x96,0x04
+st.b %r21, [%r17* sh %r18]
+! CHECK: 0xba,0xc5,0x97,0x84
+st.b %r21, [%r17* sha %r18]
+! CHECK: 0xba,0xc5,0x97,0xc4
+st %r21, [0x12344]
+! CHECK: 0xfa,0x85,0x23,0x44
+sub %r17, 0, %r21
+! CHECK: 0x2a,0xc4,0x00,0x00
+sub %r17, 0x00001234, %r21
+! CHECK: 0x2a,0xc4,0x12,0x34
+sub %r17, 0x12340000, %r21
+! CHECK: 0x2a,0xc5,0x12,0x34
+sub.f %r17, 0, %r21
+! CHECK: 0x2a,0xc6,0x00,0x00
+sub.f %r17, 0x00001234, %r21
+! CHECK: 0x2a,0xc6,0x12,0x34
+sub.f %r17, 0x12340000, %r21
+! CHECK: 0x2a,0xc7,0x12,0x34
+sub %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x92,0x00
+sub.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x92,0x00
+subb %r17, 0, %r21
+! CHECK: 0x3a,0xc4,0x00,0x00
+subb %r17, 0x00001234, %r21
+! CHECK: 0x3a,0xc4,0x12,0x34
+subb %r17, 0x12340000, %r21
+! CHECK: 0x3a,0xc5,0x12,0x34
+subb.f %r17, 0, %r21
+! CHECK: 0x3a,0xc6,0x00,0x00
+subb.f %r17, 0x00001234, %r21
+! CHECK: 0x3a,0xc6,0x12,0x34
+subb.f %r17, 0x12340000, %r21
+! CHECK: 0x3a,0xc7,0x12,0x34
+subb %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x93,0x00
+subb.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x93,0x00
+xor %r17, 0, %r21
+! CHECK: 0x6a,0xc4,0x00,0x00
+xor %r17, 0x00001234, %r21
+! CHECK: 0x6a,0xc4,0x12,0x34
+xor %r17, 0x12340000, %r21
+! CHECK: 0x6a,0xc5,0x12,0x34
+xor.f %r17, 0, %r21
+! CHECK: 0x6a,0xc6,0x00,0x00
+xor.f %r17, 0x00001234, %r21
+! CHECK: 0x6a,0xc6,0x12,0x34
+xor.f %r17, 0x12340000, %r21
+! CHECK: 0x6a,0xc7,0x12,0x34
+xor %r17, %r18, %r21
+! CHECK: 0xca,0xc4,0x96,0x00
+xor.f %r17, %r18, %r21
+! CHECK: 0xca,0xc6,0x96,0x00
+sel.ne %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x03
+sel.gt %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x07
+xor.lt %r17, %r18, %r21
+! CHECK: 0xca,0xc5,0x96,0x06
+xor.f.eq %r17, %r18, %r21
+! CHECK: 0xca,0xc7,0x96,0x03
+add.ge %r13, %r14, %r18
+! CHECK: 0xc9,0x34,0x70,0x06
+spl %r19
+! CHECK: 0xea,0x4c,0x00,0x02
+bt 0x1234
+! CHECK: 0xe0,0x00,0x12,0x34
+sel.t %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x00
+sel.f %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x00
+sel.ugt %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x01
+sel.ule %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x01
+sel.ult %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x02
+sel.uge %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x02
+sel.ne %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x03
+sel.eq %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x03
+sel.vc %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x04
+sel.vs %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x04
+sel.pl %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x05
+sel.mi %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x05
+sel.ge %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x06
+sel.lt %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x06
+sel.gt %r9, %r15, %r12
+! CHECK: 0xc6,0x24,0x7f,0x07
+sel.le %r9, %r15, %r12
+! CHECK: 0xc6,0x25,0x7f,0x07
+trailz %r15, %r12
+! CHECK: 0xd6,0x3c,0x00,0x03
diff --git a/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll b/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll
index b52a5abecab2..0cfb764a835a 100644
--- a/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll
+++ b/test/MC/MachO/AArch64/cstexpr-gotpcrel.ll
@@ -28,8 +28,8 @@
; CHECK: .long 5
; CHECK-NOT: .long _localgotequiv-(_table+20)
-; CHECK-NEXT: Ltmp1:
-; CHECK-NEXT: .long _localfoo@GOT-Ltmp1
+; CHECK-NEXT: Ltmp0:
+; CHECK-NEXT: .long _localfoo@GOT-Ltmp0
%struct.data { i32 4, %struct.anon { i32 5,
i32 trunc (i64 sub (i64 ptrtoint (i32** @localgotequiv to i64),
i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data], [4 x %struct.data]* @table, i32 0, i64 1, i32 1, i32 1) to i64))
@@ -38,8 +38,8 @@
; CHECK: .long 5
; CHECK-NOT: _extgotequiv-(_table+32)
-; CHECK-NEXT: Ltmp2:
-; CHECK-NEXT: _extfoo@GOT-Ltmp2
+; CHECK-NEXT: Ltmp1:
+; CHECK-NEXT: _extfoo@GOT-Ltmp1
%struct.data { i32 4, %struct.anon { i32 5,
i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64),
i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data], [4 x %struct.data]* @table, i32 0, i64 2, i32 1, i32 1) to i64))
@@ -49,7 +49,7 @@
; supported on x86-64 but not on ARM64
; CHECK: .long 5
-; CHECK-NEXT: .long (l_extgotequiv-(_table+44))+24
+; CHECK-NEXT: .long ((l_extgotequiv-_table)-44)+24
%struct.data { i32 4, %struct.anon { i32 5,
i32 add (i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64),
i64 ptrtoint (i32* getelementptr inbounds ([4 x %struct.data], [4 x %struct.data]* @table, i32 0, i64 3, i32 1, i32 1) to i64))
@@ -60,8 +60,8 @@
; Test multiple uses of GOT equivalents.
; CHECK-LABEL: _delta
-; CHECK: Ltmp3:
-; CHECK-NEXT: .long _extfoo@GOT-Ltmp3
+; CHECK: Ltmp2:
+; CHECK-NEXT: .long _extfoo@GOT-Ltmp2
@delta = global i32 trunc (i64 sub (i64 ptrtoint (i32** @extgotequiv to i64),
i64 ptrtoint (i32* @delta to i64))
to i32)
diff --git a/test/MC/MachO/AArch64/data-in-code.s b/test/MC/MachO/AArch64/data-in-code.s
new file mode 100644
index 000000000000..cf7d860a622f
--- /dev/null
+++ b/test/MC/MachO/AArch64/data-in-code.s
@@ -0,0 +1,49 @@
+// RUN: llvm-mc -triple arm64-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s
+ .text
+_foo:
+.data_region
+ .long 10
+.end_data_region
+.data_region jt32
+ .long 1
+.end_data_region
+.data_region jt16
+ .short 2
+.end_data_region
+.data_region jt8
+ .byte 3
+.end_data_region
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O arm64
+// CHECK: Arch: aarch64
+// CHECK: AddressSize: 64bit
+// CHECK: DataInCode {
+// CHECK: Data size: 32
+// CHECK: Data entries [
+// CHECK: Entry {
+// CHECK: Index: 0
+// CHECK: Offset: 0
+// CHECK: Length: 4
+// CHECK: Kind: 1
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 1
+// CHECK: Offset: 4
+// CHECK: Length: 4
+// CHECK: Kind: 4
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 2
+// CHECK: Offset: 8
+// CHECK: Length: 2
+// CHECK: Kind: 3
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 3
+// CHECK: Offset: 10
+// CHECK: Length: 1
+// CHECK: Kind: 2
+// CHECK: }
+// CHECK: ]
+// CHECK: }
diff --git a/test/MC/MachO/absolute.s b/test/MC/MachO/absolute.s
index 36a0ae5ec5bb..26850a2d09ab 100644
--- a/test/MC/MachO/absolute.s
+++ b/test/MC/MachO/absolute.s
@@ -79,7 +79,8 @@ foo_equals2 = (_foo - _bar + 0xffff0000)
// CHECK: Type: Section (0xE)
// CHECK: Section: __text (0x1)
// CHECK: RefType: UndefinedNonLazy (0x0)
-// CHECK: Flags [ (0x20)
+// CHECK: Flags [ (0x220)
+// CHECK: AltEntry (0x200)
// CHECK: NoDeadStrip (0x20)
// CHECK: ]
// CHECK: Value: 0xFFFF0001
@@ -99,7 +100,8 @@ foo_equals2 = (_foo - _bar + 0xffff0000)
// CHECK: Type: Section (0xE)
// CHECK: Section: __text (0x1)
// CHECK: RefType: UndefinedNonLazy (0x0)
-// CHECK: Flags [ (0x0)
+// CHECK: Flags [ (0x200)
+// CHECK: AltEntry (0x200)
// CHECK: ]
// CHECK: Value: 0xFFFF0001
// CHECK: }
@@ -118,7 +120,8 @@ foo_equals2 = (_foo - _bar + 0xffff0000)
// CHECK: Type: Section (0xE)
// CHECK: Section: __text (0x1)
// CHECK: RefType: UndefinedNonLazy (0x0)
-// CHECK: Flags [ (0x20)
+// CHECK: Flags [ (0x220)
+// CHECK: AltEntry (0x200)
// CHECK: NoDeadStrip (0x20)
// CHECK: ]
// CHECK: Value: 0xFFFF0001
diff --git a/test/MC/MachO/altentry.s b/test/MC/MachO/altentry.s
new file mode 100644
index 000000000000..e63db2b0ca18
--- /dev/null
+++ b/test/MC/MachO/altentry.s
@@ -0,0 +1,77 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin -filetype=obj %s -o - | llvm-readobj -t | FileCheck %s
+
+// CHECK: Symbol {
+// CHECK: Name: _foo
+// CHECK: Flags [ (0x0)
+// CHECK: Value: 0x0
+
+// CHECK: Symbol {
+// CHECK: Name: _bar
+// CHECK: Flags [ (0x0)
+// CHECK: Value: 0x0
+
+// CHECK: Symbol {
+// CHECK: Name: _baz
+// CHECK: Flags [ (0x200)
+// CHECK: Value: 0x1
+
+// CHECK: Symbol {
+// CHECK: Name: _offsetsym0
+// CHECK: Flags [ (0x0)
+// CHECK: Value: 0x8
+
+// CHECK: Symbol {
+// CHECK: Name: _offsetsym1
+// CHECK: Flags [ (0x200)
+// CHECK: Value: 0xC
+
+// CHECK: Symbol {
+// CHECK: Name: _offsetsym2
+// CHECK: Flags [ (0x200)
+// CHECK: Value: 0x10
+
+// CHECK: Symbol {
+// CHECK: Name: _offsetsym3
+// CHECK: Flags [ (0x200)
+// CHECK: Value: 0x20
+
+// CHECK: Symbol {
+// CHECK: Symbol {
+// CHECK: Symbol {
+
+ .section __TEXT,__text,regular,pure_instructions
+
+_foo:
+_bar = _foo
+ nop
+_baz = .
+
+ .comm _g0,4,2
+
+ .section __DATA,__data
+ .globl _s0
+ .align 3
+_s0:
+ .long 31
+ .long 32
+ .quad _g0
+
+ .globl _s1
+ .align 3
+_s1:
+ .long 33
+ .long 34
+ .quad _g0
+
+ .globl _offsetsym0
+ _offsetsym0 = _s0
+ .globl _offsetsym1
+ .alt_entry _offsetsym1
+ _offsetsym1 = _s0+4
+ .globl _offsetsym2
+ .alt_entry _offsetsym2
+ _offsetsym2 = _s0+8
+ .globl _offsetsym3
+ .alt_entry _offsetsym3
+ _offsetsym3 = _s1+8
+ .subsections_via_symbols
diff --git a/test/MC/MachO/empty-twice.ll b/test/MC/MachO/empty-twice.ll
index 6914c73a58d1..6ac6a0b5227a 100644
--- a/test/MC/MachO/empty-twice.ll
+++ b/test/MC/MachO/empty-twice.ll
@@ -6,7 +6,7 @@
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "LLVM", isOptimized: true)
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "LLVM", isOptimized: true, emissionKind: FullDebug)
!1 = !DIFile(filename: "<stdin>", directory: "/")
!3 = !{i32 2, !"Dwarf Version", i32 4}
!4 = !{i32 2, !"Debug Info Version", i32 3}
diff --git a/test/MC/MachO/undefined-directional.s b/test/MC/MachO/undefined-directional.s
new file mode 100644
index 000000000000..80af9caf68c2
--- /dev/null
+++ b/test/MC/MachO/undefined-directional.s
@@ -0,0 +1,11 @@
+// RUN: not llvm-mc -triple x86_64-apple-macosx -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s
+
+// CHECK: [[@LINE+1]]:{{[0-9]+}}: error: directional label undefined
+ jmp 1b
+// CHECK: [[@LINE+1]]:{{[0-9]+}}: error: directional label undefined
+ jmp 1f
+# 10 "wibble.s"
+// CHECK: wibble.s:11:{{[0-9]+}}: error: directional label undefined
+ jmp 2f
+
+# 42 "invalid.s"
diff --git a/test/MC/MachO/variable-exprs.s b/test/MC/MachO/variable-exprs.s
index 85f395fd3be8..5369622d8cfe 100644
--- a/test/MC/MachO/variable-exprs.s
+++ b/test/MC/MachO/variable-exprs.s
@@ -151,7 +151,7 @@ Lt0_x = Lt0_a - Lt0_b
// CHECK-I386: Type: Section (0xE)
// CHECK-I386: Section: __data (0x2)
// CHECK-I386: RefType: UndefinedNonLazy (0x0)
-// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: Flags [ (0x200)
// CHECK-I386: ]
// CHECK-I386: Value: 0x9
// CHECK-I386: }
@@ -208,7 +208,7 @@ Lt0_x = Lt0_a - Lt0_b
// CHECK-I386: Type: Undef (0x0)
// CHECK-I386: Section: (0x0)
// CHECK-I386: RefType: UndefinedNonLazy (0x0)
-// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: Flags [ (0x200)
// CHECK-I386: ]
// CHECK-I386: Value: 0x0
// CHECK-I386: }
@@ -360,7 +360,7 @@ Lt0_x = Lt0_a - Lt0_b
// CHECK-X86_64: Type: Section (0xE)
// CHECK-X86_64: Section: __data (0x2)
// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
-// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: Flags [ (0x200)
// CHECK-X86_64: ]
// CHECK-X86_64: Value: 0x9
// CHECK-X86_64: }
@@ -417,7 +417,7 @@ Lt0_x = Lt0_a - Lt0_b
// CHECK-X86_64: Type: Undef (0x0)
// CHECK-X86_64: Section: (0x0)
// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
-// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: Flags [ (0x200)
// CHECK-X86_64: ]
// CHECK-X86_64: Value: 0x0
// CHECK-X86_64: }
diff --git a/test/MC/MachO/x86-data-in-code.ll b/test/MC/MachO/x86-data-in-code.ll
deleted file mode 100644
index b8d3a185cbd9..000000000000
--- a/test/MC/MachO/x86-data-in-code.ll
+++ /dev/null
@@ -1,107 +0,0 @@
-; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | llvm-readobj -macho-data-in-code | FileCheck %s
-
-; There should not be a data-in-code load command (type 0x29) for x86_64
-; jump tables, even though they are in the text section.
-; CHECK-NOT: DataInCode {
-
-define void @foo(i32* %ptr) nounwind ssp {
- %tmp = load i32, i32* %ptr, align 4
- switch i32 %tmp, label %default [
- i32 11, label %bb0
- i32 10, label %bb1
- i32 8, label %bb2
- i32 4, label %bb3
- i32 2, label %bb4
- i32 6, label %bb5
- i32 9, label %bb6
- i32 15, label %bb7
- i32 1, label %bb8
- i32 3, label %bb9
- i32 5, label %bb10
- i32 30, label %bb11
- i32 31, label %bb12
- i32 13, label %bb13
- i32 14, label %bb14
- i32 20, label %bb15
- i32 19, label %bb16
- i32 17, label %bb17
- i32 18, label %bb18
- i32 21, label %bb19
- i32 22, label %bb20
- i32 16, label %bb21
- i32 24, label %bb22
- i32 25, label %bb23
- i32 26, label %bb24
- i32 27, label %bb25
- i32 28, label %bb26
- i32 23, label %bb27
- i32 12, label %bb28
- ]
-
-default:
- br label %exit
-bb0:
- br label %exit
-bb1:
- br label %exit
-bb2:
- br label %exit
-bb3:
- br label %exit
-bb4:
- br label %exit
-bb5:
- br label %exit
-bb6:
- br label %exit
-bb7:
- br label %exit
-bb8:
- br label %exit
-bb9:
- br label %exit
-bb10:
- br label %exit
-bb11:
- br label %exit
-bb12:
- br label %exit
-bb13:
- br label %exit
-bb14:
- br label %exit
-bb15:
- br label %exit
-bb16:
- br label %exit
-bb17:
- br label %exit
-bb18:
- br label %exit
-bb19:
- br label %exit
-bb20:
- br label %exit
-bb21:
- br label %exit
-bb22:
- br label %exit
-bb23:
- br label %exit
-bb24:
- br label %exit
-bb25:
- br label %exit
-bb26:
- br label %exit
-bb27:
- br label %exit
-bb28:
- br label %exit
-
-
-exit:
-
- ret void
-}
-
diff --git a/test/MC/MachO/x86-data-in-code.s b/test/MC/MachO/x86-data-in-code.s
new file mode 100644
index 000000000000..e7b2406e5d09
--- /dev/null
+++ b/test/MC/MachO/x86-data-in-code.s
@@ -0,0 +1,47 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s
+// RUN: llvm-mc -triple i686-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s
+
+ .text
+_foo:
+.data_region
+ .long 10
+.end_data_region
+.data_region jt32
+ .long 1
+.end_data_region
+.data_region jt16
+ .short 2
+.end_data_region
+.data_region jt8
+ .byte 3
+.end_data_region
+
+// CHECK: DataInCode {
+// CHECK: Data size: 32
+// CHECK: Data entries [
+// CHECK: Entry {
+// CHECK: Index: 0
+// CHECK: Offset: 0
+// CHECK: Length: 4
+// CHECK: Kind: 1
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 1
+// CHECK: Offset: 4
+// CHECK: Length: 4
+// CHECK: Kind: 4
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 2
+// CHECK: Offset: 8
+// CHECK: Length: 2
+// CHECK: Kind: 3
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Index: 3
+// CHECK: Offset: 10
+// CHECK: Length: 1
+// CHECK: Kind: 2
+// CHECK: }
+// CHECK: ]
+// CHECK: }
diff --git a/test/MC/MachO/x86_64-reloc-arithmetic.s b/test/MC/MachO/x86_64-reloc-arithmetic.s
index de524791faa3..bce9dbdbe4ca 100644
--- a/test/MC/MachO/x86_64-reloc-arithmetic.s
+++ b/test/MC/MachO/x86_64-reloc-arithmetic.s
@@ -31,7 +31,8 @@ _baz:
// CHECK-NEXT: Type: Section (0xE)
// CHECK-NEXT: Section: __text (0x1)
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
-// CHECK-NEXT: Flags [ (0x0)
+// CHECK-NEXT: Flags [ (0x200)
+// CHECK-NEXT: AltEntry (0x200)
// CHECK-NEXT: ]
// CHECK-NEXT: Value: 0x102
// CHECK-NEXT: }
diff --git a/test/MC/Mips/cnmips/invalid.s b/test/MC/Mips/cnmips/invalid.s
index 52e71102e46f..f2606d863e56 100644
--- a/test/MC/Mips/cnmips/invalid.s
+++ b/test/MC/Mips/cnmips/invalid.s
@@ -13,3 +13,11 @@ foo:
bbit1 $19, 64, foo # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
bbit132 $19, -1, foo # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
bbit132 $19, 32, foo # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
+ ins $2, $3, -1, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate
+ ins $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate
+ ins $2, $3, 0, -1 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32
+ ins $2, $3, 0, 33 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32
+ seqi $2, $3, -1025 # CHECK: :[[@LINE]]:18: error: expected 10-bit signed immediate
+ seqi $2, $3, 1024 # CHECK: :[[@LINE]]:18: error: expected 10-bit signed immediate
+ snei $2, $3, -1025 # CHECK: :[[@LINE]]:18: error: expected 10-bit signed immediate
+ snei $2, $3, 1024 # CHECK: :[[@LINE]]:18: error: expected 10-bit signed immediate
diff --git a/test/MC/Mips/cpload.s b/test/MC/Mips/cpload.s
index 842e0c7937c0..3bbad60e578d 100644
--- a/test/MC/Mips/cpload.s
+++ b/test/MC/Mips/cpload.s
@@ -1,16 +1,13 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 | FileCheck %s -check-prefix=ASM
#
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -mattr=+o32 -filetype=obj -o -| \
-# RUN: llvm-objdump -d -r -arch=mips - | \
-# RUN: FileCheck %s -check-prefix=OBJ-O32
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -filetype=obj -o -| \
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=OBJ-O32
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 -target-abi n32 -filetype=obj -o -| \
-# RUN: llvm-objdump -d -r -arch=mips - | \
-# RUN: FileCheck %s -check-prefix=OBJ-N32
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=OBJ-N32
-# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 -mattr=+n64 -filetype=obj -o -| \
-# RUN: llvm-objdump -d -r -arch=mips - | \
-# RUN: FileCheck %s -check-prefix=OBJ-N64
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 -filetype=obj -o -| \
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=OBJ-N64
# ASM: .text
# ASM: .option pic2
diff --git a/test/MC/Mips/cprestore-bad.s b/test/MC/Mips/cprestore-bad.s
index d2fb037091d1..cfd62a4ed988 100644
--- a/test/MC/Mips/cprestore-bad.s
+++ b/test/MC/Mips/cprestore-bad.s
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic 2>%t1
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips32 2>%t1
# RUN: FileCheck %s < %t1
.text
diff --git a/test/MC/Mips/cprestore-noreorder-noat.s b/test/MC/Mips/cprestore-noreorder-noat.s
new file mode 100644
index 000000000000..07c4dd2ea358
--- /dev/null
+++ b/test/MC/Mips/cprestore-noreorder-noat.s
@@ -0,0 +1,54 @@
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips32 --position-independent -filetype=obj \
+# RUN: -o /dev/null 2>&1 | FileCheck %s -check-prefix=O32
+
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 \
+# RUN: -filetype=obj -o /dev/null 2>&1 | FileCheck %s -allow-empty -check-prefix=N32
+
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi=n32 \
+# RUN: -filetype=obj -o /dev/null 2>&1 | FileCheck %s -allow-empty -check-prefix=N64
+
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi=n32 \
+# RUN: -filetype=obj -o - | llvm-objdump -d -r - | \
+# RUN: FileCheck %s -check-prefix=NO-STORE
+
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -filetype=obj -o - | \
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=NO-STORE
+
+ .text
+ .ent foo
+foo:
+ .frame $sp, 0, $ra
+ .set noreorder
+ .set noat
+
+ .cpload $25
+ .cprestore 8
+# O32-NOT: error: pseudo-instruction requires $at, which is not available
+# N32-NOT: error: pseudo-instruction requires $at, which is not available
+# N64-NOT: error: pseudo-instruction requires $at, which is not available
+# NO-STORE-NOT: sw $gp, 8($sp)
+
+ jal $25
+ jal $4, $25
+ jal foo
+
+ .end foo
+
+ .ent bar
+bar:
+ .frame $sp, 0, $ra
+ .set noreorder
+ .set noat
+
+ .cpload $25
+ .cprestore 65536
+# O32: :[[@LINE-1]]:3: error: pseudo-instruction requires $at, which is not available
+# N32-NOT: error: pseudo-instruction requires $at, which is not available
+# N64-NOT: error: pseudo-instruction requires $at, which is not available
+# NO-STORE-NOT: sw $gp,
+
+ jal $25
+ jal $4, $25
+ jal bar
+
+ .end bar
diff --git a/test/MC/Mips/cprestore-noreorder.s b/test/MC/Mips/cprestore-noreorder.s
index 750c95a63f0c..cce43d333fae 100644
--- a/test/MC/Mips/cprestore-noreorder.s
+++ b/test/MC/Mips/cprestore-noreorder.s
@@ -1,21 +1,20 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 --position-independent -show-encoding | \
# RUN: FileCheck %s
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic -filetype=obj -o -| \
-# RUN: llvm-objdump -d -r -arch=mips - | \
-# RUN: FileCheck %s -check-prefix=CHECK-FOR-STORE
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 --position-independent -filetype=obj -o -| \
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=CHECK-FOR-STORE
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+micromips -relocation-model=pic -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+micromips --position-independent -show-encoding | \
# RUN: FileCheck %s -check-prefix=MICROMIPS
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=static -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -show-encoding | \
# RUN: FileCheck %s -check-prefix=NO-PIC
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -relocation-model=pic -show-encoding | \
-# RUN: FileCheck %s -check-prefix=BAD-ABI -check-prefix=BAD-ABI-N32
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 --position-independent -show-encoding | \
+# RUN: FileCheck %s -check-prefixes=BAD-ABI,BAD-ABI-N32
-# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -relocation-model=pic -show-encoding | \
-# RUN: FileCheck %s -check-prefix=BAD-ABI -check-prefix=BAD-ABI-N64
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 --position-independent -show-encoding | \
+# RUN: FileCheck %s -check-prefixes=BAD-ABI,BAD-ABI-N64
.text
.ent foo
@@ -44,9 +43,9 @@ foo:
# CHECK: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
# CHECK: lw $25, %got(foo)($gp) # encoding: [0x8f,0x99,A,A]
-# CHECK: # fixup A - offset: 0, value: foo@GOT, kind: fixup_Mips_GOT_Local
+# CHECK: # fixup A - offset: 0, value: %got(foo), kind: fixup_Mips_GOT
# CHECK: addiu $25, $25, %lo(foo) # encoding: [0x27,0x39,A,A]
-# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
# CHECK: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
@@ -62,9 +61,9 @@ foo:
# MICROMIPS: lw $gp, 8($sp) # encoding: [0xff,0x9d,0x00,0x08]
# MICROMIPS: lw $25, %got(foo)($gp) # encoding: [0xff,0x3c,A,A]
-# MICROMIPS: # fixup A - offset: 0, value: foo@GOT, kind: fixup_MICROMIPS_GOT16
+# MICROMIPS: # fixup A - offset: 0, value: %got(foo), kind: fixup_MICROMIPS_GOT16
# MICROMIPS: addiu $25, $25, %lo(foo) # encoding: [0x33,0x39,A,A]
-# MICROMIPS: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
+# MICROMIPS: # fixup A - offset: 0, value: %lo(foo), kind: fixup_MICROMIPS_LO16
# MICROMIPS: jalrs $ra, $25 # encoding: [0x03,0xf9,0x4f,0x3c]
# MICROMIPS: nop # encoding: [0x0c,0x00]
# MICROMIPS: lw $gp, 8($sp) # encoding: [0xff,0x9d,0x00,0x08]
@@ -91,7 +90,7 @@ foo:
# BAD-ABI-N32: lw $25, %got_disp(foo)($gp) # encoding: [0x8f,0x99,A,A]
# BAD-ABI-N64: ld $25, %got_disp(foo)($gp) # encoding: [0xdf,0x99,A,A]
-# BAD-ABI: # fixup A - offset: 0, value: foo@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# BAD-ABI: # fixup A - offset: 0, value: %got_disp(foo), kind: fixup_Mips_GOT_DISP
# BAD-ABI: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# BAD-ABI-NOT: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
# BAD-ABI: .end foo
diff --git a/test/MC/Mips/cprestore-reorder.s b/test/MC/Mips/cprestore-reorder.s
index e037701ede0a..885977992978 100644
--- a/test/MC/Mips/cprestore-reorder.s
+++ b/test/MC/Mips/cprestore-reorder.s
@@ -1,21 +1,20 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 --position-independent -show-encoding | \
# RUN: FileCheck %s
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic -filetype=obj -o -| \
-# RUN: llvm-objdump -d -r -arch=mips - | \
-# RUN: FileCheck %s -check-prefix=CHECK-FOR-STORE
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 --position-independent -filetype=obj -o -| \
+# RUN: llvm-objdump -d -r - | FileCheck %s -check-prefix=CHECK-FOR-STORE
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+micromips -relocation-model=pic -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+micromips --position-independent -show-encoding | \
# RUN: FileCheck %s -check-prefix=MICROMIPS
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=static -show-encoding | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -show-encoding | \
# RUN: FileCheck %s -check-prefix=NO-PIC
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -relocation-model=pic -show-encoding | \
-# RUN: FileCheck %s -check-prefix=BAD-ABI -check-prefix=BAD-ABI-N32
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 --position-independent -show-encoding | \
+# RUN: FileCheck %s -check-prefixes=BAD-ABI,BAD-ABI-N32
-# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -relocation-model=pic -show-encoding | \
-# RUN: FileCheck %s -check-prefix=BAD-ABI -check-prefix=BAD-ABI-N64
+# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 --position-independent -show-encoding | \
+# RUN: FileCheck %s -check-prefixes=BAD-ABI,BAD-ABI-N64
.text
.ent foo
@@ -45,9 +44,9 @@ foo:
# CHECK: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
# CHECK: lw $25, %got(foo)($gp) # encoding: [0x8f,0x99,A,A]
-# CHECK: # fixup A - offset: 0, value: foo@GOT, kind: fixup_Mips_GOT_Local
+# CHECK: # fixup A - offset: 0, value: %got(foo), kind: fixup_Mips_GOT
# CHECK: addiu $25, $25, %lo(foo) # encoding: [0x27,0x39,A,A]
-# CHECK: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# CHECK: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
# CHECK: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
# CHECK: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
@@ -63,9 +62,9 @@ foo:
# MICROMIPS: lw $gp, 8($sp) # encoding: [0xff,0x9d,0x00,0x08]
# MICROMIPS: lw $25, %got(foo)($gp) # encoding: [0xff,0x3c,A,A]
-# MICROMIPS: # fixup A - offset: 0, value: foo@GOT, kind: fixup_MICROMIPS_GOT16
+# MICROMIPS: # fixup A - offset: 0, value: %got(foo), kind: fixup_MICROMIPS_GOT16
# MICROMIPS: addiu $25, $25, %lo(foo) # encoding: [0x33,0x39,A,A]
-# MICROMIPS: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
+# MICROMIPS: # fixup A - offset: 0, value: %lo(foo), kind: fixup_MICROMIPS_LO16
# MICROMIPS: jalrs $ra, $25 # encoding: [0x03,0xf9,0x4f,0x3c]
# MICROMIPS: nop # encoding: [0x0c,0x00]
# MICROMIPS: lw $gp, 8($sp) # encoding: [0xff,0x9d,0x00,0x08]
@@ -92,7 +91,7 @@ foo:
# BAD-ABI-N32: lw $25, %got_disp(foo)($gp) # encoding: [0x8f,0x99,A,A]
# BAD-ABI-N64: ld $25, %got_disp(foo)($gp) # encoding: [0xdf,0x99,A,A]
-# BAD-ABI: # fixup A - offset: 0, value: foo@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# BAD-ABI: # fixup A - offset: 0, value: %got_disp(foo), kind: fixup_Mips_GOT_DISP
# BAD-ABI: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# BAD-ABI-NOT: lw $gp, 8($sp) # encoding: [0x8f,0xbc,0x00,0x08]
# BAD-ABI: .end foo
diff --git a/test/MC/Mips/cprestore-warning-unused.s b/test/MC/Mips/cprestore-warning-unused.s
index 41a5df715977..e4999b48fb99 100644
--- a/test/MC/Mips/cprestore-warning-unused.s
+++ b/test/MC/Mips/cprestore-warning-unused.s
@@ -1,4 +1,4 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic 2>%t1
+# RUN: llvm-mc %s -arch=mips -mcpu=mips32 --position-independent 2>%t1
# RUN: FileCheck %s < %t1
.text
diff --git a/test/MC/Mips/cpsetup.s b/test/MC/Mips/cpsetup.s
index 95d84d95d851..c5d0f9b589ca 100644
--- a/test/MC/Mips/cpsetup.s
+++ b/test/MC/Mips/cpsetup.s
@@ -1,23 +1,22 @@
-# RUN: llvm-mc -triple mips64-unknown-unknown -target-abi o32 -filetype=obj -o - %s | \
-# RUN: llvm-objdump -d -r -arch=mips64 - | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=O32 %s
+# RUN: llvm-mc -triple mips64-unknown-linux -target-abi o32 -filetype=obj -o - %s | \
+# RUN: llvm-objdump -d -r - | FileCheck -check-prefixes=ALL,O32 %s
# RUN: llvm-mc -triple mips64-unknown-unknown -target-abi o32 %s | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=ASM %s
+# RUN: FileCheck -check-prefixes=ALL,ASM %s
-# RUN: llvm-mc -triple mips64-unknown-unknown -target-abi n32 -filetype=obj -o - %s | \
-# RUN: llvm-objdump -d -r -t -arch=mips64 - | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=NXX -check-prefix=N32 %s
+# RUN: llvm-mc -triple mips64-unknown-linux -target-abi n32 -filetype=obj -o - %s | \
+# RUN: llvm-objdump -d -r - | \
+# RUN: FileCheck -check-prefixes=ALL,NXX,N32 %s
# RUN: llvm-mc -triple mips64-unknown-unknown -target-abi n32 %s | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=ASM %s
+# RUN: FileCheck -check-prefixes=ALL,ASM %s
-# RUN: llvm-mc -triple mips64-unknown-unknown %s -filetype=obj -o - | \
-# RUN: llvm-objdump -d -r -t -arch=mips64 - | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=NXX -check-prefix=N64 %s
+# RUN: llvm-mc -triple mips64-unknown-linux %s -filetype=obj -o - | \
+# RUN: llvm-objdump -d -r - | \
+# RUN: FileCheck -check-prefixes=ALL,NXX,N64 %s
# RUN: llvm-mc -triple mips64-unknown-unknown %s | \
-# RUN: FileCheck -check-prefix=ALL -check-prefix=ASM %s
+# RUN: FileCheck -check-prefixes=ALL,ASM %s
.text
.option pic2
@@ -31,16 +30,13 @@ t1:
# O32-NOT: __cerror
-# FIXME: Direct object emission for N32 is still under development.
-# N32 doesn't allow 3 operations to be specified in the same relocation
-# record like N64 does.
-
# NXX-NEXT: sd $gp, 8($sp)
# NXX-NEXT: lui $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
+# N32-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
# NXX-NEXT: addiu $gp, $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
-# N32-NEXT: addu $gp, $gp, $25
+# N32-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
# N64-NEXT: daddu $gp, $gp, $25
# ASM-NEXT: .cpsetup $25, 8, __cerror
@@ -62,16 +58,13 @@ t2:
# O32-NOT: __cerror
-# FIXME: Direct object emission for N32 is still under development.
-# N32 doesn't allow 3 operations to be specified in the same relocation
-# record like N64 does.
-
# NXX-NEXT: move $2, $gp
# NXX-NEXT: lui $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
+# N32-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
# NXX-NEXT: addiu $gp, $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
-# N32-NEXT: addu $gp, $gp, $25
+# N32-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
# N64-NEXT: daddu $gp, $gp, $25
# ASM-NEXT: .cpsetup $25, $2, __cerror
@@ -101,17 +94,13 @@ t3:
# O32-NEXT: nop
# O32-NEXT: sub $3, $3, $2
-# FIXME: Direct object emission for N32 is still under development.
-# N32 doesn't allow 3 operations to be specified in the same relocation
-# record like N64 does.
-
-# NXX: $tmp0:
# NXX-NEXT: move $2, $gp
# NXX-NEXT: lui $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 $tmp0
+# N32-NEXT: {{^ *0+}}38: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: {{^ *0+}}40: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 .text
# NXX-NEXT: addiu $gp, $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 $tmp0
-# N32-NEXT: addu $gp, $gp, $25
+# N32-NEXT: {{^ *0+}}3c: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: {{^ *0+}}44: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 .text
# N64-NEXT: daddu $gp, $gp, $25
# NXX-NEXT: nop
# NXX-NEXT: sub $3, $3, $2
@@ -158,24 +147,46 @@ t5:
# O32-NOT: __cerror
-# FIXME: Direct object emission for N32 is still under development.
-# N32 doesn't allow 3 operations to be specified in the same relocation
-# record like N64 does.
+# NXX-NEXT: sd $gp, 8($sp)
+# NXX-NEXT: lui $gp, 0
+# N32-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
+# NXX-NEXT: addiu $gp, $gp, 0
+# N32-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
+# N64-NEXT: daddu $gp, $gp, $25
+
+# ASM-NEXT: .cpsetup $25, 8, __cerror
+
+# ALL-NEXT: nop
+
+t1b:
+IMM_8 = 8
+ .cpsetup $25, IMM_8, __cerror
+ nop
+ .cpreturn
+ nop
+
+# ALL-LABEL: t1b:
+# ASM-NEXT: IMM_8 = 8
+
+# O32-NOT: __cerror
# NXX-NEXT: sd $gp, 8($sp)
# NXX-NEXT: lui $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
+# N32-NEXT: R_MIPS_HI16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 __cerror
# NXX-NEXT: addiu $gp, $gp, 0
-# NXX-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
-# N32-NEXT: addu $gp, $gp, $25
+# N32-NEXT: R_MIPS_LO16/R_MIPS_NONE/R_MIPS_NONE __gnu_local_gp
+# N64-NEXT: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 __cerror
# N64-NEXT: daddu $gp, $gp, $25
# ASM-NEXT: .cpsetup $25, 8, __cerror
# ALL-NEXT: nop
-# NXX-LABEL: SYMBOL TABLE:
+# ASM-NEXT: .cpreturn
+# NXX-NEXT: ld $gp, 8($sp)
+
+# ALL-NEXT: nop
-# For .cpsetup with local labels, we need to check if $tmp0 is in the symbol
-# table:
-# NXX: .text 00000000 $tmp0
diff --git a/test/MC/Mips/directive-ent.s b/test/MC/Mips/directive-ent.s
index b9b8bf902f6d..fa15b4eb9c83 100644
--- a/test/MC/Mips/directive-ent.s
+++ b/test/MC/Mips/directive-ent.s
@@ -5,14 +5,14 @@
# RUN: FileCheck -check-prefix=ASM %s
# RUN: llvm-mc -filetype=obj -mcpu=mips32 -triple mips-unknown-unknown %s | \
# RUN: llvm-readobj -symbols | \
-# RUN: FileCheck -check-prefix=OBJ -check-prefix=OBJ-32 %s
+# RUN: FileCheck -check-prefixes=OBJ,OBJ-32 %s
#
# RUN: llvm-mc -mcpu=mips32 -mattr=micromips -triple mips-unknown-unknown %s | \
# RUN: FileCheck -check-prefix=ASM %s
# RUN: llvm-mc -filetype=obj -mcpu=mips32 -mattr=micromips \
# RUN: -triple mips-unknown-unknown %s | \
# RUN: llvm-readobj -symbols | \
-# RUN: FileCheck -check-prefix=OBJ -check-prefix=OBJ-MM %s
+# RUN: FileCheck -check-prefixes=OBJ,OBJ-MM %s
#
.ent a
a:
diff --git a/test/MC/Mips/do_switch1.s b/test/MC/Mips/do_switch1.s
index 331a4e25a829..69742e9091a5 100644
--- a/test/MC/Mips/do_switch1.s
+++ b/test/MC/Mips/do_switch1.s
@@ -2,7 +2,7 @@
// produced. This was not handled for direct object and an assertion
// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
-// RUN: llvm-mc < %s -filetype=obj -triple=mips-pc-linux -relocation-model=static
+// RUN: llvm-mc < %s -filetype=obj -triple=mips-pc-linux
.text
.abicalls
diff --git a/test/MC/Mips/do_switch2.s b/test/MC/Mips/do_switch2.s
index 824054f7c874..0c8ad4ad8961 100644
--- a/test/MC/Mips/do_switch2.s
+++ b/test/MC/Mips/do_switch2.s
@@ -2,7 +2,7 @@
// produced. This was not handled for direct object and an assertion
// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
-// RUN: llvm-mc < %s -filetype=obj -triple=mips-pc-linux -relocation-model=pic
+// RUN: llvm-mc < %s -filetype=obj -triple=mips-pc-linux
.text
.abicalls
diff --git a/test/MC/Mips/do_switch3.s b/test/MC/Mips/do_switch3.s
index c0d9dc62fe6e..7ed4f7c52194 100644
--- a/test/MC/Mips/do_switch3.s
+++ b/test/MC/Mips/do_switch3.s
@@ -2,7 +2,7 @@
// produced. This was not handled for direct object and an assertion
// to occur. This is a variation on test case test/CodeGen/Mips/do_switch.ll
-// RUN: llvm-mc < %s -filetype=obj -triple=mips64-pc-linux -relocation-model=pic -mcpu=mips64 -target-abi=n64
+// RUN: llvm-mc < %s -filetype=obj -triple=mips64-pc-linux -mcpu=mips64 -target-abi=n64
.text
.abicalls
diff --git a/test/MC/Mips/double-expand.s b/test/MC/Mips/double-expand.s
new file mode 100644
index 000000000000..ac03a6fa835e
--- /dev/null
+++ b/test/MC/Mips/double-expand.s
@@ -0,0 +1,26 @@
+# RUN: llvm-mc -triple=mipsel-unknown-linux < %s | FileCheck %s
+# RUN: llvm-mc -triple=mipsel-unknown-linux < %s | \
+# RUN: llvm-mc -triple=mipsel-unknown-linux | FileCheck %s
+
+ .text
+branch:
+ bnez $2, foo
+
+# CHECK-LABEL: branch:
+# CHECK: bnez $2, foo
+# CHECK: nop
+# CHECK-NOT: nop
+
+cprestore:
+ .option pic2
+ .cprestore 16
+ jal foo
+
+# CHECK-LABEL: cprestore:
+# CHECK: .cprestore 16
+# CHECK: lw $25, %call16(foo)($gp)
+# CHECK: jalr $25
+# CHECK: nop
+# CHECK: lw $gp, 16($sp)
+# CHECK-NOT: nop
+# CHECK-NOT: lw
diff --git a/test/MC/Mips/dsp/invalid.s b/test/MC/Mips/dsp/invalid.s
index 8bd0906e67f8..1d50b829985c 100644
--- a/test/MC/Mips/dsp/invalid.s
+++ b/test/MC/Mips/dsp/invalid.s
@@ -1,25 +1,39 @@
# RUN: not llvm-mc %s -triple=mips-unknown-unknown -show-encoding -mattr=dsp 2>%t1
# RUN: FileCheck %s < %t1
+ extp $2, $ac1, -1 # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
+ extp $2, $ac1, 32 # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
+ extpdp $2, $ac1, -1 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ extpdp $2, $ac1, 32 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ extr.w $2, $ac1, -1 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ extr.w $2, $ac1, 32 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ extr_r.w $2, $ac1, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ extr_r.w $2, $ac1, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ extr_rs.w $2, $ac1, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ extr_rs.w $2, $ac1, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
shll.ph $3, $4, 16 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
shll.ph $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
shll_s.ph $3, $4, 16 # CHECK: :[[@LINE]]:21: error: expected 4-bit unsigned immediate
shll_s.ph $3, $4, -1 # CHECK: :[[@LINE]]:21: error: expected 4-bit unsigned immediate
shll.qb $3, $4, 8 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shll.qb $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
- // FIXME: Following invalid tests are temporarely disabled, until operand check for uimm5 is added
- shll_s.w $3, $4, 32 # -CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
- shll_s.w $3, $4, -1 # -CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ shll_s.w $3, $4, 32 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ shll_s.w $3, $4, -1 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
shra.ph $3, $4, 16 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
shra.ph $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
shra_r.ph $3, $4, 16 # CHECK: :[[@LINE]]:21: error: expected 4-bit unsigned immediate
shra_r.ph $3, $4, -1 # CHECK: :[[@LINE]]:21: error: expected 4-bit unsigned immediate
- // FIXME: Following invalid tests are temporarely disabled, until operand check for uimm5 is added
- shra_r.w $3, $4, 32 # -CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
- shra_r.w $3, $4, -1 # -CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ shra_r.w $3, $4, 32 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
+ shra_r.w $3, $4, -1 # CHECK: :[[@LINE]]:20: error: expected 5-bit unsigned immediate
shrl.qb $3, $4, 8 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shrl.qb $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shilo $ac1, 64 # CHECK: :[[@LINE]]:15: error: expected 6-bit signed immediate
shilo $ac1, -64 # CHECK: :[[@LINE]]:15: error: expected 6-bit signed immediate
- wrdsp $5, 1024 # CHECK: :[[@LINE]]:13: error: expected 10-bit unsigned immediate
+ repl.qb $2, -1 # CHECK: :[[@LINE]]:15: error: expected 8-bit unsigned immediate
+ repl.qb $2, 256 # CHECK: :[[@LINE]]:15: error: expected 8-bit unsigned immediate
+ repl.ph $2, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ repl.ph $2, 1024 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ rddsp $2, -1 # CHECK: :[[@LINE]]:13: error: expected 10-bit unsigned immediate
+ rddsp $2, 1024 # CHECK: :[[@LINE]]:13: error: expected 10-bit unsigned immediate
wrdsp $5, -1 # CHECK: :[[@LINE]]:13: error: expected 10-bit unsigned immediate
+ wrdsp $5, 1024 # CHECK: :[[@LINE]]:13: error: expected 10-bit unsigned immediate
diff --git a/test/MC/Mips/elf_eflags.s b/test/MC/Mips/elf_eflags.s
index 708894fee802..244b07db25fa 100644
--- a/test/MC/Mips/elf_eflags.s
+++ b/test/MC/Mips/elf_eflags.s
@@ -1,26 +1,26 @@
# These *MUST* match the output of 'gcc -c' compiled with the same triple and
# corresponding options (-mcpu=mips32 -> -mips32 for example).
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r6 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R6 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r6 -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R6 %s
# MIPSEL-MIPS64R6: Flags [ (0xA0000406)
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r6 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R6-NAN2008 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r6 -target-abi n64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R6-NAN2008 %s
# MIPSEL-MIPS64R6-NAN2008: Flags [ (0xA0000406)
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r2 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r3 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r5 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r2 -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r3 -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r5 -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2 %s
# MIPSEL-MIPS64R2: Flags [ (0x80000006)
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r2 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r3 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r5 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r2 -target-abi n64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r3 -target-abi n64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64r5 -target-abi n64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64R2-NAN2008 %s
# MIPSEL-MIPS64R2-NAN2008: Flags [ (0x80000406)
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64 -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64 %s
# MIPSEL-MIPS64: Flags [ (0x60000006)
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64-NAN2008 %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips64 -target-abi n64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS64-NAN2008 %s
# MIPSEL-MIPS64-NAN2008: Flags [ (0x60000406)
# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips32r6 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-MIPS32R6 %s
@@ -125,3 +125,6 @@
# RUN: llvm-mc -filetype=obj -triple mips64el-unknown-linux -mcpu=mips64 -mattr=+nan2008 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPS64EL-MIPS64-NAN2008 %s
# MIPS64EL-MIPS64-NAN2008: Flags [ (0x60000406)
+
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=octeon -target-abi n64 %s -o -| llvm-readobj -h | FileCheck --check-prefix=MIPSEL-OCTEON %s
+# MIPSEL-OCTEON: Flags [ (0x808B0006)
diff --git a/test/MC/Mips/elf_eflags_micromips.s b/test/MC/Mips/elf_eflags_micromips.s
index 9b7de12d6e79..623f5a732911 100644
--- a/test/MC/Mips/elf_eflags_micromips.s
+++ b/test/MC/Mips/elf_eflags_micromips.s
@@ -1,7 +1,12 @@
-# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips32 %s -o -| llvm-readobj -h | FileCheck %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips32 \
+# RUN: -mattr=+micromips < /dev/null -o -| llvm-readobj -h | FileCheck \
+# RUN: -check-prefix=NO-MM %s
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips32 %s -o - \
+# RUN: | llvm-readobj -h | FileCheck %s
# This *MUST* match the output of 'gcc -c' compiled with the same triple.
# CHECK: Flags [ (0x52001004)
+# NO-MM: Flags [ (0x50001004)
.set micromips
f:
diff --git a/test/MC/Mips/elf_eflags_micromips2.s b/test/MC/Mips/elf_eflags_micromips2.s
new file mode 100644
index 000000000000..d44cf7f37a72
--- /dev/null
+++ b/test/MC/Mips/elf_eflags_micromips2.s
@@ -0,0 +1,11 @@
+# RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux -mcpu=mips32 %s -o - \
+# RUN: | llvm-readobj -h | FileCheck %s
+
+# This *MUST* match the output of 'gcc -c' compiled with the same triple.
+# The microMIPS flag is not set if no microMIPS code was emitted.
+# CHECK: Flags [ (0x50001004)
+
+ nop
+ .set micromips
+ .set nomicromips
+ nop
diff --git a/test/MC/Mips/elf_st_other.s b/test/MC/Mips/elf_st_other.s
index 579707b6be38..a53801729cdf 100644
--- a/test/MC/Mips/elf_st_other.s
+++ b/test/MC/Mips/elf_st_other.s
@@ -21,6 +21,6 @@ f2:
// CHECK-LABEL: Name: d1
// CHECK: Other: 0
// CHECK-LABEL: Name: f1
-// CHECK: Other: 128
+// CHECK: Other [ (0x80)
// CHECK-LABEL: Name: f2
// CHECK: Other: 0
diff --git a/test/MC/Mips/eva/invalid-noeva-wrong-error.s b/test/MC/Mips/eva/invalid-noeva-wrong-error.s
index 77b25645fe20..4b725135ef14 100644
--- a/test/MC/Mips/eva/invalid-noeva-wrong-error.s
+++ b/test/MC/Mips/eva/invalid-noeva-wrong-error.s
@@ -19,51 +19,51 @@
# RUN: FileCheck %s < %t1
.set noat
- cachee 31, 255($7) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- cachee 0, -256($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- cachee 5, -140($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbe $10,-256($25) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbe $13,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbe $11,146($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbue $13,-256($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbue $13,255($v0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lbue $13,-190($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhe $13,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhe $12,255($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhe $13,81($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhue $s2,-256($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhue $s2,255($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lhue $s6,-168($v0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lle $v0,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lle $v1,255($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lle $v1,-71($s6) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwe $15,255($a2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwe $13,-256($a2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwe $15,-200($a1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s6,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s7,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s7,-176($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,255($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-256($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-176($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- prefe 14, -256($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- prefe 11, 255($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- prefe 14, -37($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sbe $s1,255($11) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sbe $s1,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sbe $s3,0($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sce $9,255($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sce $12,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sce $13,-31($s7) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- she $14,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- she $14,-256($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- she $9,235($11) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $ra,255($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $ra,-256($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $ra,-53($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $9,255($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $10,-256($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $8,131($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s4,255($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s4,-256($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s2,86($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ cachee 31, 255($7) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ cachee 0, -256($4) # CHECK: :[[@LINE]]:22: error: expected memory with 9-bit signed offset
+ cachee 5, -140($4) # CHECK: :[[@LINE]]:22: error: expected memory with 9-bit signed offset
+ lbe $10,-256($25) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lbe $13,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lbe $11,146($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lbue $13,-256($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lbue $13,255($v0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lbue $13,-190($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $13,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $12,255($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $13,81($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $s2,-256($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $s2,255($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $s6,-168($v0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lle $v0,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lle $v1,255($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lle $v1,-71($s6) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwe $15,255($a2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwe $13,-256($a2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwe $15,-200($a1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwle $s6,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwle $s7,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwle $s7,-176($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,255($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-256($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-176($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ prefe 14, -256($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ prefe 11, 255($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ prefe 14, -37($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sbe $s1,255($11) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sbe $s1,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sbe $s3,0($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sce $9,255($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sce $12,-256($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sce $13,-31($s7) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ she $14,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ she $14,-256($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ she $9,235($11) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swe $ra,255($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swe $ra,-256($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swe $ra,-53($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $9,255($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $10,-256($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $8,131($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s4,255($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s4,-256($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s2,86($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/eva/invalid.s b/test/MC/Mips/eva/invalid.s
index 2ef4eaaab08d..406d940c8a92 100644
--- a/test/MC/Mips/eva/invalid.s
+++ b/test/MC/Mips/eva/invalid.s
@@ -9,3 +9,27 @@
cachee 32, 255($7) # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
prefe -1, 255($7) # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
prefe 32, 255($7) # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ lle $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ lle $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ lle $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ lle $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ lwe $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ lwe $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ lwe $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ lwe $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sbe $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ sbe $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sbe $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sbe $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sce $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ sce $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sce $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ sce $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ she $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ she $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ she $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ she $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ swe $33, 8($4) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ swe $5, 8($34) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ swe $5, 512($4) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ swe $5, -513($4) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/eva/invalid_R6.s b/test/MC/Mips/eva/invalid_R6.s
index 81c322845a63..b3242e6ffd72 100644
--- a/test/MC/Mips/eva/invalid_R6.s
+++ b/test/MC/Mips/eva/invalid_R6.s
@@ -6,15 +6,39 @@
# RUN: FileCheck %s < %t1
.set noat
- lwle $s6,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s7,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s7,-176($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,255($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-256($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-176($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $9,255($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $10,-256($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $8,131($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s4,255($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s4,-256($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s2,86($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lwle $s6,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwle $s7,-256($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwle $s7,-176($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,255($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-256($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-176($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $9,255($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $10,-256($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $8,131($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s4,255($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s4,-256($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s2,86($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lle $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ lle $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ lle $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ lle $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ lwe $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ lwe $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ lwe $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ lwe $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sbe $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ sbe $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sbe $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sbe $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sce $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ sce $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sce $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ sce $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ she $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ she $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ she $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ she $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ swe $33, 8($4) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction
+ swe $5, 8($34) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ swe $5, 512($4) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
+ swe $5, -513($4) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/expansion-jal-sym-pic.s b/test/MC/Mips/expansion-jal-sym-pic.s
index 23a4396276f7..f2ceca0f6726 100644
--- a/test/MC/Mips/expansion-jal-sym-pic.s
+++ b/test/MC/Mips/expansion-jal-sym-pic.s
@@ -1,20 +1,20 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=NORMAL -check-prefix=O32
+# RUN: FileCheck %s -check-prefixes=ALL,NORMAL,O32
# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=NORMAL -check-prefix=N32
+# RUN: FileCheck %s -check-prefixes=ALL,NORMAL,N32
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=NORMAL -check-prefix=N64
+# RUN: FileCheck %s -check-prefixes=ALL,NORMAL,N64
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=micromips -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=MICROMIPS -check-prefix=O32-MICROMIPS
+# RUN: FileCheck %s -check-prefixes=ALL,MICROMIPS,O32-MICROMIPS
# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -mattr=micromips -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=MICROMIPS -check-prefix=N32-MICROMIPS
+# RUN: FileCheck %s -check-prefixes=ALL,MICROMIPS,N32-MICROMIPS
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 -mattr=micromips -show-encoding |\
-# RUN: FileCheck %s -check-prefix=ALL -check-prefix=MICROMIPS -check-prefix=N64-MICROMIPS
+# RUN: FileCheck %s -check-prefixes=ALL,MICROMIPS,N64-MICROMIPS
.weak weak_label
@@ -51,26 +51,26 @@ local_label:
# Expanding "jal local_label":
# O32: lw $25, %got(local_label)($gp) # encoding: [0x8f,0x99,A,A]
-# O32: # fixup A - offset: 0, value: local_label@GOT, kind: fixup_Mips_GOT_Local
+# O32: # fixup A - offset: 0, value: %got(local_label), kind: fixup_Mips_GOT
# O32: addiu $25, $25, %lo(local_label) # encoding: [0x27,0x39,A,A]
-# O32: # fixup A - offset: 0, value: local_label@ABS_LO, kind: fixup_Mips_LO16
+# O32: # fixup A - offset: 0, value: %lo(local_label), kind: fixup_Mips_LO16
# N32: lw $25, %got_disp(local_label)($gp) # encoding: [0x8f,0x99,A,A]
-# N32: # fixup A - offset: 0, value: local_label@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N32: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP
# N64: ld $25, %got_disp(local_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64: # fixup A - offset: 0, value: local_label@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N64: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP
# O32-MICROMIPS: lw $25, %got(local_label)($gp) # encoding: [0xff,0x3c,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: local_label@GOT, kind: fixup_MICROMIPS_GOT16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %got(local_label), kind: fixup_MICROMIPS_GOT16
# O32-MICROMIPS: addiu $25, $25, %lo(local_label) # encoding: [0x33,0x39,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: local_label@ABS_LO, kind: fixup_MICROMIPS_LO16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %lo(local_label), kind: fixup_MICROMIPS_LO16
# N32-MICROMIPS: lw $25, %got_disp(local_label)($gp) # encoding: [0xff,0x3c,A,A]
-# N32-MICROMIPS: # fixup A - offset: 0, value: local_label@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N32-MICROMIPS: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_MICROMIPS_GOT_DISP
# N64-MICROMIPS: ld $25, %got_disp(local_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-MICROMIPS: # fixup A - offset: 0, value: local_label@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N64-MICROMIPS: # fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_MICROMIPS_GOT_DISP
# NORMAL: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MICROMIPS: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
@@ -79,22 +79,22 @@ local_label:
# Expanding "jal weak_label":
# O32: lw $25, %call16(weak_label)($gp) # encoding: [0x8f,0x99,A,A]
-# O32: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_Mips_CALL16
+# O32: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_Mips_CALL16
# N32: lw $25, %call16(weak_label)($gp) # encoding: [0x8f,0x99,A,A]
-# N32: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_Mips_CALL16
+# N32: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_Mips_CALL16
# N64: ld $25, %call16(weak_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_Mips_CALL16
+# N64: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_Mips_CALL16
# O32-MICROMIPS: lw $25, %call16(weak_label)($gp) # encoding: [0xff,0x3c,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16
# N32-MICROMIPS: lw $25, %call16(weak_label)($gp) # encoding: [0xff,0x3c,A,A]
-# N32-MICROMIPS: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# N32-MICROMIPS: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16
# N64-MICROMIPS: ld $25, %call16(weak_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-MICROMIPS: # fixup A - offset: 0, value: weak_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# N64-MICROMIPS: # fixup A - offset: 0, value: %call16(weak_label), kind: fixup_MICROMIPS_CALL16
# NORMAL: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MICROMIPS: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
@@ -103,22 +103,22 @@ local_label:
# Expanding "jal global_label":
# O32: lw $25, %call16(global_label)($gp) # encoding: [0x8f,0x99,A,A]
-# O32: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_Mips_CALL16
+# O32: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16
# N32: lw $25, %call16(global_label)($gp) # encoding: [0x8f,0x99,A,A]
-# N32: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_Mips_CALL16
+# N32: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16
# N64: ld $25, %call16(global_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_Mips_CALL16
+# N64: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16
# O32-MICROMIPS: lw $25, %call16(global_label)($gp) # encoding: [0xff,0x3c,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16
# N32-MICROMIPS: lw $25, %call16(global_label)($gp) # encoding: [0xff,0x3c,A,A]
-# N32-MICROMIPS: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# N32-MICROMIPS: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16
# N64-MICROMIPS: ld $25, %call16(global_label)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-MICROMIPS: # fixup A - offset: 0, value: global_label@GOT_CALL, kind: fixup_MICROMIPS_CALL16
+# N64-MICROMIPS: # fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16
# NORMAL: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MICROMIPS: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
@@ -129,26 +129,26 @@ local_label:
# it is created when generating an ELF object file.
# Expanding "jal .text":
# O32-FIXME: lw $25, %got(.text)($gp) # encoding: [0x8f,0x99,A,A]
-# O32-FIXME: # fixup A - offset: 0, value: .text@GOT, kind: fixup_Mips_GOT_Local
+# O32-FIXME: # fixup A - offset: 0, value: %got(.text), kind: fixup_Mips_GOT
# O32-FIXME: addiu $25, $25, %lo(.text) # encoding: [0x27,0x39,A,A]
-# O32-FIXME: # fixup A - offset: 0, value: .text@ABS_LO, kind: fixup_Mips_LO16
+# O32-FIXME: # fixup A - offset: 0, value: %lo(.text), kind: fixup_Mips_LO16
# N32-FIXME: lw $25, %got_disp(.text)($gp) # encoding: [0x8f,0x99,A,A]
-# N32-FIXME: # fixup A - offset: 0, value: .text@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N32-FIXME: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP
# N64-FIXME: ld $25, %got_disp(.text)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-FIXME: # fixup A - offset: 0, value: .text@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N64-FIXME: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP
# O32-MICROMIPS-FIXME: lw $25, %got(.text)($gp) # encoding: [0xff,0x3c,A,A]
-# O32-MICROMIPS-FIXME: # fixup A - offset: 0, value: .text@GOT, kind: fixup_MICROMIPS_GOT16
+# O32-MICROMIPS-FIXME: # fixup A - offset: 0, value: %got(.text), kind: fixup_MICROMIPS_GOT16
# O32-MICROMIPS-FIXME: addiu $25, $25, %lo(.text) # encoding: [0x33,0x39,A,A]
-# O32-MICROMIPS-FIXME: # fixup A - offset: 0, value: .text@ABS_LO, kind: fixup_MICROMIPS_LO16
+# O32-MICROMIPS-FIXME: # fixup A - offset: 0, value: %lo(.text), kind: fixup_MICROMIPS_LO16
# N32-MICROMIPS-FIXME: lw $25, %got_disp(.text)($gp) # encoding: [0xff,0x3c,A,A]
-# N32-MICROMIPS-FIXME: # fixup A - offset: 0, value: .text@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N32-MICROMIPS-FIXME: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_MICROMIPS_GOT_DISP
# N64-MICROMIPS-FIXME: ld $25, %got_disp(.text)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-MICROMIPS-FIXME: # fixup A - offset: 0, value: .text@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N64-MICROMIPS-FIXME: # fixup A - offset: 0, value: %got_disp(.text), kind: fixup_MICROMIPS_GOT_DISP
# NORMAL: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MICROMIPS: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
@@ -157,26 +157,26 @@ local_label:
# Expanding "jal 1f":
# O32: lw $25, %got($tmp0)($gp) # encoding: [0x8f,0x99,A,A]
-# O32: # fixup A - offset: 0, value: ($tmp0)@GOT, kind: fixup_Mips_GOT_Local
+# O32: # fixup A - offset: 0, value: %got($tmp0), kind: fixup_Mips_GOT
# O32: addiu $25, $25, %lo($tmp0) # encoding: [0x27,0x39,A,A]
-# O32: # fixup A - offset: 0, value: ($tmp0)@ABS_LO, kind: fixup_Mips_LO16
+# O32: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
# N32: lw $25, %got_disp($tmp0)($gp) # encoding: [0x8f,0x99,A,A]
-# N32: # fixup A - offset: 0, value: ($tmp0)@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N32: # fixup A - offset: 0, value: %got_disp($tmp0), kind: fixup_Mips_GOT_DISP
# N64: ld $25, %got_disp($tmp0)($gp) # encoding: [0xdf,0x99,A,A]
-# N64: # fixup A - offset: 0, value: ($tmp0)@GOT_DISP, kind: fixup_Mips_GOT_DISP
+# N64: # fixup A - offset: 0, value: %got_disp($tmp0), kind: fixup_Mips_GOT_DISP
# O32-MICROMIPS: lw $25, %got($tmp0)($gp) # encoding: [0xff,0x3c,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: ($tmp0)@GOT, kind: fixup_MICROMIPS_GOT16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %got($tmp0), kind: fixup_MICROMIPS_GOT16
# O32-MICROMIPS: addiu $25, $25, %lo($tmp0) # encoding: [0x33,0x39,A,A]
-# O32-MICROMIPS: # fixup A - offset: 0, value: ($tmp0)@ABS_LO, kind: fixup_MICROMIPS_LO16
+# O32-MICROMIPS: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_MICROMIPS_LO16
# N32-MICROMIPS: lw $25, %got_disp($tmp0)($gp) # encoding: [0xff,0x3c,A,A]
-# N32-MICROMIPS: # fixup A - offset: 0, value: ($tmp0)@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N32-MICROMIPS: # fixup A - offset: 0, value: %got_disp($tmp0), kind: fixup_MICROMIPS_GOT_DISP
# N64-MICROMIPS: ld $25, %got_disp($tmp0)($gp) # encoding: [0xdf,0x99,A,A]
-# N64-MICROMIPS: # fixup A - offset: 0, value: ($tmp0)@GOT_DISP, kind: fixup_MICROMIPS_GOT_DISP
+# N64-MICROMIPS: # fixup A - offset: 0, value: %got_disp($tmp0), kind: fixup_MICROMIPS_GOT_DISP
# NORMAL: jalr $25 # encoding: [0x03,0x20,0xf8,0x09]
# MICROMIPS: jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]
diff --git a/test/MC/Mips/expr1.s b/test/MC/Mips/expr1.s
index 4af61636355f..a6ecff5d212c 100644
--- a/test/MC/Mips/expr1.s
+++ b/test/MC/Mips/expr1.s
@@ -8,38 +8,38 @@
# 32R2-EL: .globl foo
# 32R2-EL: foo:
# 32R2-EL: lw $4, %lo(foo)($4) # encoding: [A,A,0x84,0x8c]
-# 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# 32R2-EL: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
# 32R2-EL: lw $4, 56($4) # encoding: [0x38,0x00,0x84,0x8c]
-# 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
-# 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
-# 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
-# 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
-# 32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x08'A',A,0x84,0x8c]
-# 32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+# 32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [A,A,0x84,0x8c]
+# 32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_Mips_LO16
+# 32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [A,A,0x84,0x8c]
+# 32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_Mips_LO16
+# 32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [A,A,0x84,0x8c]
+# 32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_Mips_LO16
# 32R2-EL: lw $4, 10($4) # encoding: [0x0a,0x00,0x84,0x8c]
# 32R2-EL: lw $4, 15($4) # encoding: [0x0f,0x00,0x84,0x8c]
# 32R2-EL: lw $4, 21($4) # encoding: [0x15,0x00,0x84,0x8c]
# 32R2-EL: lw $4, 28($4) # encoding: [0x1c,0x00,0x84,0x8c]
-# 32R2-EL: lw $4, 6($4) # encoding: [0x06,0x00,0x84,0x8c]
+# 32R2-EL: lw $4, %lo(65542)($4) # encoding: [0x06,0x00,0x84,0x8c]
# 32R2-EL: .space 64
# MM-32R2-EL: .text
# MM-32R2-EL: .globl foo
# MM-32R2-EL: foo:
-# MM-32R2-EL: lw $4, %lo(foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
-# MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
-# MM-32R2-EL: lw $4, 56($4) # encoding: [0x84,0xfc,0x38,0x00]
-# MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
-# MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
-# MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
-# MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
-# MM-32R2-EL: lw $4, %lo(foo+8)($4) # encoding: [0x84'A',0xfc'A',0x08,0x00]
-# MM-32R2-EL: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_MICROMIPS_LO16
-# MM-32R2-EL: lw $4, 10($4) # encoding: [0x84,0xfc,0x0a,0x00]
-# MM-32R2-EL: lw $4, 15($4) # encoding: [0x84,0xfc,0x0f,0x00]
-# MM-32R2-EL: lw $4, 21($4) # encoding: [0x84,0xfc,0x15,0x00]
-# MM-32R2-EL: lw $4, 28($4) # encoding: [0x84,0xfc,0x1c,0x00]
-# MM-32R2-EL: lw $4, 6($4) # encoding: [0x84,0xfc,0x06,0x00]
+# MM-32R2-EL: lw $4, %lo(foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
+# MM-32R2-EL: # fixup A - offset: 0, value: %lo(foo), kind: fixup_MICROMIPS_LO16
+# MM-32R2-EL: lw $4, 56($4) # encoding: [0x84,0xfc,0x38,0x00]
+# MM-32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
+# MM-32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_MICROMIPS_LO16
+# MM-32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
+# MM-32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_MICROMIPS_LO16
+# MM-32R2-EL: lw $4, %lo(8+foo)($4) # encoding: [0x84'A',0xfc'A',0x00,0x00]
+# MM-32R2-EL: # fixup A - offset: 0, value: %lo(8+foo), kind: fixup_MICROMIPS_LO16
+# MM-32R2-EL: lw $4, 10($4) # encoding: [0x84,0xfc,0x0a,0x00]
+# MM-32R2-EL: lw $4, 15($4) # encoding: [0x84,0xfc,0x0f,0x00]
+# MM-32R2-EL: lw $4, 21($4) # encoding: [0x84,0xfc,0x15,0x00]
+# MM-32R2-EL: lw $4, 28($4) # encoding: [0x84,0xfc,0x1c,0x00]
+# MM-32R2-EL: lw $4, %lo(65542)($4) # encoding: [0x84,0xfc,0x06,0x00]
# MM-32R2-EL: .space 64
.globl foo
diff --git a/test/MC/Mips/got-rel-expr.s b/test/MC/Mips/got-rel-expr.s
new file mode 100644
index 000000000000..8e77658c24ad
--- /dev/null
+++ b/test/MC/Mips/got-rel-expr.s
@@ -0,0 +1,20 @@
+# Check that llvm-mc accepts arithmetic expression
+# as an argument of the %got relocation.
+
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s \
+# RUN: | llvm-objdump -d -r - | FileCheck %s
+
+ .text
+foo:
+ lw $t0,%got($loc+0x10004)($gp)
+# CHECK: 0: 8f 88 00 01 lw $8, 1($gp)
+# CHECK: 00000000: R_MIPS_GOT16 .data
+ addi $t0,$t0,%lo($loc+0x10004)
+# CHECK: 4: 21 08 00 04 addi $8, $8, 4
+# CHECK: 00000004: R_MIPS_LO16 .data
+
+ .data
+$loc:
+ .word 0
+ .space 0x10000
+ .word 0
diff --git a/test/MC/Mips/hex-immediates.s b/test/MC/Mips/hex-immediates.s
new file mode 100644
index 000000000000..7bf6f71266e5
--- /dev/null
+++ b/test/MC/Mips/hex-immediates.s
@@ -0,0 +1,11 @@
+# RUN: llvm-mc -filetype=obj %s -triple=mips-unknown-linux \
+# RUN: | llvm-objdump -d --print-imm-hex - | FileCheck %s
+
+# CHECK: jal 0x20
+# CHECK: addiu $sp, $sp, -0x20
+# CHECK: sw $2, 0x10($fp)
+
+jal 32
+addiu $sp, $sp, -32
+sw $2, 16($fp)
+lui $2, 2
diff --git a/test/MC/Mips/higher-highest-addressing.s b/test/MC/Mips/higher-highest-addressing.s
index 2973a6400ae2..790b0a06892d 100644
--- a/test/MC/Mips/higher-highest-addressing.s
+++ b/test/MC/Mips/higher-highest-addressing.s
@@ -1,8 +1,8 @@
# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux -mcpu=mips64r2 %s \
-# RUN: | llvm-objdump -disassemble -triple mips64el - | FileCheck %s
+# RUN: | llvm-objdump -disassemble - | FileCheck %s
# RUN: llvm-mc -filetype=obj -triple=mips64el-unknown-linux -mcpu=mips64r2 %s \
-# RUN: | llvm-readobj -r | FileCheck %s -check-prefix=CHECK-REL
+# RUN: | llvm-readobj -r | FileCheck %s -check-prefix=CHECK-REL
# Test that R_MIPS_HIGHER and R_MIPS_HIGHEST relocations are created. By using
diff --git a/test/MC/Mips/init-order-bug.ll b/test/MC/Mips/init-order-bug.ll
new file mode 100644
index 000000000000..5e9726247870
--- /dev/null
+++ b/test/MC/Mips/init-order-bug.ll
@@ -0,0 +1,12 @@
+; RUN: llc -mtriple=mipsel-linux-gnu -relocation-model=pic -filetype=asm < %s | \
+; RUN: llvm-mc -triple=mipsel-linux-gnu --position-independent -filetype=obj | \
+; RUN: llvm-objdump -d - | FileCheck %s
+; RUN: llc -mtriple=mipsel-linux-gnu -relocation-model=pic -filetype=obj < %s | \
+; RUN: llvm-objdump -d - | FileCheck %s
+
+define void @foo() {
+ call void asm sideeffect "\09.cprestore 512", "~{$1}"()
+ ret void
+}
+
+; CHECK: sw $gp, 512($sp)
diff --git a/test/MC/Mips/insn-directive.s b/test/MC/Mips/insn-directive.s
index 760a27399bfb..f8cc1d6812d8 100644
--- a/test/MC/Mips/insn-directive.s
+++ b/test/MC/Mips/insn-directive.s
@@ -73,10 +73,10 @@ bar:
# OBJ: Other: 0
# OBJ: Name: f_mm_insn_data
-# OBJ: Other: 128
+# OBJ: Other [ (0x80)
# OBJ: Name: f_mm_insn_instr
-# OBJ: Other: 128
+# OBJ: Other [ (0x80)
# OBJ: Name: f_normal_insn_data
# OBJ: Other: 0
@@ -85,10 +85,10 @@ bar:
# OBJ: Other: 0
# OBJ: Name: o_mm_insn_data
-# OBJ: Other: 128
+# OBJ: Other [ (0x80)
# OBJ: Name: o_mm_insn_instr
-# OBJ: Other: 128
+# OBJ: Other [ (0x80)
# OBJ: Name: o_normal_insn_data
# OBJ: Other: 0
diff --git a/test/MC/Mips/instalias-imm-expanding.s b/test/MC/Mips/instalias-imm-expanding.s
index b3667ef8bf81..9759dabdc087 100644
--- a/test/MC/Mips/instalias-imm-expanding.s
+++ b/test/MC/Mips/instalias-imm-expanding.s
@@ -22,8 +22,7 @@ text_label:
# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
# CHECK: add $4, $4, $1 # encoding: [0x20,0x20,0x81,0x00]
add $4, 0xFFFFFFFF
-# CHECK: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24]
-# CHECK: add $4, $4, $1 # encoding: [0x20,0x20,0x81,0x00]
+# CHECK: addi $4, $4, -1 # encoding: [0xff,0xff,0x84,0x20]
add $4, $5, -0x80000000
# CHECK: lui $4, 32768 # encoding: [0x00,0x80,0x04,0x3c]
@@ -43,8 +42,7 @@ text_label:
# CHECK: lui $4, 1 # encoding: [0x01,0x00,0x04,0x3c]
# CHECK: add $4, $4, $5 # encoding: [0x20,0x20,0x85,0x00]
add $4, $5, 0xFFFFFFFF
-# CHECK: addiu $4, $zero, -1 # encoding: [0xff,0xff,0x04,0x24]
-# CHECK: add $4, $4, $5 # encoding: [0x20,0x20,0x85,0x00]
+# CHECK: addi $4, $5, -1 # encoding: [0xff,0xff,0xa4,0x20]
addu $4, -0x80000000
# CHECK: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c]
@@ -64,8 +62,7 @@ text_label:
# CHECK: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
# CHECK: addu $4, $4, $1 # encoding: [0x21,0x20,0x81,0x00]
addu $4, 0xFFFFFFFF
-# CHECK: addiu $1, $zero, -1 # encoding: [0xff,0xff,0x01,0x24]
-# CHECK: addu $4, $4, $1 # encoding: [0x21,0x20,0x81,0x00]
+# CHECK: addiu $4, $4, -1 # encoding: [0xff,0xff,0x84,0x24]
addu $4, $5, -0x80000000
# CHECK: lui $4, 32768 # encoding: [0x00,0x80,0x04,0x3c]
@@ -85,8 +82,7 @@ text_label:
# CHECK: lui $4, 1 # encoding: [0x01,0x00,0x04,0x3c]
# CHECK: addu $4, $4, $5 # encoding: [0x21,0x20,0x85,0x00]
addu $4, $5, 0xFFFFFFFF
-# CHECK: addiu $4, $zero, -1 # encoding: [0xff,0xff,0x04,0x24]
-# CHECK: addu $4, $4, $5 # encoding: [0x21,0x20,0x85,0x00]
+# CHECK: addiu $4, $5, -1 # encoding: [0xff,0xff,0xa4,0x24]
and $4, -0x80000000
# CHECK: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c]
@@ -208,8 +204,7 @@ text_label:
# CHECK: lui $4, 1 # encoding: [0x01,0x00,0x04,0x3c]
# CHECK: slt $4, $4, $5 # encoding: [0x2a,0x20,0x85,0x00]
slt $4, $5, 0xFFFFFFFF
-# CHECK: addiu $4, $zero, -1 # encoding: [0xff,0xff,0x04,0x24]
-# CHECK: slt $4, $4, $5 # encoding: [0x2a,0x20,0x85,0x00]
+# CHECK: slti $4, $5, -1 # encoding: [0xff,0xff,0xa4,0x28]
sltu $4, $5, -0x80000000
# CHECK: lui $4, 32768 # encoding: [0x00,0x80,0x04,0x3c]
@@ -228,8 +223,7 @@ text_label:
# CHECK: lui $4, 1 # encoding: [0x01,0x00,0x04,0x3c]
# CHECK: sltu $4, $4, $5 # encoding: [0x2b,0x20,0x85,0x00]
sltu $4, $5, 0xFFFFFFFF
-# CHECK: addiu $4, $zero, -1 # encoding: [0xff,0xff,0x04,0x24]
-# CHECK: sltu $4, $4, $5 # encoding: [0x2b,0x20,0x85,0x00]
+# CHECK: sltiu $4, $5, -1 # encoding: [0xff,0xff,0xa4,0x2c]
xor $4, -0x80000000
# CHECK: lui $1, 32768 # encoding: [0x00,0x80,0x01,0x3c]
diff --git a/test/MC/Mips/instr-analysis.s b/test/MC/Mips/instr-analysis.s
new file mode 100644
index 000000000000..58abfd0f4723
--- /dev/null
+++ b/test/MC/Mips/instr-analysis.s
@@ -0,0 +1,36 @@
+# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o - \
+# RUN: | llvm-objdump -d - | FileCheck %s
+
+# CHECK: foo:
+# CHECK-NEXT: 0: 0c 00 00 02 jal 8 <loc1>
+# CHECK-NEXT: 4: 00 00 00 00 nop
+#
+# CHECK: loc1:
+# CHECK-NEXT: 8: 0c 00 00 06 jal 24 <loc3>
+# CHECK-NEXT: c: 00 00 00 00 nop
+#
+# CHECK: loc2:
+# CHECK-NEXT: 10: 10 00 ff fd b -8 <loc1>
+# CHECK-NEXT: 14: 00 00 00 00 nop
+#
+# CHECK: loc3:
+# CHECK-NEXT: 18: 10 43 ff fd beq $2, $3, -8 <loc2>
+# CHECK-NEXT: 1c: 00 00 00 00 nop
+# CHECK-NEXT: 20: 04 11 ff f9 bal -24 <loc1>
+# CHECK-NEXT: 24: 00 00 00 00 nop
+# CHECK-NEXT: 28: 08 00 00 04 j 16 <loc2>
+
+ .text
+ .globl foo
+ .ent foo
+foo:
+ jal loc1
+loc1:
+ jal loc3
+loc2:
+ b loc1
+loc3:
+ beq $2, $3, loc2
+ bal loc1
+ j loc2
+ .end foo
diff --git a/test/MC/Mips/macro-abs.s b/test/MC/Mips/macro-abs.s
new file mode 100644
index 000000000000..2fa7b48901cd
--- /dev/null
+++ b/test/MC/Mips/macro-abs.s
@@ -0,0 +1,12 @@
+# RUN: llvm-mc -triple mips-unknown-linux -show-encoding %s | FileCheck %s
+
+.text
+# CHECK: .text
+ abs $4, $4
+# CHECK: bgez $4, 8 # encoding: [0x04,0x81,0x00,0x02]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+# CHECK: neg $4, $4 # encoding: [0x00,0x04,0x20,0x22]
+ abs $4, $5
+# CHECK: bgez $5, 8 # encoding: [0x04,0xa1,0x00,0x02]
+# CHECK: move $4, $5 # encoding: [0x00,0xa0,0x20,0x21]
+# CHECK: neg $4, $5 # encoding: [0x00,0x05,0x20,0x22]
diff --git a/test/MC/Mips/macro-ddiv-bad.s b/test/MC/Mips/macro-ddiv-bad.s
index 350a0fbaeda6..1abcab66142f 100644
--- a/test/MC/Mips/macro-ddiv-bad.s
+++ b/test/MC/Mips/macro-ddiv-bad.s
@@ -1,18 +1,18 @@
# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \
-# RUN: FileCheck %s --check-prefix=R6
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \
-# RUN: FileCheck %s --check-prefix=R6
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \
-# RUN: FileCheck %s --check-prefix=NOT-R6
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \
-# RUN: FileCheck %s --check-prefix=NOT-R6
+# RUN: FileCheck %s --check-prefix=MIPS64-NOT-R6
.text
- ddiv $25, $11
- # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
+ ddivu $25, $11
+ # MIPS32-OR-R6: :[[@LINE-1]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
- ddiv $25, $0
- # NOT-R6: :[[@LINE-1]]:3: warning: division by zero
+ ddivu $25, $0
+ # MIPS64-NOT-R6: :[[@LINE-1]]:3: warning: division by zero
- ddiv $0,$0
- # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero
+ ddivu $0,$0
+ # MIPS64-NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero
diff --git a/test/MC/Mips/macro-ddiv.s b/test/MC/Mips/macro-ddiv.s
index 99bc5450d015..d36e6998d603 100644
--- a/test/MC/Mips/macro-ddiv.s
+++ b/test/MC/Mips/macro-ddiv.s
@@ -48,6 +48,28 @@
ddiv $0,$0
# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+ ddiv $4,$5,$6
+# CHECK-NOTRAP: bne $6, $zero, 8 # encoding: [0x14,0xc0,0x00,0x02]
+# CHECK-NOTRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]
+# CHECK-NOTRAP: bne $6, $1, 20 # encoding: [0x14,0xc1,0x00,0x05]
+# CHECK-NOTRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]
+# CHECK-NOTRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc]
+# CHECK-NOTRAP: bne $5, $1, 8 # encoding: [0x14,0xa1,0x00,0x02]
+# CHECK-NOTRAP: sll $zero, $zero, 0 # encoding: [0x00,0x00,0x00,0x00]
+# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddiv $4,$5,$0
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+
+ ddiv $4,$0,$0
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+
+ ddiv $0, $4, $5
+# CHECK-NOTRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e]
+
ddiv $25,$11
# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]
# CHECK-TRAP: ddiv $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1e]
@@ -83,3 +105,22 @@
ddiv $0,$0
# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+
+ ddiv $4,$5,$6
+# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4]
+# CHECK-TRAP: ddiv $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1e]
+# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]
+# CHECK-TRAP: bne $6, $1, 12 # encoding: [0x14,0xc1,0x00,0x03]
+# CHECK-TRAP: addiu $1, $zero, 1 # encoding: [0x24,0x01,0x00,0x01]
+# CHECK-TRAP: dsll32 $1, $1, 31 # encoding: [0x00,0x01,0x0f,0xfc]
+# CHECK-TRAP: teq $5, $1, 6 # encoding: [0x00,0xa1,0x01,0xb4]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddiv $4,$5,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+
+ ddiv $4,$0,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+
+ ddiv $0, $4, $5
+# CHECK-TRAP: ddiv $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1e]
diff --git a/test/MC/Mips/macro-ddivu-bad.s b/test/MC/Mips/macro-ddivu-bad.s
index 7a6c7e0bd528..1abcab66142f 100644
--- a/test/MC/Mips/macro-ddivu-bad.s
+++ b/test/MC/Mips/macro-ddivu-bad.s
@@ -1,18 +1,18 @@
# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r6 2>&1 | \
-# RUN: FileCheck %s --check-prefix=R6
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64r6 2>&1 | \
-# RUN: FileCheck %s --check-prefix=R6
-# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 2>&1 | \
-# RUN: FileCheck %s --check-prefix=NOT-R6
+# RUN: FileCheck %s --check-prefix=MIPS32-OR-R6
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 2>&1 | \
-# RUN: FileCheck %s --check-prefix=NOT-R6
+# RUN: FileCheck %s --check-prefix=MIPS64-NOT-R6
.text
ddivu $25, $11
- # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
+ # MIPS32-OR-R6: :[[@LINE-1]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
ddivu $25, $0
- # NOT-R6: :[[@LINE-1]]:3: warning: division by zero
+ # MIPS64-NOT-R6: :[[@LINE-1]]:3: warning: division by zero
ddivu $0,$0
- # NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero
+ # MIPS64-NOT-R6: :[[@LINE-1]]:3: warning: dividing zero by zero
diff --git a/test/MC/Mips/macro-ddivu.s b/test/MC/Mips/macro-ddivu.s
index 72d923802785..ff7e8c46d0be 100644
--- a/test/MC/Mips/macro-ddivu.s
+++ b/test/MC/Mips/macro-ddivu.s
@@ -33,6 +33,27 @@
# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
# CHECK-NOTRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12]
+ ddivu $4,$5,$6
+# CHECK-NOTRAP: bne $6, $zero, 8 # encoding: [0x14,0xc0,0x00,0x02]
+# CHECK-NOTRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $4,$5,$0
+# CHECK-NOTRAP: bne $zero, $zero, 8 # encoding: [0x14,0x00,0x00,0x02]
+# CHECK-NOTRAP: ddivu $zero, $5, $zero # encoding: [0x00,0xa0,0x00,0x1f]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $4,$0,$0
+# CHECK-NOTRAP: bne $zero, $zero, 8 # encoding: [0x14,0x00,0x00,0x02]
+# CHECK-NOTRAP: ddivu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1f]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $0, $4, $5
+# CHECK-NOTRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f]
+
ddivu $25, $11
# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]
# CHECK-TRAP: ddivu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1f]
@@ -57,3 +78,21 @@
# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
# CHECK-TRAP: ddivu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1f]
# CHECK-TRAP: mflo $zero # encoding: [0x00,0x00,0x00,0x12]
+
+ ddivu $4,$5,$6
+# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4]
+# CHECK-TRAP: ddivu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1f]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $4,$5,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+# CHECK-TRAP: ddivu $zero, $5, $zero # encoding: [0x00,0xa0,0x00,0x1f]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $4,$0,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+# CHECK-TRAP: ddivu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1f]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ ddivu $0, $4, $5
+# CHECK-TRAP: ddivu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1f]
diff --git a/test/MC/Mips/macro-div-bad.s b/test/MC/Mips/macro-div-bad.s
index 086e8b441885..20ad39087a14 100644
--- a/test/MC/Mips/macro-div-bad.s
+++ b/test/MC/Mips/macro-div-bad.s
@@ -9,7 +9,7 @@
.text
div $25, $11
- # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
+ # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
div $25, $0
# NOT-R6: :[[@LINE-1]]:3: warning: division by zero
diff --git a/test/MC/Mips/macro-div.s b/test/MC/Mips/macro-div.s
index 9efd6e19db15..3ac763e17d7c 100644
--- a/test/MC/Mips/macro-div.s
+++ b/test/MC/Mips/macro-div.s
@@ -36,6 +36,27 @@
div $0,$0
# CHECK-NOTRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a]
+ div $4,$5,$6
+# CHECK-NOTRAP: bnez $6, 8 # encoding: [0x14,0xc0,0x00,0x02]
+# CHECK-NOTRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]
+# CHECK-NOTRAP: bne $6, $1, 16 # encoding: [0x14,0xc1,0x00,0x04]
+# CHECK-NOTRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]
+# CHECK-NOTRAP: bne $5, $1, 8 # encoding: [0x14,0xa1,0x00,0x02]
+# CHECK-NOTRAP: nop # encoding: [0x00,0x00,0x00,0x00]
+# CHECK-NOTRAP: break 6 # encoding: [0x00,0x06,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ div $4,$5,$0
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+
+ div $4,$0,$0
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+
+ div $0, $4, $5
+# CHECK-NOTRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a]
+
div $25, $11
# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]
# CHECK-TRAP: div $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1a]
@@ -62,3 +83,21 @@
div $0,$0
# CHECK-TRAP: div $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1a]
+
+ div $4,$5,$6
+# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4]
+# CHECK-TRAP: div $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1a]
+# CHECK-TRAP: addiu $1, $zero, -1 # encoding: [0x24,0x01,0xff,0xff]
+# CHECK-TRAP: bne $6, $1, 8 # encoding: [0x14,0xc1,0x00,0x02]
+# CHECK-TRAP: lui $1, 32768 # encoding: [0x3c,0x01,0x80,0x00]
+# CHECK-TRAP: teq $5, $1, 6 # encoding: [0x00,0xa1,0x01,0xb4]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ div $4,$5,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+
+ div $4,$0,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+
+ div $0, $4, $5
+# CHECK-TRAP: div $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1a] \ No newline at end of file
diff --git a/test/MC/Mips/macro-divu-bad.s b/test/MC/Mips/macro-divu-bad.s
index 45cef1f81820..6eeaa614ff86 100644
--- a/test/MC/Mips/macro-divu-bad.s
+++ b/test/MC/Mips/macro-divu-bad.s
@@ -9,7 +9,7 @@
.text
divu $25, $11
- # R6: :[[@LINE-1]]:3: error: instruction not supported on mips32r6 or mips64r6
+ # R6: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
divu $25, $0
# NOT-R6: :[[@LINE-1]]:3: warning: division by zero
diff --git a/test/MC/Mips/macro-divu.s b/test/MC/Mips/macro-divu.s
index 95630d34bd16..d8137d5ba733 100644
--- a/test/MC/Mips/macro-divu.s
+++ b/test/MC/Mips/macro-divu.s
@@ -27,23 +27,62 @@
divu $0,$0
# CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b]
- divu $25, $11
-# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]
-# CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b]
-# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]
+ divu $4,$5,$6
+# CHECK-NOTRAP: bnez $6, 8 # encoding: [0x14,0xc0,0x00,0x02]
+# CHECK-NOTRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
- divu $24,$12
-# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4]
-# CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b]
-# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12]
+ divu $4,$5,$0
+# CHECK-NOTRAP: bnez $zero, 8 # encoding: [0x14,0x00,0x00,0x02]
+# CHECK-NOTRAP: divu $zero, $5, $zero # encoding: [0x00,0xa0,0x00,0x1b]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ divu $4,$0,$0
+# CHECK-NOTRAP: bnez $zero, 8 # encoding: [0x14,0x00,0x00,0x02]
+# CHECK-NOTRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b]
+# CHECK-NOTRAP: break 7 # encoding: [0x00,0x07,0x00,0x0d]
+# CHECK-NOTRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ divu $0, $4, $5
+# CHECK-NOTRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b]
+
+ divu $25, $11
+# CHECK-TRAP: teq $11, $zero, 7 # encoding: [0x01,0x60,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $25, $11 # encoding: [0x03,0x2b,0x00,0x1b]
+# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]
+
+ divu $24,$12
+# CHECK-TRAP: teq $12, $zero, 7 # encoding: [0x01,0x80,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $24, $12 # encoding: [0x03,0x0c,0x00,0x1b]
+# CHECK-TRAP: mflo $24 # encoding: [0x00,0x00,0xc0,0x12]
divu $25,$0
-# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
-# CHECK-TRAP: divu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1b]
-# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $25, $zero # encoding: [0x03,0x20,0x00,0x1b]
+# CHECK-TRAP: mflo $25 # encoding: [0x00,0x00,0xc8,0x12]
divu $0,$9
-# CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b]
+# CHECK-TRAP: divu $zero, $zero, $9 # encoding: [0x00,0x09,0x00,0x1b]
divu $0,$0
-# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b]
+# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b]
+
+ divu $4,$5,$6
+# CHECK-TRAP: teq $6, $zero, 7 # encoding: [0x00,0xc0,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $5, $6 # encoding: [0x00,0xa6,0x00,0x1b]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ divu $4,$5,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $5, $zero # encoding: [0x00,0xa0,0x00,0x1b]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ divu $4,$0,$0
+# CHECK-TRAP: teq $zero, $zero, 7 # encoding: [0x00,0x00,0x01,0xf4]
+# CHECK-TRAP: divu $zero, $zero, $zero # encoding: [0x00,0x00,0x00,0x1b]
+# CHECK-TRAP: mflo $4 # encoding: [0x00,0x00,0x20,0x12]
+
+ divu $0, $4, $5
+# CHECK-TRAP: divu $zero, $4, $5 # encoding: [0x00,0x85,0x00,0x1b] \ No newline at end of file
diff --git a/test/MC/Mips/macro-dla-32bit.s b/test/MC/Mips/macro-dla-32bit.s
new file mode 100644
index 000000000000..2fd6abfe42f4
--- /dev/null
+++ b/test/MC/Mips/macro-dla-32bit.s
@@ -0,0 +1,228 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \
+# RUN: FileCheck %s
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 | \
+# RUN: FileCheck %s
+
+.set mips64r2
+
+dla $5, 0x00000001 # CHECK: addiu $5, $zero, 1 # encoding: [0x24,0x05,0x00,0x01]
+dla $5, 0x00000002 # CHECK: addiu $5, $zero, 2 # encoding: [0x24,0x05,0x00,0x02]
+dla $5, 0x00004000 # CHECK: addiu $5, $zero, 16384 # encoding: [0x24,0x05,0x40,0x00]
+dla $5, 0x00008000 # CHECK: ori $5, $zero, 32768 # encoding: [0x34,0x05,0x80,0x00]
+dla $5, 0xffffffff # CHECK: addiu $5, $zero, -1 # encoding: [0x24,0x05,0xff,0xff]
+dla $5, 0xfffffffe # CHECK: addiu $5, $zero, -2 # encoding: [0x24,0x05,0xff,0xfe]
+dla $5, 0xffffc000 # CHECK: addiu $5, $zero, -16384 # encoding: [0x24,0x05,0xc0,0x00]
+dla $5, 0xffff8000 # CHECK: addiu $5, $zero, -32768 # encoding: [0x24,0x05,0x80,0x00]
+
+dla $5, 0x00010000 # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+dla $5, 0x00020000 # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+dla $5, 0x40000000 # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+dla $5, 0x80000000 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+dla $5, 0xffff0000 # CHECK: lui $5, 65535 # encoding: [0x3c,0x05,0xff,0xff]
+dla $5, 0xfffe0000 # CHECK: lui $5, 65534 # encoding: [0x3c,0x05,0xff,0xfe]
+dla $5, 0xc0000000 # CHECK: lui $5, 49152 # encoding: [0x3c,0x05,0xc0,0x00]
+dla $5, 0x80000000 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+
+dla $5, 0x00010001 # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+dla $5, 0x00020001 # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+dla $5, 0x40000001 # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+dla $5, 0x80000001 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+dla $5, 0x00010002 # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+dla $5, 0x00020002 # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+dla $5, 0x40000002 # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+dla $5, 0x80000002 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+dla $5, 0x00014000 # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+dla $5, 0x00024000 # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+dla $5, 0x40004000 # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+dla $5, 0x80004000 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+dla $5, 0x00018000 # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0x00028000 # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0x40008000 # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0x80008000 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0xffff4000 # CHECK: lui $5, 65535 # encoding: [0x3c,0x05,0xff,0xff]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+dla $5, 0xfffe8000 # CHECK: lui $5, 65534 # encoding: [0x3c,0x05,0xff,0xfe]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0xc0008000 # CHECK: lui $5, 49152 # encoding: [0x3c,0x05,0xc0,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+dla $5, 0x80008000 # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+
+dla $5, 0x00000001($6) # CHECK: addiu $5, $6, 1 # encoding: [0x24,0xc5,0x00,0x01]
+dla $5, 0x00000002($6) # CHECK: addiu $5, $6, 2 # encoding: [0x24,0xc5,0x00,0x02]
+dla $5, 0x00004000($6) # CHECK: addiu $5, $6, 16384 # encoding: [0x24,0xc5,0x40,0x00]
+dla $5, 0x00008000($6) # CHECK: ori $5, $zero, 32768 # encoding: [0x34,0x05,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xffffffff($6) # CHECK: addiu $5, $6, -1 # encoding: [0x24,0xc5,0xff,0xff]
+dla $5, 0xfffffffe($6) # CHECK: addiu $5, $6, -2 # encoding: [0x24,0xc5,0xff,0xfe]
+dla $5, 0xffffc000($6) # CHECK: addiu $5, $6, -16384 # encoding: [0x24,0xc5,0xc0,0x00]
+dla $5, 0xffff8000($6) # CHECK: addiu $5, $6, -32768 # encoding: [0x24,0xc5,0x80,0x00]
+
+dla $5, 0x00010000($6) # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00020000($6) # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x40000000($6) # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80000000($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xffff0000($6) # CHECK: lui $5, 65535 # encoding: [0x3c,0x05,0xff,0xff]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xfffe0000($6) # CHECK: lui $5, 65534 # encoding: [0x3c,0x05,0xff,0xfe]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xc0000000($6) # CHECK: lui $5, 49152 # encoding: [0x3c,0x05,0xc0,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80000000($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+
+dla $5, 0x00010001($6) # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00020001($6) # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x40000001($6) # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80000001($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 1 # encoding: [0x34,0xa5,0x00,0x01]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00010002($6) # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00020002($6) # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x40000002($6) # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80000002($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 2 # encoding: [0x34,0xa5,0x00,0x02]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00014000($6) # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00024000($6) # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x40004000($6) # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80004000($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00018000($6) # CHECK: lui $5, 1 # encoding: [0x3c,0x05,0x00,0x01]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x00028000($6) # CHECK: lui $5, 2 # encoding: [0x3c,0x05,0x00,0x02]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x40008000($6) # CHECK: lui $5, 16384 # encoding: [0x3c,0x05,0x40,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80008000($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xffff4000($6) # CHECK: lui $5, 65535 # encoding: [0x3c,0x05,0xff,0xff]
+ # CHECK: ori $5, $5, 16384 # encoding: [0x34,0xa5,0x40,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xfffe8000($6) # CHECK: lui $5, 65534 # encoding: [0x3c,0x05,0xff,0xfe]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0xc0008000($6) # CHECK: lui $5, 49152 # encoding: [0x3c,0x05,0xc0,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+dla $5, 0x80008000($6) # CHECK: lui $5, 32768 # encoding: [0x3c,0x05,0x80,0x00]
+ # CHECK: ori $5, $5, 32768 # encoding: [0x34,0xa5,0x80,0x00]
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+# There are no further interesting immediates.
+
+symbol: # CHECK-LABEL: symbol:
+.extern extern_sym
+.option pic0 # CHECK-LABEL: .option pic0
+dla $5, extern_sym
+
+# CHECK: lui $5, %hi(extern_sym) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
+
+dla $5, extern_sym($8)
+
+# CHECK: lui $5, %hi(extern_sym) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
+# CHECK: addu $5, $5, $8 # encoding: [0x00,0xa8,0x28,0x21]
+
+dla $5, extern_sym($5)
+
+# CHECK: lui $1, %hi(extern_sym) # encoding: [0x3c,0x01,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym), kind: fixup_Mips_HI16
+# CHECK: addiu $1, $1, %lo(extern_sym) # encoding: [0x24,0x21,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym), kind: fixup_Mips_LO16
+# CHECK: addu $5, $1, $5 # encoding: [0x00,0x25,0x28,0x21]
+
+dla $5, extern_sym+8
+
+# CHECK: lui $5, %hi(extern_sym+8) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym+8) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
+
+dla $5, extern_sym+8($8)
+
+# CHECK: lui $5, %hi(extern_sym+8) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym+8), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym+8) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym+8), kind: fixup_Mips_LO16
+# CHECK: addu $5, $5, $8 # encoding: [0x00,0xa8,0x28,0x21]
+
+dla $5, extern_sym-8($5)
+
+# CHECK: lui $1, %hi(extern_sym-8) # encoding: [0x3c,0x01,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym-8), kind: fixup_Mips_HI16
+# CHECK: addiu $1, $1, %lo(extern_sym-8) # encoding: [0x24,0x21,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym-8), kind: fixup_Mips_LO16
+# CHECK: addu $5, $1, $5 # encoding: [0x00,0x25,0x28,0x21]
+
+dla $5, extern_sym-8
+
+# CHECK: lui $5, %hi(extern_sym-8) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym-8), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym-8) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym-8), kind: fixup_Mips_LO16
+
+dla $5, extern_sym-8($8)
+
+# CHECK: lui $5, %hi(extern_sym-8) # encoding: [0x3c,0x05,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym-8), kind: fixup_Mips_HI16
+# CHECK: addiu $5, $5, %lo(extern_sym-8) # encoding: [0x24,0xa5,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym-8), kind: fixup_Mips_LO16
+# CHECK: addu $5, $5, $8 # encoding: [0x00,0xa8,0x28,0x21]
+
+dla $5, extern_sym-8($5)
+
+# CHECK: lui $1, %hi(extern_sym-8) # encoding: [0x3c,0x01,A,A]
+# CHECK: # fixup A - offset: 0, value: %hi(extern_sym-8), kind: fixup_Mips_HI16
+# CHECK: addiu $1, $1, %lo(extern_sym-8) # encoding: [0x24,0x21,A,A]
+# CHECK: # fixup A - offset: 0, value: %lo(extern_sym-8), kind: fixup_Mips_LO16
+# CHECK: addu $5, $1, $5 # encoding: [0x00,0x25,0x28,0x21]
+
+.option pic2
diff --git a/test/MC/Mips/macro-la-pic.s b/test/MC/Mips/macro-la-pic.s
new file mode 100644
index 000000000000..5516518ba61b
--- /dev/null
+++ b/test/MC/Mips/macro-la-pic.s
@@ -0,0 +1,54 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \
+# RUN: FileCheck %s
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 | \
+# RUN: FileCheck %s
+# N32 should be acceptable too but it currently errors out.
+# N64 should be acceptable too but we cannot convert la to dla yet.
+
+.option pic2
+la $5, symbol # CHECK: lw $5, %got(symbol)($gp) # encoding: [0x8f,0x85,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol), kind: fixup_Mips_GOT
+la $5, symbol($6) # CHECK: lw $5, %got(symbol)($gp) # encoding: [0x8f,0x85,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol), kind: fixup_Mips_GOT
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+la $6, symbol($6) # CHECK: lw $1, %got(symbol)($gp) # encoding: [0x8f,0x81,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol), kind: fixup_Mips_GOT
+ # CHECK: addu $6, $1, $6 # encoding: [0x00,0x26,0x30,0x21]
+la $5, symbol+8 # CHECK: lw $5, %got(symbol+8)($gp) # encoding: [0x8f,0x85,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+la $5, symbol+8($6) # CHECK: lw $5, %got(symbol+8)($gp) # encoding: [0x8f,0x85,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+ # CHECK: addu $5, $5, $6 # encoding: [0x00,0xa6,0x28,0x21]
+la $6, symbol+8($6) # CHECK: lw $1, %got(symbol+8)($gp) # encoding: [0x8f,0x81,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+ # CHECK: addiu $1, $1, 8 # encoding: [0x24,0x21,0x00,0x08]
+ # CHECK: addu $6, $1, $6 # encoding: [0x00,0x26,0x30,0x21]
+la $5, 1f # CHECK: lw $5, %got($tmp0)($gp) # encoding: [0x8f,0x85,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got($tmp0), kind: fixup_Mips_GOT
+ # CHECK: addiu $5, $5, %lo($tmp0) # encoding: [0x24,0xa5,A,A]
+ # CHECK: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
+1:
+
+# PIC expansions involving $25 are special.
+la $25, symbol # CHECK: lw $25, %call16(symbol)($gp) # encoding: [0x8f,0x99,A,A]
+ # CHECK: # fixup A - offset: 0, value: %call16(symbol), kind: fixup_Mips_CALL16
+la $25, symbol($6) # CHECK: lw $25, %got(symbol)($gp) # encoding: [0x8f,0x99,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol), kind: fixup_Mips_GOT
+ # CHECK: addu $25, $25, $6 # encoding: [0x03,0x26,0xc8,0x21]
+la $25, symbol($25) # CHECK: lw $1, %got(symbol)($gp) # encoding: [0x8f,0x81,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol), kind: fixup_Mips_GOT
+ # CHECK: addu $25, $1, $25 # encoding: [0x00,0x39,0xc8,0x21]
+la $25, symbol+8 # CHECK: lw $25, %got(symbol+8)($gp) # encoding: [0x8f,0x99,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+la $25, symbol+8($6) # CHECK: lw $25, %got(symbol+8)($gp) # encoding: [0x8f,0x99,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+ # CHECK: addu $25, $25, $6 # encoding: [0x03,0x26,0xc8,0x21]
+la $25, symbol+8($25) # CHECK: lw $1, %got(symbol+8)($gp) # encoding: [0x8f,0x81,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got(symbol+8), kind: fixup_Mips_GOT
+ # CHECK: addiu $1, $1, 8 # encoding: [0x24,0x21,0x00,0x08]
+ # CHECK: addu $25, $1, $25 # encoding: [0x00,0x39,0xc8,0x21]
+la $25, 1f # CHECK: lw $25, %got($tmp1)($gp) # encoding: [0x8f,0x99,A,A]
+ # CHECK: # fixup A - offset: 0, value: %got($tmp1), kind: fixup_Mips_GOT
+ # CHECK: addiu $25, $25, %lo($tmp1) # encoding: [0x27,0x39,A,A]
+ # CHECK: # fixup A - offset: 0, value: %lo($tmp1), kind: fixup_Mips_LO16
+1:
diff --git a/test/MC/Mips/macro-la.s b/test/MC/Mips/macro-la.s
index 3428cd78cb84..cca4805054f0 100644
--- a/test/MC/Mips/macro-la.s
+++ b/test/MC/Mips/macro-la.s
@@ -272,8 +272,8 @@ la $6, symbol+8($6) # CHECK: lui $1, %hi(symbol+8) # encoding: [0x3c,0x0
# CHECK: addiu $1, $1, %lo(symbol+8) # encoding: [0x24,0x21,A,A]
# CHECK: # fixup A - offset: 0, value: %lo(symbol+8), kind: fixup_Mips_LO16
# CHECK: addu $6, $1, $6 # encoding: [0x00,0x26,0x30,0x21]
-la $5, 1f # CHECK: lui $5, %hi(($tmp0)) # encoding: [0x3c,0x05,A,A]
- # CHECK: # fixup A - offset: 0, value: %hi(($tmp0)), kind: fixup_Mips_HI16
- # CHECK: addiu $5, $5, %lo(($tmp0)) # encoding: [0x24,0xa5,A,A]
- # CHECK: # fixup A - offset: 0, value: %lo(($tmp0)), kind: fixup_Mips_LO16
+la $5, 1f # CHECK: lui $5, %hi($tmp0) # encoding: [0x3c,0x05,A,A]
+ # CHECK: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
+ # CHECK: addiu $5, $5, %lo($tmp0) # encoding: [0x24,0xa5,A,A]
+ # CHECK: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
1:
diff --git a/test/MC/Mips/micromips-alias.s b/test/MC/Mips/micromips-alias.s
index 256b3b68aa61..c955dd9974ad 100644
--- a/test/MC/Mips/micromips-alias.s
+++ b/test/MC/Mips/micromips-alias.s
@@ -3,7 +3,7 @@
# Symbol bar must be marked as micromips.
# CHECK: Name: bar
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
.align 2
.type f,@function
.set nomips16
@@ -16,7 +16,7 @@ f:
bar = f
# CHECK: Name: foo
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
.type o,@object
.set micromips
o:
diff --git a/test/MC/Mips/micromips-alu-instructions.s b/test/MC/Mips/micromips-alu-instructions.s
index aeab09e78fa9..0f37c9ab6b9a 100644
--- a/test/MC/Mips/micromips-alu-instructions.s
+++ b/test/MC/Mips/micromips-alu-instructions.s
@@ -41,6 +41,12 @@
# CHECK-EL: addiupc $2, 20 # encoding: [0x00,0x79,0x05,0x00]
# CHECK-EL: addiupc $7, 16777212 # encoding: [0xbf,0x7b,0xff,0xff]
# CHECK-EL: addiupc $7, -16777216 # encoding: [0xc0,0x7b,0x00,0x00]
+# CHECK-EL: andi $3, $3, 5 # encoding: [0x63,0xd0,0x05,0x00]
+# CHECK-EL: ori $3, $4, 5 # encoding: [0x64,0x50,0x05,0x00]
+# CHECK-EL: ori $3, $3, 5 # encoding: [0x63,0x50,0x05,0x00]
+# CHECK-EL: xori $3, $3, 5 # encoding: [0x63,0x70,0x05,0x00]
+# CHECK-EL: not $3, $4 # encoding: [0x04,0x00,0xd0,0x1a]
+
#------------------------------------------------------------------------------
# Big endian
#------------------------------------------------------------------------------
@@ -78,6 +84,12 @@
# CHECK-EB: addiupc $2, 20 # encoding: [0x79,0x00,0x00,0x05]
# CHECK-EB: addiupc $7, 16777212 # encoding: [0x7b,0xbf,0xff,0xff]
# CHECK-EB: addiupc $7, -16777216 # encoding: [0x7b,0xc0,0x00,0x00]
+# CHECK-EB: andi $3, $3, 5 # encoding: [0xd0,0x63,0x00,0x05]
+# CHECK-EB: ori $3, $4, 5 # encoding: [0x50,0x64,0x00,0x05]
+# CHECK-EB: ori $3, $3, 5 # encoding: [0x50,0x63,0x00,0x05]
+# CHECK-EB: xori $3, $3, 5 # encoding: [0x70,0x63,0x00,0x05]
+# CHECK-EB: not $3, $4 # encoding: [0x00,0x04,0x1a,0xd0]
+
add $9, $6, $7
add $9, $6, 17767
addu $9, $6, -15001
@@ -113,3 +125,8 @@
addiupc $2, 20
addiupc $7, 16777212
addiupc $7, -16777216
+ and $3, 5
+ or $3, $4, 5
+ or $3, 5
+ xor $3, 5
+ not $3, $4
diff --git a/test/MC/Mips/micromips-dsp/invalid.s b/test/MC/Mips/micromips-dsp/invalid.s
index 55a6f8e28737..8e6fedbf0b94 100644
--- a/test/MC/Mips/micromips-dsp/invalid.s
+++ b/test/MC/Mips/micromips-dsp/invalid.s
@@ -21,3 +21,5 @@
shrl.qb $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shilo $ac1, 64 # CHECK: :[[@LINE]]:15: error: expected 6-bit signed immediate
shilo $ac1, -64 # CHECK: :[[@LINE]]:15: error: expected 6-bit signed immediate
+ # bposge32 is microMIPS DSP instruction but it is removed in Release 6
+ bposge32 342 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/micromips-dsp/valid-micromips32r3.s b/test/MC/Mips/micromips-dsp/valid-micromips32r3.s
new file mode 100644
index 000000000000..3c8501d3c374
--- /dev/null
+++ b/test/MC/Mips/micromips-dsp/valid-micromips32r3.s
@@ -0,0 +1,4 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r3 -mattr=micromips -mattr=+dsp | FileCheck %s
+
+ .set noat
+ bposge32 342 # CHECK: bposge32 342 # encoding: [0x43,0x60,0x00,0xab]
diff --git a/test/MC/Mips/micromips-dsp/valid.s b/test/MC/Mips/micromips-dsp/valid.s
index c147a6d850ac..d1f5d0f3ae8d 100644
--- a/test/MC/Mips/micromips-dsp/valid.s
+++ b/test/MC/Mips/micromips-dsp/valid.s
@@ -103,3 +103,15 @@
wrdsp $5 # CHECK: wrdsp $5 # encoding: [0x00,0xa7,0xd6,0x7c]
wrdsp $5, 2 # CHECK: wrdsp $5, 2 # encoding: [0x00,0xa0,0x96,0x7c]
wrdsp $5, 31 # CHECK: wrdsp $5 # encoding: [0x00,0xa7,0xd6,0x7c]
+ modsub $4, $5, $6 # CHECK: modsub $4, $5, $6 # encoding: [0x00,0xc5,0x22,0x95]
+ mulsaq_s.w.ph $ac0, $3, $2 # CHECK: mulsaq_s.w.ph $ac0, $3, $2 # encoding: [0x00,0x43,0x3c,0xbc]
+ bitrev $2, $3 # CHECK: bitrev $2, $3 # encoding: [0x00,0x43,0x31,0x3c]
+ cmp.eq.ph $2, $3 # CHECK: cmp.eq.ph $2, $3 # encoding: [0x00,0x62,0x00,0x05]
+ cmp.le.ph $2, $3 # CHECK: cmp.le.ph $2, $3 # encoding: [0x00,0x62,0x00,0x85]
+ cmp.lt.ph $2, $3 # CHECK: cmp.lt.ph $2, $3 # encoding: [0x00,0x62,0x00,0x45]
+ cmpgu.eq.qb $1, $2, $3 # CHECK: cmpgu.eq.qb $1, $2, $3 # encoding: [0x58,0x62,0x08,0xc5]
+ cmpgu.lt.qb $1, $2, $3 # CHECK: cmpgu.lt.qb $1, $2, $3 # encoding: [0x58,0x62,0x09,0x05]
+ cmpgu.le.qb $1, $2, $3 # CHECK: cmpgu.le.qb $1, $2, $3 # encoding: [0x58,0x62,0x09,0x45]
+ cmpu.eq.qb $1, $2 # CHECK: cmpu.eq.qb $1, $2 # encoding: [0x00,0x41,0x02,0x45]
+ cmpu.lt.qb $1, $2 # CHECK: cmpu.lt.qb $1, $2 # encoding: [0x00,0x41,0x02,0x85]
+ cmpu.le.qb $1, $2 # CHECK: cmpu.le.qb $1, $2 # encoding: [0x00,0x41,0x02,0xc5]
diff --git a/test/MC/Mips/micromips-dspr2/invalid.s b/test/MC/Mips/micromips-dspr2/invalid.s
index 5ea203d981c1..e98e5ff2436f 100644
--- a/test/MC/Mips/micromips-dspr2/invalid.s
+++ b/test/MC/Mips/micromips-dspr2/invalid.s
@@ -1,9 +1,19 @@
# RUN: not llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 -mattr=micromips -mattr=+dspr2 2>%t1
# RUN: FileCheck %s < %t1
+ balign $2, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 2-bit unsigned immediate
+ balign $2, $3, 4 # CHECK: :[[@LINE]]:18: error: expected 2-bit unsigned immediate
shra.qb $3, $4, 8 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shra.qb $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 3-bit unsigned immediate
shra_r.qb $3, $4, 8 # CHECK: :[[@LINE]]:21: error: expected 3-bit unsigned immediate
shra_r.qb $3, $4, -1 # CHECK: :[[@LINE]]:21: error: expected 3-bit unsigned immediate
shrl.ph $3, $4, 16 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
shrl.ph $3, $4, -1 # CHECK: :[[@LINE]]:19: error: expected 4-bit unsigned immediate
+ append $3, $4, 32 # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
+ append $3, $4, -1 # CHECK: :[[@LINE]]:18: error: expected 5-bit unsigned immediate
+ mulsa.w.ph $8, $3, $2 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ mulsa.w.ph $31, $3, $2 # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ mulsaq_s.w.ph $8, $3, $2 # CHECK: :[[@LINE]]:17: error: invalid operand for instruction
+ mulsaq_s.w.ph $31, $3, $2 # CHECK: :[[@LINE]]:17: error: invalid operand for instruction
+ # bposge32 is microMIPS DSP instruction but it is removed in Release 6
+ bposge32 342 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/micromips-dspr2/valid.s b/test/MC/Mips/micromips-dspr2/valid.s
index b1d09cbc84c7..19c91fe7e14c 100644
--- a/test/MC/Mips/micromips-dspr2/valid.s
+++ b/test/MC/Mips/micromips-dspr2/valid.s
@@ -125,3 +125,19 @@
wrdsp $5 # CHECK: wrdsp $5 # encoding: [0x00,0xa7,0xd6,0x7c]
wrdsp $5, 2 # CHECK: wrdsp $5, 2 # encoding: [0x00,0xa0,0x96,0x7c]
wrdsp $5, 31 # CHECK: wrdsp $5 # encoding: [0x00,0xa7,0xd6,0x7c]
+ append $3, $4, 5 # CHECK: append $3, $4, 5 # encoding: [0x00,0x64,0x2a,0x15]
+ mulsa.w.ph $ac0, $3, $2 # CHECK: mulsa.w.ph $ac0, $3, $2 # encoding: [0x00,0x43,0x2c,0xbc]
+ balign $2, $3, 3 # CHECK: balign $2, $3, 3 # encoding: [0x00,0x43,0xc8,0xbc]
+ bitrev $2, $3 # CHECK: bitrev $2, $3 # encoding: [0x00,0x43,0x31,0x3c]
+ cmp.eq.ph $2, $3 # CHECK: cmp.eq.ph $2, $3 # encoding: [0x00,0x62,0x00,0x05]
+ cmp.le.ph $2, $3 # CHECK: cmp.le.ph $2, $3 # encoding: [0x00,0x62,0x00,0x85]
+ cmp.lt.ph $2, $3 # CHECK: cmp.lt.ph $2, $3 # encoding: [0x00,0x62,0x00,0x45]
+ cmpgdu.eq.qb $1, $2, $3 # CHECK: cmpgdu.eq.qb $1, $2, $3 # encoding: [0x00,0x62,0x09,0x85]
+ cmpgdu.lt.qb $1, $2, $3 # CHECK: cmpgdu.lt.qb $1, $2, $3 # encoding: [0x00,0x62,0x09,0xc5]
+ cmpgdu.le.qb $1, $2, $3 # CHECK: cmpgdu.le.qb $1, $2, $3 # encoding: [0x00,0x62,0x0a,0x05]
+ cmpgu.eq.qb $1, $2, $3 # CHECK: cmpgu.eq.qb $1, $2, $3 # encoding: [0x58,0x62,0x08,0xc5]
+ cmpgu.lt.qb $1, $2, $3 # CHECK: cmpgu.lt.qb $1, $2, $3 # encoding: [0x58,0x62,0x09,0x05]
+ cmpgu.le.qb $1, $2, $3 # CHECK: cmpgu.le.qb $1, $2, $3 # encoding: [0x58,0x62,0x09,0x45]
+ cmpu.eq.qb $1, $2 # CHECK: cmpu.eq.qb $1, $2 # encoding: [0x00,0x41,0x02,0x45]
+ cmpu.lt.qb $1, $2 # CHECK: cmpu.lt.qb $1, $2 # encoding: [0x00,0x41,0x02,0x85]
+ cmpu.le.qb $1, $2 # CHECK: cmpu.le.qb $1, $2 # encoding: [0x00,0x41,0x02,0xc5]
diff --git a/test/MC/Mips/micromips-dspr3/valid.s b/test/MC/Mips/micromips-dspr3/valid.s
new file mode 100644
index 000000000000..613be05bc73f
--- /dev/null
+++ b/test/MC/Mips/micromips-dspr3/valid.s
@@ -0,0 +1,4 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 -mattr=micromips -mattr=+dspr3 | FileCheck %s
+
+ .set noat
+ bposge32c 342 # CHECK: bposge32c 342 # encoding: [0x43,0x20,0x00,0xab]
diff --git a/test/MC/Mips/micromips-el-fixup-data.s b/test/MC/Mips/micromips-el-fixup-data.s
index 47538356bf37..aa85838339fc 100644
--- a/test/MC/Mips/micromips-el-fixup-data.s
+++ b/test/MC/Mips/micromips-el-fixup-data.s
@@ -1,6 +1,6 @@
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 \
# RUN: -mattr=+micromips 2>&1 -filetype=obj > %t.o
-# RUN: llvm-objdump %t.o -triple mipsel -mattr=+micromips -d | FileCheck %s
+# RUN: llvm-objdump %t.o -d | FileCheck %s
# Check that fixup data is written in the microMIPS specific little endian
# byte order.
diff --git a/test/MC/Mips/micromips-expansions.s b/test/MC/Mips/micromips-expansions.s
index 48c73f34e7e8..3f02ddd2040c 100644
--- a/test/MC/Mips/micromips-expansions.s
+++ b/test/MC/Mips/micromips-expansions.s
@@ -18,28 +18,28 @@
# CHECK: addu $7, $7, $8 # encoding: [0x07,0x01,0x50,0x39]
# CHECK: lui $10, %hi(symbol) # encoding: [0xaa'A',0x41'A',0x00,0x00]
# CHECK: # fixup A - offset: 0,
-# CHECK: value: symbol@ABS_HI,
+# CHECK: value: %hi(symbol),
# CHECK: kind: fixup_MICROMIPS_HI16
# CHECK: addu $10, $10, $4 # encoding: [0x8a,0x00,0x50,0x51]
# CHECK: lw $10, %lo(symbol)($10) # encoding: [0x4a'A',0xfd'A',0x00,0x00]
# CHECK: # fixup A - offset: 0,
-# CHECK: value: symbol@ABS_LO,
+# CHECK: value: %lo(symbol),
# CHECK: kind: fixup_MICROMIPS_LO16
# CHECK: lui $1, %hi(symbol) # encoding: [0xa1'A',0x41'A',0x00,0x00]
# CHECK: # fixup A - offset: 0,
-# CHECK: value: symbol@ABS_HI,
+# CHECK: value: %hi(symbol),
# CHECK: kind: fixup_MICROMIPS_HI16
# CHECK: addu $1, $1, $9 # encoding: [0x21,0x01,0x50,0x09]
# CHECK: sw $10, %lo(symbol)($1) # encoding: [0x41'A',0xf9'A',0x00,0x00]
# CHECK: # fixup A - offset: 0,
-# CHECK: value: symbol@ABS_LO,
+# CHECK: value: %lo(symbol),
# CHECK: kind: fixup_MICROMIPS_LO16
# CHECK: lui $10, 10 # encoding: [0xaa,0x41,0x0a,0x00]
# CHECK: addu $10, $10, $4 # encoding: [0x8a,0x00,0x50,0x51]
# CHECK: lw $10, 123($10) # encoding: [0x4a,0xfd,0x7b,0x00]
# CHECK: lui $1, 2 # encoding: [0xa1,0x41,0x02,0x00]
# CHECK: addu $1, $1, $9 # encoding: [0x21,0x01,0x50,0x09]
-# CHECK: sw $10, 57920($1) # encoding: [0x41,0xf9,0x40,0xe2]
+# CHECK: sw $10, -7616($1) # encoding: [0x41,0xf9,0x40,0xe2]
li $5,123
li $6,-2345
diff --git a/test/MC/Mips/micromips-func-addr.s b/test/MC/Mips/micromips-func-addr.s
index e2a4d23d35ff..0cd49352f306 100644
--- a/test/MC/Mips/micromips-func-addr.s
+++ b/test/MC/Mips/micromips-func-addr.s
@@ -1,6 +1,6 @@
# RUN: llvm-mc %s -filetype=obj -triple=mipsel-unknown-linux \
# RUN: -mattr=micromips | llvm-readobj -r \
-# RUN: | FileCheck %s -check-prefix=CHECK
+# RUN: | FileCheck %s
# CHECK: Relocations [
# CHECK: 0x0 R_MIPS_32 bar 0x0
# CHECK: 0x4 R_MIPS_32 L1 0x0
diff --git a/test/MC/Mips/micromips-invalid.s b/test/MC/Mips/micromips-invalid.s
index 7d34e79cf714..8494aa23650e 100644
--- a/test/MC/Mips/micromips-invalid.s
+++ b/test/MC/Mips/micromips-invalid.s
@@ -1,10 +1,9 @@
# RUN: not llvm-mc %s -triple=mipsel -show-encoding -mattr=micromips 2>%t1
# RUN: FileCheck %s < %t1
- addiur1sp $7, 260 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- addiur1sp $7, 241 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: misaligned immediate operand value
- addiur1sp $8, 240 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- addius5 $7, 9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
+ addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
addiusp 1032 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
addu16 $6, $14, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
subu16 $5, $16, $9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -18,8 +17,6 @@
srl16 $4, $9, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sll16 $3, $16, 9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
srl16 $4, $5, 15 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- li16 $8, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- li16 $4, -2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
addiur2 $6, $7, 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lwm16 $5, $6, $ra, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected
@@ -91,3 +88,4 @@
jraddiusp 33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4
jraddiusp 125 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4
jraddiusp 132 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected both 7-bit unsigned immediate and multiple of 4
+ lwu $32, 4096($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/micromips-label-test-sections.s b/test/MC/Mips/micromips-label-test-sections.s
index 569b64c6f98a..e24f6a4d17c8 100644
--- a/test/MC/Mips/micromips-label-test-sections.s
+++ b/test/MC/Mips/micromips-label-test-sections.s
@@ -14,7 +14,9 @@ h:
# CHECK: Name: f
# CHECK: Binding: Local
# CHECK: Type: None
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
+# CHECK: STO_MIPS_MICROMIPS
+# CHECK: ]
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
@@ -28,7 +30,9 @@ h:
# CHECK: Name: h
# CHECK: Binding: Local
# CHECK: Type: None
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
+# CHECK: STO_MIPS_MICROMIPS
+# CHECK: ]
# CHECK: Section: .text
# CHECK: }
# CHECK: ]
diff --git a/test/MC/Mips/micromips-label-test.s b/test/MC/Mips/micromips-label-test.s
index cc1566b9e678..39c905c06dbe 100644
--- a/test/MC/Mips/micromips-label-test.s
+++ b/test/MC/Mips/micromips-label-test.s
@@ -26,7 +26,9 @@ j:
# CHECK: Name: g
# CHECK: Binding: Local
# CHECK: Type: None
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
+# CHECK: STO_MIPS_MICROMIPS
+# CHECK: ]
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
@@ -40,7 +42,9 @@ j:
# CHECK: Name: i
# CHECK: Binding: Local
# CHECK: Type: None
-# CHECK: Other: 128
+# CHECK: Other [ (0x80)
+# CHECK: STO_MIPS_MICROMIPS
+# CHECK: ]
# CHECK: Section: .text
# CHECK: }
# CHECK: Symbol {
diff --git a/test/MC/Mips/micromips-relocations.s b/test/MC/Mips/micromips-relocations.s
index 1633845444f2..a8734a06ca89 100644
--- a/test/MC/Mips/micromips-relocations.s
+++ b/test/MC/Mips/micromips-relocations.s
@@ -10,71 +10,71 @@
# CHECK-FIXUP: lui $2, %hi(_gp_disp)
# CHECK-FIXUP: # encoding: [0xa2'A',0x41'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@ABS_HI,
+# CHECK-FIXUP: value: %hi(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_HI16
# CHECK-FIXUP: addiu $2, $2, %lo(_gp_disp)
# CHECK-FIXUP: # encoding: [0x42'A',0x30'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@ABS_LO,
+# CHECK-FIXUP: value: %lo(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_LO16
# CHECK-FIXUP: lw $25, %call16(strchr)($gp)
# CHECK-FIXUP: # encoding: [0x3c'A',0xff'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: strchr@GOT_CALL,
+# CHECK-FIXUP: value: %call16(strchr),
# CHECK-FIXUP: kind: fixup_MICROMIPS_CALL16
# CHECK-FIXUP: lw $3, %got(loop_1)($2)
# CHECK-FIXUP: # encoding: [0x62'A',0xfc'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: loop_1@GOT,
+# CHECK-FIXUP: value: %got(loop_1),
# CHECK-FIXUP: kind: fixup_MICROMIPS_GOT16
# CHECK-FIXUP: lui $2, %dtprel_hi(_gp_disp)
# CHECK-FIXUP: # encoding: [0xa2'A',0x41'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@DTPREL_HI,
+# CHECK-FIXUP: value: %dtprel_hi(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_TLS_DTPREL_HI16
# CHECK-FIXUP: addiu $2, $2, %dtprel_lo(_gp_disp)
# CHECK-FIXUP: # encoding: [0x42'A',0x30'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@DTPREL_LO,
+# CHECK-FIXUP: value: %dtprel_lo(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_TLS_DTPREL_LO16
# CHECK-FIXUP: lw $3, %got(loop_1)($2)
# CHECK-FIXUP: # encoding: [0x62'A',0xfc'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: loop_1@GOT,
+# CHECK-FIXUP: value: %got(loop_1),
# CHECK-FIXUP: kind: fixup_MICROMIPS_GOT16
# CHECK-FIXUP: lw $4, %got_disp(loop_2)($3)
# CHECK-FIXUP: # encoding: [0x83'A',0xfc'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: loop_2@GOT_DISP,
+# CHECK-FIXUP: value: %got_disp(loop_2),
# CHECK-FIXUP: kind: fixup_MICROMIPS_GOT_DISP
# CHECK-FIXUP: lw $5, %got_page(loop_3)($4)
# CHECK-FIXUP: # encoding: [0xa4'A',0xfc'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: loop_3@GOT_PAGE,
+# CHECK-FIXUP: value: %got_page(loop_3),
# CHECK-FIXUP: kind: fixup_MICROMIPS_GOT_PAGE
# CHECK-FIXUP: lw $6, %got_ofst(loop_4)($5)
# CHECK-FIXUP: # encoding: [0xc5'A',0xfc'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: loop_4@GOT_OFST,
+# CHECK-FIXUP: value: %got_ofst(loop_4),
# CHECK-FIXUP: kind: fixup_MICROMIPS_GOT_OFST
# CHECK-FIXUP: lui $2, %tprel_hi(_gp_disp)
# CHECK-FIXUP: # encoding: [0xa2'A',0x41'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@TPREL_HI,
+# CHECK-FIXUP: value: %tprel_hi(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_TLS_TPREL_HI16
# CHECK-FIXUP: addiu $2, $2, %tprel_lo(_gp_disp)
# CHECK-FIXUP: # encoding: [0x42'A',0x30'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: _gp_disp@TPREL_LO,
+# CHECK-FIXUP: value: %tprel_lo(_gp_disp),
# CHECK-FIXUP: kind: fixup_MICROMIPS_TLS_TPREL_LO16
# CHECK-FIXUP: addiu $4, $gp, %tlsgd(a)
# CHECK-FIXUP: # encoding: [0x9c'A',0x30'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: a@TLSGD, kind: fixup_MICROMIPS_TLS_GD
+# CHECK-FIXUP: value: %tlsgd(a), kind: fixup_MICROMIPS_TLS_GD
# CHECK-FIXUP: addiu $4, $gp, %tlsldm(f.i)
# CHECK-FIXUP: # encoding: [0x9c'A',0x30'A',0x00,0x00]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: f.i@TLSLDM, kind: fixup_MICROMIPS_TLS_LDM
+# CHECK-FIXUP: value: %tlsldm(f.i), kind: fixup_MICROMIPS_TLS_LDM
#------------------------------------------------------------------------------
# Check that the appropriate relocations were created.
#------------------------------------------------------------------------------
diff --git a/test/MC/Mips/micromips-shift-instructions.s b/test/MC/Mips/micromips-shift-instructions.s
index bbb71ac72082..52b71e22aacd 100644
--- a/test/MC/Mips/micromips-shift-instructions.s
+++ b/test/MC/Mips/micromips-shift-instructions.s
@@ -15,6 +15,15 @@
# CHECK-EL: srlv $2, $3, $5 # encoding: [0x65,0x00,0x50,0x10]
# CHECK-EL: rotr $9, $6, 7 # encoding: [0x26,0x01,0xc0,0x38]
# CHECK-EL: rotrv $9, $6, $7 # encoding: [0xc7,0x00,0xd0,0x48]
+# CHECK-EL: sllv $2, $3, $5 # encoding: [0x65,0x00,0x10,0x10]
+# CHECK-EL: srav $2, $3, $5 # encoding: [0x65,0x00,0x90,0x10]
+# CHECK-EL: srlv $2, $3, $5 # encoding: [0x65,0x00,0x50,0x10]
+# CHECK-EL: sllv $2, $2, $3 # encoding: [0x43,0x00,0x10,0x10]
+# CHECK-EL: srav $2, $2, $3 # encoding: [0x43,0x00,0x90,0x10]
+# CHECK-EL: srlv $2, $2, $3 # encoding: [0x43,0x00,0x50,0x10]
+# CHECK-EL: sll $3, $3, 7 # encoding: [0x63,0x00,0x00,0x38]
+# CHECK-EL: sra $3, $3, 7 # encoding: [0x63,0x00,0x80,0x38]
+# CHECK-EL: srl $3, $3, 7 # encoding: [0x63,0x00,0x40,0x38]
#------------------------------------------------------------------------------
# Big endian
#------------------------------------------------------------------------------
@@ -26,6 +35,15 @@
# CHECK-EB: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
# CHECK-EB: rotr $9, $6, 7 # encoding: [0x01,0x26,0x38,0xc0]
# CHECK-EB: rotrv $9, $6, $7 # encoding: [0x00,0xc7,0x48,0xd0]
+# CHECK-EB: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
+# CHECK-EB: srav $2, $3, $5 # encoding: [0x00,0x65,0x10,0x90]
+# CHECK-EB: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
+# CHECK-EB: sllv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x10]
+# CHECK-EB: srav $2, $2, $3 # encoding: [0x00,0x43,0x10,0x90]
+# CHECK-EB: srlv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x50]
+# CHECK-EB: sll $3, $3, 7 # encoding: [0x00,0x63,0x38,0x00]
+# CHECK-EB: sra $3, $3, 7 # encoding: [0x00,0x63,0x38,0x80]
+# CHECK-EB: srl $3, $3, 7 # encoding: [0x00,0x63,0x38,0x40]
sll $4, $3, 7
sllv $2, $3, $5
sra $4, $3, 7
@@ -34,3 +52,12 @@
srlv $2, $3, $5
rotr $9, $6, 7
rotrv $9, $6, $7
+ sll $2, $3, $5
+ sra $2, $3, $5
+ srl $2, $3, $5
+ sll $2, $3
+ sra $2, $3
+ srl $2, $3
+ sll $3, 7
+ sra $3, 7
+ srl $3, 7
diff --git a/test/MC/Mips/micromips/invalid-wrong-error.s b/test/MC/Mips/micromips/invalid-wrong-error.s
new file mode 100644
index 000000000000..8d39498bf90d
--- /dev/null
+++ b/test/MC/Mips/micromips/invalid-wrong-error.s
@@ -0,0 +1,13 @@
+# Instructions that are correctly rejected but emit a wrong or misleading error.
+# RUN: not llvm-mc %s -triple=mips -show-encoding -mattr=micromips 2>%t1
+# RUN: FileCheck %s < %t1
+
+ # The 20-bit immediate supported by the standard encodings cause us to emit
+ # the diagnostic for the 20-bit form. This isn't exactly wrong but it is
+ # misleading. Ideally, we'd emit every way to achieve a valid match instead
+ # of picking only one.
+ sdbbp -1 # CHECK: :[[@LINE]]:9: error: expected 20-bit unsigned immediate
+ sdbbp 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/micromips/invalid.s b/test/MC/Mips/micromips/invalid.s
index b091062fdccf..47882fb05584 100644
--- a/test/MC/Mips/micromips/invalid.s
+++ b/test/MC/Mips/micromips/invalid.s
@@ -1,6 +1,11 @@
# RUN: not llvm-mc %s -triple=mips -show-encoding -mattr=micromips 2>%t1
# RUN: FileCheck %s < %t1
+ addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ addius5 $2, -9 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
+ addius5 $2, 8 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
break -1 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate
break 1024 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate
break -1, 5 # CHECK: :[[@LINE]]:9: error: expected 10-bit unsigned immediate
@@ -11,6 +16,8 @@
break16 16 # CHECK: :[[@LINE]]:11: error: expected 4-bit unsigned immediate
cache -1, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate
+ cachee 0, -513($7) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
+ cachee 0, 512($7) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset
# FIXME: Check '0 < pos + size <= 32' constraint on ext
ext $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
ext $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
@@ -18,13 +25,25 @@
ext $2, $3, 1, 33 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32
ins $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
ins $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ ins $2, $3, -1, 1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ ins $2, $3, 32, 1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ ins $2, $3, 0, -1 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32
+ ins $2, $3, 0, 33 # CHECK: :[[@LINE]]:18: error: expected immediate in range 1 .. 32
jraddiusp -1 # CHECK: :[[@LINE]]:13: error: expected both 7-bit unsigned immediate and multiple of 4
jraddiusp -4 # CHECK: :[[@LINE]]:13: error: expected both 7-bit unsigned immediate and multiple of 4
jraddiusp 125 # CHECK: :[[@LINE]]:13: error: expected both 7-bit unsigned immediate and multiple of 4
jraddiusp 128 # CHECK: :[[@LINE]]:13: error: expected both 7-bit unsigned immediate and multiple of 4
+ li16 $4, -2 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
+ li16 $4, 127 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
pref -1, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
+ prefe 0, -513($7) # CHECK: :[[@LINE]]:12: error: expected memory with 9-bit signed offset
+ prefe 0, 512($7) # CHECK: :[[@LINE]]:12: error: expected memory with 9-bit signed offset
+ rotr $2, -1 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, 32 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, $3, -1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
rotr $2, $3, 32 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ rotrv $9, $6, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sdbbp16 -1 # CHECK: :[[@LINE]]:11: error: expected 4-bit unsigned immediate
sdbbp16 16 # CHECK: :[[@LINE]]:11: error: expected 4-bit unsigned immediate
sll $2, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
@@ -33,3 +52,79 @@
sra $2, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
srl $2, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
srl $2, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sync -1 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
+ sync 32 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
+ swe $2, -513($gp) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $2, 512($gp) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $33, 8($gp) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ swe $2, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sll $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sll $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ srl $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lh $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhe $34, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhu $35, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhue $36, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lh $2, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, 8($33) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, 8($35) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, 8($37) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lh $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lh $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, -65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhu $4, 65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ # FIXME: This ought to point at the $34 but memory is treated as one operand.
+ lwp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ swp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ swp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ andi $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ andi $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ ori $3, $4, -1 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, $4, 65536 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, -1 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ ori $3, 65536 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ xori $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ xori $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ not $3, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ lb $32, 8($5) # CHECK: :[[@LINE]]:6: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/micromips32r6/invalid-wrong-error.s b/test/MC/Mips/micromips32r6/invalid-wrong-error.s
new file mode 100644
index 000000000000..823d3f9a77bc
--- /dev/null
+++ b/test/MC/Mips/micromips32r6/invalid-wrong-error.s
@@ -0,0 +1,44 @@
+# Instructions that are correctly rejected but emit a wrong or misleading error.
+# RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips32r6 -mattr=micromips 2>%t1
+# RUN: FileCheck %s < %t1
+
+
+ # The 10-bit immediate supported by the standard encodings cause us to emit
+ # the diagnostic for the 10-bit form. This isn't exactly wrong but it is
+ # misleading. Ideally, we'd emit every way to achieve a valid match instead
+ # of picking only one.
+ teq $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ teq $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ teq $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tge $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tge $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tge $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tgeu $8, $9, $2 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tgeu $8, $9, -1 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tgeu $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tlt $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tlt $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tlt $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tltu $8, $9, $2 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tltu $8, $9, -1 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tltu $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tne $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tne $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tne $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, -2049($12) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 2048($12) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 1023($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ lwc2 $1, -2049($4) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 2048($4) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 16($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ sdc2 $1, -2049($16) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 2048($16) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 8($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ swc2 $1, -2049($17) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 2048($17) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 777($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ lwc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/micromips32r6/invalid.s b/test/MC/Mips/micromips32r6/invalid.s
index 41c661b04920..b3a6aac8bced 100644
--- a/test/MC/Mips/micromips32r6/invalid.s
+++ b/test/MC/Mips/micromips32r6/invalid.s
@@ -1,12 +1,13 @@
# RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips32r6 -mattr=micromips 2>%t1
# RUN: FileCheck %s < %t1
- addiur1sp $7, 260 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- addiur1sp $7, 241 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: misaligned immediate operand value
- addiur1sp $8, 240 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
addiur2 $6, $7, 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- addius5 $7, 9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
+ addius5 $2, -9 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
+ addius5 $2, 8 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
addiusp 1032 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
align $4, $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate
align $4, $2, $3, 4 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate
@@ -33,9 +34,10 @@
ins $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
ins $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
ei $32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $5, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swe $5, 512($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ # FIXME: This ought to point at the $34 but memory is treated as one operand.
+ swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
@@ -44,6 +46,8 @@
lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lhu16 $16, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ li16 $4, -2 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
+ li16 $4, 127 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
lsa $4, $2, $3, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
lsa $4, $2, $3, 5 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -54,28 +58,16 @@
pref 32, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
teq $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- teq $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tge $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tge $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tgeu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tgeu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tgeu $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tlt $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tlt $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tltu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tltu $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tne $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tne $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- teq $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tge $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tgeu $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tlt $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tltu $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tne $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
wait -1 # CHECK: :[[@LINE]]:8: error: expected 10-bit unsigned immediate
wait 1024 # CHECK: :[[@LINE]]:8: error: expected 10-bit unsigned immediate
wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -107,6 +99,8 @@
sh16 $4, 68($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
sh16 $16, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sh16 $7, 8($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ sync -1 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
+ sync 32 # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
sw16 $9, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sw16 $4, 64($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
sw16 $16, 4($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -119,3 +113,171 @@
swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mfhc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mfhc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ tlbp $3 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbp 5 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbp $4, 6 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr $3 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr 5 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr $4, 6 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbwi $3 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwi 5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwi $4, 6 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr $3 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr 5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr $4, 6 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ dvp 3 # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ dvp $4, 5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ evp 3 # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ evp $4, 5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ jalrc.hb $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ jalrc.hb $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ sll $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sll $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sra $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sra $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ srl $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ srl $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sll $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sll $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ srl $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ srl $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $5, -513($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lh $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhe $34, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhu $35, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhue $36, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lh $2, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, 8($33) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, 8($35) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, 8($37) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lh $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lh $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, -65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhu $4, 65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected
+ lwm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected
+ lwm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $24, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ movep $5, $6, $2, $9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $5, $6, $5, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $5, $21, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $8, $6, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ rotr $2, -1 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, 32 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, $3, -1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ rotr $2, $3, 32 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ rotrv $9, $6, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected
+ swm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected
+ swm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ lwp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ # FIXME: This ought to point at the $34 but memory is treated as one operand.
+ lwp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ swp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ swp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ # bposge32 is microMIPS DSP instruction
+ bposge32 342 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ bc1eqzc $f32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc1eqzc $f31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1eqzc $f31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1eqzc $f31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1eqzc $f31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1nezc $f32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc1nezc $f31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1nezc $f31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1nezc $f31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1nezc $f31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2eqzc $32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc2eqzc $31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2eqzc $31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2eqzc $31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2eqzc $31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2nezc $32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc2nezc $31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2nezc $31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2nezc $31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2nezc $31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ jalrc $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ jalrc $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ andi $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ andi $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ ori $3, $4, -1 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, $4, 65536 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, -1 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ ori $3, 65536 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ xori $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ xori $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ not $3, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ lb $32, 8($5) # CHECK: :[[@LINE]]:6: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ sdc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sdc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/micromips32r6/relocations.s b/test/MC/Mips/micromips32r6/relocations.s
new file mode 100644
index 000000000000..959cdbfeac94
--- /dev/null
+++ b/test/MC/Mips/micromips32r6/relocations.s
@@ -0,0 +1,43 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 \
+# RUN: -mattr=micromips | FileCheck %s -check-prefix=CHECK-FIXUP
+# RUN: llvm-mc %s -filetype=obj -triple=mips-unknown-linux -mcpu=mips32r6 \
+# RUN: -mattr=micromips | llvm-readobj -r | FileCheck %s -check-prefix=CHECK-ELF
+#------------------------------------------------------------------------------
+# Check that the assembler can handle the documented syntax for fixups.
+#------------------------------------------------------------------------------
+# CHECK-FIXUP: balc bar # encoding: [0b101101AA,A,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC26_S1
+# CHECK-FIXUP: bc bar # encoding: [0b100101AA,A,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC26_S1
+# CHECK-FIXUP: addiupc $2, bar # encoding: [0x78,0b01000AAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC19_S2
+# CHECK-FIXUP: lwpc $2, bar # encoding: [0x78,0b01001AAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC19_S2
+# CHECK-FIXUP: beqzc $3, bar # encoding: [0x80,0b011AAAAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC21_S1
+# CHECK-FIXUP: bnezc $3, bar # encoding: [0xa0,0b011AAAAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC21_S1
+#------------------------------------------------------------------------------
+# Check that the appropriate relocations were created.
+#------------------------------------------------------------------------------
+# CHECK-ELF: Relocations [
+# CHECK-ELF: 0x0 R_MICROMIPS_PC26_S1 bar 0x0
+# CHECK-ELF: 0x4 R_MICROMIPS_PC26_S1 bar 0x0
+# CHECK-ELF: 0x8 R_MICROMIPS_PC19_S2 bar 0x0
+# CHECK-ELF: 0xC R_MICROMIPS_PC19_S2 bar 0x0
+# CHECK-ELF: 0x10 R_MICROMIPS_PC21_S1 bar 0x0
+# CHECK-ELF: 0x14 R_MICROMIPS_PC21_S1 bar 0x0
+# CHECK-ELF: ]
+
+ balc bar
+ bc bar
+ addiupc $2,bar
+ lwpc $2,bar
+ beqzc $3, bar
+ bnezc $3, bar
diff --git a/test/MC/Mips/micromips32r6/valid.s b/test/MC/Mips/micromips32r6/valid.s
index 62048a91163d..faf0818b801c 100644
--- a/test/MC/Mips/micromips32r6/valid.s
+++ b/test/MC/Mips/micromips32r6/valid.s
@@ -20,12 +20,20 @@
auipc $3, -1 # CHECK: auipc $3, -1 # encoding: [0x78,0x7e,0xff,0xff]
align $4, $2, $3, 2 # CHECK: align $4, $2, $3, 2 # encoding: [0x00,0x43,0x24,0x1f]
aui $3,$2,-23 # CHECK: aui $3, $2, -23 # encoding: [0x10,0x62,0xff,0xe9]
+ beqc $3,$4, 16 # CHECK: beqc $3, $4, 16 # encoding: [0x74,0x83,0x00,0x08]
+ bgec $3,$4, 16 # CHECK: bgec $3, $4, 16 # encoding: [0xe4,0x83,0x00,0x08]
+ bgeuc $3,$4, 16 # CHECK: bgeuc $3, $4, 16 # encoding: [0xc0,0x83,0x00,0x08]
+ bltc $3,$4, 16 # CHECK: bltc $3, $4, 16 # encoding: [0xc4,0x83,0x00,0x08]
+ bltuc $3,$4, 16 # CHECK: bltuc $3, $4, 16 # encoding: [0xe0,0x83,0x00,0x08]
+ bnec $3,$4, 16 # CHECK: bnec $3, $4, 16 # encoding: [0x7c,0x83,0x00,0x08]
beqzalc $2, 1332 # CHECK: beqzalc $2, 1332 # encoding: [0x74,0x40,0x02,0x9a]
bnezalc $2, 1332 # CHECK: bnezalc $2, 1332 # encoding: [0x7c,0x40,0x02,0x9a]
bgezalc $2, 1332 # CHECK: bgezalc $2, 1332 # encoding: [0xc0,0x42,0x02,0x9a]
bgtzalc $2, 1332 # CHECK: bgtzalc $2, 1332 # encoding: [0xe0,0x40,0x02,0x9a]
bltzalc $2, 1332 # CHECK: bltzalc $2, 1332 # encoding: [0xe0,0x42,0x02,0x9a]
blezalc $2, 1332 # CHECK: blezalc $2, 1332 # encoding: [0xc0,0x40,0x02,0x9a]
+ beqzc $3, 64 # CHECK: beqzc $3, 64 # encoding: [0x80,0x60,0x00,0x20]
+ bnezc $3, 64 # CHECK: bnezc $3, 64 # encoding: [0xa0,0x60,0x00,0x20]
balc 7286128 # CHECK: balc 7286128 # encoding: [0xb4,0x37,0x96,0xb8]
b 132 # CHECK: bc16 132 # encoding: [0xcc,0x42]
bc 7286128 # CHECK: bc 7286128 # encoding: [0x94,0x37,0x96,0xb8]
@@ -55,10 +63,36 @@
jic $5, 256 # CHECK: jic $5, 256 # encoding: [0xa0,0x05,0x01,0x00]
jrc16 $9 # CHECK: jrc16 $9 # encoding: [0x45,0x23]
jrcaddiusp 20 # CHECK: jrcaddiusp 20 # encoding: [0x44,0xb3]
+ lh $2, 8($4) # CHECK: lh $2, 8($4) # encoding: [0x3c,0x44,0x00,0x08]
+ lhe $4, 8($2) # CHECK: lhe $4, 8($2) # encoding: [0x60,0x82,0x6a,0x08]
+ lhu $4, 8($2) # CHECK: lhu $4, 8($2) # encoding: [0x34,0x82,0x00,0x08]
+ lhue $4, 8($2) # CHECK: lhue $4, 8($2) # encoding: [0x60,0x82,0x62,0x08]
lsa $2, $3, $4, 3 # CHECK: lsa $2, $3, $4, 3 # encoding: [0x00,0x43,0x24,0x0f]
lwpc $2,268 # CHECK: lwpc $2, 268 # encoding: [0x78,0x48,0x00,0x43]
lwm $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22]
lwm16 $16, $17, $ra, 8($sp) # CHECK: lwm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x22]
+ ll $2, 8($4) # CHECK: ll $2, 8($4) # encoding: [0x60,0x44,0x30,0x08]
+ lwm32 $16, $17, 8($4) # CHECK: lwm32 $16, $17, 8($4) # encoding: [0x20,0x44,0x50,0x08]
+ lwm32 $16, $17, 8($sp) # CHECK: lwm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0x50,0x08]
+ lwm32 $16, $17, $ra, 8($4) # CHECK: lwm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0x50,0x08]
+ lwm32 $16, $17, $ra, 64($sp) # CHECK: lwm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0x50,0x40]
+ lwm32 $16, $17, $18, $19, 8($4) # CHECK: lwm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $ra, 8($4) # encoding: [0x22,0x84,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # encoding: [0x21,0x24,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08]
+ movep $5, $6, $2, $3 # CHECK: movep $5, $6, $2, $3 # encoding: [0x84,0x34]
+ rotr $2, 7 # CHECK: rotr $2, $2, 7 # encoding: [0x00,0x42,0x38,0xc0]
+ rotr $9, $6, 7 # CHECK: rotr $9, $6, 7 # encoding: [0x01,0x26,0x38,0xc0]
+ rotrv $9, $6, $7 # CHECK: rotrv $9, $6, $7 # encoding: [0x00,0xc7,0x48,0xd0]
+ sc $2, 8($4) # CHECK: sc $2, 8($4) # encoding: [0x60,0x44,0xb0,0x08]
+ swm32 $16, $17, 8($4) # CHECK: swm32 $16, $17, 8($4) # encoding: [0x20,0x44,0xd0,0x08]
+ swm32 $16, $17, 8($sp) # CHECK: swm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0xd0,0x08]
+ swm32 $16, $17, $ra, 8($4) # CHECK: swm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0xd0,0x08]
+ swm32 $16, $17, $ra, 64($sp) # CHECK: swm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0xd0,0x40]
+ swm32 $16, $17, $18, $19, 8($4) # CHECK: swm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0xd0,0x08]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x8b,0x7c]
+ syscall 396 # CHECK: syscall 396 # encoding: [0x01,0x8c,0x8b,0x7c]
mod $3, $4, $5 # CHECK: mod $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x58]
modu $3, $4, $5 # CHECK: modu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd8]
mul $3, $4, $5 # CHECK mul $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x18]
@@ -80,6 +114,7 @@
sub $3, $4, $5 # CHECK: sub $3, $4, $5 # encoding: [0x00,0xa4,0x19,0x90]
subu $3, $4, $5 # CHECK: subu $3, $4, $5 # encoding: [0x00,0xa4,0x19,0xd0]
sw $4, 124($sp) # CHECK: sw $4, 124($sp) # encoding: [0xc8,0x9f]
+ sw $4, 128($sp) # CHECK: sw $4, 128($sp) # encoding: [0xf8,0x9d,0x00,0x80]
sw16 $4, 4($17) # CHECK: sw16 $4, 4($17) # encoding: [0xea,0x11]
sw16 $0, 4($17) # CHECK: sw16 $zero, 4($17) # encoding: [0xe8,0x11]
swm $16, $17, $ra, 8($sp) # CHECK: swm16 $16, $17, $ra, 8($sp) # encoding: [0x45,0x2a]
@@ -187,8 +222,14 @@
sqrt.d $f2, $f4 # CHECK: sqrt.d $f2, $f4 # encoding: [0x54,0x44,0x4a,0x3b]
rsqrt.s $f3, $f5 # CHECK: rsqrt.s $f3, $f5 # encoding: [0x54,0x65,0x02,0x3b]
rsqrt.d $f2, $f4 # CHECK: rsqrt.d $f2, $f4 # encoding: [0x54,0x44,0x42,0x3b]
+ lw $3, -260($gp) # CHECK: lw $3, -260($gp) # encoding: [0xfc,0x7c,0xfe,0xfc]
+ lw $3, -256($gp) # CHECK: lw $3, -256($gp) # encoding: [0x65,0xc0]
lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88]
+ lw $3, 252($gp) # CHECK: lw $3, 252($gp) # encoding: [0x65,0xbf]
+ lw $3, 256($gp) # CHECK: lw $3, 256($gp) # encoding: [0xfc,0x7c,0x01,0x00]
lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66]
+ lw $3, 124($sp) # CHECK: lw $3, 124($sp) # encoding: [0x48,0x7f]
+ lw $3, 128($sp) # CHECK: lw $3, 128($sp) # encoding: [0xfc,0x7d,0x00,0x80]
lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12]
lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82]
lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94]
@@ -250,3 +291,76 @@
class.s $f2, $f3 # CHECK: class.s $f2, $f3 # encoding: [0x54,0x62,0x00,0x60]
class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x54,0x82,0x02,0x60]
deret # CHECK: deret # encoding: [0x00,0x00,0xe3,0x7c]
+ tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c]
+ tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c]
+ mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc]
+ mtc0 $1, $2, 7 # CHECK: mtc0 $1, $2, 7 # encoding: [0x00,0x22,0x3a,0xfc]
+ mtc1 $3, $f4 # CHECK: mtc1 $3, $f4 # encoding: [0x54,0x64,0x28,0x3b]
+ mtc2 $5, $6 # CHECK: mtc2 $5, $6 # encoding: [0x00,0xa6,0x5d,0x3c]
+ mthc0 $7, $8 # CHECK: mthc0 $7, $8, 0 # encoding: [0x00,0xe8,0x02,0xf4]
+ mthc0 $9, $10, 1 # CHECK: mthc0 $9, $10, 1 # encoding: [0x01,0x2a,0x0a,0xf4]
+ mthc1 $11, $f12 # CHECK: mthc1 $11, $f12 # encoding: [0x55,0x6c,0x38,0x3b]
+ mthc2 $13, $14 # CHECK: mthc2 $13, $14 # encoding: [0x01,0xae,0x9d,0x3c]
+ mfc0 $3, $7 # CHECK: mfc0 $3, $7, 0 # encoding: [0x00,0x67,0x00,0xfc]
+ mfc0 $3, $7, 3 # CHECK: mfc0 $3, $7, 3 # encoding: [0x00,0x67,0x18,0xfc]
+ mfc1 $5, $f10 # CHECK: mfc1 $5, $f10 # encoding: [0x54,0xaa,0x20,0x3b]
+ mfc2 $15, $5 # CHECK: mfc2 $15, $5 # encoding: [0x01,0xe5,0x4d,0x3c]
+ mfhc0 $20, $21 # CHECK: mfhc0 $20, $21, 0 # encoding: [0x02,0x95,0x00,0xf4]
+ mfhc0 $1, $2, 1 # CHECK: mfhc0 $1, $2, 1 # encoding: [0x00,0x22,0x08,0xf4]
+ mfhc1 $zero, $f6 # CHECK: mfhc1 $zero, $f6 # encoding: [0x54,0x06,0x30,0x3b]
+ mfhc2 $23, $16 # CHECK: mfhc2 $23, $16 # encoding: [0x02,0xf0,0x8d,0x3c]
+ tlbp # CHECK: tlbp # encoding: [0x00,0x00,0x03,0x7c]
+ tlbr # CHECK: tlbr # encoding: [0x00,0x00,0x13,0x7c]
+ tlbwi # CHECK: tlbwi # encoding: [0x00,0x00,0x23,0x7c]
+ tlbwr # CHECK: tlbwr # encoding: [0x00,0x00,0x33,0x7c]
+ dvp # CHECK: dvp $zero # encoding: [0x00,0x00,0x19,0x7c]
+ dvp $4 # CHECK: dvp $4 # encoding: [0x00,0x04,0x19,0x7c]
+ evp # CHECK: evp $zero # encoding: [0x00,0x00,0x39,0x7c]
+ evp $4 # CHECK: evp $4 # encoding: [0x00,0x04,0x39,0x7c]
+ jalrc.hb $4 # CHECK: jalrc.hb $4 # encoding: [0x03,0xe4,0x1f,0x3c]
+ jalrc.hb $4, $5 # CHECK: jalrc.hb $4, $5 # encoding: [0x00,0x85,0x1f,0x3c]
+ sllv $2, $3, $5 # CHECK: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
+ sra $4, $3, 7 # CHECK: sra $4, $3, 7 # encoding: [0x00,0x83,0x38,0x80]
+ srav $2, $3, $5 # CHECK: srav $2, $3, $5 # encoding: [0x00,0x65,0x10,0x90]
+ srl $4, $3, 7 # CHECK: srl $4, $3, 7 # encoding: [0x00,0x83,0x38,0x40]
+ srlv $2, $3, $5 # CHECK: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
+ sll $2, $3, $5 # CHECK: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
+ sra $2, $3, $5 # CHECK: srav $2, $3, $5 # encoding: [0x00,0x65,0x10,0x90]
+ srl $2, $3, $5 # CHECK: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
+ sll $2, $3 # CHECK: sllv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x10]
+ sra $2, $3 # CHECK: srav $2, $2, $3 # encoding: [0x00,0x43,0x10,0x90]
+ srl $2, $3 # CHECK: srlv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x50]
+ sll $3, 7 # CHECK: sll $3, $3, 7 # encoding: [0x00,0x63,0x38,0x00]
+ sra $3, 7 # CHECK: sra $3, $3, 7 # encoding: [0x00,0x63,0x38,0x80]
+ srl $3, 7 # CHECK: srl $3, $3, 7 # encoding: [0x00,0x63,0x38,0x40]
+ lwp $16, 8($4) # CHECK: lwp $16, 8($4) # encoding: [0x22,0x04,0x10,0x08]
+ swp $16, 8($4) # CHECK: swp $16, 8($4) # encoding: [0x22,0x04,0x90,0x08]
+ bc1eqzc $f31, 4 # CHECK: bc1eqzc $f31, 4 # encoding: [0x41,0x1f,0x00,0x02]
+ bc1nezc $f31, 4 # CHECK: bc1nezc $f31, 4 # encoding: [0x41,0x3f,0x00,0x02]
+ bc2eqzc $31, 8 # CHECK: bc2eqzc $31, 8 # encoding: [0x41,0x5f,0x00,0x04]
+ bc2nezc $31, 8 # CHECK: bc2nezc $31, 8 # encoding: [0x41,0x7f,0x00,0x04]
+ ins $9, $6, 3, 7 # CHECK: ins $9, $6, 3, 7 # encoding: [0x01,0x26,0x48,0xcc]
+ jalrc $4, $5 # CHECK: jalrc $4, $5 # encoding: [0x00,0x85,0x0f,0x3c]
+ jalrc $5 # CHECK: jalrc $5 # encoding: [0x03,0xe5,0x0f,0x3c]
+ ext $9, $6, 3, 7 # CHECK: ext $9, $6, 3, 7 # encoding: [0x01,0x26,0x30,0xec]
+ bovc $2, $4, 24 # CHECK: bovc $2, $4, 24 # encoding: [0x74,0x44,0x00,0x0c]
+ bovc $4, $2, 24 # CHECK: bovc $4, $2, 24 # encoding: [0x74,0x44,0x00,0x0c]
+ bnvc $2, $4, 24 # CHECK: bnvc $2, $4, 24 # encoding: [0x7c,0x44,0x00,0x0c]
+ bnvc $4, $2, 24 # CHECK: bnvc $4, $2, 24 # encoding: [0x7c,0x44,0x00,0x0c]
+ and $3, 5 # CHECK: andi $3, $3, 5 # encoding: [0xd0,0x63,0x00,0x05]
+ and $3, $4, 5 # CHECK: andi $3, $4, 5 # encoding: [0xd0,0x64,0x00,0x05]
+ not $3, $4 # CHECK: not $3, $4 # encoding: [0x00,0x04,0x1a,0xd0]
+ or $3, 5 # CHECK: ori $3, $3, 5 # encoding: [0x50,0x63,0x00,0x05]
+ or $3, $4, 5 # CHECK: ori $3, $4, 5 # encoding: [0x50,0x64,0x00,0x05]
+ xor $3, 5 # CHECK: xori $3, $3, 5 # encoding: [0x70,0x63,0x00,0x05]
+ xor $3, $4, 5 # CHECK: xori $3, $4, 5 # encoding: [0x70,0x64,0x00,0x05]
+ ldc1 $f7, 300($10) # CHECK: ldc1 $f7, 300($10) # encoding: [0xbc,0xea,0x01,0x2c]
+ ldc1 $f8, 300($10) # CHECK: ldc1 $f8, 300($10) # encoding: [0xbd,0x0a,0x01,0x2c]
+ ldc2 $11, 1023($12) # CHECK: ldc2 $11, 1023($12) # encoding: [0x21,0x6c,0x23,0xff]
+ lwc1 $f2, 32($5) # CHECK: lwc1 $f2, 32($5) # encoding: [0x9c,0x45,0x00,0x20]
+ lwc2 $1, 16($4) # CHECK: lwc2 $1, 16($4) # encoding: [0x20,0x24,0x00,0x10]
+ sdc1 $f7, 64($10) # CHECK: sdc1 $f7, 64($10) # encoding: [0xb8,0xea,0x00,0x40]
+ sdc1 $f8, 64($10) # CHECK: sdc1 $f8, 64($10) # encoding: [0xb9,0x0a,0x00,0x40]
+ sdc2 $2, 8($16) # CHECK: sdc2 $2, 8($16) # encoding: [0x20,0x50,0xa0,0x08]
+ swc1 $f6, 369($13) # CHECK: swc1 $f6, 369($13) # encoding: [0x98,0xcd,0x01,0x71]
+ swc2 $7, 777($17) # CHECK: swc2 $7, 777($17) # encoding: [0x20,0xf1,0x83,0x09]
diff --git a/test/MC/Mips/micromips64r6/invalid-wrong-error.s b/test/MC/Mips/micromips64r6/invalid-wrong-error.s
new file mode 100644
index 000000000000..977a2d031f23
--- /dev/null
+++ b/test/MC/Mips/micromips64r6/invalid-wrong-error.s
@@ -0,0 +1,52 @@
+# Instructions that are correctly rejected but emit a wrong or misleading error.
+# RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips64r6 -mattr=micromips 2>%t1
+# RUN: FileCheck %s < %t1
+
+
+ # The LLD instruction with invalid memory operand should emit "expected memory with 12-bit signed offset".
+ lld $31, 4096($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lld $31, 2048($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lld $31, -2049($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ # The LWU instruction with invalid memory operand should emit "expected memory with 12-bit signed offset".
+ lwu $31, 4096($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwu $31, 2048($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwu $31, -2049($31) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ # The 10-bit immediate supported by the standard encodings cause us to emit
+ # the diagnostic for the 10-bit form. This isn't exactly wrong but it is
+ # misleading. Ideally, we'd emit every way to achieve a valid match instead
+ # of picking only one.
+ teq $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ teq $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ teq $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tge $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tge $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tge $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tgeu $8, $9, $2 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tgeu $8, $9, -1 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tgeu $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tlt $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tlt $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tlt $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tltu $8, $9, $2 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tltu $8, $9, -1 # CHECK: :[[@LINE]]:16: error: expected 10-bit unsigned immediate
+ tltu $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ tne $8, $9, $2 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tne $8, $9, -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
+ tne $8, $9, 16 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ dins $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
+ dins $2, $3, 32, 1 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ syscall -1 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall $4 # CHECK: :[[@LINE]]:11: error: expected 20-bit unsigned immediate
+ syscall 1024 # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, -2049($12) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 2048($12) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 1023($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ lwc2 $1, -2049($4) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 2048($4) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 16($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ sdc2 $1, -2049($16) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 2048($16) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 8($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
+ swc2 $1, -2049($17) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 2048($17) # CHECK: :[[@LINE]]:3: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 777($32) # CHECK: :[[@LINE]]:12: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/micromips64r6/invalid.s b/test/MC/Mips/micromips64r6/invalid.s
index df1005dfa0b1..356ff9bbc10c 100644
--- a/test/MC/Mips/micromips64r6/invalid.s
+++ b/test/MC/Mips/micromips64r6/invalid.s
@@ -1,12 +1,13 @@
# RUN: not llvm-mc %s -triple=mips -show-encoding -mcpu=mips64r6 -mattr=micromips 2>%t1
# RUN: FileCheck %s < %t1
- addiur1sp $7, 260 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- addiur1sp $7, 241 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: misaligned immediate operand value
- addiur1sp $8, 240 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ addiur1sp $7, 260 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $7, 241 # CHECK: :[[@LINE]]:17: error: expected both 8-bit unsigned immediate and multiple of 4
+ addiur1sp $8, 240 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
addiur2 $9, $7, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
addiur2 $6, $7, 10 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- addius5 $7, 9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
+ addius5 $2, -9 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
+ addius5 $2, 8 # CHECK: :[[@LINE]]:15: error: expected 4-bit signed immediate
addiusp 1032 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
align $4, $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate
align $4, $2, $3, 4 # CHECK: :[[@LINE]]:21: error: expected 2-bit unsigned immediate
@@ -19,8 +20,8 @@
cache -1, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:9: error: expected 5-bit unsigned immediate
# FIXME: Check various 'pos + size' constraints on dext*
- dext $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
- dext $2, $3, 32, 1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ dext $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
+ dext $2, $3, 64, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
dext $2, $3, 1, 0 # CHECK: :[[@LINE]]:19: error: expected immediate in range 1 .. 32
dext $2, $3, 1, 33 # CHECK: :[[@LINE]]:19: error: expected immediate in range 1 .. 32
dextm $2, $3, -1, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate
@@ -33,13 +34,17 @@
dextu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63
dextu $2, $3, 32, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32
dextu $2, $3, 32, 33 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32
- # FIXME: Check size on dins*
- dins $2, $3, -1, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
- dins $2, $3, 64, 1 # CHECK: :[[@LINE]]:16: error: expected 6-bit unsigned immediate
+ dins $2, $3, 31, 33 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32
+ dins $2, $3, 31, 0 # CHECK: :[[@LINE]]:20: error: expected immediate in range 1 .. 32
+ # FIXME: Check '32 <= pos + size <= 64' constraint on dinsm
dinsm $2, $3, -1, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate
dinsm $2, $3, 32, 1 # CHECK: :[[@LINE]]:17: error: expected 5-bit unsigned immediate
+ dinsm $2, $3, 31, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 2 .. 64
+ dinsm $2, $3, 31, 65 # CHECK: :[[@LINE]]:21: error: expected immediate in range 2 .. 64
dinsu $2, $3, 31, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63
dinsu $2, $3, 64, 1 # CHECK: :[[@LINE]]:17: error: expected immediate in range 32 .. 63
+ dinsu $2, $3, 63, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32
+ dinsu $2, $3, 32, 33 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 32
# FIXME: Check '0 < pos + size <= 32' constraint on ext
ext $2, $3, -1, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
ext $2, $3, 32, 31 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
@@ -57,6 +62,8 @@
lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lhu16 $3, 64($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
lhu16 $16, 4($9) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ li16 $4, -2 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
+ li16 $4, 127 # CHECK: :[[@LINE]]:12: error: expected immediate in range -1 .. 126
lsa $4, $2, $3, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
lsa $4, $2, $3, 5 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
lw16 $9, 8($17) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -79,28 +86,16 @@
pref 32, 255($7) # CHECK: :[[@LINE]]:8: error: expected 5-bit unsigned immediate
teq $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
teq $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- teq $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tge $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tge $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tge $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tgeu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tgeu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tgeu $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tlt $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tlt $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tlt $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tltu $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tltu $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tltu $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
tne $34, $9, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
tne $8, $35, 6 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tne $8, $9, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range
- teq $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tge $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tgeu $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tlt $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tltu $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- tne $8, $9, $2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
wrpgpr $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
wrpgpr $3, $33 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
wsbh $34, $4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
@@ -143,3 +138,190 @@
swm16 $16-$20, 8($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swm16 $16, $17, $ra, 8($fp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swm16 $16, $17, $ra, 64($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mthc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ mthc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate
+ dmtc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ tlbp $3 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbp 5 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbp $4, 6 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr $3 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr 5 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbr $4, 6 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ tlbwi $3 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwi 5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwi $4, 6 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr $3 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr 5 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ tlbwr $4, 6 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ dvp 3 # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ dvp $4, 5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ evp 3 # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ evp $4, 5 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ jalrc.hb $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ jalrc.hb $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ sll $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sll $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sra $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sra $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ srl $4, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ srl $4, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
+ sll $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sll $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ sra $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ srl $3, -1 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ srl $3, 32 # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate
+ dneg $7, 5 # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
+ dneg 4 # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ dnegu $1, 3 # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ dnegu 7 # CHECK: :[[@LINE]]:9: error: invalid operand for instruction
+ lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ swe $5, -513($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset
+ lh $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhe $34, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhu $35, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhue $36, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lh $2, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, 8($33) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, 8($35) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, 8($37) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lh $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lh $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, -65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhu $4, 65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected
+ lwm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected
+ lwm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $24, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ movep $5, $6, $2, $9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $5, $6, $5, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $5, $21, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ movep $8, $6, $2, $3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ rotr $2, -1 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, 32 # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate
+ rotr $2, $3, -1 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ rotr $2, $3, 32 # CHECK: :[[@LINE]]:16: error: expected 5-bit unsigned immediate
+ rotrv $9, $6, 5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swm32 $5, $6, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: $16 or $31 expected
+ swm32 $16, $19, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: consecutive register numbers expected
+ swm32 $16-$25, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid register operand
+ lwp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ # FIXME: This ought to point at the $34 but memory is treated as one operand.
+ lwp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ lwp $16, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ swp $31, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ swp $16, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ swp $16, 4096($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 12-bit signed offset
+ dsll $3, $4, 64 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsll $3, $4, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsll32 $3, $4, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ dsll32 $3, $4, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ dsra $4, $5, 64 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsra $4, $5, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsra32 $4, $5, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ dsra32 $4, $5, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ # bposge32 is microMIPS DSP instruction
+ bposge32 342 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ bc1eqzc $f32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc1eqzc $f31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1eqzc $f31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1eqzc $f31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1eqzc $f31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1nezc $f32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc1nezc $f31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1nezc $f31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc1nezc $f31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc1nezc $f31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2eqzc $32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc2eqzc $31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2eqzc $31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2eqzc $31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2eqzc $31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2nezc $32, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ bc2nezc $31, -65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2nezc $31, -65537 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ bc2nezc $31, 65535 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch to misaligned address
+ bc2nezc $31, 65536 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: branch target out of range
+ andi $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ andi $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ andi $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ ori $3, $4, -1 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, $4, 65536 # CHECK: :[[@LINE]]:15: error: expected 16-bit unsigned immediate
+ ori $3, -1 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ ori $3, 65536 # CHECK: :[[@LINE]]:11: error: expected 16-bit unsigned immediate
+ xori $3, $4, -1 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, $4, 65536 # CHECK: :[[@LINE]]:16: error: expected 16-bit unsigned immediate
+ xori $3, -1 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ xori $3, 65536 # CHECK: :[[@LINE]]:12: error: expected 16-bit unsigned immediate
+ not $3, 4 # CHECK: :[[@LINE]]:11: error: invalid operand for instruction
+ drotr $5, $10, 64 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ drotr $5, $10, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ drotr32 $1, $2, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ drotr32 $1, $2, -1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ ld $31, 65536($31) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ld $31, 32768($31) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ld $31, -32769($31) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sd $31, 65536($31) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ sd $31, 32768($31) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ sd $31, -32769($31) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lb $32, 8($5) # CHECK: :[[@LINE]]:6: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:10: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:11: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:13: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:8: error: invalid operand for instruction
diff --git a/test/MC/Mips/micromips64r6/relocations.s b/test/MC/Mips/micromips64r6/relocations.s
new file mode 100644
index 000000000000..18fa26b4e94f
--- /dev/null
+++ b/test/MC/Mips/micromips64r6/relocations.s
@@ -0,0 +1,48 @@
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips64r6 \
+# RUN: -mattr=micromips | FileCheck %s -check-prefix=CHECK-FIXUP
+# RUN: llvm-mc %s -filetype=obj -triple=mips-unknown-linux -mcpu=mips64r6 \
+# RUN: -mattr=micromips | llvm-readobj -r | FileCheck %s -check-prefix=CHECK-ELF
+#------------------------------------------------------------------------------
+# Check that the assembler can handle the documented syntax for fixups.
+#------------------------------------------------------------------------------
+# CHECK-FIXUP: balc bar # encoding: [0b101101AA,A,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC26_S1
+# CHECK-FIXUP: bc bar # encoding: [0b100101AA,A,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC26_S1
+# CHECK-FIXUP: addiupc $2, bar # encoding: [0x78,0b01000AAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC19_S2
+# CHECK-FIXUP: lwpc $2, bar # encoding: [0x78,0b01001AAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC19_S2
+# CHECK-FIXUP: ldpc $2, bar # encoding: [0x78,0b010110AA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar, kind: fixup_MICROMIPS_PC18_S3
+# CHECK-FIXUP: beqzc $3, bar # encoding: [0x80,0b011AAAAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC21_S1
+# CHECK-FIXUP: bnezc $3, bar # encoding: [0xa0,0b011AAAAA,A,A]
+# CHECK-FIXUP: # fixup A - offset: 0,
+# CHECK-FIXUP: value: bar-4, kind: fixup_MICROMIPS_PC21_S1
+#------------------------------------------------------------------------------
+# Check that the appropriate relocations were created.
+#------------------------------------------------------------------------------
+# CHECK-ELF: Relocations [
+# CHECK-ELF: 0x0 R_MICROMIPS_PC26_S1 bar 0x0
+# CHECK-ELF: 0x4 R_MICROMIPS_PC26_S1 bar 0x0
+# CHECK-ELF: 0x8 R_MICROMIPS_PC19_S2 bar 0x0
+# CHECK-ELF: 0xC R_MICROMIPS_PC19_S2 bar 0x0
+# CHECK-ELF: 0x10 R_MICROMIPS_PC18_S3 bar 0x0
+# CHECK-ELF: 0x14 R_MICROMIPS_PC21_S1 bar 0x0
+# CHECK-ELF: 0x18 R_MICROMIPS_PC21_S1 bar 0x0
+# CHECK-ELF: ]
+
+ balc bar
+ bc bar
+ addiupc $2,bar
+ lwpc $2,bar
+ ldpc $2, bar
+ beqzc $3, bar
+ bnezc $3, bar
diff --git a/test/MC/Mips/micromips64r6/valid.s b/test/MC/Mips/micromips64r6/valid.s
index b41c86bd553c..043a57c48c03 100644
--- a/test/MC/Mips/micromips64r6/valid.s
+++ b/test/MC/Mips/micromips64r6/valid.s
@@ -10,6 +10,8 @@ a:
addiusp 1024 # CHECK: addiusp 1024 # encoding: [0x4c,0x01]
addiusp 1028 # CHECK: addiusp 1028 # encoding: [0x4c,0x03]
addiusp -16 # CHECK: addiusp -16 # encoding: [0x4f,0xf9]
+ and16 $16, $2 # CHECK: and16 $16, $2 # encoding: [0x44,0x21]
+ andi16 $4, $5, 8 # CHECK: andi16 $4, $5, 8 # encoding: [0x2e,0x56]
b 132 # CHECK: bc16 132 # encoding: [0xcc,0x42]
bc16 132 # CHECK: bc16 132 # encoding: [0xcc,0x42]
beqzc16 $6, 20 # CHECK: beqzc16 $6, 20 # encoding: [0x8f,0x0a]
@@ -21,16 +23,41 @@ a:
dextm $9, $6, 3, 39 # CHECK: dextm $9, $6, 3, 39 # encoding: [0x59,0x26,0x30,0xe4]
dextu $9, $6, 35, 7 # CHECK: dextu $9, $6, 35, 7 # encoding: [0x59,0x26,0x30,0xd4]
dalign $4, $2, $3, 5 # CHECK: dalign $4, $2, $3, 5 # encoding: [0x58,0x43,0x25,0x1c]
+ ldpc $2, 16 # CHECK: ldpc $2, 16 # encoding: [0x78,0x58,0x00,0x02]
lw $3, 32($gp) # CHECK: lw $3, 32($gp) # encoding: [0x65,0x88]
lw $3, 24($sp) # CHECK: lw $3, 24($sp) # encoding: [0x48,0x66]
lw16 $4, 8($17) # CHECK: lw16 $4, 8($17) # encoding: [0x6a,0x12]
lhu16 $3, 4($16) # CHECK: lhu16 $3, 4($16) # encoding: [0x29,0x82]
lbu16 $3, 4($17) # CHECK: lbu16 $3, 4($17) # encoding: [0x09,0x94]
lbu16 $3, -1($17) # CHECK: lbu16 $3, -1($17) # encoding: [0x09,0x9f]
- ddiv $3, $4, $5 # CHECK: ddiv $3, $4, $5 # encoding: [0x58,0x64,0x29,0x18]
- dmod $3, $4, $5 # CHECK: dmod $3, $4, $5 # encoding: [0x58,0x64,0x29,0x58]
- ddivu $3, $4, $5 # CHECK: ddivu $3, $4, $5 # encoding: [0x58,0x64,0x29,0x98]
- dmodu $3, $4, $5 # CHECK: dmodu $3, $4, $5 # encoding: [0x58,0x64,0x29,0xd8]
+ movep $5, $6, $2, $3 # CHECK: movep $5, $6, $2, $3 # encoding: [0x84,0x34]
+ not16 $4, $7 # CHECK: not16 $4, $7 # encoding: [0x46,0x70]
+ or16 $3, $7 # CHECK: or16 $3, $7 # encoding: [0x45,0xf9]
+ ll $2, 8($4) # CHECK: ll $2, 8($4) # encoding: [0x60,0x44,0x30,0x08]
+ lwm32 $16, $17, 8($4) # CHECK: lwm32 $16, $17, 8($4) # encoding: [0x20,0x44,0x50,0x08]
+ lwm32 $16, $17, 8($sp) # CHECK: lwm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0x50,0x08]
+ lwm32 $16, $17, $ra, 8($4) # CHECK: lwm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0x50,0x08]
+ lwm32 $16, $17, $ra, 64($sp) # CHECK: lwm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0x50,0x40]
+ lwm32 $16, $17, $18, $19, 8($4) # CHECK: lwm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $ra, 8($4) # encoding: [0x22,0x84,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, 8($4) # encoding: [0x21,0x24,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08]
+ lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # CHECK: lwm32 $16, $17, $18, $19, $20, $21, $22, $23, $fp, $ra, 8($4) # encoding: [0x23,0x24,0x50,0x08]
+ rotr $2, 7 # CHECK: rotr $2, $2, 7 # encoding: [0x00,0x42,0x38,0xc0]
+ rotr $9, $6, 7 # CHECK: rotr $9, $6, 7 # encoding: [0x01,0x26,0x38,0xc0]
+ rotrv $9, $6, $7 # CHECK: rotrv $9, $6, $7 # encoding: [0x00,0xc7,0x48,0xd0]
+ sc $2, 8($4) # CHECK: sc $2, 8($4) # encoding: [0x60,0x44,0xb0,0x08]
+ swm32 $16, $17, 8($4) # CHECK: swm32 $16, $17, 8($4) # encoding: [0x20,0x44,0xd0,0x08]
+ swm32 $16, $17, 8($sp) # CHECK: swm32 $16, $17, 8($sp) # encoding: [0x20,0x5d,0xd0,0x08]
+ swm32 $16, $17, $ra, 8($4) # CHECK: swm32 $16, $17, $ra, 8($4) # encoding: [0x22,0x44,0xd0,0x08]
+ swm32 $16, $17, $ra, 64($sp) # CHECK: swm32 $16, $17, $ra, 64($sp) # encoding: [0x22,0x5d,0xd0,0x40]
+ swm32 $16, $17, $18, $19, 8($4) # CHECK: swm32 $16, $17, $18, $19, 8($4) # encoding: [0x20,0x84,0xd0,0x08]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x8b,0x7c]
+ syscall 396 # CHECK: syscall 396 # encoding: [0x01,0x8c,0x8b,0x7c]
+ ddiv $3, $4, $5 # CHECK: ddiv $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x18]
+ dmod $3, $4, $5 # CHECK: dmod $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x58]
+ ddivu $3, $4, $5 # CHECK: ddivu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0x98]
+ dmodu $3, $4, $5 # CHECK: dmodu $3, $4, $5 # encoding: [0x58,0xa4,0x19,0xd8]
add.s $f3, $f4, $f5 # CHECK: add.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x30]
add.d $f2, $f4, $f6 # CHECK: add.d $f2, $f4, $f6 # encoding: [0x54,0xc4,0x11,0x30]
sub.s $f3, $f4, $f5 # CHECK: sub.s $f3, $f4, $f5 # encoding: [0x54,0xa4,0x18,0x70]
@@ -150,5 +177,145 @@ a:
di # CHECK: di # encoding: [0x00,0x00,0x47,0x7c]
di $0 # CHECK: di # encoding: [0x00,0x00,0x47,0x7c]
di $15 # CHECK: di $15 # encoding: [0x00,0x0f,0x47,0x7c]
+ ceil.l.s $f1, $f3 # CHECK: ceil.l.s $f1, $f3 # encoding: [0x54,0x23,0x13,0x3b]
+ ceil.l.d $f1, $f3 # CHECK: ceil.l.d $f1, $f3 # encoding: [0x54,0x23,0x53,0x3b]
+ floor.l.s $f1, $f3 # CHECK: floor.l.s $f1, $f3 # encoding: [0x54,0x23,0x03,0x3b]
+ floor.l.d $f1, $f3 # CHECK: floor.l.d $f1, $f3 # encoding: [0x54,0x23,0x43,0x3b]
+ tlbinv # CHECK: tlbinv # encoding: [0x00,0x00,0x43,0x7c]
+ tlbinvf # CHECK: tlbinvf # encoding: [0x00,0x00,0x53,0x7c]
+ dinsu $4, $2, 32, 5 # CHECK: dinsu $4, $2, 32, 5 # encoding: [0x58,0x82,0x20,0x34]
+ dinsm $4, $2, 3, 5 # CHECK: dinsm $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xc4]
+ dins $4, $2, 3, 5 # CHECK: dins $4, $2, 3, 5 # encoding: [0x58,0x82,0x38,0xcc]
+ lh $2, 8($4) # CHECK: lh $2, 8($4) # encoding: [0x3c,0x44,0x00,0x08]
+ lhe $4, 8($2) # CHECK: lhe $4, 8($2) # encoding: [0x60,0x82,0x6a,0x08]
+ lhu $4, 8($2) # CHECK: lhu $4, 8($2) # encoding: [0x34,0x82,0x00,0x08]
+ lhue $4, 8($2) # CHECK: lhue $4, 8($2) # encoding: [0x60,0x82,0x62,0x08]
+ mtc0 $5, $9 # CHECK: mtc0 $5, $9, 0 # encoding: [0x00,0xa9,0x02,0xfc]
+ mtc0 $1, $2, 7 # CHECK: mtc0 $1, $2, 7 # encoding: [0x00,0x22,0x3a,0xfc]
+ mtc1 $3, $f4 # CHECK: mtc1 $3, $f4 # encoding: [0x54,0x64,0x28,0x3b]
+ mtc2 $5, $6 # CHECK: mtc2 $5, $6 # encoding: [0x00,0xa6,0x5d,0x3c]
+ mthc0 $7, $8 # CHECK: mthc0 $7, $8, 0 # encoding: [0x00,0xe8,0x02,0xf4]
+ mthc0 $9, $10, 1 # CHECK: mthc0 $9, $10, 1 # encoding: [0x01,0x2a,0x0a,0xf4]
+ mthc1 $11, $f12 # CHECK: mthc1 $11, $f12 # encoding: [0x55,0x6c,0x38,0x3b]
+ mthc2 $13, $14 # CHECK: mthc2 $13, $14 # encoding: [0x01,0xae,0x9d,0x3c]
+ dmtc0 $15, $16 # CHECK: dmtc0 $15, $16, 0 # encoding: [0x59,0xf0,0x02,0xfc]
+ dmtc0 $17, $18, 5 # CHECK: dmtc0 $17, $18, 5 # encoding: [0x5a,0x32,0x2a,0xfc]
+ dmtc1 $19, $f20 # CHECK: dmtc1 $19, $f20 # encoding: [0x56,0x74,0x2c,0x3b]
+ dmtc2 $21, $22 # CHECK: dmtc2 $21, $22 # encoding: [0x02,0xb6,0x7d,0x3c]
+ dmfc0 $18, $17 # CHECK: dmfc0 $18, $17, 0 # encoding: [0x5a,0x51,0x00,0xfc]
+ dmfc0 $9, $1, 1 # CHECK: dmfc0 $9, $1, 1 # encoding: [0x59,0x21,0x08,0xfc]
+ dmfc1 $9, $f4 # CHECK: dmfc1 $9, $f4 # encoding: [0x55,0x24,0x24,0x3b]
+ dmfc2 $14, $18 # CHECK: dmfc2 $14, $18 # encoding: [0x01,0xd2,0x6d,0x3c]
+ dadd $9, $6, $7 # CHECK: dadd $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x10]
+ dadd $s3, $at, $ra # CHECK: dadd $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x10]
+ daddiu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f]
+ daddiu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67]
+ daddiu $9, -15001 # CHECK: daddiu $9, $9, -15001 # encoding: [0x5d,0x29,0xc5,0x67]
+ daddiu $9, $3, 8 * 4 # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20]
+ daddiu $9, $3, (8 * 4) # CHECK: daddiu $9, $3, 32 # encoding: [0x5d,0x23,0x00,0x20]
+ daddiu $k0, $s6, -4586 # CHECK: daddiu $26, $22, -4586 # encoding: [0x5f,0x56,0xee,0x16]
+ daddiu $15, $11, -5025 # CHECK: daddiu $15, $11, -5025 # encoding: [0x5d,0xeb,0xec,0x5f]
+ daddiu $14, $14, 4586 # CHECK: daddiu $14, $14, 4586 # encoding: [0x5d,0xce,0x11,0xea]
+ daddiu $19, $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f]
+ daddiu $11, $26, 31949 # CHECK: daddiu $11, $26, 31949 # encoding: [0x5d,0x7a,0x7c,0xcd]
+ daddiu $sp, $sp, -32 # CHECK: daddiu $sp, $sp, -32 # encoding: [0x5f,0xbd,0xff,0xe0]
+ daddu $26, $1, $11 # CHECK: daddu $26, $1, $11 # encoding: [0x59,0x61,0xd1,0x50]
+ daddu $19, $1, $ra # CHECK: daddu $19, $1, $ra # encoding: [0x5b,0xe1,0x99,0x50]
+ daddu $9, $6, $7 # CHECK: daddu $9, $6, $7 # encoding: [0x58,0xe6,0x49,0x50]
+ daddu $9, $3 # CHECK: daddu $9, $9, $3 # encoding: [0x58,0x69,0x49,0x50]
+ daddu $9, $6, -15001 # CHECK: daddiu $9, $6, -15001 # encoding: [0x5d,0x26,0xc5,0x67]
+ daddu $9, 10 # CHECK: daddiu $9, $9, 10 # encoding: [0x5d,0x29,0x00,0x0a]
+ daddu $19, 26943 # CHECK: daddiu $19, $19, 26943 # encoding: [0x5e,0x73,0x69,0x3f]
+ daddu $24, $2, 18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x5f,0x02,0x46,0x9f]
+ dsubu $3, 5 # CHECK: daddiu $3, $3, -5 # encoding: [0x5c,0x63,0xff,0xfb]
+ dsubu $3, $4, 5 # CHECK: daddiu $3, $4, -5 # encoding: [0x5c,0x64,0xff,0xfb]
+ tlbp # CHECK: tlbp # encoding: [0x00,0x00,0x03,0x7c]
+ tlbr # CHECK: tlbr # encoding: [0x00,0x00,0x13,0x7c]
+ tlbwi # CHECK: tlbwi # encoding: [0x00,0x00,0x23,0x7c]
+ tlbwr # CHECK: tlbwr # encoding: [0x00,0x00,0x33,0x7c]
+ dvp # CHECK: dvp $zero # encoding: [0x00,0x00,0x19,0x7c]
+ dvp $4 # CHECK: dvp $4 # encoding: [0x00,0x04,0x19,0x7c]
+ evp # CHECK: evp $zero # encoding: [0x00,0x00,0x39,0x7c]
+ evp $4 # CHECK: evp $4 # encoding: [0x00,0x04,0x39,0x7c]
+ jalrc.hb $4 # CHECK: jalrc.hb $4 # encoding: [0x03,0xe4,0x1f,0x3c]
+ jalrc.hb $4, $5 # CHECK: jalrc.hb $4, $5 # encoding: [0x00,0x85,0x1f,0x3c]
+ sllv $2, $3, $5 # CHECK: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
+ sra $4, $3, 7 # CHECK: sra $4, $3, 7 # encoding: [0x00,0x83,0x38,0x80]
+ srav $2, $3, $5 # CHECK: srav $2, $3, $5 # encoding: [0x00,0x65,0x10,0x90]
+ srl $4, $3, 7 # CHECK: srl $4, $3, 7 # encoding: [0x00,0x83,0x38,0x40]
+ srlv $2, $3, $5 # CHECK: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
+ sll $2, $3, $5 # CHECK: sllv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x10]
+ sra $2, $3, $5 # CHECK: srav $2, $3, $5 # encoding: [0x00,0x65,0x10,0x90]
+ srl $2, $3, $5 # CHECK: srlv $2, $3, $5 # encoding: [0x00,0x65,0x10,0x50]
+ sll $2, $3 # CHECK: sllv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x10]
+ sra $2, $3 # CHECK: srav $2, $2, $3 # encoding: [0x00,0x43,0x10,0x90]
+ srl $2, $3 # CHECK: srlv $2, $2, $3 # encoding: [0x00,0x43,0x10,0x50]
+ sll $3, 7 # CHECK: sll $3, $3, 7 # encoding: [0x00,0x63,0x38,0x00]
+ sra $3, 7 # CHECK: sra $3, $3, 7 # encoding: [0x00,0x63,0x38,0x80]
+ srl $3, 7 # CHECK: srl $3, $3, 7 # encoding: [0x00,0x63,0x38,0x40]
+ dsub $1, $2, $3 # CHECK: dsub $1, $2, $3 # encoding: [0x58,0x62,0x09,0x90]
+ dsubu $3, $7, $15 # CHECK: dsubu $3, $7, $15 # encoding: [0x59,0xe7,0x19,0xd0]
+ dneg $7, $15 # CHECK: dneg $7, $15 # encoding: [0x59,0xe0,0x39,0x90]
+ dneg $10 # CHECK: dneg $10, $10 # encoding: [0x59,0x40,0x51,0x90]
+ dnegu $1, $11 # CHECK: dnegu $1, $11 # encoding: [0x59,0x60,0x09,0xd0]
+ dnegu $5 # CHECK: dnegu $5, $5 # encoding: [0x58,0xa0,0x29,0xd0]
+ mul $3, $4, $5 # CHECK mul $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x18]
+ muh $3, $4, $5 # CHECK muh $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x58]
+ mulu $3, $4, $5 # CHECK mulu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0x98]
+ muhu $3, $4, $5 # CHECK muhu $3, $4, $5 # encoding: [0x00,0xa4,0x18,0xd8]
+ dmul $3, $4, $5 # CHECK dmul $3, $4, $5 # encoding: [0x58,0xa4,0x18,0x18]
+ dmuh $3, $4, $5 # CHECK dmuh $3, $4, $5 # encoding: [0x58,0xa4,0x18,0x58]
+ dmulu $3, $4, $5 # CHECK dmulu $3, $4, $5 # encoding: [0x58,0xa4,0x18,0x98]
+ dmuhu $3, $4, $5 # CHECK dmuhu $3, $4, $5 # encoding: [0x58,0xa4,0x18,0xd8]
+ lwp $16, 8($4) # CHECK: lwp $16, 8($4) # encoding: [0x22,0x04,0x10,0x08]
+ swp $16, 8($4) # CHECK: swp $16, 8($4) # encoding: [0x22,0x04,0x90,0x08]
+ dsbh $3, $4 # CHECK: dsbh $3, $4 # encoding: [0x58,0x64,0x7b,0x3c]
+ dshd $3, $4 # CHECK: dshd $3, $4 # encoding: [0x58,0x64,0xfb,0x3c]
+ dsll $3, $4, 5 # CHECK: dsll $3, $4, 5 # encoding: [0x58,0x64,0x28,0x00]
+ dsll32 $3, $4, 5 # CHECK: dsll32 $3, $4, 5 # encoding: [0x58,0x64,0x28,0x08]
+ dsllv $4, $5, $6 # CHECK: dsllv $4, $5, $6 # encoding: [0x58,0xa6,0x20,0x10]
+ dsra $4, $5, 5 # CHECK: dsra $4, $5, 5 # encoding: [0x58,0x85,0x28,0x80]
+ dsra32 $4, $5, 5 # CHECK: dsra32 $4, $5, 5 # encoding: [0x58,0x85,0x28,0x84]
+ dsrav $4, $5, $6 # CHECK: dsrav $4, $5, $6 # encoding: [0x58,0xa6,0x20,0x90]
+ bc1eqzc $f31, 4 # CHECK: bc1eqzc $f31, 4 # encoding: [0x41,0x1f,0x00,0x02]
+ bc1nezc $f31, 4 # CHECK: bc1nezc $f31, 4 # encoding: [0x41,0x3f,0x00,0x02]
+ bc2eqzc $31, 8 # CHECK: bc2eqzc $31, 8 # encoding: [0x41,0x5f,0x00,0x04]
+ bc2nezc $31, 8 # CHECK: bc2nezc $31, 8 # encoding: [0x41,0x7f,0x00,0x04]
+ and $3, 5 # CHECK: andi $3, $3, 5 # encoding: [0xd0,0x63,0x00,0x05]
+ and $3, $4, 5 # CHECK: andi $3, $4, 5 # encoding: [0xd0,0x64,0x00,0x05]
+ and $3, $4, $5 # CHECK: and $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x50]
+ andi $3, $4, 1234 # CHECK: andi $3, $4, 1234 # encoding: [0xd0,0x64,0x04,0xd2]
+ nor $3, $4, $5 # CHECK: nor $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0xd0]
+ not $3, $4 # CHECK: not $3, $4 # encoding: [0x00,0x04,0x1a,0xd0]
+ or $3, 5 # CHECK: ori $3, $3, 5 # encoding: [0x50,0x63,0x00,0x05]
+ or $3, $4, 5 # CHECK: ori $3, $4, 5 # encoding: [0x50,0x64,0x00,0x05]
+ or $3, $4, $5 # CHECK: or $3, $4, $5 # encoding: [0x00,0xa4,0x1a,0x90]
+ ori $3, $4, 1234 # CHECK: ori $3, $4, 1234 # encoding: [0x50,0x64,0x04,0xd2]
+ xor $3, 5 # CHECK: xori $3, $3, 5 # encoding: [0x70,0x63,0x00,0x05]
+ xor $3, $4, 5 # CHECK: xori $3, $4, 5 # encoding: [0x70,0x64,0x00,0x05]
+ xor $3, $4, $5 # CHECK: xor $3, $4, $5 # encoding: [0x00,0xa4,0x1b,0x10]
+ xori $3, $4, 1234 # CHECK: xori $3, $4, 1234 # encoding: [0x70,0x64,0x04,0xd2]
+ dclo $1, $2 # CHECK: dclo $1, $2 # encoding: [0x58,0x22,0x4b,0x3c]
+ dclz $1, $2 # CHECK: dclz $1, $2 # encoding: [0x58,0x22,0x5b,0x3c]
+ drotr $5, $10, 8 # CHECK: drotr $5, $10, 8 # encoding: [0x58,0xaa,0x40,0xc0]
+ drotr32 $1, $2, 4 # CHECK: drotr32 $1, $2, 4 # encoding: [0x58,0x22,0x20,0xc8]
+ drotrv $3, $6, $4 # CHECK: drotrv $3, $6, $4 # encoding: [0x58,0xc4,0x18,0xd0]
+ ld $4, 5($2) # CHECK: ld $4, 5($2) # encoding: [0xdc,0x82,0x00,0x05]
+ lld $2, 3($8) # CHECK: lld $2, 3($8) # encoding: [0x60,0x48,0x70,0x03]
+ lwu $1, 10($2) # CHECK: lwu $1, 10($2) # encoding: [0x60,0x22,0xe0,0x0a]
+ sd $4, 5($3) # CHECK: sd $4, 5($3) # encoding: [0xd8,0x83,0x00,0x05]
+ dsrl $1, $2, 2 # CHECK: dsrl $1, $2, 2 # encoding: [0x58,0x22,0x10,0x40]
+ dsrl32 $3, $4, 5 # CHECK: dsrl32 $3, $4, 5 # encoding: [0x58,0x64,0x28,0x48]
+ dsrlv $1, $3, $3 # CHECK: dsrlv $1, $3, $3 # encoding: [0x58,0x63,0x08,0x50]
+ ldc1 $f7, 300($10) # CHECK: ldc1 $f7, 300($10) # encoding: [0xbc,0xea,0x01,0x2c]
+ ldc1 $f8, 300($10) # CHECK: ldc1 $f8, 300($10) # encoding: [0xbd,0x0a,0x01,0x2c]
+ ldc2 $11, 1023($12) # CHECK: ldc2 $11, 1023($12) # encoding: [0x21,0x6c,0x23,0xff]
+ lwc1 $f2, 32($5) # CHECK: lwc1 $f2, 32($5) # encoding: [0x9c,0x45,0x00,0x20]
+ lwc2 $1, 16($4) # CHECK: lwc2 $1, 16($4) # encoding: [0x20,0x24,0x00,0x10]
+ sdc1 $f7, 64($10) # CHECK: sdc1 $f7, 64($10) # encoding: [0xb8,0xea,0x00,0x40]
+ sdc1 $f8, 64($10) # CHECK: sdc1 $f8, 64($10) # encoding: [0xb9,0x0a,0x00,0x40]
+ sdc2 $2, 8($16) # CHECK: sdc2 $2, 8($16) # encoding: [0x20,0x50,0xa0,0x08]
+ swc1 $f6, 369($13) # CHECK: swc1 $f6, 369($13) # encoding: [0x98,0xcd,0x01,0x71]
+ swc2 $7, 777($17) # CHECK: swc2 $7, 777($17) # encoding: [0x20,0xf1,0x83,0x09]
1:
diff --git a/test/MC/Mips/mips-control-instructions.s b/test/MC/Mips/mips-control-instructions.s
index 47da8ccca3c4..03b8ed26a5c4 100644
--- a/test/MC/Mips/mips-control-instructions.s
+++ b/test/MC/Mips/mips-control-instructions.s
@@ -6,8 +6,6 @@
# CHECK32: break # encoding: [0x00,0x00,0x00,0x0d]
# CHECK32: break 7 # encoding: [0x00,0x07,0x00,0x0d]
# CHECK32: break 7, 5 # encoding: [0x00,0x07,0x01,0x4d]
-# CHECK32: syscall # encoding: [0x00,0x00,0x00,0x0c]
-# CHECK32: syscall 13396 # encoding: [0x00,0x0d,0x15,0x0c]
# CHECK32: eret # encoding: [0x42,0x00,0x00,0x18]
# CHECK32: deret # encoding: [0x42,0x00,0x00,0x1f]
# CHECK32: di # encoding: [0x41,0x60,0x60,0x00]
@@ -39,8 +37,6 @@
# CHECK64: break # encoding: [0x00,0x00,0x00,0x0d]
# CHECK64: break 7 # encoding: [0x00,0x07,0x00,0x0d]
# CHECK64: break 7, 5 # encoding: [0x00,0x07,0x01,0x4d]
-# CHECK64: syscall # encoding: [0x00,0x00,0x00,0x0c]
-# CHECK64: syscall 13396 # encoding: [0x00,0x0d,0x15,0x0c]
# CHECK64: eret # encoding: [0x42,0x00,0x00,0x18]
# CHECK64: deret # encoding: [0x42,0x00,0x00,0x1f]
# CHECK64: di # encoding: [0x41,0x60,0x60,0x00]
@@ -72,8 +68,6 @@
break
break 7
break 7,5
- syscall
- syscall 0x3454
eret
deret
di
diff --git a/test/MC/Mips/mips-cop0-reginfo.s b/test/MC/Mips/mips-cop0-reginfo.s
index 0508a3729543..baa3681594c5 100644
--- a/test/MC/Mips/mips-cop0-reginfo.s
+++ b/test/MC/Mips/mips-cop0-reginfo.s
@@ -1,6 +1,6 @@
# RUN: llvm-mc -arch=mips -mcpu=mips32r2 -filetype=obj %s -o - | \
# RUN: llvm-readobj -sections -section-data - | \
-# RUN: FileCheck %s -check-prefix=CHECK
+# RUN: FileCheck %s
mfc0 $16, $15, 1
mfc0 $16, $16, 1
diff --git a/test/MC/Mips/mips-data-directives.s b/test/MC/Mips/mips-data-directives.s
index abff7c21c611..390f463c7cb9 100644
--- a/test/MC/Mips/mips-data-directives.s
+++ b/test/MC/Mips/mips-data-directives.s
@@ -7,14 +7,16 @@
# CHECK-ASM: .4byte 3735929054
# CHECK-ASM: .8byte -2401050962867405073
+# CHECK-ASM: .2byte 49374
# CHECK-ASM: .4byte label
# CHECK-ASM: .8byte label
+# CHECK-ASM: .2byte label
# Checking if the data and reloations were correctly emitted
# CHECK-OBJ: Section {
# CHECK-OBJ: Name: .data
# CHECK-OBJ: SectionData (
-# CHECK-OBJ: 0000: DEADC0DE DEADC0DE DEADBEEF 00000000
+# CHECK-OBJ: 0000: DEADC0DE DEADC0DE DEADBEEF C0DE0000
# CHECK-OBJ: 0010: 00000000 00000000
# CHECK-OBJ: )
# CHECK-OBJ: }
@@ -22,8 +24,9 @@
# CHECK-OBJ: Section {
# CHECK-OBJ: Name: .rel.data
# CHECK-OBJ: Relocations [
-# CHECK-OBJ: 0xC R_MIPS_32 .data 0x0
-# CHECK-OBJ: 0x10 R_MIPS_64 .data 0x0
+# CHECK-OBJ: 0xE R_MIPS_32 .data 0x0
+# CHECK-OBJ: 0x12 R_MIPS_64 .data 0x0
+# CHECK-OBJ: 0x1A R_MIPS_16 .data 0x0
# CHECK-OBJ: ]
# CHECK-OBJ: }
@@ -31,6 +34,8 @@
label:
.word 0xdeadc0de
.dword 0xdeadc0dedeadbeef
+ .hword 0xc0de
.word label
.dword label
+ .hword label
diff --git a/test/MC/Mips/mips-expansions-bad.s b/test/MC/Mips/mips-expansions-bad.s
index 3d6824687939..b54c48e18b33 100644
--- a/test/MC/Mips/mips-expansions-bad.s
+++ b/test/MC/Mips/mips-expansions-bad.s
@@ -1,9 +1,9 @@
# RUN: not llvm-mc %s -arch=mips -mcpu=mips32r2 2>%t1
# RUN: FileCheck %s < %t1 --check-prefix=32-BIT
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 2>&1 | \
-# RUN: FileCheck %s --check-prefix=64-BIT --check-prefix=N32-ONLY
+# RUN: FileCheck %s --check-prefixes=64-BIT,N32-ONLY
# RUN: not llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n64 2>&1 | \
-# RUN: FileCheck %s --check-prefix=64-BIT --check-prefix=N64-ONLY
+# RUN: FileCheck %s --check-prefixes=64-BIT,N64-ONLY
.text
dli $5, 1
diff --git a/test/MC/Mips/mips-expansions.s b/test/MC/Mips/mips-expansions.s
index 625b77f2d884..d07dfc05cf5c 100644
--- a/test/MC/Mips/mips-expansions.s
+++ b/test/MC/Mips/mips-expansions.s
@@ -1,44 +1,44 @@
# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
-# RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-LE
+# RUN: FileCheck %s --check-prefixes=CHECK,CHECK-LE
# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \
-# RUN: FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-BE
+# RUN: FileCheck %s --check-prefixes=CHECK,CHECK-BE
# Check that the IAS expands macro instructions in the same way as GAS.
# Load address, done by MipsAsmParser::expandLoadAddressReg()
# and MipsAsmParser::expandLoadAddressImm():
la $8, 1f
-# CHECK-LE: lui $8, %hi(($tmp0)) # encoding: [A,A,0x08,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: %hi(($tmp0)), kind: fixup_Mips_HI16
-# CHECK-LE: addiu $8, $8, %lo(($tmp0)) # encoding: [A,A,0x08,0x25]
-# CHECK-LE: # fixup A - offset: 0, value: %lo(($tmp0)), kind: fixup_Mips_LO16
+# CHECK-LE: lui $8, %hi($tmp0) # encoding: [A,A,0x08,0x3c]
+# CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
+# CHECK-LE: addiu $8, $8, %lo($tmp0) # encoding: [A,A,0x08,0x25]
+# CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
# LW/SW and LDC1/SDC1 of symbol address, done by MipsAsmParser::expandMemInst():
.set noat
lw $10, symbol($4)
# CHECK-LE: lui $10, %hi(symbol) # encoding: [A,A,0x0a,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
# CHECK-LE: addu $10, $10, $4 # encoding: [0x21,0x50,0x44,0x01]
# CHECK-LE: lw $10, %lo(symbol)($10) # encoding: [A,A,0x4a,0x8d]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
.set at
sw $10, symbol($9)
# CHECK-LE: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00]
# CHECK-LE: sw $10, %lo(symbol)($1) # encoding: [A,A,0x2a,0xac]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
lw $8, 1f
# CHECK-LE: lui $8, %hi($tmp0) # encoding: [A,A,0x08,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: ($tmp0)@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
# CHECK-LE: lw $8, %lo($tmp0)($8) # encoding: [A,A,0x08,0x8d]
-# CHECK-LE: # fixup A - offset: 0, value: ($tmp0)@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
sw $8, 1f
# CHECK-LE: lui $1, %hi($tmp0) # encoding: [A,A,0x01,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: ($tmp0)@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
# CHECK-LE: sw $8, %lo($tmp0)($1) # encoding: [A,A,0x28,0xac]
-# CHECK-LE: # fixup A - offset: 0, value: ($tmp0)@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
lw $10, 655483($4)
# CHECK-LE: lui $10, 10 # encoding: [0x0a,0x00,0x0a,0x3c]
@@ -47,20 +47,20 @@
sw $10, 123456($9)
# CHECK-LE: lui $1, 2 # encoding: [0x02,0x00,0x01,0x3c]
# CHECK-LE: addu $1, $1, $9 # encoding: [0x21,0x08,0x29,0x00]
-# CHECK-LE: sw $10, 57920($1) # encoding: [0x40,0xe2,0x2a,0xac]
+# CHECK-LE: sw $10, -7616($1) # encoding: [0x40,0xe2,0x2a,0xac]
lw $8, symbol
# CHECK-LE: lui $8, %hi(symbol) # encoding: [A,A,0x08,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
# CHECK-LE-NOT: move $8, $8 # encoding: [0x21,0x40,0x00,0x01]
# CHECK-LE: lw $8, %lo(symbol)($8) # encoding: [A,A,0x08,0x8d]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
sw $8, symbol
# CHECK-LE: lui $1, %hi(symbol) # encoding: [A,A,0x01,0x3c]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
+# CHECK-LE: # fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
# CHECK-LE-NOT: move $1, $1 # encoding: [0x21,0x08,0x20,0x00]
# CHECK-LE: sw $8, %lo(symbol)($1) # encoding: [A,A,0x28,0xac]
-# CHECK-LE: # fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
+# CHECK-LE: # fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
ldc1 $f0, symbol
# CHECK-LE: lui $1, %hi(symbol)
@@ -131,6 +131,12 @@
# CHECK-LE: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
# CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00]
+ beq $2, 65538, foo
+# CHECK-LE: lui $1, 1 # encoding: [0x01,0x00,0x01,0x3c]
+# CHECK-LE: ori $1, $1, 2 # encoding: [0x02,0x00,0x21,0x34]
+# CHECK-LE: beq $2, $1, foo # encoding: [A,A,0x41,0x10]
+# CHECK-LE: nop # encoding: [0x00,0x00,0x00,0x00]
+
# Test ULH with immediate operand.
ulh_imm: # CHECK-LABEL: ulh_imm:
ulh $8, 0
diff --git a/test/MC/Mips/mips-pdr.s b/test/MC/Mips/mips-pdr.s
index 8177e3e23448..b19dca3148dc 100644
--- a/test/MC/Mips/mips-pdr.s
+++ b/test/MC/Mips/mips-pdr.s
@@ -18,9 +18,9 @@
# OBJOUT: Section {
# OBJOUT: Name: .pdr
# OBJOUT: Type: SHT_PROGBITS (0x1)
-# OBJOUT: Flags [ (0xB)
-# OBJOUT: SHF_ALLOC (0x2)
-# OBJOUT: SHF_WRITE (0x1)
+# OBJOUT: Flags [ (0x0)
+# OBJOUT-NOT: SHF_ALLOC (0x2)
+# OBJOUT-NOT: SHF_WRITE (0x1)
# OBJOUT: ]
# OBJOUT: Size: 64
# OBJOUT: SectionData (
diff --git a/test/MC/Mips/mips1/invalid-mips2-wrong-error.s b/test/MC/Mips/mips1/invalid-mips2-wrong-error.s
index 8e878fef1eab..5897fb84a201 100644
--- a/test/MC/Mips/mips1/invalid-mips2-wrong-error.s
+++ b/test/MC/Mips/mips1/invalid-mips2-wrong-error.s
@@ -6,11 +6,11 @@
# RUN: FileCheck %s < %t1
.set noat
- ldc1 $f11,16391($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ldc2 $8,-1024($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
ldc3 $29,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sc $t7,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc1 $f31,30574($t5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sc $t7,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sdc2 $20,-1024($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
sdc3 $12,5835($t2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips1/invalid-mips3-wrong-error.s b/test/MC/Mips/mips1/invalid-mips3-wrong-error.s
index 2016e701b0f9..d140b258533a 100644
--- a/test/MC/Mips/mips1/invalid-mips3-wrong-error.s
+++ b/test/MC/Mips/mips1/invalid-mips3-wrong-error.s
@@ -6,18 +6,14 @@
# RUN: FileCheck %s < %t1
.set noat
- ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ldc1 $f11,16391($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ldc2 $20,-1024($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
ldl $24,-4167($24) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
ldr $14,-30358($s4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sc $15,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sd $12,5835($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc1 $f31,30574($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sc $15,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sdc2 $20,-1024($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
sdl $a3,-20961($s8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sdr $11,-20423($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips1/invalid-mips3.s b/test/MC/Mips/mips1/invalid-mips3.s
index d9400edaa17c..4b13ac69ebb9 100644
--- a/test/MC/Mips/mips1/invalid-mips3.s
+++ b/test/MC/Mips/mips1/invalid-mips3.s
@@ -54,10 +54,14 @@
floor.l.s $f12,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
floor.w.d $f14,$f11 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
floor.w.s $f8,$f9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:23: error: expected memory with 12-bit signed offset
round.l.d $f12,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.l.s $f25,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.w.d $f6,$f4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.w.s $f27,$f28 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sd $12,5835($10) # CHECK: :[[@LINE]]:23: error: expected memory with 16-bit signed offset
sqrt.d $f17,$f22 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
sqrt.s $f0,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
teqi $s5,-17504 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips1/invalid-mips4-wrong-error.s b/test/MC/Mips/mips1/invalid-mips4-wrong-error.s
index cec30c862329..cc4f56b75957 100644
--- a/test/MC/Mips/mips1/invalid-mips4-wrong-error.s
+++ b/test/MC/Mips/mips1/invalid-mips4-wrong-error.s
@@ -8,18 +8,14 @@
.set noat
bc1fl $fcc7,27 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
bc1tl $fcc7,27 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ldc1 $f11,16391($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ldc2 $20,-1024($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
ldl $24,-4167($24) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
ldr $14,-30358($s4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sc $15,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sd $12,5835($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc1 $f31,30574($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ ll $v0,-7321($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sc $15,18904($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sdc2 $20,-1024($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
sdl $a3,-20961($s8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sdr $11,-20423($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips1/invalid-mips4.s b/test/MC/Mips/mips1/invalid-mips4.s
index 9f246bc16bd0..1cf2e896b797 100644
--- a/test/MC/Mips/mips1/invalid-mips4.s
+++ b/test/MC/Mips/mips1/invalid-mips4.s
@@ -69,10 +69,14 @@
movz $a1,$s6,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
movz.d $f12,$f29,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
movz.s $f25,$f7,$v1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:23: error: expected memory with 12-bit signed offset
round.l.d $f12,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.l.s $f25,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.w.d $f6,$f4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.w.s $f27,$f28 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sd $12,5835($10) # CHECK: :[[@LINE]]:23: error: expected memory with 16-bit signed offset
sdxc1 $f11,$10($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
sqrt.d $f17,$f22 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
sqrt.s $f0,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips1/invalid-mips5.s b/test/MC/Mips/mips1/invalid-mips5.s
index af5b278c4098..6096c3e87b26 100644
--- a/test/MC/Mips/mips1/invalid-mips5.s
+++ b/test/MC/Mips/mips1/invalid-mips5.s
@@ -88,3 +88,5 @@
sdxc1 $f11,$a2($t2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
suxc1 $f12,$k1($t1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
swxc1 $f19,$t0($k0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ldc1 $f11,16391($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sdc1 $f31,30574($t5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/mips1/valid.s b/test/MC/Mips/mips1/valid.s
index 5080e77cae10..6c49dc51e435 100644
--- a/test/MC/Mips/mips1/valid.s
+++ b/test/MC/Mips/mips1/valid.s
@@ -117,6 +117,8 @@ a:
swc3 $10,-32265($k0)
swl $15,13694($s3)
swr $s1,-26590($14)
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
tlbp # CHECK: tlbp # encoding: [0x42,0x00,0x00,0x08]
tlbr # CHECK: tlbr # encoding: [0x42,0x00,0x00,0x01]
tlbwi # CHECK: tlbwi # encoding: [0x42,0x00,0x00,0x02]
@@ -124,4 +126,50 @@ a:
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
+ .set at
+ trunc.w.s $f4,$f6,$4
+ # CHECK: cfc1 $4, $ra # encoding: [0x44,0x44,0xf8,0x00]
+ # CHECK: cfc1 $4, $ra # encoding: [0x44,0x44,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+ # CHECK: ori $1, $4, 3 # encoding: [0x34,0x81,0x00,0x03]
+ # CHECK: xori $1, $1, 2 # encoding: [0x38,0x21,0x00,0x02]
+ # CHECK: ctc1 $1, $ra # encoding: [0x44,0xc1,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+ # CHECK: cvt.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x24]
+ # CHECK: ctc1 $4, $ra # encoding: [0x44,0xc4,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
+ trunc.w.d $f4,$f6,$4
+ # CHECK: cfc1 $4, $ra # encoding: [0x44,0x44,0xf8,0x00]
+ # CHECK: cfc1 $4, $ra # encoding: [0x44,0x44,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+ # CHECK: ori $1, $4, 3 # encoding: [0x34,0x81,0x00,0x03]
+ # CHECK: xori $1, $1, 2 # encoding: [0x38,0x21,0x00,0x02]
+ # CHECK: ctc1 $1, $ra # encoding: [0x44,0xc1,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+ # CHECK: cvt.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x24]
+ # CHECK: ctc1 $4, $ra # encoding: [0x44,0xc4,0xf8,0x00]
+ # CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
1:
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips2/invalid-mips3-wrong-error.s b/test/MC/Mips/mips2/invalid-mips3-wrong-error.s
index 3eb4ef3afb94..9aa17b6695b7 100644
--- a/test/MC/Mips/mips2/invalid-mips3-wrong-error.s
+++ b/test/MC/Mips/mips2/invalid-mips3-wrong-error.s
@@ -7,12 +7,8 @@
.set noat
dmult $s7,$a5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
ldl $t8,-4167($t8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
ldr $t2,-30358($s4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- scd $t3,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sd $t0,5835($a6) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ scd $t3,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
sdl $a3,-20961($s8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sdr $a7,-20423($t0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips2/invalid-mips3.s b/test/MC/Mips/mips2/invalid-mips3.s
index 67f9d5399841..80a09673413b 100644
--- a/test/MC/Mips/mips2/invalid-mips3.s
+++ b/test/MC/Mips/mips2/invalid-mips3.s
@@ -50,7 +50,11 @@
eret # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
floor.l.d $f26,$f7 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
floor.l.s $f12,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lld $zero,-14736($ra) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:24: error: expected memory with 12-bit signed offset
round.l.d $f12,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.l.s $f25,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sd $t0,5835($a6) # CHECK: :[[@LINE]]:24: error: expected memory with 16-bit signed offset
trunc.l.d $f23,$f23 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
trunc.l.s $f28,$f31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips2/invalid-mips4-wrong-error.s b/test/MC/Mips/mips2/invalid-mips4-wrong-error.s
index 28a98ba13f08..ef5657833ca5 100644
--- a/test/MC/Mips/mips2/invalid-mips4-wrong-error.s
+++ b/test/MC/Mips/mips2/invalid-mips4-wrong-error.s
@@ -8,9 +8,6 @@
.set noat
bc1fl $fcc7,27 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
bc1tl $fcc7,27 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- sd $12,5835($10) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ scd $15,-8243($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
sdl $a3,-20961($s8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
sdr $11,-20423($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips2/invalid-mips4.s b/test/MC/Mips/mips2/invalid-mips4.s
index 13923f01df86..fb9da85fd206 100644
--- a/test/MC/Mips/mips2/invalid-mips4.s
+++ b/test/MC/Mips/mips2/invalid-mips4.s
@@ -48,6 +48,7 @@
floor.l.s $f12,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
ldxc1 $f8,$s7($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
lwxc1 $f12,$s1($s8) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwu $s3,-24086($v1) # CHECK: :[[@LINE]]:23: error: expected memory with 12-bit signed offset
movf $gp,$8,$fcc0 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
movf $gp,$8,$fcc7 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
movf.d $f6,$f11,$fcc0 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
@@ -65,8 +66,10 @@
movz $a1,$s6,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
movz.d $f12,$f29,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
movz.s $f25,$f7,$v1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ld $sp,-28645($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
round.l.d $f12,$f1 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
round.l.s $f25,$f5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sd $12,5835($10) # CHECK: :[[@LINE]]:23: error: expected memory with 16-bit signed offset
sdxc1 $f11,$10($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
trunc.l.d $f23,$f23 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
trunc.l.s $f28,$f31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips2/valid.s b/test/MC/Mips/mips2/valid.s
index 026a3a28558a..80324dcfe452 100644
--- a/test/MC/Mips/mips2/valid.s
+++ b/test/MC/Mips/mips2/valid.s
@@ -146,6 +146,8 @@ a:
swl $15,13694($s3)
swr $s1,-26590($14)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -168,9 +170,35 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f14 # encoding: [0x46,0x20,0x75,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips3/valid.s b/test/MC/Mips/mips3/valid.s
index 2e62343c3342..bcc96b5aed1d 100644
--- a/test/MC/Mips/mips3/valid.s
+++ b/test/MC/Mips/mips3/valid.s
@@ -210,6 +210,8 @@ a:
swl $15,13694($s3)
swr $s1,-26590($14)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -232,11 +234,44 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips32/valid.s b/test/MC/Mips/mips32/valid.s
index 5f0769d92837..53d08df04afe 100644
--- a/test/MC/Mips/mips32/valid.s
+++ b/test/MC/Mips/mips32/valid.s
@@ -176,6 +176,8 @@ a:
swr $s1,-26590($14)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -198,9 +200,35 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f14 # encoding: [0x46,0x20,0x75,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips32r2/invalid-dsp.s b/test/MC/Mips/mips32r2/invalid-dsp.s
index 66e5f63129ac..2314d39e812a 100644
--- a/test/MC/Mips/mips32r2/invalid-dsp.s
+++ b/test/MC/Mips/mips32r2/invalid-dsp.s
@@ -77,7 +77,7 @@
precrq_rs.ph.w $a1,$k0,$a3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
precrqu_s.qb.ph $zero,$gp,$s5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
raddu.w.qb $25,$s3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
- repl.ph $at,-307 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ repl.ph $at,307 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
replv.ph $v1,$s7 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
replv.qb $25,$12 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
shilo $ac1,26 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips32r2/invalid-dspr2.s b/test/MC/Mips/mips32r2/invalid-dspr2.s
index 5c31b465ca1f..026ae1838203 100644
--- a/test/MC/Mips/mips32r2/invalid-dspr2.s
+++ b/test/MC/Mips/mips32r2/invalid-dspr2.s
@@ -103,7 +103,7 @@
precrq_rs.ph.w $a1,$k0,$a3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
precrqu_s.qb.ph $zero,$gp,$s5 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
raddu.w.qb $25,$s3 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
- repl.ph $at,-307 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ repl.ph $at,307 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
replv.ph $v1,$s7 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
replv.qb $25,$12 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
shilo $ac1,26 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips32r2/invalid.s b/test/MC/Mips/mips32r2/invalid.s
index 6001aeacf9b3..888bed8bd179 100644
--- a/test/MC/Mips/mips32r2/invalid.s
+++ b/test/MC/Mips/mips32r2/invalid.s
@@ -6,6 +6,10 @@
.text
.set noreorder
+ addiu $2, $3, -32769 # CHECK: :[[@LINE]]:23: error: expected 16-bit signed immediate
+ addiu $2, $3, 65536 # CHECK: :[[@LINE]]:23: error: expected 16-bit signed immediate
+ andi $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
+ andi $2, $3, 65536 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
cache -1, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
# FIXME: Check '0 < pos + size <= 32' constraint on ext
@@ -18,13 +22,25 @@
ins $2, $3, 32, 1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
jalr.hb $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
jalr.hb $31, $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
+ lwc2 $2, -32769($3) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $2, 32768($3) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ ori $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 16-bit unsigned immediate
+ ori $2, $3, 65536 # CHECK: :[[@LINE]]:21: error: expected 16-bit unsigned immediate
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ sdbbp -1 # CHECK: :[[@LINE]]:15: error: expected 20-bit unsigned immediate
+ sdbbp 1048576 # CHECK: :[[@LINE]]:15: error: expected 20-bit unsigned immediate
sll $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
sll $2, $3, 32 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
srl $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
srl $2, $3, 32 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
sra $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
sra $2, $3, 32 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
+ sync -1 # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ sync 32 # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ syscall -1 # CHECK: :[[@LINE]]:17: error: expected 20-bit unsigned immediate
+ syscall 1048576 # CHECK: :[[@LINE]]:17: error: expected 20-bit unsigned immediate
rotr $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
rotr $2, $3, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ xori $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
+ xori $2, $3, 65536 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
diff --git a/test/MC/Mips/mips32r2/valid.s b/test/MC/Mips/mips32r2/valid.s
index d8e491ecd0b1..a2b597911413 100644
--- a/test/MC/Mips/mips32r2/valid.s
+++ b/test/MC/Mips/mips32r2/valid.s
@@ -213,6 +213,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -235,11 +237,37 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f14 # encoding: [0x46,0x20,0x75,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
wsbh $k1,$9
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
synci -15842($a2) # CHECK: synci -15842($6) # encoding: [0x04,0xdf,0xc2,0x1e]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips32r3/valid.s b/test/MC/Mips/mips32r3/valid.s
index 93859dbd1d51..c4c7069b3c42 100644
--- a/test/MC/Mips/mips32r3/valid.s
+++ b/test/MC/Mips/mips32r3/valid.s
@@ -213,6 +213,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -235,11 +237,37 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f14 # encoding: [0x46,0x20,0x75,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
wsbh $k1,$9
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
synci -15842($a2) # CHECK: synci -15842($6) # encoding: [0x04,0xdf,0xc2,0x1e]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips32r5/invalid.s b/test/MC/Mips/mips32r5/invalid.s
index 0d83005d5ccc..555d9e3af5ae 100644
--- a/test/MC/Mips/mips32r5/invalid.s
+++ b/test/MC/Mips/mips32r5/invalid.s
@@ -12,3 +12,57 @@
jalr.hb $31, $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc2 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc2 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc2 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc2 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ lb $32, 8($5) # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc2 $1, -32769($12) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ ldc2 $1, 32768($12) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ ldc2 $1, 1023($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc2 $1, -32769($16) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $1, 32768($16) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $1, 8($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc2 $1, -32769($4) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $1, 32768($4) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $1, 16($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc2 $1, -32769($17) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $1, 32768($17) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $1, 777($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/mips32r5/valid.s b/test/MC/Mips/mips32r5/valid.s
index e0c1711fbe6e..d1970021ab72 100644
--- a/test/MC/Mips/mips32r5/valid.s
+++ b/test/MC/Mips/mips32r5/valid.s
@@ -214,6 +214,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -236,11 +238,37 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f14 # encoding: [0x46,0x20,0x75,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
wsbh $k1,$9
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
synci -15842($a2) # CHECK: synci -15842($6) # encoding: [0x04,0xdf,0xc2,0x1e]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s b/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s
index 6d569d12b396..deafbb02eca4 100644
--- a/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s
+++ b/test/MC/Mips/mips32r6/invalid-mips1-wrong-error.s
@@ -11,8 +11,8 @@
lwr $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swl $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swr $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $24, 5($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $24, 5($3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s b/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s
index b5d738093186..b26cc4e23283 100644
--- a/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s
+++ b/test/MC/Mips/mips32r6/invalid-mips5-wrong-error.s
@@ -9,3 +9,15 @@
bc1any2t $fcc2,4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: unknown instruction
bc1any4f $fcc2,4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: unknown instruction
bc1any4t $fcc2,4 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: unknown instruction
+ ldc2 $1, -2049($12) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 2048($12) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ ldc2 $1, 1023($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $1, -2049($4) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 2048($4) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ lwc2 $1, 16($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $1, -2049($16) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 2048($16) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ sdc2 $1, 8($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $1, -2049($17) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 2048($17) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ swc2 $1, 777($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/mips32r6/invalid.s b/test/MC/Mips/mips32r6/invalid.s
index 1656ac1da350..67c1fbf07223 100644
--- a/test/MC/Mips/mips32r6/invalid.s
+++ b/test/MC/Mips/mips32r6/invalid.s
@@ -12,8 +12,6 @@ local_label:
align $4, $2, $3, 4 # CHECK: :[[@LINE]]:29: error: expected 2-bit unsigned immediate
jalr.hb $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
jalr.hb $31, $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
- ldc2 $8,-21181($at) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
- sdc2 $20,23157($s2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
swc2 $25,24880($s0) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
break -1 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
break 1024 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
@@ -22,7 +20,23 @@ local_label:
break 7, -1 # CHECK: :[[@LINE]]:18: error: expected 10-bit unsigned immediate
break 7, 1024 # CHECK: :[[@LINE]]:18: error: expected 10-bit unsigned immediate
break 1024, 1024 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
- // FIXME: Following tests are temporarely disabled, until "PredicateControl not in hierarchy" problem is resolved
+ lh $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhe $34, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhu $35, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhue $36, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lh $2, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, 8($33) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, 8($35) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, 8($37) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lh $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lh $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, -65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhu $4, 65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ // FIXME: Following tests are temporarily disabled, until "PredicateControl not in hierarchy" problem is resolved
bltl $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bltul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
blel $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
@@ -31,11 +45,79 @@ local_label:
bgeul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bgtl $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bgtul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ bgec $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bltc $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgeuc $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bltuc $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ beqc $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bnec $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgec $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bltc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bgeuc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bltuc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ beqc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bnec $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ blezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgtzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bltzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ beqzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bnezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
cache -1, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
jalr.hb $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
jalr.hb $31, $31 # CHECK: :[[@LINE]]:9: error: source and destination must be different
+ ldc2 $20, -1025($s2) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ ldc2 $20, 1024($s2) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
lsa $2, $3, $4, 0 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
lsa $2, $3, $4, 5 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ mtc0 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc0 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc2 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mtc2 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc2 $4, $3, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ mfc2 $4, $3, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ sdc2 $20, -1025($s2) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ sdc2 $20, 1024($s2) # CHECK: :[[@LINE]]:9: error: instruction requires a CPU feature not currently enabled
+ sync -1 # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ sync 32 # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ lb $32, 8($5) # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ldc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sdc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips32r6/relocations.s b/test/MC/Mips/mips32r6/relocations.s
index eda749707065..3c5728962491 100644
--- a/test/MC/Mips/mips32r6/relocations.s
+++ b/test/MC/Mips/mips32r6/relocations.s
@@ -28,11 +28,11 @@
# CHECK-FIXUP: value: bar-4, kind: fixup_MIPS_PC26_S2
# CHECK-FIXUP: aluipc $2, %pcrel_hi(bar) # encoding: [0xec,0x5f,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: bar@PCREL_HI16,
+# CHECK-FIXUP: value: %pcrel_hi(bar),
# CHECK-FIXUP: kind: fixup_MIPS_PCHI16
# CHECK-FIXUP: addiu $2, $2, %pcrel_lo(bar) # encoding: [0x24,0x42,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: bar@PCREL_LO16,
+# CHECK-FIXUP: value: %pcrel_lo(bar),
# CHECK-FIXUP: kind: fixup_MIPS_PCLO16
# CHECK-FIXUP: lwpc $2, bar # encoding: [0xec,0b01001AAA,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
diff --git a/test/MC/Mips/mips32r6/valid-xfail.s b/test/MC/Mips/mips32r6/valid-xfail.s
deleted file mode 100644
index 0c911d71f47e..000000000000
--- a/test/MC/Mips/mips32r6/valid-xfail.s
+++ /dev/null
@@ -1,19 +0,0 @@
-# Instructions that should be valid but currently fail for known reasons (e.g.
-# they aren't implemented yet).
-# This test is set up to XPASS if any instruction generates an encoding.
-#
-# RUN: not llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r6 | not FileCheck %s
-# CHECK-NOT: encoding
-# XFAIL: *
-
- .set noat
- bovc $0, $2, 4 # TODO: bovc $0, $2, 4 # encoding: [0x20,0x40,0x00,0x01]
- bovc $2, $4, 4 # TODO: bovc $2, $4, 4 # encoding: [0x20,0x82,0x00,0x01]
- bnvc $0, $2, 4 # TODO: bnvc $0, $2, 4 # encoding: [0x60,0x40,0x00,0x01]
- bnvc $2, $4, 4 # TODO: bnvc $2, $4, 4 # encoding: [0x60,0x82,0x00,0x01]
- beqc $0, $6, 256 # TODO: beqc $6, $zero, 256 # encoding: [0x20,0xc0,0x00,0x40]
- beqc $5, $0, 256 # TODO: beqc $5, $zero, 256 # encoding: [0x20,0xa0,0x00,0x40]
- beqc $6, $5, 256 # TODO: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
- bnec $0, $6, 256 # TODO: bnec $6, $zero, 256 # encoding: [0x60,0xc0,0x00,0x40]
- bnec $5, $0, 256 # TODO: bnec $5, $zero, 256 # encoding: [0x60,0xa0,0x00,0x40]
- bnec $6, $5, 256 # TODO: bnec $5, $6, 256 # encoding: [0x60,0xa6,0x00,0x40]
diff --git a/test/MC/Mips/mips32r6/valid.s b/test/MC/Mips/mips32r6/valid.s
index e4786d0e4ec4..6b27ac102deb 100644
--- a/test/MC/Mips/mips32r6/valid.s
+++ b/test/MC/Mips/mips32r6/valid.s
@@ -33,13 +33,13 @@ a:
bc2eqz $31,8 # CHECK: bc2eqz $31, 8 # encoding: [0x49,0x3f,0x00,0x02]
bc2nez $0,8 # CHECK: bc2nez $0, 8 # encoding: [0x49,0xa0,0x00,0x02]
bc2nez $31,8 # CHECK: bc2nez $31, 8 # encoding: [0x49,0xbf,0x00,0x02]
- # beqc requires rs < rt && rs != 0 but we also accept when this is not true. See also bovc
- # FIXME: Testcases are in valid-xfail.s at the moment
- beqc $5, $6, 256 # CHECK: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
+ # beqc requires rs < rt && rs != 0 but we accept this and fix it. See also bovc.
+ beqc $5, $6, 256 # CHECK: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
+ beqc $6, $5, 256 # CHECK: beqc $6, $5, 256 # encoding: [0x20,0xa6,0x00,0x40]
beqzalc $2, 1332 # CHECK: beqzalc $2, 1332 # encoding: [0x20,0x02,0x01,0x4d]
- # bnec requires rs < rt && rs != 0 but we accept when this is not true. See also bnvc
- # FIXME: Testcases are in valid-xfail.s at the moment
+ # bnec requires rs < rt && rs != 0 but we accept this and fix it. See also bnvc.
bnec $5, $6, 256 # CHECK: bnec $5, $6, 256 # encoding: [0x60,0xa6,0x00,0x40]
+ bnec $6, $5, 256 # CHECK: bnec $6, $5, 256 # encoding: [0x60,0xa6,0x00,0x40]
bnezalc $2, 1332 # CHECK: bnezalc $2, 1332 # encoding: [0x60,0x02,0x01,0x4d]
beqzc $5, 72256 # CHECK: beqzc $5, 72256 # encoding: [0xd8,0xa0,0x46,0x90]
bgec $2, $3, 256 # CHECK: bgec $2, $3, 256 # encoding: [0x58,0x43,0x00,0x40]
@@ -56,14 +56,14 @@ a:
blezalc $2, 1332 # CHECK: blezalc $2, 1332 # encoding: [0x18,0x02,0x01,0x4d]
bltc $5, $6, 256 # CHECK: bltc $5, $6, 256 # encoding: [0x5c,0xa6,0x00,0x40]
bltuc $5, $6, 256 # CHECK: bltuc $5, $6, 256 # encoding: [0x1c,0xa6,0x00,0x40]
- # bnvc requires that rs >= rt but we accept both. See also bnec
+ # bnvc requires that rs >= rt but we accept both and fix this. See also bnec.
bnvc $0, $0, 4 # CHECK: bnvc $zero, $zero, 4 # encoding: [0x60,0x00,0x00,0x01]
bnvc $2, $0, 4 # CHECK: bnvc $2, $zero, 4 # encoding: [0x60,0x40,0x00,0x01]
- bnvc $4, $2, 4 # CHECK: bnvc $4, $2, 4 # encoding: [0x60,0x82,0x00,0x01]
- # bovc requires that rs >= rt but we accept both. See also beqc
+ bnvc $2, $4, 4 # CHECK: bnvc $2, $4, 4 # encoding: [0x60,0x82,0x00,0x01]
+ # bovc requires that rs >= rt but we accept both and fix this. See also beqc.
bovc $0, $0, 4 # CHECK: bovc $zero, $zero, 4 # encoding: [0x20,0x00,0x00,0x01]
bovc $2, $0, 4 # CHECK: bovc $2, $zero, 4 # encoding: [0x20,0x40,0x00,0x01]
- bovc $4, $2, 4 # CHECK: bovc $4, $2, 4 # encoding: [0x20,0x82,0x00,0x01]
+ bovc $2, $4, 4 # CHECK: bovc $2, $4, 4 # encoding: [0x20,0x82,0x00,0x01]
cache 1, 8($5) # CHECK: cache 1, 8($5) # encoding: [0x7c,0xa1,0x04,0x25]
cmp.af.s $f2,$f3,$f4 # CHECK: cmp.af.s $f2, $f3, $f4 # encoding: [0x46,0x84,0x18,0x80]
cmp.af.d $f2,$f3,$f4 # CHECK: cmp.af.d $f2, $f3, $f4 # encoding: [0x46,0xa4,0x18,0x80]
@@ -161,8 +161,14 @@ a:
j 1328 # CHECK: j 1328 # encoding: [0x08,0x00,0x01,0x4c]
jal 21100 # CHECK: jal 21100 # encoding: [0x0c,0x00,0x14,0x9b]
jr.hb $4 # CHECK: jr.hb $4 # encoding: [0x00,0x80,0x04,0x09]
+ jr $ra # CHECK: jr $ra # encoding: [0x03,0xe0,0x00,0x09]
+ jr $25 # CHECK: jr $25 # encoding: [0x03,0x20,0x00,0x09]
+ jrc $27 # CHECK: jrc $27 # encoding: [0xd8,0x1b,0x00,0x00]
jalr.hb $4 # CHECK: jalr.hb $4 # encoding: [0x00,0x80,0xfc,0x09]
jalr.hb $4, $5 # CHECK: jalr.hb $4, $5 # encoding: [0x00,0xa0,0x24,0x09]
+ jalrc $25 # CHECK: jalrc $25 # encoding: [0xf8,0x19,0x00,0x00]
+ jialc $15, 16161 # CHECK: jialc $15, 16161 # encoding: [0xf8,0x0f,0x3f,0x21]
+ jic $12, -3920 # CHECK: jic $12, -3920 # encoding: [0xd8,0x0c,0xf0,0xb0]
ldc2 $8, -701($at) # CHECK: ldc2 $8, -701($1) # encoding: [0x49,0xc8,0x0d,0x43]
lwc2 $18,-841($a2) # CHECK: lwc2 $18, -841($6) # encoding: [0x49,0x52,0x34,0xb7]
sdc2 $20,629($s2) # CHECK: sdc2 $20, 629($18) # encoding: [0x49,0xf4,0x92,0x75]
@@ -177,6 +183,8 @@ a:
sdbbp 34 # CHECK: sdbbp 34 # encoding: [0x00,0x00,0x08,0x8e]
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
tge $7,$10 # CHECK: tge $7, $10 # encoding: [0x00,0xea,0x00,0x30]
@@ -192,3 +200,22 @@ a:
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips4/valid.s b/test/MC/Mips/mips4/valid.s
index fcea8ead8a7d..0a4eb4d60cca 100644
--- a/test/MC/Mips/mips4/valid.s
+++ b/test/MC/Mips/mips4/valid.s
@@ -239,6 +239,8 @@ a:
swr $s1,-26590($14)
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -261,11 +263,44 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips5/valid.s b/test/MC/Mips/mips5/valid.s
index 36f3ce14dc63..270ff16c8a99 100644
--- a/test/MC/Mips/mips5/valid.s
+++ b/test/MC/Mips/mips5/valid.s
@@ -241,6 +241,8 @@ a:
swr $s1,-26590($14)
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -263,11 +265,44 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64-expansions.s b/test/MC/Mips/mips64-expansions.s
index 0b56cf501283..f84ee8af9e15 100644
--- a/test/MC/Mips/mips64-expansions.s
+++ b/test/MC/Mips/mips64-expansions.s
@@ -84,6 +84,17 @@
# CHECK: beq $2, $1, 1332 # encoding: [0x4d,0x01,0x41,0x10]
# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+# Test one with a symbol in the third operand.
+sym:
+ bne $2, 0x100010001, sym
+# CHECK: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: dsll $1, $1, 16 # encoding: [0x38,0x0c,0x01,0x00]
+# CHECK: ori $1, $1, 1 # encoding: [0x01,0x00,0x21,0x34]
+# CHECK: bne $2, $1, sym # encoding: [A,A,0x41,0x14]
+# CHECK: nop # encoding: [0x00,0x00,0x00,0x00]
+
# Test ulhu with 64-bit immediate addresses.
ulhu $8, 0x100010001
# CHECK: addiu $1, $zero, 1 # encoding: [0x01,0x00,0x01,0x24]
diff --git a/test/MC/Mips/mips64/abiflags.s b/test/MC/Mips/mips64/abiflags.s
index ecaffcc3465c..10c768942a1e 100644
--- a/test/MC/Mips/mips64/abiflags.s
+++ b/test/MC/Mips/mips64/abiflags.s
@@ -1,7 +1,7 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64 | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n64 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
#
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -filetype=obj -o - | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
# RUN: FileCheck %s -check-prefix=CHECK-OBJ
diff --git a/test/MC/Mips/mips64/invalid-mips64r2.s b/test/MC/Mips/mips64/invalid-mips64r2.s
index 1caa2bdea008..4d8411634f22 100644
--- a/test/MC/Mips/mips64/invalid-mips64r2.s
+++ b/test/MC/Mips/mips64/invalid-mips64r2.s
@@ -6,6 +6,12 @@
.set noat
di $s8 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dext $1, $2, 12, 12 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dextm $1, $2, 21, 43 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dextu $1, $2, 33, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dins $1, $2, 12, 12 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dinsm $1, $2, 21, 43 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dinsu $1, $2, 33, 16 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
drotr $1,15 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
drotr $1,$14,15 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
drotr32 $1,15 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
@@ -23,3 +29,13 @@
seb $25,$15 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
seh $v1,$12 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
wsbh $k1,$9 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ dins $2, $3, -1, 1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ dins $2, $3, 64, 1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ dinsm $2, $3, -1, 1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ dinsm $2, $3, 32, 1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ dinsm $2, $3, 31, 0 # CHECK: :[[@LINE]]:27: error: expected immediate in range 2 .. 64
+ dinsm $2, $3, 31, 65 # CHECK: :[[@LINE]]:27: error: expected immediate in range 2 .. 64
+ dinsu $2, $3, 31, 1 # CHECK: :[[@LINE]]:23: error: expected immediate in range 32 .. 63
+ dinsu $2, $3, 64, 1 # CHECK: :[[@LINE]]:23: error: expected immediate in range 32 .. 63
+ dinsu $2, $3, 63, 0 # CHECK: :[[@LINE]]:27: error: expected immediate in range 1 .. 32
+ dinsu $2, $3, 32, 33 # CHECK: :[[@LINE]]:27: error: expected immediate in range 1 .. 32
diff --git a/test/MC/Mips/mips64/valid.s b/test/MC/Mips/mips64/valid.s
index 92afbb395465..0ba831b841b8 100644
--- a/test/MC/Mips/mips64/valid.s
+++ b/test/MC/Mips/mips64/valid.s
@@ -260,6 +260,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -282,11 +284,44 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64extins.ll b/test/MC/Mips/mips64extins.ll
deleted file mode 100644
index 093bc87b90bc..000000000000
--- a/test/MC/Mips/mips64extins.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 -target-abi=n64 %s -o - \
-; RUN: | llvm-objdump -disassemble -triple mips64el -mattr +mips64r2 - \
-; RUN: | FileCheck %s
-
-define i64 @dext(i64 %i) nounwind readnone {
-entry:
-; CHECK: dext ${{[0-9]+}}, ${{[0-9]+}}, 5, 10
- %shr = lshr i64 %i, 5
- %and = and i64 %shr, 1023
- ret i64 %and
-}
-
-define i64 @dextu(i64 %i) nounwind readnone {
-entry:
-; CHECK: dextu ${{[0-9]+}}, ${{[0-9]+}}, 2, 6
- %shr = lshr i64 %i, 34
- %and = and i64 %shr, 63
- ret i64 %and
-}
-
-define i64 @dextm(i64 %i) nounwind readnone {
-entry:
-; CHECK: dextm ${{[0-9]+}}, ${{[0-9]+}}, 5, 2
- %shr = lshr i64 %i, 5
- %and = and i64 %shr, 17179869183
- ret i64 %and
-}
-
-define i64 @dins(i64 %i, i64 %j) nounwind readnone {
-entry:
-; CHECK: dins ${{[0-9]+}}, ${{[0-9]+}}, 8, 10
- %shl2 = shl i64 %j, 8
- %and = and i64 %shl2, 261888
- %and3 = and i64 %i, -261889
- %or = or i64 %and3, %and
- ret i64 %or
-}
-
-define i64 @dinsm(i64 %i, i64 %j) nounwind readnone {
-entry:
-; CHECK: dinsm ${{[0-9]+}}, ${{[0-9]+}}, 10, 1
- %shl4 = shl i64 %j, 10
- %and = and i64 %shl4, 8796093021184
- %and5 = and i64 %i, -8796093021185
- %or = or i64 %and5, %and
- ret i64 %or
-}
-
-define i64 @dinsu(i64 %i, i64 %j) nounwind readnone {
-entry:
-; CHECK: dinsu ${{[0-9]+}}, ${{[0-9]+}}, 8, 13
- %shl4 = shl i64 %j, 40
- %and = and i64 %shl4, 9006099743113216
- %and5 = and i64 %i, -9006099743113217
- %or = or i64 %and5, %and
- ret i64 %or
-}
diff --git a/test/MC/Mips/mips64extins.s b/test/MC/Mips/mips64extins.s
new file mode 100644
index 000000000000..3f1973bf52de
--- /dev/null
+++ b/test/MC/Mips/mips64extins.s
@@ -0,0 +1,9 @@
+# RUN: llvm-mc -arch=mips64el -filetype=obj -mcpu=mips64r2 -target-abi=n64 %s -o - \
+# RUN: | llvm-objdump -disassemble - | FileCheck %s
+
+ dext $2, $4, 5, 10 # CHECK: dext ${{[0-9]+}}, ${{[0-9]+}}, 5, 10
+ dextu $2, $4, 34, 6 # CHECK: dextu ${{[0-9]+}}, ${{[0-9]+}}, 34, 6
+ dextm $2, $4, 5, 34 # CHECK: dextm ${{[0-9]+}}, ${{[0-9]+}}, 5, 34
+ dins $4, $5, 8, 10 # CHECK: dins ${{[0-9]+}}, ${{[0-9]+}}, 8, 10
+ dinsm $4, $5, 10, 1 # CHECK: dinsm ${{[0-9]+}}, ${{[0-9]+}}, 10, 1
+ dinsu $4, $5, 40, 13 # CHECK: dinsu ${{[0-9]+}}, ${{[0-9]+}}, 40, 13
diff --git a/test/MC/Mips/mips64r2/abi-bad.s b/test/MC/Mips/mips64r2/abi-bad.s
index 7070d4572471..78748804c429 100644
--- a/test/MC/Mips/mips64r2/abi-bad.s
+++ b/test/MC/Mips/mips64r2/abi-bad.s
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r2 2>&1 | FileCheck %s
+# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r2 -target-abi n64 2>&1 | FileCheck %s
.set fp=xx
# CHECK: error: '.set fp=xx' requires the O32 ABI
# CHECK: .set fp=xx
diff --git a/test/MC/Mips/mips64r2/abiflags.s b/test/MC/Mips/mips64r2/abiflags.s
index dc4a1e946e3e..ece133f8f0e2 100644
--- a/test/MC/Mips/mips64r2/abiflags.s
+++ b/test/MC/Mips/mips64r2/abiflags.s
@@ -1,7 +1,7 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r2 | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r2 -target-abi n64 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
#
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r2 -filetype=obj -o - | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r2 -target-abi n64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
# RUN: FileCheck %s -check-prefix=CHECK-OBJ
diff --git a/test/MC/Mips/mips64r2/invalid.s b/test/MC/Mips/mips64r2/invalid.s
index 86bfc959fff0..84438c615281 100644
--- a/test/MC/Mips/mips64r2/invalid.s
+++ b/test/MC/Mips/mips64r2/invalid.s
@@ -6,11 +6,13 @@
.text
.set noreorder
+ andi $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
+ andi $2, $3, 65536 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
cache -1, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
# FIXME: Check various 'pos + size' constraints on dext*
- dext $2, $3, -1, 1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
- dext $2, $3, 32, 1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ dext $2, $3, -1, 1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ dext $2, $3, 64, 1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
dext $2, $3, 1, 0 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 32
dext $2, $3, 1, 33 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 32
dextm $2, $3, -1, 1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
@@ -56,6 +58,8 @@
ins $2, $3, 32, 1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
jalr.hb $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
jalr.hb $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
+ ori $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 16-bit unsigned immediate
+ ori $2, $3, 65536 # CHECK: :[[@LINE]]:21: error: expected 16-bit unsigned immediate
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
sll $2, $3, -1 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
@@ -66,3 +70,5 @@
sra $2, $3, 32 # CHECK: :[[@LINE]]:21: error: expected 5-bit unsigned immediate
rotr $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
rotr $2, $3, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ xori $2, $3, -1 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
+ xori $2, $3, 65536 # CHECK: :[[@LINE]]:22: error: expected 16-bit unsigned immediate
diff --git a/test/MC/Mips/mips64r2/valid.s b/test/MC/Mips/mips64r2/valid.s
index 9057fcef60b4..5ae3adc46eb9 100644
--- a/test/MC/Mips/mips64r2/valid.s
+++ b/test/MC/Mips/mips64r2/valid.s
@@ -286,6 +286,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -308,12 +310,46 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
wsbh $k1,$9
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64r3/abi-bad.s b/test/MC/Mips/mips64r3/abi-bad.s
index 7691601bf29b..0f38fde5bf38 100644
--- a/test/MC/Mips/mips64r3/abi-bad.s
+++ b/test/MC/Mips/mips64r3/abi-bad.s
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r3 2>&1 | FileCheck %s
+# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r3 -target-abi n64 2>&1 | FileCheck %s
.set fp=xx
# CHECK: error: '.set fp=xx' requires the O32 ABI
# CHECK: .set fp=xx
diff --git a/test/MC/Mips/mips64r3/abiflags.s b/test/MC/Mips/mips64r3/abiflags.s
index e89be29ca2b9..e1461ccb3cbf 100644
--- a/test/MC/Mips/mips64r3/abiflags.s
+++ b/test/MC/Mips/mips64r3/abiflags.s
@@ -1,7 +1,7 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r3 | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r3 -target-abi n64 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
#
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r3 -filetype=obj -o - | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r3 -target-abi n64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
# RUN: FileCheck %s -check-prefix=CHECK-OBJ
diff --git a/test/MC/Mips/mips64r3/invalid.s b/test/MC/Mips/mips64r3/invalid.s
index 99071211ba4b..160837388736 100644
--- a/test/MC/Mips/mips64r3/invalid.s
+++ b/test/MC/Mips/mips64r3/invalid.s
@@ -14,3 +14,4 @@
jalr.hb $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ sd $32, 65536($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
diff --git a/test/MC/Mips/mips64r3/valid.s b/test/MC/Mips/mips64r3/valid.s
index 4e2717bdd15d..ab385daa96cb 100644
--- a/test/MC/Mips/mips64r3/valid.s
+++ b/test/MC/Mips/mips64r3/valid.s
@@ -286,6 +286,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -308,12 +310,45 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
wsbh $k1,$9
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64r5/abi-bad.s b/test/MC/Mips/mips64r5/abi-bad.s
index c6bb29a8b20d..b3d0588f9861 100644
--- a/test/MC/Mips/mips64r5/abi-bad.s
+++ b/test/MC/Mips/mips64r5/abi-bad.s
@@ -1,4 +1,4 @@
-# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r5 2>&1 | FileCheck %s
+# RUN: not llvm-mc %s -triple mips-unknown-linux -mcpu=mips64r5 -target-abi n64 2>&1 | FileCheck %s
.set fp=xx
# CHECK: error: '.set fp=xx' requires the O32 ABI
# CHECK: .set fp=xx
diff --git a/test/MC/Mips/mips64r5/abiflags.s b/test/MC/Mips/mips64r5/abiflags.s
index 43a5fe618bcc..7972f5837de2 100644
--- a/test/MC/Mips/mips64r5/abiflags.s
+++ b/test/MC/Mips/mips64r5/abiflags.s
@@ -1,7 +1,7 @@
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r5 | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r5 -target-abi n64 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
#
-# RUN: llvm-mc %s -arch=mips -mcpu=mips64r5 -filetype=obj -o - | \
+# RUN: llvm-mc %s -arch=mips -mcpu=mips64r5 -target-abi n64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
# RUN: FileCheck %s -check-prefix=CHECK-OBJ
diff --git a/test/MC/Mips/mips64r5/invalid.s b/test/MC/Mips/mips64r5/invalid.s
index 3bdea15f5236..d13c52bd593d 100644
--- a/test/MC/Mips/mips64r5/invalid.s
+++ b/test/MC/Mips/mips64r5/invalid.s
@@ -14,3 +14,54 @@
jalr.hb $31, $31 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: source and destination must be different
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ dmtc0 $4, $3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ sd $32, 65536($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lb $32, 8($5) # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc2 $1, -32769($12) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ ldc2 $1, 32768($12) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ ldc2 $1, 1023($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc2 $1, -32769($16) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $1, 32768($16) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ sdc2 $1, 8($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc2 $1, -32769($4) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $1, 32768($4) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $1, 16($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc2 $1, -32769($17) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $1, 32768($17) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ swc2 $1, 777($32) # CHECK: :[[@LINE]]:18: error: expected memory with 16-bit signed offset
+ lwc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc2 $11, -32769($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc2 $11, 32768($12) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
diff --git a/test/MC/Mips/mips64r5/valid.s b/test/MC/Mips/mips64r5/valid.s
index 574dc60163db..39782f34f3ac 100644
--- a/test/MC/Mips/mips64r5/valid.s
+++ b/test/MC/Mips/mips64r5/valid.s
@@ -287,6 +287,8 @@ a:
swxc1 $f19,$12($k0)
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
teqi $s5,-17504
@@ -309,12 +311,45 @@ a:
tne $6,$17 # CHECK: tne $6, $17 # encoding: [0x00,0xd1,0x00,0x36]
tne $7,$8,885 # CHECK: tne $7, $8, 885 # encoding: [0x00,0xe8,0xdd,0x76]
tnei $12,-29647
- trunc.l.d $f23,$f23
- trunc.l.s $f28,$f31
- trunc.w.d $f22,$f15
- trunc.w.s $f28,$f30
+ trunc.l.d $f23,$f23 # CHECK: trunc.l.d $f23, $f23 # encoding: [0x46,0x20,0xbd,0xc9]
+ trunc.l.s $f28,$f31 # CHECK: trunc.l.s $f28, $f31 # encoding: [0x46,0x00,0xff,0x09]
+ trunc.w.d $f22,$f15 # CHECK: trunc.w.d $f22, $f15 # encoding: [0x46,0x20,0x7d,0x8d]
+ trunc.w.s $f28,$f30 # CHECK: trunc.w.s $f28, $f30 # encoding: [0x46,0x00,0xf7,0x0d]
+ trunc.w.d $f4,$f6,$4 # CHECK: trunc.w.d $f4, $f6 # encoding: [0x46,0x20,0x31,0x0d]
+ trunc.w.s $f4,$f6,$4 # CHECK: trunc.w.s $f4, $f6 # encoding: [0x46,0x00,0x31,0x0d]
xor $s2,$a0,$s8
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
wsbh $k1,$9
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwl $3, %lo(g_8)($2) # CHECK: encoding: [0x88,0x43,A,A]
+ lwr $3, %lo(g_8)($2) # CHECK: encoding: [0x98,0x43,A,A]
+ swl $3, %lo(g_8)($2) # CHECK: encoding: [0xa8,0x43,A,A]
+ swr $3, %lo(g_8)($2) # CHECK: encoding: [0xb8,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ ldl $3, %lo(g_8)($2) # CHECK: encoding: [0x68,0x43,A,A]
+ ldr $3, %lo(g_8)($2) # CHECK: encoding: [0x6c,0x43,A,A]
+ sdl $3, %lo(g_8)($2) # CHECK: encoding: [0xb0,0x43,A,A]
+ sdr $3, %lo(g_8)($2) # CHECK: encoding: [0xb4,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s b/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s
index 06d95fd8665b..816cc1f8c6cd 100644
--- a/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s
+++ b/test/MC/Mips/mips64r6/invalid-mips1-wrong-error.s
@@ -11,7 +11,7 @@
lwr $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swl $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swr $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s b/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s
index a111726fca38..bf2d5fa988b6 100644
--- a/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s
+++ b/test/MC/Mips/mips64r6/invalid-mips3-wrong-error.s
@@ -17,7 +17,7 @@
lwr $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swl $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
swr $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
- swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lwle $s4,-4231($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lwre $zero,-19147($gp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swle $15,13694($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ swre $s1,-26590($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
diff --git a/test/MC/Mips/mips64r6/invalid.s b/test/MC/Mips/mips64r6/invalid.s
index cba20b15eea4..acdd247868f7 100644
--- a/test/MC/Mips/mips64r6/invalid.s
+++ b/test/MC/Mips/mips64r6/invalid.s
@@ -20,7 +20,23 @@ local_label:
break 7, -1 # CHECK: :[[@LINE]]:18: error: expected 10-bit unsigned immediate
break 7, 1024 # CHECK: :[[@LINE]]:18: error: expected 10-bit unsigned immediate
break 1024, 1024 # CHECK: :[[@LINE]]:15: error: expected 10-bit unsigned immediate
- // FIXME: Following tests are temporarely disabled, until "PredicateControl not in hierarchy" problem is resolved
+ lh $33, 8($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhe $34, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhu $35, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lhue $36, 8($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lh $2, 8($34) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, 8($33) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, 8($35) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, 8($37) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lh $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lh $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhe $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhe $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhu $4, -65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhu $4, 65536($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lhue $4, -512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ lhue $4, 512($2) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset
+ // FIXME: Following tests are temporarily disabled, until "PredicateControl not in hierarchy" problem is resolved
bltl $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bltul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
blel $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
@@ -29,6 +45,20 @@ local_label:
bgeul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bgtl $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
bgtul $7, $8, local_label # -CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ beqc $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bnec $0, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgec $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bltc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bgeuc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bltuc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ beqc $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ bnec $2, $2, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: registers must be different
+ blezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bgtzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bltzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ beqzc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
+ bnezc $0, local_label # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand ($zero) for instruction
cache -1, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
cache 32, 255($7) # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate
dalign $4, $2, $3, -1 # CHECK: :[[@LINE]]:29: error: expected 3-bit unsigned immediate
@@ -43,3 +73,59 @@ local_label:
lsa $2, $3, $4, 5 # CHECK: :[[@LINE]]:29: error: expected immediate in range 1 .. 4
pref -1, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
pref 32, 255($7) # CHECK: :[[@LINE]]:14: error: expected 5-bit unsigned immediate
+ dmtc0 $4, $3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ ld $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ld $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ ld $32, 65536($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lld $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lld $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sd $2, -65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ lld $32, 4096($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ sd $2, 65536($4) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 16-bit signed offset
+ sd $32, 65536($32) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ dsrl $2, $4, 64 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsrl $2, $4, -2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 6-bit unsigned immediate
+ dsrl $32, $32, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ dsrl32 $2, $4, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected 5-bit unsigned immediate
+ dsrl32 $32, $32, 32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ dsrlv $2, $4, 2 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ dsrlv $32, $32, $32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction
+ lb $32, 8($5) # CHECK: :[[@LINE]]:12: error: invalid operand for instruction
+ lb $4, -32769($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 32768($5) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lb $4, 8($32) # CHECK: :[[@LINE]]:16: error: expected memory with 16-bit signed offset
+ lbu $32, 8($5) # CHECK: :[[@LINE]]:13: error: invalid operand for instruction
+ lbu $4, -32769($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 32768($5) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ lbu $4, 8($32) # CHECK: :[[@LINE]]:17: error: expected memory with 16-bit signed offset
+ ldc1 $f32, 300($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc1 $f7, 300($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f32, 64($10) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc1 $f7, -32769($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 32768($10) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ sdc1 $f7, 64($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f32, 32($5) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc1 $f2, -32769($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32768($5) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ lwc1 $f2, 32($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f32, 369($13) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc1 $f6, -32769($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 32768($13) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ swc1 $f6, 369($32) # CHECK: :[[@LINE]]:19: error: expected memory with 16-bit signed offset
+ ldc2 $32, 1023($12) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ ldc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ ldc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sdc2 $32, 8($16) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ sdc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ sdc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwc2 $32, 16($4) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ lwc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ lwc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $32, 777($17) # CHECK: :[[@LINE]]:14: error: invalid operand for instruction
+ swc2 $11, -1025($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
+ swc2 $11, 1024($12) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: instruction requires a CPU feature not currently enabled
diff --git a/test/MC/Mips/mips64r6/relocations.s b/test/MC/Mips/mips64r6/relocations.s
index 8374cb8eaa58..d5a65cd94731 100644
--- a/test/MC/Mips/mips64r6/relocations.s
+++ b/test/MC/Mips/mips64r6/relocations.s
@@ -28,11 +28,11 @@
# CHECK-FIXUP: value: bar-4, kind: fixup_MIPS_PC26_S2
# CHECK-FIXUP: aluipc $2, %pcrel_hi(bar) # encoding: [0xec,0x5f,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: bar@PCREL_HI16,
+# CHECK-FIXUP: value: %pcrel_hi(bar),
# CHECK-FIXUP: kind: fixup_MIPS_PCHI16
# CHECK-FIXUP: addiu $2, $2, %pcrel_lo(bar) # encoding: [0x24,0x42,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
-# CHECK-FIXUP: value: bar@PCREL_LO16,
+# CHECK-FIXUP: value: %pcrel_lo(bar),
# CHECK-FIXUP: kind: fixup_MIPS_PCLO16
# CHECK-FIXUP: ldpc $2, bar # encoding: [0xec,0b010110AA,A,A]
# CHECK-FIXUP: # fixup A - offset: 0,
diff --git a/test/MC/Mips/mips64r6/valid-xfail.s b/test/MC/Mips/mips64r6/valid-xfail.s
deleted file mode 100644
index a75122571d93..000000000000
--- a/test/MC/Mips/mips64r6/valid-xfail.s
+++ /dev/null
@@ -1,19 +0,0 @@
-# Instructions that should be valid but currently fail for known reasons (e.g.
-# they aren't implemented yet).
-# This test is set up to XPASS if any instruction generates an encoding.
-#
-# RUN: not llvm-mc %s -triple=mips64-unknown-linux -show-encoding -mcpu=mips64r6 | not FileCheck %s
-# CHECK-NOT: encoding
-# XFAIL: *
-
- .set noat
- bovc $0, $2, 4 # TODO: bovc $0, $2, 4 # encoding: [0x20,0x40,0x00,0x01]
- bovc $2, $4, 4 # TODO: bovc $2, $4, 4 # encoding: [0x20,0x82,0x00,0x01]
- bnvc $0, $2, 4 # TODO: bnvc $0, $2, 4 # encoding: [0x60,0x40,0x00,0x01]
- bnvc $2, $4, 4 # TODO: bnvc $2, $4, 4 # encoding: [0x60,0x82,0x00,0x01]
- beqc $0, $6, 256 # TODO: beqc $6, $zero, 256 # encoding: [0x20,0xc0,0x00,0x40]
- beqc $5, $0, 256 # TODO: beqc $5, $zero, 256 # encoding: [0x20,0xa0,0x00,0x40]
- beqc $6, $5, 256 # TODO: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
- bnec $0, $6, 256 # TODO: bnec $6, $zero, 256 # encoding: [0x60,0xc0,0x00,0x40]
- bnec $5, $0, 256 # TODO: bnec $5, $zero, 256 # encoding: [0x60,0xa0,0x00,0x40]
- bnec $6, $5, 256 # TODO: bnec $5, $6, 256 # encoding: [0x60,0xa6,0x00,0x40]
diff --git a/test/MC/Mips/mips64r6/valid.s b/test/MC/Mips/mips64r6/valid.s
index cbe3e8232dce..bee475b948d0 100644
--- a/test/MC/Mips/mips64r6/valid.s
+++ b/test/MC/Mips/mips64r6/valid.s
@@ -33,12 +33,10 @@ a:
bc2eqz $31,8 # CHECK: bc2eqz $31, 8 # encoding: [0x49,0x3f,0x00,0x02]
bc2nez $0,8 # CHECK: bc2nez $0, 8 # encoding: [0x49,0xa0,0x00,0x02]
bc2nez $31,8 # CHECK: bc2nez $31, 8 # encoding: [0x49,0xbf,0x00,0x02]
- # beqc requires rs < rt && rs != 0 but we also accept when this is not true. See also bovc
- # FIXME: Testcases are in valid-xfail.s at the moment
- beqc $5, $6, 256 # CHECK: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
+ # beqc requires rs < rt && rs != 0 but we accept this and fix it. See also bovc.
+ beqc $5, $6, 256 # CHECK: beqc $5, $6, 256 # encoding: [0x20,0xa6,0x00,0x40]
+ beqc $6, $5, 256 # CHECK: beqc $6, $5, 256 # encoding: [0x20,0xa6,0x00,0x40]
beqzalc $2, 1332 # CHECK: beqzalc $2, 1332 # encoding: [0x20,0x02,0x01,0x4d]
- # bnec requires rs < rt && rs != 0 but we accept when this is not true. See also bnvc
- # FIXME: Testcases are in valid-xfail.s at the moment
beqzc $5, 72256 # CHECK: beqzc $5, 72256 # encoding: [0xd8,0xa0,0x46,0x90]
bgec $2, $3, 256 # CHECK: bgec $2, $3, 256 # encoding: [0x58,0x43,0x00,0x40]
bgeuc $2, $3, 256 # CHECK: bgeuc $2, $3, 256 # encoding: [0x18,0x43,0x00,0x40]
@@ -53,17 +51,19 @@ a:
bltuc $5, $6, 256 # CHECK: bltuc $5, $6, 256 # encoding: [0x1c,0xa6,0x00,0x40]
bltzalc $2, 1332 # CHECK: bltzalc $2, 1332 # encoding: [0x1c,0x42,0x01,0x4d]
bltzc $5, 256 # CHECK: bltzc $5, 256 # encoding: [0x5c,0xa5,0x00,0x40]
+ # bnec requires rs < rt && rs != 0 but we accept this and fix it. See also bnvc.
bnec $5, $6, 256 # CHECK: bnec $5, $6, 256 # encoding: [0x60,0xa6,0x00,0x40]
+ bnec $6, $5, 256 # CHECK: bnec $6, $5, 256 # encoding: [0x60,0xa6,0x00,0x40]
bnezalc $2, 1332 # CHECK: bnezalc $2, 1332 # encoding: [0x60,0x02,0x01,0x4d]
bnezc $5, 72256 # CHECK: bnezc $5, 72256 # encoding: [0xf8,0xa0,0x46,0x90]
- # bnvc requires that rs >= rt but we accept both. See also bnec
+ # bnvc requires that rs >= rt but we accept both and fix this. See also bnec.
bnvc $0, $0, 4 # CHECK: bnvc $zero, $zero, 4 # encoding: [0x60,0x00,0x00,0x01]
bnvc $2, $0, 4 # CHECK: bnvc $2, $zero, 4 # encoding: [0x60,0x40,0x00,0x01]
- bnvc $4, $2, 4 # CHECK: bnvc $4, $2, 4 # encoding: [0x60,0x82,0x00,0x01]
- # bovc requires that rs >= rt but we accept both. See also beqc
+ bnvc $2, $4, 4 # CHECK: bnvc $2, $4, 4 # encoding: [0x60,0x82,0x00,0x01]
+ # bovc requires that rs >= rt but we accept both and fix this. See also beqc.
bovc $0, $0, 4 # CHECK: bovc $zero, $zero, 4 # encoding: [0x20,0x00,0x00,0x01]
bovc $2, $0, 4 # CHECK: bovc $2, $zero, 4 # encoding: [0x20,0x40,0x00,0x01]
- bovc $4, $2, 4 # CHECK: bovc $4, $2, 4 # encoding: [0x20,0x82,0x00,0x01]
+ bovc $2, $4, 4 # CHECK: bovc $2, $4, 4 # encoding: [0x20,0x82,0x00,0x01]
cache 1, 8($5) # CHECK: cache 1, 8($5) # encoding: [0x7c,0xa1,0x04,0x25]
class.d $f2, $f4 # CHECK: class.d $f2, $f4 # encoding: [0x46,0x20,0x20,0x9b]
class.s $f2, $f4 # CHECK: class.s $f2, $f4 # encoding: [0x46,0x00,0x20,0x9b]
@@ -105,8 +105,8 @@ a:
daddu $24,$2,18079 # CHECK: daddiu $24, $2, 18079 # encoding: [0x64,0x58,0x46,0x9f]
dahi $3,0x5678 # CHECK: dahi $3, 22136 # encoding: [0x04,0x66,0x56,0x78]
dalign $4,$2,$3,5 # CHECK: dalign $4, $2, $3, 5 # encoding: [0x7c,0x43,0x23,0x64]
- dati $3,0xabcd # CHECK: dati $3, 43981 # encoding: [0x04,0x7e,0xab,0xcd]
- daui $3,$2,0x1234 # CHECK: daui $3, $2, 4660 # encoding: [0x74,0x62,0x12,0x34]
+ dati $3,0xabcd # CHECK: dati $3, -21555 # encoding: [0x04,0x7e,0xab,0xcd]
+ daui $3,$2,0x1234 # CHECK: daui $3, $2, 4660 # encoding: [0x74,0x62,0x12,0x34]
dbitswap $4, $2 # CHECK: dbitswap $4, $2 # encoding: [0x7c,0x02,0x20,0x24]
dclo $s2,$a2 # CHECK: dclo $18, $6 # encoding: [0x00,0xc0,0x90,0x53]
dclz $s0,$25 # CHECK: dclz $16, $25 # encoding: [0x03,0x20,0x80,0x52]
@@ -140,8 +140,12 @@ a:
j 1328 # CHECK: j 1328 # encoding: [0x08,0x00,0x01,0x4c]
jal 21100 # CHECK: jal 21100 # encoding: [0x0c,0x00,0x14,0x9b]
jr.hb $4 # CHECK: jr.hb $4 # encoding: [0x00,0x80,0x04,0x09]
+ jr $ra # CHECK: jr $ra # encoding: [0x03,0xe0,0x00,0x09]
+ jr $25 # CHECK: jr $25 # encoding: [0x03,0x20,0x00,0x09]
+ jrc $27 # CHECK: jrc $27 # encoding: [0xd8,0x1b,0x00,0x00]
jalr.hb $4 # CHECK: jalr.hb $4 # encoding: [0x00,0x80,0xfc,0x09]
jalr.hb $4, $5 # CHECK: jalr.hb $4, $5 # encoding: [0x00,0xa0,0x24,0x09]
+ jalrc $25 # CHECK: jalrc $25 # encoding: [0xf8,0x19,0x00,0x00]
jialc $5, 256 # CHECK: jialc $5, 256 # encoding: [0xf8,0x05,0x01,0x00]
jic $5, 256 # CHECK: jic $5, 256 # encoding: [0xd8,0x05,0x01,0x00]
ldc2 $8, -701($at) # CHECK: ldc2 $8, -701($1) # encoding: [0x49,0xc8,0x0d,0x43]
@@ -204,6 +208,8 @@ a:
swc2 $25,304($s0) # CHECK: swc2 $25, 304($16) # encoding: [0x49,0x79,0x81,0x30]
sync # CHECK: sync # encoding: [0x00,0x00,0x00,0x0f]
sync 1 # CHECK: sync 1 # encoding: [0x00,0x00,0x00,0x4f]
+ syscall # CHECK: syscall # encoding: [0x00,0x00,0x00,0x0c]
+ syscall 256 # CHECK: syscall 256 # encoding: [0x00,0x00,0x40,0x0c]
teq $0,$3 # CHECK: teq $zero, $3 # encoding: [0x00,0x03,0x00,0x34]
teq $5,$7,620 # CHECK: teq $5, $7, 620 # encoding: [0x00,0xa7,0x9b,0x34]
tge $5,$19,340 # CHECK: tge $5, $19, 340 # encoding: [0x00,0xb3,0x55,0x30]
@@ -219,3 +225,25 @@ a:
xor $2, 4 # CHECK: xori $2, $2, 4 # encoding: [0x38,0x42,0x00,0x04]
1:
+
+ # Check that we accept traditional %relocation(symbol) offsets for stores
+ # and loads, not just a sign 16 bit offset.
+
+ lui $2, %hi(g_8) # CHECK: encoding: [0x3c,0x02,A,A]
+ lb $3, %lo(g_8)($2) # CHECK: encoding: [0x80,0x43,A,A]
+ lh $3, %lo(g_8)($2) # CHECK: encoding: [0x84,0x43,A,A]
+ lhu $3, %lo(g_8)($2) # CHECK: encoding: [0x94,0x43,A,A]
+ lw $3, %lo(g_8)($2) # CHECK: encoding: [0x8c,0x43,A,A]
+ sb $3, %lo(g_8)($2) # CHECK: encoding: [0xa0,0x43,A,A]
+ sh $3, %lo(g_8)($2) # CHECK: encoding: [0xa4,0x43,A,A]
+ sw $3, %lo(g_8)($2) # CHECK: encoding: [0xac,0x43,A,A]
+
+ lwc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xc4,0x40,A,A]
+ ldc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xd4,0x40,A,A]
+ swc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xe4,0x40,A,A]
+ sdc1 $f0, %lo(g_8)($2) # CHECK: encoding: [0xf4,0x40,A,A]
+ lwu $3, %lo(g_8)($2) # CHECK: encoding: [0x9c,0x43,A,A]
+ ld $3, %lo(g_8)($2) # CHECK: encoding: [0xdc,0x43,A,A]
+ sd $3, %lo(g_8)($2) # CHECK: encoding: [0xfc,0x43,A,A]
+ .type g_8,@object
+ .comm g_8,16,16
diff --git a/test/MC/Mips/mips64shift.ll b/test/MC/Mips/mips64shift.ll
index 99cac7b591fa..40a531b736da 100644
--- a/test/MC/Mips/mips64shift.ll
+++ b/test/MC/Mips/mips64shift.ll
@@ -1,8 +1,8 @@
; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 -disable-mips-delay-filler %s -o - \
-; RUN: | llvm-objdump -disassemble -triple mips64el - | FileCheck %s
+; RUN: | llvm-objdump -disassemble - | FileCheck %s
; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 %s -o - \
-; RUN: | llvm-objdump -disassemble -triple mips64el - | FileCheck %s
+; RUN: | llvm-objdump -disassemble - | FileCheck %s
define i64 @f3(i64 %a0) nounwind readnone {
entry:
diff --git a/test/MC/Mips/mips_abi_flags_xx.s b/test/MC/Mips/mips_abi_flags_xx.s
index 349b70d609ae..9c8754193e12 100644
--- a/test/MC/Mips/mips_abi_flags_xx.s
+++ b/test/MC/Mips/mips_abi_flags_xx.s
@@ -3,22 +3,26 @@
#
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations -mips-abi-flags - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ -check-prefix=CHECK-OBJ-R1
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ,CHECK-OBJ-32R1,CHECK-OBJ-MIPS
# RUN: llvm-mc /dev/null -arch=mips -mcpu=mips32 -mattr=fpxx -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations -mips-abi-flags - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ -check-prefix=CHECK-OBJ-R1
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ,CHECK-OBJ-32R1,CHECK-OBJ-MIPS
# RUN: llvm-mc /dev/null -arch=mips -mcpu=mips32r6 -mattr=fpxx -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations -mips-abi-flags - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ -check-prefix=CHECK-OBJ-R6
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ,CHECK-OBJ-32R6,CHECK-OBJ-MIPS
+
+# RUN: llvm-mc /dev/null -arch=mips -mcpu=octeon -target-abi n64 -filetype=obj -o - | \
+# RUN: llvm-readobj -sections -section-data -section-relocations -mips-abi-flags - | \
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ,CHECK-OBJ-64R2,CHECK-OBJ-OCTEON
# CHECK-ASM: .module fp=xx
# Checking if the Mips.abiflags were correctly emitted.
# CHECK-OBJ: Section {
# CHECK-OBJ: Index: 5
-# CHECK-OBJ-LABEL: Name: .MIPS.abiflags (12)
+# CHECK-OBJ-LABEL: Name: .MIPS.abiflags
# CHECK-OBJ: Type: SHT_MIPS_ABIFLAGS (0x7000002A)
# CHECK-OBJ: Flags [ (0x2)
# CHECK-OBJ: SHF_ALLOC (0x2)
@@ -34,14 +38,22 @@
# CHECK-OBJ-LABEL: }
# CHECK-OBJ: MIPS ABI Flags {
# CHECK-OBJ-NEXT: Version: 0
-# CHECK-OBJ-R1-NEXT: ISA: {{MIPS32$}}
-# CHECK-OBJ-R6-NEXT: ISA: MIPS32r6
-# CHECK-OBJ-NEXT: ISA Extension: None (0x0)
-# CHECK-OBJ-NEXT: ASEs [ (0x0)
-# CHECK-OBJ-NEXT: ]
-# CHECK-OBJ-NEXT: FP ABI: Hard float (32-bit CPU, Any FPU) (0x5)
-# CHECK-OBJ-NEXT: GPR size: 32
-# CHECK-OBJ-NEXT: CPR1 size: 32
+# CHECK-OBJ-32R1-NEXT: ISA: {{MIPS32$}}
+# CHECK-OBJ-32R6-NEXT: ISA: MIPS32r6
+# CHECK-OBJ-64R2-NEXT: ISA: MIPS64r2
+# CHECK-OBJ-MIPS-NEXT: ISA Extension: None (0x0)
+# CHECK-OBJ-OCTEON-NEXT: ISA Extension: Cavium Networks Octeon (0x5)
+# CHECK-OBJ-NEXT: ASEs [ (0x0)
+# CHECK-OBJ-NEXT: ]
+# CHECK-OBJ-32R1-NEXT: FP ABI: Hard float (32-bit CPU, Any FPU) (0x5)
+# CHECK-OBJ-32R6-NEXT: FP ABI: Hard float (32-bit CPU, Any FPU) (0x5)
+# CHECK-OBJ-64R2-NEXT: FP ABI: Hard float (double precision) (0x1)
+# CHECK-OBJ-32R1-NEXT: GPR size: 32
+# CHECK-OBJ-32R6-NEXT: GPR size: 32
+# CHECK-OBJ-64R2-NEXT: GPR size: 64
+# CHECK-OBJ-32R1-NEXT: CPR1 size: 32
+# CHECK-OBJ-32R6-NEXT: CPR1 size: 32
+# CHECK-OBJ-64R2-NEXT: CPR1 size: 64
# CHECK-OBJ-NEXT: CPR2 size: 0
# CHECK-OBJ-NEXT: Flags 1 [ (0x1)
# CHECK-OBJ-NEXT: ODDSPREG (0x1)
diff --git a/test/MC/Mips/mips_directives.s b/test/MC/Mips/mips_directives.s
index 2ea37822f764..b421802a9c2e 100644
--- a/test/MC/Mips/mips_directives.s
+++ b/test/MC/Mips/mips_directives.s
@@ -54,7 +54,7 @@ $BB0_4:
.set f6,$f6
# CHECK: abs.s $f6, $f7 # encoding: [0x46,0x00,0x39,0x85]
# CHECK: lui $1, %hi($tmp7) # encoding: [0x3c,0x01,A,A]
-# CHECK: # fixup A - offset: 0, value: ($tmp7)@ABS_HI, kind: fixup_Mips_HI16
+# CHECK: # fixup A - offset: 0, value: %hi($tmp7), kind: fixup_Mips_HI16
abs.s f6,FPU_MASK
lui $1, %hi($tmp7)
diff --git a/test/MC/Mips/mips_gprel16.s b/test/MC/Mips/mips_gprel16.s
index 9dd3fa3281c2..a6e09c6c7b0b 100644
--- a/test/MC/Mips/mips_gprel16.s
+++ b/test/MC/Mips/mips_gprel16.s
@@ -3,12 +3,10 @@
// addend is stored in the instruction immediate
// field.
-// RUN: llvm-mc -mcpu=mips32r2 -triple=mipsel-pc-linux -filetype=obj -relocation-model=static %s -o - \
-// RUN: | llvm-objdump -disassemble -mattr +mips32r2 - \
-// RUN: | FileCheck %s
-// RUN: llvm-mc -mcpu=mips32r2 -triple=mips-pc-linux -filetype=obj -relocation-model=static %s -o - \
-// RUN: | llvm-objdump -disassemble -mattr +mips32r2 - \
-// RUN: | FileCheck %s
+// RUN: llvm-mc -mcpu=mips32r2 -triple=mipsel-pc-linux -filetype=obj %s -o - \
+// RUN: | llvm-objdump -disassemble - | FileCheck %s
+// RUN: llvm-mc -mcpu=mips32r2 -triple=mips-pc-linux -filetype=obj %s -o - \
+// RUN: | llvm-objdump -disassemble - | FileCheck %s
.text
.abicalls
diff --git a/test/MC/Mips/msa/invalid.s b/test/MC/Mips/msa/invalid.s
index 724d9c193e0a..78b1949d0ae5 100644
--- a/test/MC/Mips/msa/invalid.s
+++ b/test/MC/Mips/msa/invalid.s
@@ -5,6 +5,124 @@
# RUN: FileCheck %s < %t1
.set noat
+ addvi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.b $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.h $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.h $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.w $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.w $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.d $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ addvi.d $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ andi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ andi.b $w1, $w2, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ bclri.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bclri.b $w1, $w2, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bclri.h $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bclri.h $w1, $w2, 16 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bclri.w $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bclri.w $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bclri.d $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ bclri.d $w1, $w2, 64 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ binsli.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ binsli.b $w1, $w2, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ binsli.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ binsli.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ binsli.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ binsli.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ binsli.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ binsli.d $w1, $w2, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ binsri.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ binsri.b $w1, $w2, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ binsri.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ binsri.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ binsri.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ binsri.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ binsri.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ binsri.d $w1, $w2, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ bmnzi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ bmnzi.b $w1, $w2, 256 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ bmzi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ bmzi.b $w1, $w2, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ bnegi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bnegi.b $w1, $w2, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bnegi.h $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bnegi.h $w1, $w2, 16 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bnegi.w $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bnegi.w $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bnegi.d $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ bnegi.d $w1, $w2, 64 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ bseli.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ bseli.b $w1, $w2, 256 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ bseti.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bseti.b $w1, $w2, 8 # CHECK: :[[@LINE]]:23: error: expected 3-bit unsigned immediate
+ bseti.h $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bseti.h $w1, $w2, 16 # CHECK: :[[@LINE]]:23: error: expected 4-bit unsigned immediate
+ bseti.w $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bseti.w $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ bseti.d $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ bseti.d $w1, $w2, 64 # CHECK: :[[@LINE]]:23: error: expected 6-bit unsigned immediate
+ ceqi.b $w1, $w2, -17 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.b $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.h $w1, $w2, -17 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.h $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.w $w1, $w2, -17 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.w $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.d $w1, $w2, -17 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ ceqi.d $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 5-bit signed immediate
+ clei_s.b $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.b $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.h $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.w $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.w $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.d $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_s.d $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clei_u.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.b $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.h $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clei_u.d $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_s.b $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.b $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.h $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.w $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.w $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.d $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_s.d $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ clti_u.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.b $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.h $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ clti_u.d $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ copy_s.b $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ copy_s.b $2, $w9[16] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ copy_s.h $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ copy_s.h $2, $w9[8] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ copy_s.w $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 2-bit unsigned immediate
+ copy_s.w $2, $w9[4] # CHECK: :[[@LINE]]:22: error: expected 2-bit unsigned immediate
+ copy_s.d $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
+ copy_s.d $2, $w9[2] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
+ copy_u.b $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ copy_u.b $2, $w9[16] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ copy_u.h $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ copy_u.h $2, $w9[8] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ copy_u.w $2, $w9[-1] # CHECK: :[[@LINE]]:22: error: expected 2-bit unsigned immediate
+ copy_u.w $2, $w9[4] # CHECK: :[[@LINE]]:22: error: expected 2-bit unsigned immediate
+ insert.b $w9[-1], $2 # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
+ insert.b $w9[16], $2 # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
+ insert.h $w9[-1], $2 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ insert.h $w9[8], $2 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
+ insert.w $w9[-1], $2 # CHECK: :[[@LINE]]:18: error: expected 2-bit unsigned immediate
+ insert.w $w9[4], $2 # CHECK: :[[@LINE]]:18: error: expected 2-bit unsigned immediate
+ insert.d $w9[-1], $2 # CHECK: :[[@LINE]]:18: error: expected 1-bit unsigned immediate
+ insert.d $w9[2], $2 # CHECK: :[[@LINE]]:18: error: expected 1-bit unsigned immediate
insve.b $w25[-1], $w9[0] # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
insve.b $w25[16], $w9[0] # CHECK: :[[@LINE]]:18: error: expected 4-bit unsigned immediate
insve.h $w24[-1], $w2[0] # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate
@@ -13,55 +131,157 @@
insve.w $w0[4], $w13[0] # CHECK: :[[@LINE]]:17: error: expected 2-bit unsigned immediate
insve.d $w3[-1], $w18[0] # CHECK: :[[@LINE]]:17: error: expected 1-bit unsigned immediate
insve.d $w3[2], $w18[0] # CHECK: :[[@LINE]]:17: error: expected 1-bit unsigned immediate
- insve.b $w25[3], $w9[1] # CHECK: :[[@LINE]]:26: error: expected '0'
- insve.h $w24[2], $w2[1] # CHECK: :[[@LINE]]:26: error: expected '0'
- insve.w $w0[2], $w13[1] # CHECK: :[[@LINE]]:26: error: expected '0'
- insve.d $w3[0], $w18[1] # CHECK: :[[@LINE]]:26: error: expected '0'
- lsa $2, $3, $4, 0 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
- lsa $2, $3, $4, 5 # CHECK: :[[@LINE]]:25: error: expected immediate in range 1 .. 4
- sat_s.b $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
- sat_s.b $w31, $w31, 8 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
- sat_s.h $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
- sat_s.h $w31, $w31, 16 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
- sat_s.w $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
- sat_s.w $w31, $w31, 32 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
- sat_s.d $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
- sat_s.d $w31, $w31, 64 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
- sat_u.b $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
- sat_u.b $w31, $w31, 8 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
- sat_u.h $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
- sat_u.h $w31, $w31, 16 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
- sat_u.w $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
- sat_u.w $w31, $w31, 32 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
- sat_u.d $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
- sat_u.d $w31, $w31, 64 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
- shf.b $w19, $w30, -1 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
- shf.b $w19, $w30, 256 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
- shf.h $w17, $w8, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
- shf.h $w17, $w8, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
- shf.w $w14, $w3, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
- shf.w $w14, $w3, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
- sldi.b $w0, $w29[-1] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
- sldi.b $w0, $w29[16] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
- sldi.d $w4, $w12[-1] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
- sldi.d $w4, $w12[2] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
- sldi.h $w8, $w17[-1] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
- sldi.h $w8, $w17[8] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
- sldi.w $w20, $w27[-1] # CHECK: :[[@LINE]]:23: error: expected 2-bit unsigned immediate
- sldi.w $w20, $w27[4] # CHECK: :[[@LINE]]:23: error: expected 2-bit unsigned immediate
- srari.b $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
- srari.b $w5, $w25, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
- srari.h $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
- srari.h $w5, $w25, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
- srari.w $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
- srari.w $w5, $w25, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
- srari.d $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
- srari.d $w5, $w25, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
- srlri.b $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
- srlri.b $w18, $w3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
- srlri.h $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
- srlri.h $w18, $w3, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
- srlri.w $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
- srlri.w $w18, $w3, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
- srlri.d $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
- srlri.d $w18, $w3, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ insve.b $w25[3], $w9[1] # CHECK: :[[@LINE]]:26: error: expected '0'
+ insve.h $w24[2], $w2[1] # CHECK: :[[@LINE]]:26: error: expected '0'
+ insve.w $w0[2], $w13[1] # CHECK: :[[@LINE]]:26: error: expected '0'
+ insve.d $w3[0], $w18[1] # CHECK: :[[@LINE]]:26: error: expected '0'
+ ld.b $w0, -513($2) # CHECK: :[[@LINE]]:15: error: expected memory with 10-bit signed offset
+ ld.b $w0, 512($2) # CHECK: :[[@LINE]]:15: error: expected memory with 10-bit signed offset
+ ld.h $w0, -1025($2) # CHECK: :[[@LINE]]:15: error: expected memory with 11-bit signed offset and multiple of 2
+ ld.h $w0, 1024($2) # CHECK: :[[@LINE]]:15: error: expected memory with 11-bit signed offset and multiple of 2
+ ld.w $w0, -2049($2) # CHECK: :[[@LINE]]:15: error: expected memory with 12-bit signed offset and multiple of 4
+ ld.w $w0, 2048($2) # CHECK: :[[@LINE]]:15: error: expected memory with 12-bit signed offset and multiple of 4
+ ld.d $w0, -4097($2) # CHECK: :[[@LINE]]:15: error: expected memory with 13-bit signed offset and multiple of 8
+ ld.d $w0, 4096($2) # CHECK: :[[@LINE]]:15: error: expected memory with 13-bit signed offset and multiple of 8
+ ldi.b $w1, -1025 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.b $w1, 1024 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.h $w1, -1025 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.h $w1, 1024 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.w $w1, -1025 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.w $w1, 1024 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.d $w1, -1025 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ ldi.d $w1, 1024 # CHECK: :[[@LINE]]:16: error: expected 10-bit signed immediate
+ lsa $2, $3, $4, 0 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
+ lsa $2, $3, $4, 5 # CHECK: :[[@LINE]]:21: error: expected immediate in range 1 .. 4
+ maxi_s.b $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.b $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.h $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.w $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.w $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.d $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_s.d $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ maxi_u.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.b $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.h $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ maxi_u.d $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_s.b $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.b $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.h $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.h $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.w $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.w $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.d $w1, $w2, -17 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_s.d $w1, $w2, 16 # CHECK: :[[@LINE]]:24: error: expected 5-bit signed immediate
+ mini_u.b $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.b $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.h $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.h $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.w $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.w $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.d $w1, $w2, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ mini_u.d $w1, $w2, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ nori.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ nori.b $w1, $w2, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ ori.b $w1, $w2, -1 # CHECK: :[[@LINE]]:21: error: expected 8-bit unsigned immediate
+ ori.b $w1, $w2, 256 # CHECK: :[[@LINE]]:21: error: expected 8-bit unsigned immediate
+ sat_s.b $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
+ sat_s.b $w31, $w31, 8 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
+ sat_s.h $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
+ sat_s.h $w31, $w31, 16 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
+ sat_s.w $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
+ sat_s.w $w31, $w31, 32 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
+ sat_s.d $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
+ sat_s.d $w31, $w31, 64 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
+ sat_u.b $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
+ sat_u.b $w31, $w31, 8 # CHECK: :[[@LINE]]:25: error: expected 3-bit unsigned immediate
+ sat_u.h $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
+ sat_u.h $w31, $w31, 16 # CHECK: :[[@LINE]]:25: error: expected 4-bit unsigned immediate
+ sat_u.w $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
+ sat_u.w $w31, $w31, 32 # CHECK: :[[@LINE]]:25: error: expected 5-bit unsigned immediate
+ sat_u.d $w31, $w31, -1 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
+ sat_u.d $w31, $w31, 64 # CHECK: :[[@LINE]]:25: error: expected 6-bit unsigned immediate
+ shf.b $w19, $w30, -1 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ shf.b $w19, $w30, 256 # CHECK: :[[@LINE]]:23: error: expected 8-bit unsigned immediate
+ shf.h $w17, $w8, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ shf.h $w17, $w8, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ shf.w $w14, $w3, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ shf.w $w14, $w3, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ sldi.b $w0, $w29[-1] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ sldi.b $w0, $w29[16] # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ sldi.h $w8, $w17[-1] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ sldi.h $w8, $w17[8] # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ sldi.w $w20, $w27[-1] # CHECK: :[[@LINE]]:23: error: expected 2-bit unsigned immediate
+ sldi.w $w20, $w27[4] # CHECK: :[[@LINE]]:23: error: expected 2-bit unsigned immediate
+ sldi.d $w4, $w12[-1] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
+ sldi.d $w4, $w12[2] # CHECK: :[[@LINE]]:22: error: expected 1-bit unsigned immediate
+ slli.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ slli.b $w1, $w2, 8 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ slli.h $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ slli.h $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ slli.w $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ slli.w $w1, $w2, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ slli.d $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ slli.d $w1, $w2, 64 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ splati.b $w0, $w29[-1] # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ splati.b $w0, $w29[16] # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ splati.h $w8, $w17[-1] # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ splati.h $w8, $w17[8] # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ splati.w $w2, $w27[-1] # CHECK: :[[@LINE]]:24: error: expected 2-bit unsigned immediate
+ splati.w $w2, $w27[4] # CHECK: :[[@LINE]]:24: error: expected 2-bit unsigned immediate
+ splati.d $w4, $w12[-1] # CHECK: :[[@LINE]]:24: error: expected 1-bit unsigned immediate
+ splati.d $w4, $w12[2] # CHECK: :[[@LINE]]:24: error: expected 1-bit unsigned immediate
+ srai.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ srai.b $w1, $w2, 8 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ srai.h $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ srai.h $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ srai.w $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ srai.w $w1, $w2, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ srai.d $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ srai.d $w1, $w2, 64 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ srari.b $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ srari.b $w5, $w25, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ srari.h $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ srari.h $w5, $w25, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ srari.w $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ srari.w $w5, $w25, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ srari.d $w5, $w25, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ srari.d $w5, $w25, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ srli.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ srli.b $w1, $w2, 8 # CHECK: :[[@LINE]]:22: error: expected 3-bit unsigned immediate
+ srli.h $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ srli.h $w1, $w2, 16 # CHECK: :[[@LINE]]:22: error: expected 4-bit unsigned immediate
+ srli.w $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ srli.w $w1, $w2, 32 # CHECK: :[[@LINE]]:22: error: expected 5-bit unsigned immediate
+ srli.d $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ srli.d $w1, $w2, 64 # CHECK: :[[@LINE]]:22: error: expected 6-bit unsigned immediate
+ srlri.b $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ srlri.b $w18, $w3, 8 # CHECK: :[[@LINE]]:24: error: expected 3-bit unsigned immediate
+ srlri.h $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ srlri.h $w18, $w3, 16 # CHECK: :[[@LINE]]:24: error: expected 4-bit unsigned immediate
+ srlri.w $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ srlri.w $w18, $w3, 32 # CHECK: :[[@LINE]]:24: error: expected 5-bit unsigned immediate
+ srlri.d $w18, $w3, -1 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ srlri.d $w18, $w3, 64 # CHECK: :[[@LINE]]:24: error: expected 6-bit unsigned immediate
+ st.b $w0, -513($2) # CHECK: :[[@LINE]]:15: error: expected memory with 10-bit signed offset
+ st.b $w0, 512($2) # CHECK: :[[@LINE]]:15: error: expected memory with 10-bit signed offset
+ st.h $w0, -1025($2) # CHECK: :[[@LINE]]:15: error: expected memory with 11-bit signed offset and multiple of 2
+ st.h $w0, 1024($2) # CHECK: :[[@LINE]]:15: error: expected memory with 11-bit signed offset and multiple of 2
+ st.w $w0, -2049($2) # CHECK: :[[@LINE]]:15: error: expected memory with 12-bit signed offset and multiple of 4
+ st.w $w0, 2048($2) # CHECK: :[[@LINE]]:15: error: expected memory with 12-bit signed offset and multiple of 4
+ st.d $w0, -4097($2) # CHECK: :[[@LINE]]:15: error: expected memory with 13-bit signed offset and multiple of 8
+ st.d $w0, 4096($2) # CHECK: :[[@LINE]]:15: error: expected memory with 13-bit signed offset and multiple of 8
+ subvi.b $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.b $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.h $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.h $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.w $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.w $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.d $w1, $w2, -1 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ subvi.d $w1, $w2, 32 # CHECK: :[[@LINE]]:23: error: expected 5-bit unsigned immediate
+ xori.b $w1, $w2, -1 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
+ xori.b $w1, $w2, 256 # CHECK: :[[@LINE]]:22: error: expected 8-bit unsigned immediate
diff --git a/test/MC/Mips/msa/test_mi10.s b/test/MC/Mips/msa/test_mi10.s
index 7269960531ca..f20ffa29372b 100644
--- a/test/MC/Mips/msa/test_mi10.s
+++ b/test/MC/Mips/msa/test_mi10.s
@@ -1,55 +1,28 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -mattr=+msa -show-encoding | FileCheck %s
#
-# CHECK: ld.b $w0, -512($1) # encoding: [0x7a,0x00,0x08,0x20]
-# CHECK: ld.b $w1, 0($2) # encoding: [0x78,0x00,0x10,0x60]
-# CHECK: ld.b $w2, 511($3) # encoding: [0x79,0xff,0x18,0xa0]
+ ld.b $w0, -512($1) # CHECK: ld.b $w0, -512($1) # encoding: [0x7a,0x00,0x08,0x20]
+ ld.b $w1, 0($2) # CHECK: ld.b $w1, 0($2) # encoding: [0x78,0x00,0x10,0x60]
+ ld.b $w2, 511($3) # CHECK: ld.b $w2, 511($3) # encoding: [0x79,0xff,0x18,0xa0]
-# CHECK: ld.h $w3, -1024($4) # encoding: [0x7a,0x00,0x20,0xe1]
-# CHECK: ld.h $w4, -512($5) # encoding: [0x7b,0x00,0x29,0x21]
-# CHECK: ld.h $w5, 0($6) # encoding: [0x78,0x00,0x31,0x61]
-# CHECK: ld.h $w6, 512($7) # encoding: [0x79,0x00,0x39,0xa1]
-# CHECK: ld.h $w7, 1022($8) # encoding: [0x79,0xff,0x41,0xe1]
+ ld.h $w3, -1024($4) # CHECK: ld.h $w3, -1024($4) # encoding: [0x7a,0x00,0x20,0xe1]
+ ld.h $w4, -512($5) # CHECK: ld.h $w4, -512($5) # encoding: [0x7b,0x00,0x29,0x21]
+ ld.h $w5, 0($6) # CHECK: ld.h $w5, 0($6) # encoding: [0x78,0x00,0x31,0x61]
+ ld.h $w6, 512($7) # CHECK: ld.h $w6, 512($7) # encoding: [0x79,0x00,0x39,0xa1]
+ ld.h $w7, 1022($8) # CHECK: ld.h $w7, 1022($8) # encoding: [0x79,0xff,0x41,0xe1]
-# CHECK: ld.w $w8, -2048($9) # encoding: [0x7a,0x00,0x4a,0x22]
-# CHECK: ld.w $w9, -1024($10) # encoding: [0x7b,0x00,0x52,0x62]
-# CHECK: ld.w $w10, -512($11) # encoding: [0x7b,0x80,0x5a,0xa2]
-# CHECK: ld.w $w11, 512($12) # encoding: [0x78,0x80,0x62,0xe2]
-# CHECK: ld.w $w12, 1024($13) # encoding: [0x79,0x00,0x6b,0x22]
-# CHECK: ld.w $w13, 2044($14) # encoding: [0x79,0xff,0x73,0x62]
+ ld.w $w8, -2048($9) # CHECK: ld.w $w8, -2048($9) # encoding: [0x7a,0x00,0x4a,0x22]
+ ld.w $w9, -1024($10) # CHECK: ld.w $w9, -1024($10) # encoding: [0x7b,0x00,0x52,0x62]
+ ld.w $w10, -512($11) # CHECK: ld.w $w10, -512($11) # encoding: [0x7b,0x80,0x5a,0xa2]
+ ld.w $w11, 512($12) # CHECK: ld.w $w11, 512($12) # encoding: [0x78,0x80,0x62,0xe2]
+ ld.w $w12, 1024($13) # CHECK: ld.w $w12, 1024($13) # encoding: [0x79,0x00,0x6b,0x22]
+ ld.w $w13, 2044($14) # CHECK: ld.w $w13, 2044($14) # encoding: [0x79,0xff,0x73,0x62]
-# CHECK: ld.d $w14, -4096($15) # encoding: [0x7a,0x00,0x7b,0xa3]
-# CHECK: ld.d $w15, -2048($16) # encoding: [0x7b,0x00,0x83,0xe3]
-# CHECK: ld.d $w16, -1024($17) # encoding: [0x7b,0x80,0x8c,0x23]
-# CHECK: ld.d $w17, -512($18) # encoding: [0x7b,0xc0,0x94,0x63]
-# CHECK: ld.d $w18, 0($19) # encoding: [0x78,0x00,0x9c,0xa3]
-# CHECK: ld.d $w19, 512($20) # encoding: [0x78,0x40,0xa4,0xe3]
-# CHECK: ld.d $w20, 1024($21) # encoding: [0x78,0x80,0xad,0x23]
-# CHECK: ld.d $w21, 2048($22) # encoding: [0x79,0x00,0xb5,0x63]
-# CHECK: ld.d $w22, 4088($23) # encoding: [0x79,0xff,0xbd,0xa3]
-
- ld.b $w0, -512($1)
- ld.b $w1, 0($2)
- ld.b $w2, 511($3)
-
- ld.h $w3, -1024($4)
- ld.h $w4, -512($5)
- ld.h $w5, 0($6)
- ld.h $w6, 512($7)
- ld.h $w7, 1022($8)
-
- ld.w $w8, -2048($9)
- ld.w $w9, -1024($10)
- ld.w $w10, -512($11)
- ld.w $w11, 512($12)
- ld.w $w12, 1024($13)
- ld.w $w13, 2044($14)
-
- ld.d $w14, -4096($15)
- ld.d $w15, -2048($16)
- ld.d $w16, -1024($17)
- ld.d $w17, -512($18)
- ld.d $w18, 0($19)
- ld.d $w19, 512($20)
- ld.d $w20, 1024($21)
- ld.d $w21, 2048($22)
- ld.d $w22, 4088($23)
+ ld.d $w14, -4096($15) # CHECK: ld.d $w14, -4096($15) # encoding: [0x7a,0x00,0x7b,0xa3]
+ ld.d $w15, -2048($16) # CHECK: ld.d $w15, -2048($16) # encoding: [0x7b,0x00,0x83,0xe3]
+ ld.d $w16, -1024($17) # CHECK: ld.d $w16, -1024($17) # encoding: [0x7b,0x80,0x8c,0x23]
+ ld.d $w17, -512($18) # CHECK: ld.d $w17, -512($18) # encoding: [0x7b,0xc0,0x94,0x63]
+ ld.d $w18, 0($19) # CHECK: ld.d $w18, 0($19) # encoding: [0x78,0x00,0x9c,0xa3]
+ ld.d $w19, 512($20) # CHECK: ld.d $w19, 512($20) # encoding: [0x78,0x40,0xa4,0xe3]
+ ld.d $w20, 1024($21) # CHECK: ld.d $w20, 1024($21) # encoding: [0x78,0x80,0xad,0x23]
+ ld.d $w21, 2048($22) # CHECK: ld.d $w21, 2048($22) # encoding: [0x79,0x00,0xb5,0x63]
+ ld.d $w22, 4088($23) # CHECK: ld.d $w22, 4088($23) # encoding: [0x79,0xff,0xbd,0xa3]
diff --git a/test/MC/Mips/nacl-mask.s b/test/MC/Mips/nacl-mask.s
index c77646081f26..604b5c83721e 100644
--- a/test/MC/Mips/nacl-mask.s
+++ b/test/MC/Mips/nacl-mask.s
@@ -1,6 +1,5 @@
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-nacl %s \
-# RUN: | llvm-objdump -triple mipsel -disassemble -no-show-raw-insn - \
-# RUN: | FileCheck %s
+# RUN: | llvm-objdump -disassemble -no-show-raw-insn - | FileCheck %s
# This test tests that address-masking sandboxing is added when given assembly
# input.
diff --git a/test/MC/Mips/nooddspreg-cmdarg.s b/test/MC/Mips/nooddspreg-cmdarg.s
index 74c9d4da1967..28ac7b723343 100644
--- a/test/MC/Mips/nooddspreg-cmdarg.s
+++ b/test/MC/Mips/nooddspreg-cmdarg.s
@@ -8,7 +8,7 @@
# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -mattr=+nooddspreg 2> %t0
# RUN: FileCheck %s -check-prefix=INVALID < %t0
#
-# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -mattr=+nooddspreg 2> %t0
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n64 -mattr=+nooddspreg 2> %t0
# RUN: FileCheck %s -check-prefix=INVALID < %t0
#
# CHECK-ASM-NOT: .module nooddspreg
diff --git a/test/MC/Mips/nooddspreg.s b/test/MC/Mips/nooddspreg.s
index 6332b7042987..2b5154d427b2 100644
--- a/test/MC/Mips/nooddspreg.s
+++ b/test/MC/Mips/nooddspreg.s
@@ -8,7 +8,7 @@
# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 2> %t1
# RUN: FileCheck %s -check-prefix=INVALID < %t1
#
-# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 2> %t2
+# RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n64 2> %t2
# RUN: FileCheck %s -check-prefix=INVALID < %t2
#
# CHECK-ASM: .module nooddspreg
diff --git a/test/MC/Mips/oddspreg.s b/test/MC/Mips/oddspreg.s
index a3902f621e44..3b9aaeecddd0 100644
--- a/test/MC/Mips/oddspreg.s
+++ b/test/MC/Mips/oddspreg.s
@@ -3,14 +3,14 @@
#
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+fp64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-O32
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-O32
#
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
#
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 -target-abi n32 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-N32
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N32
# RUN: llvm-mc %s -arch=mips64 -mcpu=mips64 | \
# RUN: FileCheck %s -check-prefix=CHECK-ASM
@@ -19,19 +19,19 @@
# output should be unchanged.
# RUN: llvm-mc /dev/null -arch=mips64 -mcpu=mips64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-N64
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N64
# RUN: llvm-mc /dev/null -arch=mips -mcpu=mips32 -mattr=+fp64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-O32
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-O32
#
# RUN: llvm-mc /dev/null -arch=mips64 -mcpu=mips64 -target-abi n32 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-N32
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N32
# RUN: llvm-mc /dev/null -arch=mips64 -mcpu=mips64 -filetype=obj -o - | \
# RUN: llvm-readobj -sections -section-data -section-relocations - | \
-# RUN: FileCheck %s -check-prefix=CHECK-OBJ-ALL -check-prefix=CHECK-OBJ-N64
+# RUN: FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N64
# CHECK-ASM: .module oddspreg
diff --git a/test/MC/Mips/reloc-directive-negative.s b/test/MC/Mips/reloc-directive-negative.s
new file mode 100644
index 000000000000..41dd39a17f62
--- /dev/null
+++ b/test/MC/Mips/reloc-directive-negative.s
@@ -0,0 +1,6 @@
+# RUN: not llvm-mc -triple mips-unknown-linux < %s -show-encoding -target-abi=o32 \
+# RUN: 2>&1 | FileCheck %s
+ .text
+foo:
+ .reloc -1, R_MIPS_32, .text # CHECK: :[[@LINE]]:9: error: expression is negative
+ nop
diff --git a/test/MC/Mips/reloc-directive.s b/test/MC/Mips/reloc-directive.s
index f42a1bc699f4..fee4c1379b13 100644
--- a/test/MC/Mips/reloc-directive.s
+++ b/test/MC/Mips/reloc-directive.s
@@ -28,8 +28,8 @@ foo:
# OBJ-O32: 0000: 00000000 00000000 00000008
# OBJ-O32-LABEL: }
# OBJ-O32-LABEL: Relocations [
-# OBJ-O32: 0x0 R_MIPS_NONE foo 0x0
-# OBJ-O32: 0x4 R_MIPS_NONE foo 0x0
+# OBJ-O32: 0x0 R_MIPS_NONE .text 0x0
+# OBJ-O32: 0x4 R_MIPS_NONE .text 0x0
# OBJ-O32: 0x8 R_MIPS_32 .text 0x0
# OBJ-O32: 0xC R_MIPS_NONE - 0x0
@@ -43,8 +43,8 @@ foo:
# OBJ-N32: 0000: 00000000 00000000 00000000
# OBJ-N32-LABEL: }
# OBJ-N32-LABEL: Relocations [
-# OBJ-N32: 0x0 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE foo 0x4
-# OBJ-N32: 0x4 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# OBJ-N32: 0x0 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x4
+# OBJ-N32: 0x4 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x0
# OBJ-N32: 0x8 R_MIPS_32/R_MIPS_NONE/R_MIPS_NONE .text 0x8
# OBJ-N32: 0xC R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE - 0x0
@@ -52,7 +52,7 @@ foo:
# OBJ-N64: 0000: 00000000 00000000 00000000
# OBJ-N64-LABEL: }
# OBJ-N64-LABEL: Relocations [
-# OBJ-N64: 0x0 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE foo 0x4
-# OBJ-N64: 0x4 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# OBJ-N64: 0x0 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x4
+# OBJ-N64: 0x4 R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE .text 0x0
# OBJ-N64: 0x8 R_MIPS_32/R_MIPS_NONE/R_MIPS_NONE .text 0x8
# OBJ-N64: 0xC R_MIPS_NONE/R_MIPS_NONE/R_MIPS_NONE - 0x0
diff --git a/test/MC/Mips/relocation-n64.s b/test/MC/Mips/relocation-n64.s
new file mode 100644
index 000000000000..bdb35c18852f
--- /dev/null
+++ b/test/MC/Mips/relocation-n64.s
@@ -0,0 +1,41 @@
+// RUN: llvm-mc -triple mips64-unknown-linux < %s -show-encoding \
+// RUN: | FileCheck -check-prefixes=ENCBE,FIXUP %s
+// RUN: llvm-mc -triple mips64el-unknown-linux < %s -show-encoding \
+// RUN: | FileCheck -check-prefixes=ENCLE,FIXUP %s
+// RUN: llvm-mc -filetype=obj -triple mips64el-unknown-linux < %s \
+// RUN: | llvm-readobj -r | FileCheck -check-prefix=RELOC %s
+// RUN: llvm-mc -filetype=obj -triple mips64-unknown-linux < %s \
+// RUN: | llvm-readobj -sections -section-data \
+// RUN: | FileCheck -check-prefix=DATA %s
+
+// Test that we produce the correct relocation.
+// FIXME: move more relocation only tests here.
+
+// Check prefixes:
+// RELOC - Check the relocation in the object.
+// FIXUP - Check the fixup on the instruction.
+// ENCBE - Check the big-endian encoding on the instruction.
+// ENCLE - Check the little-endian encoding on the instruction.
+// ????? - Placeholder. Relocation is defined but the way of generating it is
+// unknown.
+// FIXME - Placeholder. Generation method is known but doesn't work.
+
+// DATA-LABEL: Name: .text
+// DATA: SectionData (
+
+// DATA-NEXT: 0000: 24620000 24620000
+ addiu $2, $3, %lo(%neg(%gp_rel(foo))) // RELOC: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 foo
+ // ENCBE: addiu $2, $3, %lo(%neg(%gp_rel(foo))) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %lo(%neg(%gp_rel(foo))) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %lo(%neg(%gp_rel(foo))), kind: fixup_Mips_GPOFF_LO
+
+ addiu $2, $3, %lo(%neg(%gp_rel(bar))) // RELOC: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 .data
+ // ENCBE: addiu $2, $3, %lo(%neg(%gp_rel(bar))) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %lo(%neg(%gp_rel(bar))) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %lo(%neg(%gp_rel(bar))), kind: fixup_Mips_GPOFF_LO
+
+ .data
+ .word 0
+bar:
+ .word 1
+// DATA-LABEL: Section {
diff --git a/test/MC/Mips/relocation-xfail.s b/test/MC/Mips/relocation-xfail.s
new file mode 100644
index 000000000000..dcb78beb413f
--- /dev/null
+++ b/test/MC/Mips/relocation-xfail.s
@@ -0,0 +1,31 @@
+// RUN: llvm-mc -filetype=obj -triple mips-unknown-linux -mattr=+micromips < %s \
+// RUN: | llvm-readobj -sections -section-data \
+// RUN: | FileCheck -check-prefix=DATA %s
+//
+// XFAIL: *
+
+// Please merge this with relocation.s when it passes.
+
+// baz is equivalent to .text+0x8 and is recorded in the symbol table as such
+// but it refers to microMIPS code so the addend must indicate this in the LSB.
+// The addend must therefore be 0x9.
+// DATA-LABEL: Name: .text
+// DATA: SectionData (
+// DATA: 0000: 30430000 30420009 30430000 30420009
+ addiu $2, $3, %got(baz)
+ addiu $2, $2, %lo(baz)
+baz:
+ addiu $2, $3, %hi(baz)
+ addiu $2, $2, %lo(baz)
+
+// DATA-LABEL: Name: .data
+// DATA: SectionData (
+ .data
+ .word 0
+bar:
+ .word 1
+// baz is equivalent to .text+0x8 and is recorded in the symbol table as such
+// but it refers to microMIPS code so the addend must indicate this in the LSB.
+// The addend must therefore be 0x9.
+// DATA: 0000: 00000000 00000001 00000009
+ .gpword baz
diff --git a/test/MC/Mips/relocation.s b/test/MC/Mips/relocation.s
index f8030d16687e..abbbc6d9ea2f 100644
--- a/test/MC/Mips/relocation.s
+++ b/test/MC/Mips/relocation.s
@@ -1,9 +1,12 @@
// RUN: llvm-mc -triple mips-unknown-linux < %s -show-encoding \
-// RUN: | FileCheck -check-prefix=ENCBE -check-prefix=FIXUP %s
+// RUN: | FileCheck -check-prefixes=ENCBE,FIXUP %s
// RUN: llvm-mc -triple mipsel-unknown-linux < %s -show-encoding \
-// RUN: | FileCheck -check-prefix=ENCLE -check-prefix=FIXUP %s
+// RUN: | FileCheck -check-prefixes=ENCLE,FIXUP %s
// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux < %s \
// RUN: | llvm-readobj -r | FileCheck -check-prefix=RELOC %s
+// RUN: llvm-mc -filetype=obj -triple mips-unknown-linux < %s \
+// RUN: | llvm-readobj -sections -section-data \
+// RUN: | FileCheck -check-prefix=DATA %s
// Test that we produce the correct relocation.
// FIXME: move more relocation only tests here.
@@ -17,9 +20,18 @@
// unknown.
// FIXME - Placeholder. Generation method is known but doesn't work.
+// RELOC-LABEL: .rel.text {
+// DATA-LABEL: Name: .text
+// DATA: SectionData (
+
+// DATA-NEXT: 0000: 00000004 00000000 00000004 0C000000
.short foo // RELOC: R_MIPS_16 foo
- .long foo // RELOC: R_MIPS_32 foo
+ .short bar // RELOC: R_MIPS_16 .data
+
+baz: .long foo // RELOC: R_MIPS_32 foo
+
+ .long bar // RELOC: R_MIPS_32 .data
// ?????: R_MIPS_REL32 foo
@@ -28,36 +40,74 @@
// ENCLE: jal foo # encoding: [A,A,A,0b000011AA]
// FIXUP: # fixup A - offset: 0, value: foo, kind: fixup_Mips_26
+// The nop from the jal is at 0x0010
+// DATA-NEXT: 0010: 00000000 0C000001 00000000 24620000
+ jal baz // RELOC: R_MIPS_26 .text
+ // ENCBE: jal baz # encoding: [0b000011AA,A,A,A]
+ // ENCLE: jal baz # encoding: [A,A,A,0b000011AA]
+ // FIXUP: # fixup A - offset: 0, value: baz, kind: fixup_Mips_26
+
addiu $2, $3, %hi(foo) // RELOC: R_MIPS_HI16 foo
// ENCBE: addiu $2, $3, %hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@ABS_HI, kind: fixup_Mips_HI16
+ // FIXUP: # fixup A - offset: 0, value: %hi(foo), kind: fixup_Mips_HI16
+// DATA-NEXT: 0020: 24620000 24620000 24620004 24620000
addiu $2, $3, %lo(foo) // RELOC: R_MIPS_LO16 foo
// ENCBE: addiu $2, $3, %lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@ABS_LO, kind: fixup_Mips_LO16
+ // FIXUP: # fixup A - offset: 0, value: %lo(foo), kind: fixup_Mips_LO16
+
+ addiu $2, $3, %hi(bar) // RELOC: R_MIPS_HI16 .data
+ // ENCBE: addiu $2, $3, %hi(bar) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %hi(bar) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %hi(bar), kind: fixup_Mips_HI16
+
+ addiu $2, $3, %lo(bar) // RELOC: R_MIPS_LO16 .data
+ // ENCBE: addiu $2, $3, %lo(bar) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %lo(bar) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %lo(bar), kind: fixup_Mips_LO16
addiu $2, $3, %gp_rel(foo) // RELOC: R_MIPS_GPREL16 foo
// ENCBE: addiu $2, $3, %gp_rel(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %gp_rel(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GPREL, kind: fixup_Mips_GPREL
+ // FIXUP: # fixup A - offset: 0, value: %gp_rel(foo), kind: fixup_Mips_GPREL
+
+// DATA-NEXT: 0030: 24620004 24620000 24420000 24620000
+ addiu $2, $3, %gp_rel(bar) // RELOC: R_MIPS_GPREL16 .data
+ // ENCBE: addiu $2, $3, %gp_rel(bar) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %gp_rel(bar) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %gp_rel(bar), kind: fixup_Mips_GPREL
// ?????: R_MIPS_LITERAL foo
addiu $2, $3, %got(foo) // RELOC: R_MIPS_GOT16 foo
// ENCBE: addiu $2, $3, %got(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT, kind: fixup_Mips_GOT_Local
+ // FIXUP: # fixup A - offset: 0, value: %got(foo), kind: fixup_Mips_GOT
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(foo)
+
+ addiu $2, $3, %got(bar) // RELOC: R_MIPS_GOT16 .data
+ // ENCBE: addiu $2, $3, %got(bar) # encoding: [0x24,0x62,A,A]
+ // ENCLE: addiu $2, $3, %got(bar) # encoding: [A,A,0x62,0x24]
+ // FIXUP: # fixup A - offset: 0, value: %got(bar), kind: fixup_Mips_GOT
+// DATA-NEXT: 0040: 24420004 0000FFBE 24620000
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(bar)
.short foo-. // RELOC: R_MIPS_PC16 foo
+ .short baz-. // RELOC-NOT: R_MIPS_PC16
addiu $2, $3, %call16(foo) // RELOC: R_MIPS_CALL16 foo
// ENCBE: addiu $2, $3, %call16(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %call16(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_CALL, kind: fixup_Mips_CALL16
+ // FIXUP: # fixup A - offset: 0, value: %call16(foo), kind: fixup_Mips_CALL16
+ .p2align 4
+// DATA-NEXT: 0050: 00000000 00000000 00000000 00000004
.quad foo // RELOC: R_MIPS_64 foo
+ .quad bar // RELOC: R_MIPS_64 .data
// ?????: R_MIPS_GPREL32 foo
// ?????: R_MIPS_UNUSED1 foo
@@ -66,30 +116,32 @@
// ?????: R_MIPS_SHIFT5 foo
// ?????: R_MIPS_SHIFT6 foo
+// DATA-NEXT: 0060: 24620000 24620000 24620000 24620000
addiu $2, $3, %got_disp(foo) // RELOC: R_MIPS_GOT_DISP foo
// ENCBE: addiu $2, $3, %got_disp(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got_disp(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_DISP, kind: fixup_Mips_GOT_DISP
+ // FIXUP: # fixup A - offset: 0, value: %got_disp(foo), kind: fixup_Mips_GOT_DISP
addiu $2, $3, %got_page(foo) // RELOC: R_MIPS_GOT_PAGE foo
// ENCBE: addiu $2, $3, %got_page(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got_page(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_PAGE, kind: fixup_Mips_GOT_PAGE
+ // FIXUP: # fixup A - offset: 0, value: %got_page(foo), kind: fixup_Mips_GOT_PAGE
addiu $2, $3, %got_ofst(foo) // RELOC: R_MIPS_GOT_OFST foo
// ENCBE: addiu $2, $3, %got_ofst(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got_ofst(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_OFST, kind: fixup_Mips_GOT_OFST
+ // FIXUP: # fixup A - offset: 0, value: %got_ofst(foo), kind: fixup_Mips_GOT_OFST
addiu $2, $3, %got_hi(foo) // RELOC: R_MIPS_GOT_HI16 foo
// ENCBE: addiu $2, $3, %got_hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got_hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_HI16, kind: fixup_Mips_GOT_HI16
+ // FIXUP: # fixup A - offset: 0, value: %got_hi(foo), kind: fixup_Mips_GOT_HI16
+// DATA-NEXT: 0070: 24620000 64620000 64620000 24620000
addiu $2, $3, %got_lo(foo) // RELOC: R_MIPS_GOT_LO16 foo
// ENCBE: addiu $2, $3, %got_lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %got_lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOT_LO16, kind: fixup_Mips_GOT_LO16
+ // FIXUP: # fixup A - offset: 0, value: %got_lo(foo), kind: fixup_Mips_GOT_LO16
// addiu $2, $3, %neg(foo) // FIXME: R_MIPS_SUB foo
// ?????: R_MIPS_INSERT_A
@@ -100,23 +152,24 @@
daddiu $2, $3, %higher(foo) // RELOC: R_MIPS_HIGHER foo
// ENCBE: daddiu $2, $3, %higher(foo) # encoding: [0x64,0x62,A,A]
// ENCLE: daddiu $2, $3, %higher(foo) # encoding: [A,A,0x62,0x64]
- // FIXUP: # fixup A - offset: 0, value: foo@HIGHER, kind: fixup_Mips_HIGHER
+ // FIXUP: # fixup A - offset: 0, value: %higher(foo), kind: fixup_Mips_HIGHER
daddiu $2, $3, %highest(foo) // RELOC: R_MIPS_HIGHEST foo
// ENCBE: daddiu $2, $3, %highest(foo) # encoding: [0x64,0x62,A,A]
// ENCLE: daddiu $2, $3, %highest(foo) # encoding: [A,A,0x62,0x64]
- // FIXUP: # fixup A - offset: 0, value: foo@HIGHEST, kind: fixup_Mips_HIGHEST
+ // FIXUP: # fixup A - offset: 0, value: %highest(foo), kind: fixup_Mips_HIGHEST
.set mips0
addiu $2, $3, %call_hi(foo) // RELOC: R_MIPS_CALL_HI16 foo
// ENCBE: addiu $2, $3, %call_hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %call_hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@CALL_HI16, kind: fixup_Mips_CALL_HI16
+ // FIXUP: # fixup A - offset: 0, value: %call_hi(foo), kind: fixup_Mips_CALL_HI16
+// DATA-NEXT: 0080: 24620000 24620000 24620000 24620000
addiu $2, $3, %call_lo(foo) // RELOC: R_MIPS_CALL_LO16 foo
// ENCBE: addiu $2, $3, %call_lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %call_lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@CALL_LO16, kind: fixup_Mips_CALL_LO16
+ // FIXUP: # fixup A - offset: 0, value: %call_lo(foo), kind: fixup_Mips_CALL_LO16
// ?????: R_MIPS_SCN_DISP foo
// ?????: R_MIPS_REL16 foo
@@ -132,39 +185,39 @@
addiu $2, $3, %tlsgd(foo) // RELOC: R_MIPS_TLS_GD foo
// ENCBE: addiu $2, $3, %tlsgd(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %tlsgd(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@TLSGD, kind: fixup_Mips_TLSGD
+ // FIXUP: # fixup A - offset: 0, value: %tlsgd(foo), kind: fixup_Mips_TLSGD
addiu $2, $3, %tlsldm(foo) // RELOC: R_MIPS_TLS_LDM foo
// ENCBE: addiu $2, $3, %tlsldm(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %tlsldm(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@TLSLDM, kind: fixup_Mips_TLSLDM
+ // FIXUP: # fixup A - offset: 0, value: %tlsldm(foo), kind: fixup_Mips_TLSLDM
addiu $2, $3, %dtprel_hi(foo) // RELOC: R_MIPS_TLS_DTPREL_HI16 foo
// ENCBE: addiu $2, $3, %dtprel_hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %dtprel_hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@DTPREL_HI, kind: fixup_Mips_DTPREL_HI
+ // FIXUP: # fixup A - offset: 0, value: %dtprel_hi(foo), kind: fixup_Mips_DTPREL_HI
addiu $2, $3, %dtprel_lo(foo) // RELOC: R_MIPS_TLS_DTPREL_LO16 foo
// ENCBE: addiu $2, $3, %dtprel_lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %dtprel_lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@DTPREL_LO, kind: fixup_Mips_DTPREL_LO
+ // FIXUP: # fixup A - offset: 0, value: %dtprel_lo(foo), kind: fixup_Mips_DTPREL_LO
addiu $2, $3, %gottprel(foo) // RELOC: R_MIPS_TLS_GOTTPREL foo
// ENCBE: addiu $2, $3, %gottprel(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %gottprel(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@GOTTPREL, kind: fixup_Mips_GOTTPREL
+ // FIXUP: # fixup A - offset: 0, value: %gottprel(foo), kind: fixup_Mips_GOTTPREL
// .tprelword foo // FIXME: R_MIPS_TLS_TPREL32 foo
// .tpreldword foo // FIXME: R_MIPS_TLS_TPREL64 foo
addiu $2, $3, %tprel_hi(foo) // RELOC: R_MIPS_TLS_TPREL_HI16 foo
// ENCBE: addiu $2, $3, %tprel_hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %tprel_hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@TPREL_HI, kind: fixup_Mips_TPREL_HI
+ // FIXUP: # fixup A - offset: 0, value: %tprel_hi(foo), kind: fixup_Mips_TPREL_HI
addiu $2, $3, %tprel_lo(foo) // RELOC: R_MIPS_TLS_TPREL_LO16 foo
// ENCBE: addiu $2, $3, %tprel_lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %tprel_lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@TPREL_LO, kind: fixup_Mips_TPREL_LO
+ // FIXUP: # fixup A - offset: 0, value: %tprel_lo(foo), kind: fixup_Mips_TPREL_LO
// ?????: R_MIPS_GLOB_DAT foo
.set mips32r6
@@ -193,12 +246,12 @@
addiu $2, $3, %pcrel_hi(foo) // RELOC: R_MIPS_PCHI16 foo
// ENCBE: addiu $2, $3, %pcrel_hi(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %pcrel_hi(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@PCREL_HI16, kind: fixup_MIPS_PCHI16
+ // FIXUP: # fixup A - offset: 0, value: %pcrel_hi(foo), kind: fixup_MIPS_PCHI16
addiu $2, $3, %pcrel_lo(foo) // RELOC: R_MIPS_PCLO16 foo
// ENCBE: addiu $2, $3, %pcrel_lo(foo) # encoding: [0x24,0x62,A,A]
// ENCLE: addiu $2, $3, %pcrel_lo(foo) # encoding: [A,A,0x62,0x24]
- // FIXUP: # fixup A - offset: 0, value: foo@PCREL_LO16, kind: fixup_MIPS_PCLO16
+ // FIXUP: # fixup A - offset: 0, value: %pcrel_lo(foo), kind: fixup_MIPS_PCLO16
.set mips0
// FIXME: R_MIPS16_*
@@ -207,3 +260,87 @@
// FIXME: R_MICROMIPS_*
.long foo-. // RELOC: R_MIPS_PC32 foo
// .ehword foo // FIXME: R_MIPS_EH foo
+
+ .data
+ .word 0
+bar:
+ .word 1
+
+ .section .text_mm, "ax", @progbits
+ .set micromips
+mm:
+// RELOC-LABEL: .rel.text_mm {
+// ENCBE-LABEL: mm:
+// ENCLE-LABEL: mm:
+// DATA-LABEL: Name: .text_mm
+// DATA: SectionData (
+
+// DATA-NEXT: 0000: 30430000 30420000 30430000 30420004
+ addiu $2, $3, %got(foo_mm) // RELOC: R_MICROMIPS_GOT16 foo_mm
+ // ENCBE: addiu $2, $3, %got(foo_mm) # encoding: [0x30,0x43,A,A]
+ // The placement of the 'A' annotations is incorrect. They use 32-bit little endian instead of 2x 16-bit little endian.
+ // ENCLE: addiu $2, $3, %got(foo_mm) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %got(foo_mm), kind: fixup_MICROMIPS_GOT16
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(foo_mm) // RELOC: R_MICROMIPS_LO16 foo_mm
+ // ENCBE: addiu $2, $2, %lo(foo_mm) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(foo_mm) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(foo_mm), kind: fixup_MICROMIPS_LO16
+
+foo_mm:
+ addiu $2, $3, %got(bar) // RELOC: R_MICROMIPS_GOT16 .data
+ // ENCBE: addiu $2, $3, %got(bar) # encoding: [0x30,0x43,A,A]
+ // ENCLE: addiu $2, $3, %got(bar) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %got(bar), kind: fixup_MICROMIPS_GOT16
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(bar) // RELOC: R_MICROMIPS_LO16 .data
+ // ENCBE: addiu $2, $2, %lo(bar) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(bar) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(bar), kind: fixup_MICROMIPS_LO16
+
+// DATA-NEXT: 0010: 30430000 30420004 30430001 30420030
+ addiu $2, $3, %got(baz) // RELOC: R_MICROMIPS_GOT16 .text
+ // ENCBE: addiu $2, $3, %got(baz) # encoding: [0x30,0x43,A,A]
+ // The placement of the 'A' annotations is incorrect. They use 32-bit little endian instead of 2x 16-bit little endian.
+ // ENCLE: addiu $2, $3, %got(baz) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %got(baz), kind: fixup_MICROMIPS_GOT16
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(baz) // RELOC: R_MICROMIPS_LO16 .text
+ // ENCBE: addiu $2, $2, %lo(baz) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(baz) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(baz), kind: fixup_MICROMIPS_LO16
+
+ addiu $2, $3, %got(long_mm) // RELOC: R_MICROMIPS_GOT16 .text
+ // ENCBE: addiu $2, $3, %got(long_mm) # encoding: [0x30,0x43,A,A]
+ // The placement of the 'A' annotations is incorrect. They use 32-bit little endian instead of 2x 16-bit little endian.
+ // ENCLE: addiu $2, $3, %got(long_mm) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %got(long_mm), kind: fixup_MICROMIPS_GOT16
+ // %got requires a %lo pair
+ addiu $2, $2, %lo(long_mm) // RELOC: R_MICROMIPS_LO16 .text
+ // ENCBE: addiu $2, $2, %lo(long_mm) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(long_mm) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(long_mm), kind: fixup_MICROMIPS_LO16
+
+// DATA-NEXT: 0020: 30430000 30420000 30430000 30420004
+ addiu $2, $3, %hi(foo_mm) // RELOC: R_MICROMIPS_HI16 foo_mm
+ // ENCBE: addiu $2, $3, %hi(foo_mm) # encoding: [0x30,0x43,A,A]
+ // ENCLE: addiu $2, $3, %hi(foo_mm) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %hi(foo_mm), kind: fixup_MICROMIPS_HI16
+
+ addiu $2, $2, %lo(foo_mm) // RELOC: R_MICROMIPS_LO16 foo_mm
+ // ENCBE: addiu $2, $2, %lo(foo_mm) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(foo_mm) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(foo_mm), kind: fixup_MICROMIPS_LO16
+
+ addiu $2, $3, %hi(bar) // RELOC: R_MICROMIPS_HI16 .data
+ // ENCBE: addiu $2, $3, %hi(bar) # encoding: [0x30,0x43,A,A]
+ // ENCLE: addiu $2, $3, %hi(bar) # encoding: [0x43'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %hi(bar), kind: fixup_MICROMIPS_HI16
+
+ addiu $2, $2, %lo(bar) // RELOC: R_MICROMIPS_LO16 .data
+ // ENCBE: addiu $2, $2, %lo(bar) # encoding: [0x30,0x42,A,A]
+ // ENCLE: addiu $2, $2, %lo(bar) # encoding: [0x42'A',0x30'A',0x00,0x00]
+ // FIXUP: # fixup A - offset: 0, value: %lo(bar), kind: fixup_MICROMIPS_LO16
+
+ .space 65536, 0
+long_mm:
diff --git a/test/MC/Mips/section-size.s b/test/MC/Mips/section-size.s
new file mode 100644
index 000000000000..f6ffa8fe2de4
--- /dev/null
+++ b/test/MC/Mips/section-size.s
@@ -0,0 +1,106 @@
+# RUN: llvm-mc -triple mips-unknown-linux -filetype=obj \
+# RUN: -mips-round-section-sizes %s | llvm-readobj -sections | FileCheck %s
+ .section ".talign1", "ax"
+ .p2align 4
+t1: .byte 1
+
+ .section ".talign2", "ax"
+ .p2align 3
+t2: addiu $2, $2, 1
+ addiu $2, $2, 1
+
+ .section ".talign3", "ax"
+ .p2align 3
+t3: addiu $2, $2, 1
+
+ .section ".talign4", "ax"
+t4: .byte 1
+
+ .section ".dalign1", "a"
+ .p2align 4
+d1: .byte 1
+
+ .section ".dalign2", "a"
+ .p2align 3
+d2: .word 1
+ .word 2
+
+ .section ".dalign3", "a"
+ .p2align 3
+d3: .word 1
+
+ .section ".dalign4", "a"
+d4: .byte 1
+
+ .section ".dalign5", "a"
+ .p2align 16
+d5: .word 1
+
+ .section ".nalign1", ""
+ .p2align 4
+n1: .byte 1
+
+ .section ".nalign2", ""
+ .p2align 3
+n2: .word 1
+ .word 2
+
+ .section ".nalign3", ""
+ .p2align 3
+n3: .word 1
+
+ .section ".nalign4", ""
+n4: .byte 1
+
+# CHECK-LABEL: Name: .talign1
+# CHECK: Size: 16
+# CHECK: AddressAlignment: 16
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .talign2
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .talign3
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .talign4
+# CHECK: Size: 1
+# CHECK: AddressAlignment: 1
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .dalign1
+# CHECK: Size: 16
+# CHECK: AddressAlignment: 16
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .dalign2
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .dalign3
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .dalign4
+# CHECK: Size: 1
+# CHECK: AddressAlignment: 1
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .dalign5
+# CHECK: Size: 65536
+# CHECK: AddressAlignment: 65536
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .nalign1
+# CHECK: Size: 16
+# CHECK: AddressAlignment: 16
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .nalign2
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .nalign3
+# CHECK: Size: 8
+# CHECK: AddressAlignment: 8
+# CHECK-LABEL: }
+# CHECK-LABEL: Name: .nalign4
+# CHECK: Size: 1
+# CHECK: AddressAlignment: 1
+# CHECK-LABEL: }
diff --git a/test/MC/Mips/set-arch.s b/test/MC/Mips/set-arch.s
index 834718c5d55c..e1123a90d06c 100644
--- a/test/MC/Mips/set-arch.s
+++ b/test/MC/Mips/set-arch.s
@@ -36,7 +36,8 @@
drotr32 $1, $14, 15
.set arch=mips64r6
mod $2, $4, $6
- .set arch=cnmips
+ .set arch=octeon
+ baddu $9, $6, $7
.set arch=r4000
dadd $2, $2, $2
@@ -62,6 +63,7 @@
# CHECK: drotr32 $1, $14, 15
# CHECK: .set arch=mips64r6
# CHECK: mod $2, $4, $6
-# CHECK: .set arch=cnmips
+# CHECK: .set arch=octeon
+# CHECK: baddu $9, $6, $7
# CHECK: .set arch=r4000
# CHECK: dadd $2, $2, $2
diff --git a/test/MC/Mips/set-defined-symbol.s b/test/MC/Mips/set-defined-symbol.s
index 54db45da27b9..20988779783b 100644
--- a/test/MC/Mips/set-defined-symbol.s
+++ b/test/MC/Mips/set-defined-symbol.s
@@ -1,5 +1,5 @@
# RUN: llvm-mc %s -arch=mips -mcpu=mips32 -filetype=obj -o - | \
-# RUN: llvm-objdump -d -r -arch=mips - | FileCheck %s
+# RUN: llvm-objdump -d -r - | FileCheck %s
.global foo
.weak bar
diff --git a/test/MC/Mips/set-push-pop-directives-bad.s b/test/MC/Mips/set-push-pop-directives-bad.s
index 8994eea1c8bb..9e259e0f3f49 100644
--- a/test/MC/Mips/set-push-pop-directives-bad.s
+++ b/test/MC/Mips/set-push-pop-directives-bad.s
@@ -1,23 +1,30 @@
# RUN: not llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips32r2 2>%t1
# RUN: FileCheck %s < %t1
+# Check only one error per statement.
+
.text
.set pop
# CHECK: :[[@LINE-1]]:14: error: .set pop with no .set push
+# CHECK-NOT: :[[@LINE-1]]:
.set push
.set pop
.set pop
# CHECK: :[[@LINE-1]]:14: error: .set pop with no .set push
+# CHECK-NOT: :[[@LINE-1]]:
.set push foo
# CHECK: :[[@LINE-1]]:19: error: unexpected token, expected end of statement
+# CHECK-NOT: :[[@LINE-1]]:
.set pop bar
# CHECK: :[[@LINE-1]]:18: error: unexpected token, expected end of statement
-
+# CHECK-NOT: :[[@LINE-1]]:
.set hardfloat
.set push
.set softfloat
add.s $f2, $f2, $f2
# CHECK: :[[@LINE-1]]:9: error: instruction requires a CPU feature not currently enabled
+# CHECK-NOT: :[[@LINE-1]]:
.set pop
add.s $f2, $f2, $f2
# CHECK-NOT: :[[@LINE-1]]:9: error: instruction requires a CPU feature not currently enabled
+# CHECK-NOT: :[[@LINE-1]]:
diff --git a/test/MC/Mips/sext_64_32.ll b/test/MC/Mips/sext_64_32.ll
index 9e0cfa01fdfc..5679829e8eab 100644
--- a/test/MC/Mips/sext_64_32.ll
+++ b/test/MC/Mips/sext_64_32.ll
@@ -1,4 +1,5 @@
-; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 %s -o - | llvm-objdump -disassemble -triple mips64el - | FileCheck %s
+; RUN: llc -march=mips64el -filetype=obj -mcpu=mips64r2 %s -o - | \
+; RUN: llvm-objdump -disassemble - | FileCheck %s
; Sign extend from 32 to 64 was creating nonsense opcodes
diff --git a/test/MC/Mips/sort-relocation-table.s b/test/MC/Mips/sort-relocation-table.s
index 590f8fddf480..16368c02d7b9 100644
--- a/test/MC/Mips/sort-relocation-table.s
+++ b/test/MC/Mips/sort-relocation-table.s
@@ -1,125 +1,398 @@
# RUN: llvm-mc -filetype=obj -arch mipsel %s | llvm-readobj -r | FileCheck %s
# Test the order of records in the relocation table.
-# *HI16 and local *GOT16 relocations should be immediately followed by the
-# corresponding *LO16 relocation against the same symbol.
#
-# We try to implement the same semantics as gas, ie. to order the relocation
-# table the same way as gas.
+# MIPS has a few relocations that have an AHL component in the expression used
+# to evaluate them. This AHL component is an addend with the same number of
+# bits as a symbol value but not all of our ABI's are able to supply a
+# sufficiently sized addend in a single relocation.
#
-# gnu as command line:
-# mips-linux-gnu-as -EL sort-relocation-table.s -o sort-relocation-table.o
+# The O32 ABI for example, uses REL relocations which store the addend in the
+# section data. All the relocations with AHL components affect 16-bit fields
+# so the addend is limited to 16-bit. This ABI resolves the limitation by
+# linking relocations (e.g. R_MIPS_HI16 and R_MIPS_LO16) and distributing the
+# addend between the linked relocations. The ABI mandates that such relocations
+# must be next to each other in a particular order (e.g. R_MIPS_HI16 must be
+# followed by a matching R_MIPS_LO16) but the rule is less strict in practice.
+#
+# See MipsELFObjectWriter.cpp for a full description of the rules.
#
# TODO: Add mips16 and micromips tests.
-# Note: offsets are part of expected output, so it's simpler to add new test
-# cases at the bottom of the file.
-# CHECK: Relocations [
-# CHECK-NEXT: {
+# HILO 1: HI/LO already match
+ .section .mips_hilo_1, "ax", @progbits
+ lui $2, %hi(sym1)
+ addiu $2, $2, %lo(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_1 {
+# CHECK-NEXT: 0x0 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
-# Put HI before LO.
-addiu $2,$2,%lo(sym1)
-lui $2,%hi(sym1)
+# HILO 2: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+ .section .mips_hilo_2, "ax", @progbits
+ addiu $2, $2, %lo(sym1)
+ lui $2, %hi(sym1)
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_2 {
# CHECK-NEXT: 0x4 R_MIPS_HI16 sym1
# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 3: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same.
+ .section .mips_hilo_3, "ax", @progbits
+ addiu $2, $2, %lo(sym1)
+ lui $2, %hi(sym2)
+ addiu $2, $2, %lo(sym2)
+ lui $2, %hi(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_3 {
+# CHECK-NEXT: 0xC R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_HI16 sym2
+# CHECK-NEXT: 0x8 R_MIPS_LO16 sym2
+# CHECK-NEXT: }
-# When searching for a matching LO, ignore LOs against a different symbol.
-addiu $2,$2,%lo(sym2)
-lui $2,%hi(sym2)
-addiu $2,$2,%lo(sym2_d)
+# HILO 3b: Same as 3 but a different starting order.
+ .section .mips_hilo_3b, "ax", @progbits
+ addiu $2, $2, %lo(sym1)
+ lui $2, %hi(sym1)
+ addiu $2, $2, %lo(sym2)
+ lui $2, %hi(sym2)
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_3b {
+# CHECK-NEXT: 0x4 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
# CHECK-NEXT: 0xC R_MIPS_HI16 sym2
# CHECK-NEXT: 0x8 R_MIPS_LO16 sym2
-# CHECK-NEXT: 0x10 R_MIPS_LO16 sym2_d
-
-# Match HI with 2nd LO because it has higher offset (than the 1st LO).
-addiu $2,$2,%lo(sym3)
-addiu $2,$2,%lo(sym3)
-lui $2,%hi(sym3)
-
-# CHECK-NEXT: 0x14 R_MIPS_LO16 sym3
-# CHECK-NEXT: 0x1C R_MIPS_HI16 sym3
-# CHECK-NEXT: 0x18 R_MIPS_LO16 sym3
-
-# HI is already followed by a matching LO, so don't look further, ie. ignore the
-# "free" LO with higher offset.
-lui $2,%hi(sym4)
-addiu $2,$2,%lo(sym4)
-addiu $2,$2,%lo(sym4)
-
-# CHECK-NEXT: 0x20 R_MIPS_HI16 sym4
-# CHECK-NEXT: 0x24 R_MIPS_LO16 sym4
-# CHECK-NEXT: 0x28 R_MIPS_LO16 sym4
-
-# Match 2nd HI with 2nd LO, since it's the one with highest offset among the
-# "free" ones.
-addiu $2,$2,%lo(sym5)
-addiu $2,$2,%lo(sym5)
-lui $2,%hi(sym5)
-addiu $2,$2,%lo(sym5)
-lui $2,%hi(sym5)
-
-# CHECK-NEXT: 0x2C R_MIPS_LO16 sym5
-# CHECK-NEXT: 0x3C R_MIPS_HI16 sym5
-# CHECK-NEXT: 0x30 R_MIPS_LO16 sym5
-# CHECK-NEXT: 0x34 R_MIPS_HI16 sym5
-# CHECK-NEXT: 0x38 R_MIPS_LO16 sym5
-
-# When more HIs are matched with one LO, sort them in descending order of
-# offset.
-addiu $2,$2,%lo(sym6)
-lui $2,%hi(sym6)
-lui $2,%hi(sym6)
-
-# CHECK-NEXT: 0x48 R_MIPS_HI16 sym6
-# CHECK-NEXT: 0x44 R_MIPS_HI16 sym6
-# CHECK-NEXT: 0x40 R_MIPS_LO16 sym6
-
-# sym7 is a local symbol, so GOT relocation against it needs a matching LO.
-sym7:
-addiu $2,$2,%lo(sym7)
-lui $2,%got(sym7)
-
-# CHECK-NEXT: 0x50 R_MIPS_GOT16 sym7
-# CHECK-NEXT: 0x4C R_MIPS_LO16 sym7
-
-# sym8 is not a local symbol, don't look for a matching LO for GOT.
-.global sym8
-addiu $2,$2,%lo(sym8)
-lui $2,%got(sym8)
-
-# CHECK-NEXT: 0x54 R_MIPS_LO16 sym8
-# CHECK-NEXT: 0x58 R_MIPS_GOT16 sym8
-
-# A small combination of previous checks.
-symc1:
-addiu $2,$2,%lo(symc1)
-addiu $2,$2,%lo(symc1)
-addiu $2,$2,%lo(symc1)
-lui $2,%hi(symc1)
-lui $2,%got(symc1)
-addiu $2,$2,%lo(symc2)
-lui $2,%hi(symc1)
-lui $2,%hi(symc1)
-lui $2,%got(symc2)
-lui $2,%hi(symc1)
-addiu $2,$2,%lo(symc1)
-addiu $2,$2,%lo(symc2)
-lui $2,%hi(symc1)
-lui $2,%hi(symc1)
-
-# CHECK-NEXT: 0x78 R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x74 R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x6C R_MIPS_GOT16 symc1
-# CHECK-NEXT: 0x68 R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x5C R_MIPS_LO16 symc1
-# CHECK-NEXT: 0x8C R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x60 R_MIPS_LO16 symc1
-# CHECK-NEXT: 0x90 R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x64 R_MIPS_LO16 symc1
-# CHECK-NEXT: 0x70 R_MIPS_LO16 symc2
-# CHECK-NEXT: 0x7C R_MIPS_GOT16 symc2
-# CHECK-NEXT: 0x80 R_MIPS_HI16 symc1
-# CHECK-NEXT: 0x84 R_MIPS_LO16 symc1
-# CHECK-NEXT: 0x88 R_MIPS_LO16 symc2
+# CHECK-NEXT: }
+
+# HILO 4: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is the same.
+ .section .mips_hilo_4, "ax", @progbits
+ addiu $2, $2, %lo(sym1)
+ addiu $2, $2, %lo(sym1+4)
+ lui $2, %hi(sym1+4)
+ lui $2, %hi(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_4 {
+# CHECK-NEXT: 0xC R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x8 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 5: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal. Exact matches are preferred so both
+# R_MIPS_HI16's match the same R_MIPS_LO16.
+ .section .mips_hilo_5, "ax", @progbits
+ lui $2, %hi(sym1)
+ lui $2, %hi(sym1)
+ addiu $2, $2, %lo(sym1+1)
+ addiu $2, $2, %lo(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_5 {
+# CHECK-NEXT: 0x8 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0xC R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 6: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal. Smaller offsets are preferred so both
+# R_MIPS_HI16's still match the same R_MIPS_LO16.
+ .section .mips_hilo_6, "ax", @progbits
+ lui $2, %hi(sym1)
+ lui $2, %hi(sym1)
+ addiu $2, $2, %lo(sym1+2)
+ addiu $2, $2, %lo(sym1+1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_6 {
+# CHECK-NEXT: 0x8 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0xC R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 7: R_MIPS_HI16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal so that the carry bit is correct. The two
+# R_MIPS_HI16's therefore match different R_MIPS_LO16's.
+ .section .mips_hilo_7, "ax", @progbits
+ addiu $2, $2, %lo(sym1+1)
+ addiu $2, $2, %lo(sym1+6)
+ lui $2, %hi(sym1+4)
+ lui $2, %hi(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_7 {
+# CHECK-NEXT: 0xC R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x8 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 8: R_MIPS_LO16's may be orphaned.
+ .section .mips_hilo_8, "ax", @progbits
+ lw $2, %lo(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_8 {
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 8b: Another example of 8. The R_MIPS_LO16 at 0x4 is orphaned.
+ .section .mips_hilo_8b, "ax", @progbits
+ lw $2, %lo(sym1)
+ lw $2, %lo(sym1)
+ lui $2, %hi(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_8b {
+# CHECK-NEXT: 0x8 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 9: R_MIPS_HI16's don't need a matching R_MIPS_LO16 to immediately follow
+# so long as there is one after the R_MIPS_HI16 somewhere. This isn't
+# permitted by the ABI specification but has been allowed in practice
+# for a very long time. The R_MIPS_HI16's should be ordered by the
+# address they affect for purely cosmetic reasons.
+ .section .mips_hilo_9, "ax", @progbits
+ lw $2, %lo(sym1)
+ lui $2, %hi(sym1)
+ lui $2, %hi(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_9 {
+# CHECK-NEXT: 0x4 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x8 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: }
+
+# HILO 10: R_MIPS_HI16's must have a matching R_MIPS_LO16 somewhere though.
+# When this is impossible we have two possible bad behaviours
+# depending on the linker implementation:
+# * The linker silently computes the wrong value using a partially
+# matching R_MIPS_LO16.
+# * The linker rejects the relocation table as invalid.
+# The latter is preferable since it's far easier to detect and debug so
+# check that we encourage this behaviour by putting invalid
+# R_MIPS_HI16's at the end of the relocation table where the risk of a
+# partial match is very low.
+ .section .mips_hilo_10, "ax", @progbits
+ lui $2, %hi(sym1)
+ lw $2, %lo(sym1)
+ lui $2, %hi(sym2)
+ lui $2, %hi(sym3)
+ lw $2, %lo(sym3)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_hilo_10 {
+# CHECK-NEXT: 0x0 R_MIPS_HI16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0xC R_MIPS_HI16 sym3
+# CHECK-NEXT: 0x10 R_MIPS_LO16 sym3
+# CHECK-NEXT: 0x8 R_MIPS_HI16 sym2
+# CHECK-NEXT: }
+
+# Now do the same tests for GOT/LO.
+# The rules only apply to R_MIPS_GOT16 on local symbols which are also
+# rewritten into section relative relocations.
+
+# GOTLO 1: GOT/LO already match
+ .section .mips_gotlo_1, "ax", @progbits
+ lui $2, %got(local1)
+ addiu $2, $2, %lo(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_1 {
+# CHECK-NEXT: 0x0 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 2: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+ .section .mips_gotlo_2, "ax", @progbits
+ addiu $2, $2, %lo(local1)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_2 {
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 3: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same.
+ .section .mips_gotlo_3, "ax", @progbits
+ addiu $2, $2, %lo(local1)
+ lui $2, %got(local2)
+ addiu $2, $2, %lo(local2)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_3 {
+# CHECK-NEXT: 0xC R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x8 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 3b: Same as 3 but a different starting order.
+ .section .mips_gotlo_3b, "ax", @progbits
+ addiu $2, $2, %lo(local1)
+ lui $2, %got(local1)
+ addiu $2, $2, %lo(local2)
+ lui $2, %got(local2)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_3b {
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: 0xC R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x8 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 4: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is the same.
+ .section .mips_gotlo_4, "ax", @progbits
+ addiu $2, $2, %lo(local1)
+ addiu $2, $2, %lo(local1+4)
+ lui $2, %got(local1+4)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_4 {
+# CHECK-NEXT: 0xC R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x8 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 5: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal. Exact matches are preferred so both
+# R_MIPS_GOT16's match the same R_MIPS_LO16.
+ .section .mips_gotlo_5, "ax", @progbits
+ lui $2, %got(local1)
+ lui $2, %got(local1)
+ addiu $2, $2, %lo(local1+1)
+ addiu $2, $2, %lo(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_5 {
+# CHECK-NEXT: 0x8 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x0 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0xC R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 6: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal. Smaller offsets are preferred so both
+# R_MIPS_GOT16's still match the same R_MIPS_LO16.
+ .section .mips_gotlo_6, "ax", @progbits
+ lui $2, %got(local1)
+ lui $2, %got(local1)
+ addiu $2, $2, %lo(local1+2)
+ addiu $2, $2, %lo(local1+1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_6 {
+# CHECK-NEXT: 0x8 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x0 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0xC R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 7: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+# The second relocation matches if the symbol is the same and the
+# offset is greater or equal so that the carry bit is correct. The two
+# R_MIPS_GOT16's therefore match different R_MIPS_LO16's.
+ .section .mips_gotlo_7, "ax", @progbits
+ addiu $2, $2, %lo(local1+1)
+ addiu $2, $2, %lo(local1+6)
+ lui $2, %got(local1+4)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_7 {
+# CHECK-NEXT: 0xC R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x8 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 8: R_MIPS_LO16's may be orphaned.
+ .section .mips_gotlo_8, "ax", @progbits
+ lw $2, %lo(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_8 {
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 8b: Another example of 8. The R_MIPS_LO16 at 0x4 is orphaned.
+ .section .mips_gotlo_8b, "ax", @progbits
+ lw $2, %lo(local1)
+ lw $2, %lo(local1)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_8b {
+# CHECK-NEXT: 0x8 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x4 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 9: R_MIPS_GOT16's don't need a matching R_MIPS_LO16 to immediately
+# follow so long as there is one after the R_MIPS_GOT16 somewhere.
+# This isn't permitted by the ABI specification but has been allowed
+# in practice for a very long time. The R_MIPS_GOT16's should be
+# ordered by the address they affect for purely cosmetic reasons.
+ .section .mips_gotlo_9, "ax", @progbits
+ lw $2, %lo(local1)
+ lui $2, %got(local1)
+ lui $2, %got(local1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_9 {
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x8 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x0 R_MIPS_LO16 .text
+# CHECK-NEXT: }
+
+# GOTLO 10: R_MIPS_GOT16's must have a matching R_MIPS_LO16 somewhere though.
+# When this is impossible we have two possible bad behaviours
+# depending on the linker implementation:
+# * The linker silently computes the wrong value using a partially
+# matching R_MIPS_LO16.
+# * The linker rejects the relocation table as invalid.
+# The latter is preferable since it's far easier to detect and debug
+# so check that we encourage this behaviour by putting invalid
+# R_MIPS_GOT16's at the end of the relocation table where the risk of
+# a partial match is very low.
+ .section .mips_gotlo_10, "ax", @progbits
+ lui $2, %got(local1)
+ lw $2, %lo(local1)
+ lui $2, %got(local2)
+ lui $2, %got(local3)
+ lw $2, %lo(local3)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_gotlo_10 {
+# CHECK-NEXT: 0x0 R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x4 R_MIPS_LO16 .text
+# CHECK-NEXT: 0xC R_MIPS_GOT16 .text
+# CHECK-NEXT: 0x10 R_MIPS_LO16 .text
+# CHECK-NEXT: 0x8 R_MIPS_GOT16 .text
+# CHECK-NEXT: }
+
+# Finally, do test 2 for R_MIPS_GOT16 on external symbols to prove they are
+# exempt from the rules for local symbols.
+
+# External GOTLO 2: R_MIPS_GOT16 must be followed by a matching R_MIPS_LO16.
+ .section .mips_ext_gotlo_2, "ax", @progbits
+ addiu $2, $2, %lo(sym1)
+ lui $2, %got(sym1)
+
+# CHECK-LABEL: Section ({{[0-9]+}}) .rel.mips_ext_gotlo_2 {
+# CHECK-NEXT: 0x0 R_MIPS_LO16 sym1
+# CHECK-NEXT: 0x4 R_MIPS_GOT16 sym1
+# CHECK-NEXT: }
+
+# Define some local symbols.
+ .text
+ nop
+local1: nop
+local2: nop
+local3: nop
diff --git a/test/MC/Mips/target-soft-float.s b/test/MC/Mips/target-soft-float.s
index 5865d5ab1269..f532cdf2ed97 100644
--- a/test/MC/Mips/target-soft-float.s
+++ b/test/MC/Mips/target-soft-float.s
@@ -269,10 +269,10 @@ foo:
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
ldc1 $f2, 16($7)
# FIXME: LDC1 is correctly rejected but the wrong error message is emitted.
- # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
+ # 32: :[[@LINE-2]]:19: error: expected memory with 16-bit signed offset
lwc1 $f2, 16($7)
# FIXME: LWC1 is correctly rejected but the wrong error message is emitted.
- # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
+ # 32: :[[@LINE-2]]:19: error: expected memory with 16-bit signed offset
madd.s $f2, $f2, $f2, $f2
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
mfc1 $7, $f2
@@ -313,7 +313,7 @@ foo:
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
sdc1 $f2, 16($7)
# FIXME: SDC1 is correctly rejected but the wrong error message is emitted.
- # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
+ # 32: :[[@LINE-2]]:19: error: expected memory with 16-bit signed offset
sqrt.d $f2, $f2
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
sqrt.s $f2, $f2
@@ -324,7 +324,7 @@ foo:
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
swc1 $f2, 16($7)
# FIXME: SWC1 is correctly rejected but the wrong error message is emitted.
- # 32: :[[@LINE-2]]:19: error: invalid operand for instruction
+ # 32: :[[@LINE-2]]:19: error: expected memory with 16-bit signed offset
trunc.w.d $f2, $f2
# 32: :[[@LINE-1]]:3: error: instruction requires a CPU feature not currently enabled
trunc.w.s $f2, $f2
diff --git a/test/MC/Mips/user-macro-argument-separation.s b/test/MC/Mips/user-macro-argument-separation.s
new file mode 100644
index 000000000000..a33701c05a42
--- /dev/null
+++ b/test/MC/Mips/user-macro-argument-separation.s
@@ -0,0 +1,40 @@
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
+# RUN: FileCheck %s
+# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
+# RUN: FileCheck %s
+# RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \
+# RUN: FileCheck %s
+
+# Check that the IAS expands macro instructions in the same way as GAS
+
+.extern sym
+# imm and rs are deliberately swapped to test whitespace separated arguments.
+.macro EX2 insn, rd, imm, rs
+.ex\@: \insn \rd, \rs, \imm
+.endm
+
+.option pic0
+
+EX2 addiu $2, 1 $3 # CHECK: addiu $2, $3, 1
+EX2 addiu $2, ~1 $3 # CHECK: addiu $2, $3, -2
+EX2 addiu $2, ~ 1 $3 # CHECK: addiu $2, $3, -2
+EX2 addiu $2, 1+1 $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1+ 1 $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1 +1 $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1 + 1 $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1+~1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1+~ 1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1+ ~1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1 +~1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1 +~ 1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1 + ~1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1 + ~ 1 $3 # CHECK: addiu $2, $3, -1
+EX2 addiu $2, 1+(1) $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1 +(1) $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1+ (1) $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1 + (1) $3 # CHECK: addiu $2, $3, 2
+EX2 addiu $2, 1+(1)+1 $3 # CHECK: addiu $2, $3, 3
+EX2 addiu $2, 1 +(1)+1 $3 # CHECK: addiu $2, $3, 3
+EX2 addiu $2, 1+ (1)+1 $3 # CHECK: addiu $2, $3, 3
+EX2 addiu $2, 1 + (1)+1 $3 # CHECK: addiu $2, $3, 3
+nop # CHECK: nop
diff --git a/test/MC/PowerPC/ppc64-encoding-bookII.s b/test/MC/PowerPC/ppc64-encoding-bookII.s
index 9b68dcc7e8d1..de8b0d24a558 100644
--- a/test/MC/PowerPC/ppc64-encoding-bookII.s
+++ b/test/MC/PowerPC/ppc64-encoding-bookII.s
@@ -73,10 +73,19 @@
# CHECK-BE: stwcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0x2d]
# CHECK-LE: stwcx. 2, 3, 4 # encoding: [0x2d,0x21,0x43,0x7c]
stwcx. 2, 3, 4
+
# CHECK-BE: stdcx. 2, 3, 4 # encoding: [0x7c,0x43,0x21,0xad]
# CHECK-LE: stdcx. 2, 3, 4 # encoding: [0xad,0x21,0x43,0x7c]
stdcx. 2, 3, 4
+# CHECK-BE: stwat 2, 3, 28 # encoding: [0x7c,0x43,0xe5,0x8c]
+# CHECK-LE: stwat 2, 3, 28 # encoding: [0x8c,0xe5,0x43,0x7c]
+ stwat 2, 3, 28
+
+# CHECK-BE: stdat 2, 3, 28 # encoding: [0x7c,0x43,0xe5,0xcc]
+# CHECK-LE: stdat 2, 3, 28 # encoding: [0xcc,0xe5,0x43,0x7c]
+ stdat 2, 3, 28
+
# CHECK-BE: ptesync # encoding: [0x7c,0x40,0x04,0xac]
# CHECK-LE: ptesync # encoding: [0xac,0x04,0x40,0x7c]
sync 2
@@ -131,6 +140,14 @@
# CHECK-LE: ldarx 2, 3, 4, 1 # encoding: [0xa9,0x20,0x43,0x7c]
ldarx 2, 3, 4, 1
+# CHECK-BE: lwat 2, 3, 28 # encoding: [0x7c,0x43,0xe4,0x8c]
+# CHECK-LE: lwat 2, 3, 28 # encoding: [0x8c,0xe4,0x43,0x7c]
+ lwat 2, 3, 28
+
+# CHECK-BE: ldat 2, 3, 28 # encoding: [0x7c,0x43,0xe4,0xcc]
+# CHECK-LE: ldat 2, 3, 28 # encoding: [0xcc,0xe4,0x43,0x7c]
+ ldat 2, 3, 28
+
# CHECK-BE: sync # encoding: [0x7c,0x00,0x04,0xac]
# CHECK-LE: sync # encoding: [0xac,0x04,0x00,0x7c]
sync
diff --git a/test/MC/PowerPC/ppc64-encoding-ext.s b/test/MC/PowerPC/ppc64-encoding-ext.s
index 143a30606f06..0b7bc927c63f 100644
--- a/test/MC/PowerPC/ppc64-encoding-ext.s
+++ b/test/MC/PowerPC/ppc64-encoding-ext.s
@@ -3497,6 +3497,12 @@
# CHECK-BE: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
# CHECK-LE: mfctr 2 # encoding: [0xa6,0x02,0x49,0x7c]
mfctr 2
+# CHECK-BE: mfvrsave 2 # encoding: [0x7c,0x40,0x42,0xa6]
+# CHECK-LE: mfvrsave 2 # encoding: [0xa6,0x42,0x40,0x7c]
+ mfvrsave 2
+# CHECK-BE: mtvrsave 2 # encoding: [0x7c,0x40,0x43,0xa6]
+# CHECK-LE: mtvrsave 2 # encoding: [0xa6,0x43,0x40,0x7c]
+ mtvrsave 2
# Miscellaneous mnemonics
@@ -3666,3 +3672,16 @@
# CHECK-LE: attn # encoding: [0x00,0x02,0x00,0x00]
attn
+# Copy-Paste Facility (Extended Mnemonics):
+# CHECK-BE: copy 2, 19, 0 # encoding: [0x7c,0x02,0x9e,0x0c]
+# CHECK-LE: copy 2, 19, 0 # encoding: [0x0c,0x9e,0x02,0x7c]
+ copy 2, 19
+# CHECK-BE: copy 2, 19, 1 # encoding: [0x7c,0x22,0x9e,0x0c]
+# CHECK-LE: copy 2, 19, 1 # encoding: [0x0c,0x9e,0x22,0x7c]
+ copy_first 2, 19
+# CHECK-BE: paste 17, 1, 0 # encoding: [0x7c,0x11,0x0f,0x0c]
+# CHECK-LE: paste 17, 1, 0 # encoding: [0x0c,0x0f,0x11,0x7c]
+ paste 17, 1
+# CHECK-BE: paste. 17, 1, 1 # encoding: [0x7c,0x31,0x0f,0x0d]
+# CHECK-LE: paste. 17, 1, 1 # encoding: [0x0d,0x0f,0x31,0x7c]
+ paste_last 17, 1
diff --git a/test/MC/PowerPC/ppc64-encoding-vmx.s b/test/MC/PowerPC/ppc64-encoding-vmx.s
index d8825bf33402..7ac4ce9e0d0c 100644
--- a/test/MC/PowerPC/ppc64-encoding-vmx.s
+++ b/test/MC/PowerPC/ppc64-encoding-vmx.s
@@ -742,3 +742,240 @@
# CHECK-LE: mfvscr 2 # encoding: [0x04,0x06,0x40,0x10]
mfvscr 2
+# Power9 instructions
+
+# Vector Compare Not Equal (Zero)
+# CHECK-BE: vcmpneb 2, 3, 4 # encoding: [0x10,0x43,0x20,0x07]
+# CHECK-LE: vcmpneb 2, 3, 4 # encoding: [0x07,0x20,0x43,0x10]
+ vcmpneb 2, 3, 4
+# CHECK-BE: vcmpneb. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x07]
+# CHECK-LE: vcmpneb. 2, 3, 4 # encoding: [0x07,0x24,0x43,0x10]
+ vcmpneb. 2, 3, 4
+# CHECK-BE: vcmpnezb 2, 3, 4 # encoding: [0x10,0x43,0x21,0x07]
+# CHECK-LE: vcmpnezb 2, 3, 4 # encoding: [0x07,0x21,0x43,0x10]
+ vcmpnezb 2, 3, 4
+# CHECK-BE: vcmpnezb. 2, 3, 4 # encoding: [0x10,0x43,0x25,0x07]
+# CHECK-LE: vcmpnezb. 2, 3, 4 # encoding: [0x07,0x25,0x43,0x10]
+ vcmpnezb. 2, 3, 4
+# CHECK-BE: vcmpneh 2, 3, 4 # encoding: [0x10,0x43,0x20,0x47]
+# CHECK-LE: vcmpneh 2, 3, 4 # encoding: [0x47,0x20,0x43,0x10]
+ vcmpneh 2, 3, 4
+# CHECK-BE: vcmpneh. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x47]
+# CHECK-LE: vcmpneh. 2, 3, 4 # encoding: [0x47,0x24,0x43,0x10]
+ vcmpneh. 2, 3, 4
+# CHECK-BE: vcmpnezh 2, 3, 4 # encoding: [0x10,0x43,0x21,0x47]
+# CHECK-LE: vcmpnezh 2, 3, 4 # encoding: [0x47,0x21,0x43,0x10]
+ vcmpnezh 2, 3, 4
+# CHECK-BE: vcmpnezh. 2, 3, 4 # encoding: [0x10,0x43,0x25,0x47]
+# CHECK-LE: vcmpnezh. 2, 3, 4 # encoding: [0x47,0x25,0x43,0x10]
+ vcmpnezh. 2, 3, 4
+# CHECK-BE: vcmpnew 2, 3, 4 # encoding: [0x10,0x43,0x20,0x87]
+# CHECK-LE: vcmpnew 2, 3, 4 # encoding: [0x87,0x20,0x43,0x10]
+ vcmpnew 2, 3, 4
+# CHECK-BE: vcmpnew. 2, 3, 4 # encoding: [0x10,0x43,0x24,0x87]
+# CHECK-LE: vcmpnew. 2, 3, 4 # encoding: [0x87,0x24,0x43,0x10]
+ vcmpnew. 2, 3, 4
+# CHECK-BE: vcmpnezw 2, 3, 4 # encoding: [0x10,0x43,0x21,0x87]
+# CHECK-LE: vcmpnezw 2, 3, 4 # encoding: [0x87,0x21,0x43,0x10]
+ vcmpnezw 2, 3, 4
+# CHECK-BE: vcmpnezw. 2, 3, 4 # encoding: [0x10,0x43,0x25,0x87]
+# CHECK-LE: vcmpnezw. 2, 3, 4 # encoding: [0x87,0x25,0x43,0x10]
+ vcmpnezw. 2, 3, 4
+
+# Vector Extract Unsigned
+# CHECK-BE: vextractub 2, 3, 15 # encoding: [0x10,0x4f,0x1a,0x0d]
+# CHECK-LE: vextractub 2, 3, 15 # encoding: [0x0d,0x1a,0x4f,0x10]
+ vextractub 2, 3, 15
+# CHECK-BE: vextractuh 2, 3, 14 # encoding: [0x10,0x4e,0x1a,0x4d]
+# CHECK-LE: vextractuh 2, 3, 14 # encoding: [0x4d,0x1a,0x4e,0x10]
+ vextractuh 2, 3, 14
+# CHECK-BE: vextractuw 2, 3, 12 # encoding: [0x10,0x4c,0x1a,0x8d]
+# CHECK-LE: vextractuw 2, 3, 12 # encoding: [0x8d,0x1a,0x4c,0x10]
+ vextractuw 2, 3, 12
+# CHECK-BE: vextractd 2, 3, 8 # encoding: [0x10,0x48,0x1a,0xcd]
+# CHECK-LE: vextractd 2, 3, 8 # encoding: [0xcd,0x1a,0x48,0x10]
+ vextractd 2, 3, 8
+
+# Vector Extract Unsigned Left/Right-Indexed
+# CHECK-BE: vextublx 2, 3, 4 # encoding: [0x10,0x43,0x26,0x0d]
+# CHECK-LE: vextublx 2, 3, 4 # encoding: [0x0d,0x26,0x43,0x10]
+ vextublx 2, 3, 4
+# CHECK-BE: vextubrx 2, 3, 4 # encoding: [0x10,0x43,0x27,0x0d]
+# CHECK-LE: vextubrx 2, 3, 4 # encoding: [0x0d,0x27,0x43,0x10]
+ vextubrx 2, 3, 4
+# CHECK-BE: vextuhlx 2, 3, 4 # encoding: [0x10,0x43,0x26,0x4d]
+# CHECK-LE: vextuhlx 2, 3, 4 # encoding: [0x4d,0x26,0x43,0x10]
+ vextuhlx 2, 3, 4
+# CHECK-BE: vextuhrx 2, 3, 4 # encoding: [0x10,0x43,0x27,0x4d]
+# CHECK-LE: vextuhrx 2, 3, 4 # encoding: [0x4d,0x27,0x43,0x10]
+ vextuhrx 2, 3, 4
+# CHECK-BE: vextuwlx 2, 3, 4 # encoding: [0x10,0x43,0x26,0x8d]
+# CHECK-LE: vextuwlx 2, 3, 4 # encoding: [0x8d,0x26,0x43,0x10]
+ vextuwlx 2, 3, 4
+# CHECK-BE: vextuwrx 2, 3, 4 # encoding: [0x10,0x43,0x27,0x8d]
+# CHECK-LE: vextuwrx 2, 3, 4 # encoding: [0x8d,0x27,0x43,0x10]
+ vextuwrx 2, 3, 4
+
+# Vector Insert Element
+# CHECK-BE: vinsertb 2, 3, 15 # encoding: [0x10,0x4f,0x1b,0x0d]
+# CHECK-LE: vinsertb 2, 3, 15 # encoding: [0x0d,0x1b,0x4f,0x10]
+ vinsertb 2, 3, 15
+# CHECK-BE: vinserth 2, 3, 14 # encoding: [0x10,0x4e,0x1b,0x4d]
+# CHECK-LE: vinserth 2, 3, 14 # encoding: [0x4d,0x1b,0x4e,0x10]
+ vinserth 2, 3, 14
+# CHECK-BE: vinsertw 2, 3, 12 # encoding: [0x10,0x4c,0x1b,0x8d]
+# CHECK-LE: vinsertw 2, 3, 12 # encoding: [0x8d,0x1b,0x4c,0x10]
+ vinsertw 2, 3, 12
+# CHECK-BE: vinsertd 2, 3, 8 # encoding: [0x10,0x48,0x1b,0xcd]
+# CHECK-LE: vinsertd 2, 3, 8 # encoding: [0xcd,0x1b,0x48,0x10]
+ vinsertd 2, 3, 8
+
+# Power9 instructions
+
+# Vector Count Trailing Zeros
+# CHECK-BE: vctzb 2, 3 # encoding: [0x10,0x5c,0x1e,0x02]
+# CHECK-LE: vctzb 2, 3 # encoding: [0x02,0x1e,0x5c,0x10]
+ vctzb 2, 3
+# CHECK-BE: vctzh 2, 3 # encoding: [0x10,0x5d,0x1e,0x02]
+# CHECK-LE: vctzh 2, 3 # encoding: [0x02,0x1e,0x5d,0x10]
+ vctzh 2, 3
+# CHECK-BE: vctzw 2, 3 # encoding: [0x10,0x5e,0x1e,0x02]
+# CHECK-LE: vctzw 2, 3 # encoding: [0x02,0x1e,0x5e,0x10]
+ vctzw 2, 3
+# CHECK-BE: vctzd 2, 3 # encoding: [0x10,0x5f,0x1e,0x02]
+# CHECK-LE: vctzd 2, 3 # encoding: [0x02,0x1e,0x5f,0x10]
+ vctzd 2, 3
+
+# CHECK-BE: vclzlsbb 2, 3 # encoding: [0x10,0x40,0x1e,0x02]
+# CHECK-LE: vclzlsbb 2, 3 # encoding: [0x02,0x1e,0x40,0x10]
+ vclzlsbb 2, 3
+# CHECK-BE: vctzlsbb 2, 3 # encoding: [0x10,0x41,0x1e,0x02]
+# CHECK-LE: vctzlsbb 2, 3 # encoding: [0x02,0x1e,0x41,0x10]
+ vctzlsbb 2, 3
+
+# Vector Extend Sign
+# CHECK-BE: vextsb2w 2, 3 # encoding: [0x10,0x50,0x1e,0x02]
+# CHECK-LE: vextsb2w 2, 3 # encoding: [0x02,0x1e,0x50,0x10]
+ vextsb2w 2, 3
+# CHECK-BE: vextsh2w 2, 3 # encoding: [0x10,0x51,0x1e,0x02]
+# CHECK-LE: vextsh2w 2, 3 # encoding: [0x02,0x1e,0x51,0x10]
+ vextsh2w 2, 3
+# CHECK-BE: vextsb2d 2, 3 # encoding: [0x10,0x58,0x1e,0x02]
+# CHECK-LE: vextsb2d 2, 3 # encoding: [0x02,0x1e,0x58,0x10]
+ vextsb2d 2, 3
+# CHECK-BE: vextsh2d 2, 3 # encoding: [0x10,0x59,0x1e,0x02]
+# CHECK-LE: vextsh2d 2, 3 # encoding: [0x02,0x1e,0x59,0x10]
+ vextsh2d 2, 3
+# CHECK-BE: vextsw2d 2, 3 # encoding: [0x10,0x5a,0x1e,0x02]
+# CHECK-LE: vextsw2d 2, 3 # encoding: [0x02,0x1e,0x5a,0x10]
+ vextsw2d 2, 3
+
+# Vector Integer Negate
+# CHECK-BE: vnegw 2, 3 # encoding: [0x10,0x46,0x1e,0x02]
+# CHECK-LE: vnegw 2, 3 # encoding: [0x02,0x1e,0x46,0x10]
+ vnegw 2, 3
+# CHECK-BE: vnegd 2, 3 # encoding: [0x10,0x47,0x1e,0x02]
+# CHECK-LE: vnegd 2, 3 # encoding: [0x02,0x1e,0x47,0x10]
+ vnegd 2, 3
+
+# Vector Parity Byte
+# CHECK-BE: vprtybw 2, 3 # encoding: [0x10,0x48,0x1e,0x02]
+# CHECK-LE: vprtybw 2, 3 # encoding: [0x02,0x1e,0x48,0x10]
+ vprtybw 2, 3
+# CHECK-BE: vprtybd 2, 3 # encoding: [0x10,0x49,0x1e,0x02]
+# CHECK-LE: vprtybd 2, 3 # encoding: [0x02,0x1e,0x49,0x10]
+ vprtybd 2, 3
+# CHECK-BE: vprtybq 2, 3 # encoding: [0x10,0x4a,0x1e,0x02]
+# CHECK-LE: vprtybq 2, 3 # encoding: [0x02,0x1e,0x4a,0x10]
+ vprtybq 2, 3
+
+# Vector (Bit) Permute (Right-indexed)
+# CHECK-BE: vbpermd 2, 5, 17 # encoding: [0x10,0x45,0x8d,0xcc]
+# CHECK-LE: vbpermd 2, 5, 17 # encoding: [0xcc,0x8d,0x45,0x10]
+ vbpermd 2, 5, 17
+# CHECK-BE: vpermr 2, 3, 4, 5 # encoding: [0x10,0x43,0x21,0x7b]
+# CHECK-LE: vpermr 2, 3, 4, 5 # encoding: [0x7b,0x21,0x43,0x10]
+ vpermr 2, 3, 4, 5
+
+# Vector Rotate Left Mask/Mask-Insert
+# CHECK-BE: vrlwnm 2, 3, 4 # encoding: [0x10,0x43,0x21,0x85]
+# CHECK-LE: vrlwnm 2, 3, 4 # encoding: [0x85,0x21,0x43,0x10]
+ vrlwnm 2, 3, 4
+# CHECK-BE: vrlwmi 2, 3, 4 # encoding: [0x10,0x43,0x20,0x85]
+# CHECK-LE: vrlwmi 2, 3, 4 # encoding: [0x85,0x20,0x43,0x10]
+ vrlwmi 2, 3, 4
+# CHECK-BE: vrldnm 2, 3, 4 # encoding: [0x10,0x43,0x21,0xc5]
+# CHECK-LE: vrldnm 2, 3, 4 # encoding: [0xc5,0x21,0x43,0x10]
+ vrldnm 2, 3, 4
+# CHECK-BE: vrldmi 2, 3, 4 # encoding: [0x10,0x43,0x20,0xc5]
+# CHECK-LE: vrldmi 2, 3, 4 # encoding: [0xc5,0x20,0x43,0x10]
+ vrldmi 2, 3, 4
+
+# Vector Shift Left/Right
+# CHECK-BE: vslv 2, 3, 4 # encoding: [0x10,0x43,0x27,0x44]
+# CHECK-LE: vslv 2, 3, 4 # encoding: [0x44,0x27,0x43,0x10]
+ vslv 2, 3, 4
+# CHECK-BE: vsrv 2, 3, 4 # encoding: [0x10,0x43,0x27,0x04]
+# CHECK-LE: vsrv 2, 3, 4 # encoding: [0x04,0x27,0x43,0x10]
+ vsrv 2, 3, 4
+
+# Vector Multiply-by-10
+# CHECK-BE: vmul10uq 2, 3 # encoding: [0x10,0x43,0x02,0x01]
+# CHECK-LE: vmul10uq 2, 3 # encoding: [0x01,0x02,0x43,0x10]
+ vmul10uq 2, 3
+# CHECK-BE: vmul10cuq 2, 3 # encoding: [0x10,0x43,0x00,0x01]
+# CHECK-LE: vmul10cuq 2, 3 # encoding: [0x01,0x00,0x43,0x10]
+ vmul10cuq 2, 3
+# CHECK-BE: vmul10euq 2, 3, 4 # encoding: [0x10,0x43,0x22,0x41]
+# CHECK-LE: vmul10euq 2, 3, 4 # encoding: [0x41,0x22,0x43,0x10]
+ vmul10euq 2, 3, 4
+# CHECK-BE: vmul10ecuq 2, 3, 4 # encoding: [0x10,0x43,0x20,0x41]
+# CHECK-LE: vmul10ecuq 2, 3, 4 # encoding: [0x41,0x20,0x43,0x10]
+ vmul10ecuq 2, 3, 4
+
+# Decimal Convert From/to National/Zoned/Signed-QWord
+# CHECK-BE: bcdcfn. 27, 31, 1 # encoding: [0x13,0x67,0xff,0x81]
+# CHECK-LE: bcdcfn. 27, 31, 1 # encoding: [0x81,0xff,0x67,0x13]
+ bcdcfn. 27, 31, 1
+# CHECK-BE: bcdcfz. 27, 31, 1 # encoding: [0x13,0x66,0xff,0x81]
+# CHECK-LE: bcdcfz. 27, 31, 1 # encoding: [0x81,0xff,0x66,0x13]
+ bcdcfz. 27, 31, 1
+# CHECK-BE: bcdctn. 27, 31 # encoding: [0x13,0x65,0xfd,0x81]
+# CHECK-LE: bcdctn. 27, 31 # encoding: [0x81,0xfd,0x65,0x13]
+ bcdctn. 27, 31
+# CHECK-BE: bcdctz. 27, 31, 1 # encoding: [0x13,0x64,0xff,0x81]
+# CHECK-LE: bcdctz. 27, 31, 1 # encoding: [0x81,0xff,0x64,0x13]
+ bcdctz. 27, 31, 1
+# CHECK-BE: bcdcfsq. 27, 31, 1 # encoding: [0x13,0x62,0xff,0x81]
+# CHECK-LE: bcdcfsq. 27, 31, 1 # encoding: [0x81,0xff,0x62,0x13]
+ bcdcfsq. 27, 31, 1
+# CHECK-BE: bcdctsq. 27, 31 # encoding: [0x13,0x60,0xfd,0x81]
+# CHECK-LE: bcdctsq. 27, 31 # encoding: [0x81,0xfd,0x60,0x13]
+ bcdctsq. 27, 31
+
+# Decimal Copy-Sign/Set-Sign
+# CHECK-BE: bcdcpsgn. 27, 31, 7 # encoding: [0x13,0x7f,0x3b,0x41]
+# CHECK-LE: bcdcpsgn. 27, 31, 7 # encoding: [0x41,0x3b,0x7f,0x13]
+ bcdcpsgn. 27, 31, 7
+# CHECK-BE: bcdsetsgn. 27, 31, 1 # encoding: [0x13,0x7f,0xff,0x81]
+# CHECK-LE: bcdsetsgn. 27, 31, 1 # encoding: [0x81,0xff,0x7f,0x13]
+ bcdsetsgn. 27, 31, 1
+
+# Decimal Shift/Unsigned-Shift/Shift-and-Round
+# CHECK-BE: bcds. 27, 31, 7, 1 # encoding: [0x13,0x7f,0x3e,0xc1]
+# CHECK-LE: bcds. 27, 31, 7, 1 # encoding: [0xc1,0x3e,0x7f,0x13]
+ bcds. 27, 31, 7, 1
+# CHECK-BE: bcdus. 27, 31, 7 # encoding: [0x13,0x7f,0x3c,0x81]
+# CHECK-LE: bcdus. 27, 31, 7 # encoding: [0x81,0x3c,0x7f,0x13]
+ bcdus. 27, 31, 7
+# CHECK-BE: bcdsr. 27, 31, 7, 1 # encoding: [0x13,0x7f,0x3f,0xc1]
+# CHECK-LE: bcdsr. 27, 31, 7, 1 # encoding: [0xc1,0x3f,0x7f,0x13]
+ bcdsr. 27, 31, 7, 1
+
+# Decimal (Unsigned) Truncate
+# CHECK-BE: bcdtrunc. 27, 31, 7, 1 # encoding: [0x13,0x7f,0x3f,0x01]
+# CHECK-LE: bcdtrunc. 27, 31, 7, 1 # encoding: [0x01,0x3f,0x7f,0x13]
+ bcdtrunc. 27, 31, 7, 1
+# CHECK-BE: bcdutrunc. 27, 31, 7 # encoding: [0x13,0x7f,0x3d,0x41]
+# CHECK-LE: bcdutrunc. 27, 31, 7 # encoding: [0x41,0x3d,0x7f,0x13]
+ bcdutrunc. 27, 31, 7
diff --git a/test/MC/PowerPC/ppc64-encoding.s b/test/MC/PowerPC/ppc64-encoding.s
index b2aac8874ffe..70c2e949debb 100644
--- a/test/MC/PowerPC/ppc64-encoding.s
+++ b/test/MC/PowerPC/ppc64-encoding.s
@@ -197,6 +197,9 @@
# CHECK-BE: ldux 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x6a]
# CHECK-LE: ldux 2, 3, 4 # encoding: [0x6a,0x20,0x43,0x7c]
ldux 2, 3, 4
+# CHECK-BE: ldmx 2, 3, 4 # encoding: [0x7c,0x43,0x22,0x6a]
+# CHECK-LE: ldmx 2, 3, 4 # encoding: [0x6a,0x22,0x43,0x7c]
+ ldmx 2, 3, 4
# Fixed-point store instructions
@@ -530,6 +533,24 @@
# CHECK-BE: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
# CHECK-LE: cmplw 2, 3, 4 # encoding: [0x40,0x20,0x03,0x7d]
cmpl 2, 0, 3, 4
+# CHECK-BE: cmprb 3, 1, 7, 17 # encoding: [0x7d,0xa7,0x89,0x80]
+# CHECK-LE: cmprb 3, 1, 7, 17 # encoding: [0x80,0x89,0xa7,0x7d]
+ cmprb 3, 1, 7, 17
+# CHECK-BE: cmpeqb 3, 7, 17 # encoding: [0x7d,0x87,0x89,0xc0]
+# CHECK-LE: cmpeqb 3, 7, 17 # encoding: [0xc0,0x89,0x87,0x7d]
+ cmpeqb 3, 7, 17
+# CHECK-BE: cnttzw 7, 17 # encoding: [0x7e,0x27,0x04,0x34]
+# CHECK-LE: cnttzw 7, 17 # encoding: [0x34,0x04,0x27,0x7e]
+ cnttzw 7, 17
+# CHECK-BE: cnttzw. 7, 17 # encoding: [0x7e,0x27,0x04,0x35]
+# CHECK-LE: cnttzw. 7, 17 # encoding: [0x35,0x04,0x27,0x7e]
+ cnttzw. 7, 17
+# CHECK-BE: cnttzd 7, 17 # encoding: [0x7e,0x27,0x04,0x74]
+# CHECK-LE: cnttzd 7, 17 # encoding: [0x74,0x04,0x27,0x7e]
+ cnttzd 7, 17
+# CHECK-BE: cnttzd. 7, 17 # encoding: [0x7e,0x27,0x04,0x75]
+# CHECK-LE: cnttzd. 7, 17 # encoding: [0x75,0x04,0x27,0x7e]
+ cnttzd. 7, 17
# Fixed-point trap instructions
@@ -833,6 +854,9 @@
# CHECK-BE: mfocrf 16, 8 # encoding: [0x7e,0x10,0x80,0x26]
# CHECK-LE: mfocrf 16, 8 # encoding: [0x26,0x80,0x10,0x7e]
mfocrf 16, 8
+# CHECK-BE: mcrxrx 7 # encoding: [0x7f,0x80,0x04,0x80]
+# CHECK-LE: mcrxrx 7 # encoding: [0x80,0x04,0x80,0x7f]
+ mcrxrx 7
# Move to/from segment register
# CHECK-BE: mtsr 12, 10 # encoding: [0x7d,0x4c,0x01,0xa4]
@@ -848,3 +872,34 @@
# CHECK-BE: mfsrin 10, 12 # encoding: [0x7d,0x40,0x65,0x26]
# CHECK-LE: mfsrin 10, 12 # encoding: [0x26,0x65,0x40,0x7d]
mfsrin %r10,%r12
+
+# Copy-Paste Facility
+# CHECK-BE: copy 2, 19, 1 # encoding: [0x7c,0x22,0x9e,0x0c]
+# CHECK-LE: copy 2, 19, 1 # encoding: [0x0c,0x9e,0x22,0x7c]
+ copy 2, 19, 1
+# CHECK-BE: paste 17, 1, 1 # encoding: [0x7c,0x31,0x0f,0x0c]
+# CHECK-LE: paste 17, 1, 1 # encoding: [0x0c,0x0f,0x31,0x7c]
+ paste 17, 1, 1
+# CHECK-BE: cp_abort # encoding: [0x7c,0x00,0x06,0x8c]
+# CHECK-LE: cp_abort # encoding: [0x8c,0x06,0x00,0x7c]
+ cp_abort
+
+# Message Synchronize
+# CHECK-BE: msgsync # encoding: [0x7c,0x00,0x06,0xec]
+# CHECK-LE: msgsync # encoding: [0xec,0x06,0x00,0x7c]
+ msgsync
+
+# SLB Invalidate Entry Global
+# CHECK-BE: slbieg 6, 21 # encoding: [0x7c,0xc0,0xab,0xa4]
+# CHECK-LE: slbieg 6, 21 # encoding: [0xa4,0xab,0xc0,0x7c]
+ slbieg 6, 21
+
+# SLB Synchronize
+# CHECK-BE: slbsync # encoding: [0x7c,0x00,0x02,0xa4]
+# CHECK-LE: slbsync # encoding: [0xa4,0x02,0x00,0x7c]
+ slbsync
+
+# Power-Saving Mode Instruction
+# CHECK-BE: stop # encoding: [0x4c,0x00,0x02,0xe4]
+# CHECK-LE: stop # encoding: [0xe4,0x02,0x00,0x4c]
+ stop
diff --git a/test/MC/PowerPC/ppc64-fixups.s b/test/MC/PowerPC/ppc64-fixups.s
index 20a70c270547..0b8375bf72fa 100644
--- a/test/MC/PowerPC/ppc64-fixups.s
+++ b/test/MC/PowerPC/ppc64-fixups.s
@@ -338,10 +338,10 @@ base:
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO target 0x0
addi 3, 3, target@tprel@l
-# CHECK-BE: addi 3, 3, target@tprel # encoding: [0x38,0x63,A,A]
-# CHECK-LE: addi 3, 3, target@tprel # encoding: [A,A,0x63,0x38]
-# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16
-# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16
+# CHECK-BE: addi 3, 3, target@TPREL # encoding: [0x38,0x63,A,A]
+# CHECK-LE: addi 3, 3, target@TPREL # encoding: [A,A,0x63,0x38]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16 target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16 target 0x0
addi 3, 3, target@tprel
@@ -394,10 +394,10 @@ base:
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_LO_DS target 0x0
ld 1, target@tprel@l(3)
-# CHECK-BE: ld 1, target@tprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
-# CHECK-LE: ld 1, target@tprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
-# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@tprel, kind: fixup_ppc_half16ds
-# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@tprel, kind: fixup_ppc_half16ds
+# CHECK-BE: ld 1, target@TPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
+# CHECK-LE: ld 1, target@TPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@TPREL, kind: fixup_ppc_half16ds
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@TPREL, kind: fixup_ppc_half16ds
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_TPREL16_DS target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_TPREL16_DS target 0x0
ld 1, target@tprel(3)
@@ -418,10 +418,10 @@ base:
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO target 0x0
addi 3, 3, target@dtprel@l
-# CHECK-BE: addi 3, 3, target@dtprel # encoding: [0x38,0x63,A,A]
-# CHECK-LE: addi 3, 3, target@dtprel # encoding: [A,A,0x63,0x38]
-# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16
-# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16
+# CHECK-BE: addi 3, 3, target@DTPREL # encoding: [0x38,0x63,A,A]
+# CHECK-LE: addi 3, 3, target@DTPREL # encoding: [A,A,0x63,0x38]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16 target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16 target 0x0
addi 3, 3, target@dtprel
@@ -474,10 +474,10 @@ base:
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_LO_DS target 0x0
ld 1, target@dtprel@l(3)
-# CHECK-BE: ld 1, target@dtprel(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
-# CHECK-LE: ld 1, target@dtprel(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
-# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@dtprel, kind: fixup_ppc_half16ds
-# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@dtprel, kind: fixup_ppc_half16ds
+# CHECK-BE: ld 1, target@DTPREL(3) # encoding: [0xe8,0x23,A,0bAAAAAA00]
+# CHECK-LE: ld 1, target@DTPREL(3) # encoding: [0bAAAAAA00,A,0x23,0xe8]
+# CHECK-BE-NEXT: # fixup A - offset: 2, value: target@DTPREL, kind: fixup_ppc_half16ds
+# CHECK-LE-NEXT: # fixup A - offset: 0, value: target@DTPREL, kind: fixup_ppc_half16ds
# CHECK-BE-REL: 0x{{[0-9A-F]*[26AE]}} R_PPC64_DTPREL16_DS target 0x0
# CHECK-LE-REL: 0x{{[0-9A-F]*[048C]}} R_PPC64_DTPREL16_DS target 0x0
ld 1, target@dtprel(3)
diff --git a/test/MC/PowerPC/ppc64-initial-cfa.s b/test/MC/PowerPC/ppc64-initial-cfa.s
index ca97e1b96b07..819cd1114ae5 100644
--- a/test/MC/PowerPC/ppc64-initial-cfa.s
+++ b/test/MC/PowerPC/ppc64-initial-cfa.s
@@ -1,10 +1,10 @@
-# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -relocation-model=static %s | \
+# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=STATIC -check-prefix=STATIC-BE
-# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -relocation-model=pic %s | \
+# RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=PIC -check-prefix=PIC-BE
-# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -relocation-model=static %s | \
+# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=STATIC -check-prefix=STATIC-LE
-# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -relocation-model=pic %s | \
+# RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj %s | \
# RUN: llvm-readobj -s -sr -sd | FileCheck %s -check-prefix=PIC -check-prefix=PIC-LE
_proc:
diff --git a/test/MC/PowerPC/ppc64-localentry.s b/test/MC/PowerPC/ppc64-localentry.s
index 03f760ef86ea..cc1de288fc1e 100644
--- a/test/MC/PowerPC/ppc64-localentry.s
+++ b/test/MC/PowerPC/ppc64-localentry.s
@@ -61,7 +61,8 @@ copy2 = callee2
# CHECK-NEXT: Size: 16
# CHECK-NEXT: Binding: Local
# CHECK-NEXT: Type: Function
-# CHECK-NEXT: Other: 96
+# CHECK-NEXT: Other [ (0x60)
+# CHECK-NEXT: ]
# CHECK-NEXT: Section: .text
# CHECK: Name: callee2
# CHECK-NEXT: Value:
@@ -77,7 +78,8 @@ copy2 = callee2
# CHECK-NEXT: Size: 16
# CHECK-NEXT: Binding: Local
# CHECK-NEXT: Type: Function
-# CHECK-NEXT: Other: 96
+# CHECK-NEXT: Other [ (0x60)
+# CHECK-NEXT: ]
# CHECK-NEXT: Section: .text
# CHECK: Name: copy2
# CHECK-NEXT: Value:
diff --git a/test/MC/PowerPC/st-other-crash.s b/test/MC/PowerPC/st-other-crash.s
index 20f51f761373..26d8d2dc0c3b 100644
--- a/test/MC/PowerPC/st-other-crash.s
+++ b/test/MC/PowerPC/st-other-crash.s
@@ -9,7 +9,8 @@
// CHECK-NEXT: Size: 0
// CHECK-NEXT: Binding: Local (0x0)
// CHECK-NEXT: Type: None (0x0)
-// CHECK-NEXT: Other: 64
+// CHECK-NEXT: Other [ (0x40)
+// CHECK-NEXT: ]
// CHECK-NEXT: Section: .group
// CHECK-NEXT: }
diff --git a/test/MC/PowerPC/vsx.s b/test/MC/PowerPC/vsx.s
index 2c03659c9cde..7dae97b0060a 100644
--- a/test/MC/PowerPC/vsx.s
+++ b/test/MC/PowerPC/vsx.s
@@ -547,3 +547,418 @@
# CHECK-BE: mtvsrwz 0, 3 # encoding: [0x7c,0x03,0x01,0xe6]
# CHECK-LE: mtvsrwz 0, 3 # encoding: [0xe6,0x01,0x03,0x7c]
mtvsrwz 0, 3
+
+# Power9 Instructions:
+
+# Copy Sign
+# CHECK-BE: xscpsgnqp 7, 31, 27 # encoding: [0xfc,0xff,0xd8,0xc8]
+# CHECK-LE: xscpsgnqp 7, 31, 27 # encoding: [0xc8,0xd8,0xff,0xfc]
+ xscpsgnqp 7, 31, 27
+
+# Absolute/Negative Absolute/Negate
+# CHECK-BE: xsabsqp 7, 27 # encoding: [0xfc,0xe0,0xde,0x48]
+# CHECK-LE: xsabsqp 7, 27 # encoding: [0x48,0xde,0xe0,0xfc]
+ xsabsqp 7, 27
+# CHECK-BE: xsnegqp 7, 27 # encoding: [0xfc,0xf0,0xde,0x48]
+# CHECK-LE: xsnegqp 7, 27 # encoding: [0x48,0xde,0xf0,0xfc]
+ xsnegqp 7, 27
+# CHECK-BE: xsnabsqp 7, 27 # encoding: [0xfc,0xe8,0xde,0x48]
+# CHECK-LE: xsnabsqp 7, 27 # encoding: [0x48,0xde,0xe8,0xfc]
+ xsnabsqp 7, 27
+
+# Add/Divide/Multiply/Square-Root/Subtract
+# CHECK-BE: xsaddqp 7, 31, 27 # encoding: [0xfc,0xff,0xd8,0x08]
+# CHECK-LE: xsaddqp 7, 31, 27 # encoding: [0x08,0xd8,0xff,0xfc]
+ xsaddqp 7, 31, 27
+# CHECK-BE: xsaddqpo 7, 31, 27 # encoding: [0xfc,0xff,0xd8,0x09]
+# CHECK-LE: xsaddqpo 7, 31, 27 # encoding: [0x09,0xd8,0xff,0xfc]
+ xsaddqpo 7, 31, 27
+# CHECK-BE: xsdivqp 7, 31, 27 # encoding: [0xfc,0xff,0xdc,0x48]
+# CHECK-LE: xsdivqp 7, 31, 27 # encoding: [0x48,0xdc,0xff,0xfc]
+ xsdivqp 7, 31, 27
+# CHECK-BE: xsdivqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdc,0x49]
+# CHECK-LE: xsdivqpo 7, 31, 27 # encoding: [0x49,0xdc,0xff,0xfc]
+ xsdivqpo 7, 31, 27
+# CHECK-BE: xsmulqp 7, 31, 27 # encoding: [0xfc,0xff,0xd8,0x48]
+# CHECK-LE: xsmulqp 7, 31, 27 # encoding: [0x48,0xd8,0xff,0xfc]
+ xsmulqp 7, 31, 27
+# CHECK-BE: xsmulqpo 7, 31, 27 # encoding: [0xfc,0xff,0xd8,0x49]
+# CHECK-LE: xsmulqpo 7, 31, 27 # encoding: [0x49,0xd8,0xff,0xfc]
+ xsmulqpo 7, 31, 27
+# CHECK-BE: xssqrtqp 7, 31 # encoding: [0xfc,0xfb,0xfe,0x48]
+# CHECK-LE: xssqrtqp 7, 31 # encoding: [0x48,0xfe,0xfb,0xfc]
+ xssqrtqp 7, 31
+# CHECK-BE: xssqrtqpo 7, 31 # encoding: [0xfc,0xfb,0xfe,0x49]
+# CHECK-LE: xssqrtqpo 7, 31 # encoding: [0x49,0xfe,0xfb,0xfc]
+ xssqrtqpo 7, 31
+# CHECK-BE: xssubqp 7, 31, 27 # encoding: [0xfc,0xff,0xdc,0x08]
+# CHECK-LE: xssubqp 7, 31, 27 # encoding: [0x08,0xdc,0xff,0xfc]
+ xssubqp 7, 31, 27
+# CHECK-BE: xssubqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdc,0x09]
+# CHECK-LE: xssubqpo 7, 31, 27 # encoding: [0x09,0xdc,0xff,0xfc]
+ xssubqpo 7, 31, 27
+
+# (Negative) Multiply-Add/Subtract
+# CHECK-BE: xsmaddqp 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x08]
+# CHECK-LE: xsmaddqp 7, 31, 27 # encoding: [0x08,0xdb,0xff,0xfc]
+ xsmaddqp 7, 31, 27
+# CHECK-BE: xsmaddqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x09]
+# CHECK-LE: xsmaddqpo 7, 31, 27 # encoding: [0x09,0xdb,0xff,0xfc]
+ xsmaddqpo 7, 31, 27
+# CHECK-BE: xsmsubqp 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x48]
+# CHECK-LE: xsmsubqp 7, 31, 27 # encoding: [0x48,0xdb,0xff,0xfc]
+ xsmsubqp 7, 31, 27
+# CHECK-BE: xsmsubqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x49]
+# CHECK-LE: xsmsubqpo 7, 31, 27 # encoding: [0x49,0xdb,0xff,0xfc]
+ xsmsubqpo 7, 31, 27
+# CHECK-BE: xsnmaddqp 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x88]
+# CHECK-LE: xsnmaddqp 7, 31, 27 # encoding: [0x88,0xdb,0xff,0xfc]
+ xsnmaddqp 7, 31, 27
+# CHECK-BE: xsnmaddqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0x89]
+# CHECK-LE: xsnmaddqpo 7, 31, 27 # encoding: [0x89,0xdb,0xff,0xfc]
+ xsnmaddqpo 7, 31, 27
+# CHECK-BE: xsnmsubqp 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0xc8]
+# CHECK-LE: xsnmsubqp 7, 31, 27 # encoding: [0xc8,0xdb,0xff,0xfc]
+ xsnmsubqp 7, 31, 27
+# CHECK-BE: xsnmsubqpo 7, 31, 27 # encoding: [0xfc,0xff,0xdb,0xc9]
+# CHECK-LE: xsnmsubqpo 7, 31, 27 # encoding: [0xc9,0xdb,0xff,0xfc]
+ xsnmsubqpo 7, 31, 27
+
+# Compare Ordered/Unordered
+# CHECK-BE: xscmpoqp 6, 31, 27 # encoding: [0xff,0x1f,0xd9,0x08]
+# CHECK-LE: xscmpoqp 6, 31, 27 # encoding: [0x08,0xd9,0x1f,0xff]
+ xscmpoqp 6, 31, 27
+# CHECK-BE: xscmpuqp 6, 31, 27 # encoding: [0xff,0x1f,0xdd,0x08]
+# CHECK-LE: xscmpuqp 6, 31, 27 # encoding: [0x08,0xdd,0x1f,0xff]
+ xscmpuqp 6, 31, 27
+
+# Compare Exponents
+# CHECK-BE: xscmpexpdp 6, 63, 27 # encoding: [0xf3,0x1f,0xd9,0xdc]
+# CHECK-LE: xscmpexpdp 6, 63, 27 # encoding: [0xdc,0xd9,0x1f,0xf3]
+ xscmpexpdp 6, 63, 27
+# CHECK-BE: xscmpexpqp 6, 31, 27 # encoding: [0xff,0x1f,0xd9,0x48]
+# CHECK-LE: xscmpexpqp 6, 31, 27 # encoding: [0x48,0xd9,0x1f,0xff]
+ xscmpexpqp 6, 31, 27
+
+# Compare ==, >=, >, !=
+# CHECK-BE: xscmpeqdp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x1c]
+# CHECK-LE: xscmpeqdp 7, 63, 27 # encoding: [0x1c,0xd8,0xff,0xf0]
+ xscmpeqdp 7, 63, 27
+# CHECK-BE: xscmpgedp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x9c]
+# CHECK-LE: xscmpgedp 7, 63, 27 # encoding: [0x9c,0xd8,0xff,0xf0]
+ xscmpgedp 7, 63, 27
+# CHECK-BE: xscmpgtdp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0x5c]
+# CHECK-LE: xscmpgtdp 7, 63, 27 # encoding: [0x5c,0xd8,0xff,0xf0]
+ xscmpgtdp 7, 63, 27
+# CHECK-BE: xscmpnedp 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0xdc]
+# CHECK-LE: xscmpnedp 7, 63, 27 # encoding: [0xdc,0xd8,0xff,0xf0]
+ xscmpnedp 7, 63, 27
+
+# Vector Compare Not Equal
+# CHECK-BE: xvcmpnedp 7, 63, 27 # encoding: [0xf0,0xff,0xdb,0xdc]
+# CHECK-LE: xvcmpnedp 7, 63, 27 # encoding: [0xdc,0xdb,0xff,0xf0]
+ xvcmpnedp 7, 63, 27
+# CHECK-BE: xvcmpnedp. 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0xdc]
+# CHECK-LE: xvcmpnedp. 7, 63, 27 # encoding: [0xdc,0xdf,0xff,0xf0]
+ xvcmpnedp. 7, 63, 27
+# CHECK-BE: xvcmpnesp 7, 63, 27 # encoding: [0xf0,0xff,0xda,0xdc]
+# CHECK-LE: xvcmpnesp 7, 63, 27 # encoding: [0xdc,0xda,0xff,0xf0]
+ xvcmpnesp 7, 63, 27
+# CHECK-BE: xvcmpnesp. 7, 63, 27 # encoding: [0xf0,0xff,0xde,0xdc]
+# CHECK-LE: xvcmpnesp. 7, 63, 27 # encoding: [0xdc,0xde,0xff,0xf0]
+ xvcmpnesp. 7, 63, 27
+
+# Convert DP -> QP
+# CHECK-BE: xscvdpqp 7, 27 # encoding: [0xfc,0xf6,0xde,0x88]
+# CHECK-LE: xscvdpqp 7, 27 # encoding: [0x88,0xde,0xf6,0xfc]
+ xscvdpqp 7, 27
+
+# Round & Convert QP -> DP
+# CHECK-BE: xscvqpdp 7, 27 # encoding: [0xfc,0xf4,0xde,0x88]
+# CHECK-LE: xscvqpdp 7, 27 # encoding: [0x88,0xde,0xf4,0xfc]
+ xscvqpdp 7, 27
+# CHECK-BE: xscvqpdpo 7, 27 # encoding: [0xfc,0xf4,0xde,0x89]
+# CHECK-LE: xscvqpdpo 7, 27 # encoding: [0x89,0xde,0xf4,0xfc]
+ xscvqpdpo 7, 27
+
+# Truncate & Convert QP -> (Un)Signed (D)Word
+# CHECK-BE: xscvqpsdz 7, 27 # encoding: [0xfc,0xf9,0xde,0x88]
+# CHECK-LE: xscvqpsdz 7, 27 # encoding: [0x88,0xde,0xf9,0xfc]
+ xscvqpsdz 7, 27
+# CHECK-BE: xscvqpswz 7, 27 # encoding: [0xfc,0xe9,0xde,0x88]
+# CHECK-LE: xscvqpswz 7, 27 # encoding: [0x88,0xde,0xe9,0xfc]
+ xscvqpswz 7, 27
+# CHECK-BE: xscvqpudz 7, 27 # encoding: [0xfc,0xf1,0xde,0x88]
+# CHECK-LE: xscvqpudz 7, 27 # encoding: [0x88,0xde,0xf1,0xfc]
+ xscvqpudz 7, 27
+# CHECK-BE: xscvqpuwz 7, 27 # encoding: [0xfc,0xe1,0xde,0x88]
+# CHECK-LE: xscvqpuwz 7, 27 # encoding: [0x88,0xde,0xe1,0xfc]
+ xscvqpuwz 7, 27
+
+# Convert (Un)Signed DWord -> QP
+# CHECK-BE: xscvsdqp 7, 27 # encoding: [0xfc,0xea,0xde,0x88]
+# CHECK-LE: xscvsdqp 7, 27 # encoding: [0x88,0xde,0xea,0xfc]
+ xscvsdqp 7, 27
+# CHECK-BE: xscvudqp 7, 27 # encoding: [0xfc,0xe2,0xde,0x88]
+# CHECK-LE: xscvudqp 7, 27 # encoding: [0x88,0xde,0xe2,0xfc]
+ xscvudqp 7, 27
+
+# (Round &) Convert DP <-> HP
+# CHECK-BE: xscvdphp 7, 63 # encoding: [0xf0,0xf1,0xfd,0x6e]
+# CHECK-LE: xscvdphp 7, 63 # encoding: [0x6e,0xfd,0xf1,0xf0]
+ xscvdphp 7, 63
+# CHECK-BE: xscvhpdp 7, 63 # encoding: [0xf0,0xf0,0xfd,0x6e]
+# CHECK-LE: xscvhpdp 7, 63 # encoding: [0x6e,0xfd,0xf0,0xf0]
+ xscvhpdp 7, 63
+
+# HP -> SP
+# CHECK-BE: xvcvhpsp 7, 63 # encoding: [0xf0,0xf8,0xff,0x6e]
+# CHECK-LE: xvcvhpsp 7, 63 # encoding: [0x6e,0xff,0xf8,0xf0]
+ xvcvhpsp 7, 63
+# CHECK-BE: xvcvsphp 7, 63 # encoding: [0xf0,0xf9,0xff,0x6e]
+# CHECK-LE: xvcvsphp 7, 63 # encoding: [0x6e,0xff,0xf9,0xf0]
+ xvcvsphp 7, 63
+
+# Round to Quad-Precision Integer [with Inexact]
+# CHECK-BE: xsrqpi 1, 7, 27, 2 # encoding: [0xfc,0xe1,0xdc,0x0a]
+# CHECK-LE: xsrqpi 1, 7, 27, 2 # encoding: [0x0a,0xdc,0xe1,0xfc]
+ xsrqpi 1, 7, 27, 2
+# CHECK-BE: xsrqpix 1, 7, 27, 2 # encoding: [0xfc,0xe1,0xdc,0x0b]
+# CHECK-LE: xsrqpix 1, 7, 27, 2 # encoding: [0x0b,0xdc,0xe1,0xfc]
+ xsrqpix 1, 7, 27, 2
+
+# Round Quad-Precision to Double-Extended Precision
+# CHECK-BE: xsrqpxp 1, 7, 27, 2 # encoding: [0xfc,0xe1,0xdc,0x4a]
+# CHECK-LE: xsrqpxp 1, 7, 27, 2 # encoding: [0x4a,0xdc,0xe1,0xfc]
+ xsrqpxp 1, 7, 27, 2
+
+# Insert Exponent DP/QP
+# CHECK-BE: xsiexpdp 63, 3, 4 # encoding: [0xf3,0xe3,0x27,0x2d]
+# CHECK-LE: xsiexpdp 63, 3, 4 # encoding: [0x2d,0x27,0xe3,0xf3]
+ xsiexpdp 63, 3, 4
+# CHECK-BE: xsiexpqp 7, 31, 27 # encoding: [0xfc,0xff,0xde,0xc8]
+# CHECK-LE: xsiexpqp 7, 31, 27 # encoding: [0xc8,0xde,0xff,0xfc]
+ xsiexpqp 7, 31, 27
+
+# Vector Insert Exponent DP
+# CHECK-BE: xviexpdp 7, 63, 27 # encoding: [0xf0,0xff,0xdf,0xc4]
+# CHECK-LE: xviexpdp 7, 63, 27 # encoding: [0xc4,0xdf,0xff,0xf0]
+ xviexpdp 7, 63, 27
+# CHECK-BE: xviexpsp 7, 63, 27 # encoding: [0xf0,0xff,0xde,0xc4]
+# CHECK-LE: xviexpsp 7, 63, 27 # encoding: [0xc4,0xde,0xff,0xf0]
+ xviexpsp 7, 63, 27
+
+# Vector Extract Unsigned Word
+# CHECK-BE: xxextractuw 7, 63, 15 # encoding: [0xf0,0xef,0xfa,0x96]
+# CHECK-LE: xxextractuw 7, 63, 15 # encoding: [0x96,0xfa,0xef,0xf0]
+ xxextractuw 7, 63, 15
+
+# Vector Insert Word
+# CHECK-BE: xxinsertw 7, 63, 15 # encoding: [0xf0,0xef,0xfa,0xd6]
+# CHECK-LE: xxinsertw 7, 63, 15 # encoding: [0xd6,0xfa,0xef,0xf0]
+ xxinsertw 7, 63, 15
+
+# Extract Exponent/Significand DP/QP
+# CHECK-BE: xsxexpdp 7, 63 # encoding: [0xf0,0xe0,0xfd,0x6e]
+# CHECK-LE: xsxexpdp 7, 63 # encoding: [0x6e,0xfd,0xe0,0xf0]
+ xsxexpdp 7, 63
+# CHECK-BE: xsxsigdp 7, 63 # encoding: [0xf0,0xe1,0xfd,0x6e]
+# CHECK-LE: xsxsigdp 7, 63 # encoding: [0x6e,0xfd,0xe1,0xf0]
+ xsxsigdp 7, 63
+# CHECK-BE: xsxexpqp 7, 31 # encoding: [0xfc,0xe2,0xfe,0x48]
+# CHECK-LE: xsxexpqp 7, 31 # encoding: [0x48,0xfe,0xe2,0xfc]
+ xsxexpqp 7, 31
+# CHECK-BE: xsxsigqp 7, 31 # encoding: [0xfc,0xf2,0xfe,0x48]
+# CHECK-LE: xsxsigqp 7, 31 # encoding: [0x48,0xfe,0xf2,0xfc]
+ xsxsigqp 7, 31
+
+# Vector Extract Exponent/Significand DP
+# CHECK-BE: xvxexpdp 7, 63 # encoding: [0xf0,0xe0,0xff,0x6e]
+# CHECK-LE: xvxexpdp 7, 63 # encoding: [0x6e,0xff,0xe0,0xf0]
+ xvxexpdp 7, 63
+# CHECK-BE: xvxexpsp 7, 63 # encoding: [0xf0,0xe8,0xff,0x6e]
+# CHECK-LE: xvxexpsp 7, 63 # encoding: [0x6e,0xff,0xe8,0xf0]
+ xvxexpsp 7, 63
+# CHECK-BE: xvxsigdp 7, 63 # encoding: [0xf0,0xe1,0xff,0x6e]
+# CHECK-LE: xvxsigdp 7, 63 # encoding: [0x6e,0xff,0xe1,0xf0]
+ xvxsigdp 7, 63
+# CHECK-BE: xvxsigsp 7, 63 # encoding: [0xf0,0xe9,0xff,0x6e]
+# CHECK-LE: xvxsigsp 7, 63 # encoding: [0x6e,0xff,0xe9,0xf0]
+ xvxsigsp 7, 63
+
+# Test Data Class SP/DP/QP
+# CHECK-BE: xststdcsp 7, 63, 127 # encoding: [0xf3,0xff,0xfc,0xaa]
+# CHECK-LE: xststdcsp 7, 63, 127 # encoding: [0xaa,0xfc,0xff,0xf3]
+ xststdcsp 7, 63, 127
+# CHECK-BE: xststdcdp 7, 63, 127 # encoding: [0xf3,0xff,0xfd,0xaa]
+# CHECK-LE: xststdcdp 7, 63, 127 # encoding: [0xaa,0xfd,0xff,0xf3]
+ xststdcdp 7, 63, 127
+# CHECK-BE: xststdcqp 7, 31, 127 # encoding: [0xff,0xff,0xfd,0x88]
+# CHECK-LE: xststdcqp 7, 31, 127 # encoding: [0x88,0xfd,0xff,0xff]
+ xststdcqp 7, 31, 127
+
+# Vector Test Data Class SP/DP
+# CHECK-BE: xststdcsp 7, 63, 127 # encoding: [0xf3,0xff,0xfc,0xaa]
+# CHECK-LE: xststdcsp 7, 63, 127 # encoding: [0xaa,0xfc,0xff,0xf3]
+ xststdcsp 7, 63, 127
+# CHECK-BE: xststdcdp 7, 63, 127 # encoding: [0xf3,0xff,0xfd,0xaa]
+# CHECK-LE: xststdcdp 7, 63, 127 # encoding: [0xaa,0xfd,0xff,0xf3]
+ xststdcdp 7, 63, 127
+# CHECK-BE: xststdcqp 7, 31, 127 # encoding: [0xff,0xff,0xfd,0x88]
+# CHECK-LE: xststdcqp 7, 31, 127 # encoding: [0x88,0xfd,0xff,0xff]
+ xststdcqp 7, 31, 127
+
+# Maximum/Minimum Type-C/Type-J DP
+# CHECK-BE: xsmaxcdp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x04]
+# CHECK-LE: xsmaxcdp 7, 63, 27 # encoding: [0x04,0xdc,0xff,0xf0]
+ xsmaxcdp 7, 63, 27
+# CHECK-BE: xsmaxjdp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x84]
+# CHECK-LE: xsmaxjdp 7, 63, 27 # encoding: [0x84,0xdc,0xff,0xf0]
+ xsmaxjdp 7, 63, 27
+# CHECK-BE: xsmincdp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0x44]
+# CHECK-LE: xsmincdp 7, 63, 27 # encoding: [0x44,0xdc,0xff,0xf0]
+ xsmincdp 7, 63, 27
+# CHECK-BE: xsminjdp 7, 63, 27 # encoding: [0xf0,0xff,0xdc,0xc4]
+# CHECK-LE: xsminjdp 7, 63, 27 # encoding: [0xc4,0xdc,0xff,0xf0]
+ xsminjdp 7, 63, 27
+
+# Vector Byte-Reverse H/W/D/Q Word
+# CHECK-BE: xxbrh 7, 63 # encoding: [0xf0,0xe7,0xff,0x6e]
+# CHECK-LE: xxbrh 7, 63 # encoding: [0x6e,0xff,0xe7,0xf0]
+ xxbrh 7, 63
+# CHECK-BE: xxbrw 7, 63 # encoding: [0xf0,0xef,0xff,0x6e]
+# CHECK-LE: xxbrw 7, 63 # encoding: [0x6e,0xff,0xef,0xf0]
+ xxbrw 7, 63
+# CHECK-BE: xxbrd 7, 63 # encoding: [0xf0,0xf7,0xff,0x6e]
+# CHECK-LE: xxbrd 7, 63 # encoding: [0x6e,0xff,0xf7,0xf0]
+ xxbrd 7, 63
+# CHECK-BE: xxbrq 7, 63 # encoding: [0xf0,0xff,0xff,0x6e]
+# CHECK-LE: xxbrq 7, 63 # encoding: [0x6e,0xff,0xff,0xf0]
+ xxbrq 7, 63
+
+# Vector Permute
+# CHECK-BE: xxperm 7, 63, 27 # encoding: [0xf0,0xff,0xd8,0xd4]
+# CHECK-LE: xxperm 7, 63, 27 # encoding: [0xd4,0xd8,0xff,0xf0]
+ xxperm 7, 63, 27
+# CHECK-BE: xxpermr 7, 63, 27 # encoding: [0xf0,0xff,0xd9,0xd4]
+# CHECK-LE: xxpermr 7, 63, 27 # encoding: [0xd4,0xd9,0xff,0xf0]
+ xxpermr 7, 63, 27
+
+# Vector Splat Immediate Byte
+# CHECK-BE: xxspltib 63, 255 # encoding: [0xf3,0xe7,0xfa,0xd1]
+# CHECK-LE: xxspltib 63, 255 # encoding: [0xd1,0xfa,0xe7,0xf3]
+ xxspltib 63, 255
+
+# Load/Store Vector, test maximum and minimum displacement value
+# CHECK-BE: lxv 61, 32752(31) # encoding: [0xf7,0xbf,0x7f,0xf9]
+# CHECK-LE: lxv 61, 32752(31) # encoding: [0xf9,0x7f,0xbf,0xf7]
+ lxv 61, 32752(31)
+# CHECK-BE: lxv 61, -32768(0) # encoding: [0xf7,0xa0,0x80,0x09]
+# CHECK-LE: lxv 61, -32768(0) # encoding: [0x09,0x80,0xa0,0xf7]
+ lxv 61, -32768(0)
+# CHECK-BE: stxv 61, 32752(31) # encoding: [0xf7,0xbf,0x7f,0xfd]
+# CHECK-LE: stxv 61, 32752(31) # encoding: [0xfd,0x7f,0xbf,0xf7]
+ stxv 61, 32752(31)
+# CHECK-BE: stxv 61, -32768(0) # encoding: [0xf7,0xa0,0x80,0x0d]
+# CHECK-LE: stxv 61, -32768(0) # encoding: [0x0d,0x80,0xa0,0xf7]
+ stxv 61, -32768(0)
+
+# Load/Store DWord
+# CHECK-BE: lxsd 31, -32768(0) # encoding: [0xe7,0xe0,0x80,0x02]
+# CHECK-LE: lxsd 31, -32768(0) # encoding: [0x02,0x80,0xe0,0xe7]
+ lxsd 31, -32768(0)
+# CHECK-BE: lxsd 31, 32764(12) # encoding: [0xe7,0xec,0x7f,0xfe]
+# CHECK-LE: lxsd 31, 32764(12) # encoding: [0xfe,0x7f,0xec,0xe7]
+ lxsd 31, 32764(12)
+# CHECK-BE: stxsd 31, 32764(12) # encoding: [0xf7,0xec,0x7f,0xfe]
+# CHECK-LE: stxsd 31, 32764(12) # encoding: [0xfe,0x7f,0xec,0xf7]
+ stxsd 31, 32764(12)
+
+# Load SP from src, convert it to DP, and place in dword[0]
+# CHECK-BE: lxssp 31, -32768(0) # encoding: [0xe7,0xe0,0x80,0x03]
+# CHECK-LE: lxssp 31, -32768(0) # encoding: [0x03,0x80,0xe0,0xe7]
+ lxssp 31, -32768(0)
+# CHECK-BE: lxssp 31, 32764(12) # encoding: [0xe7,0xec,0x7f,0xff]
+# CHECK-LE: lxssp 31, 32764(12) # encoding: [0xff,0x7f,0xec,0xe7]
+ lxssp 31, 32764(12)
+
+# Convert DP of dword[0] to SP, and Store to dst
+# CHECK-BE: stxssp 31, -32768(0) # encoding: [0xf7,0xe0,0x80,0x03]
+# CHECK-LE: stxssp 31, -32768(0) # encoding: [0x03,0x80,0xe0,0xf7]
+ stxssp 31, -32768(0)
+
+# Load as Integer Byte/Halfword & Zero Indexed
+# CHECK-BE: lxsibzx 57, 12, 27 # encoding: [0x7f,0x2c,0xde,0x1b]
+# CHECK-LE: lxsibzx 57, 12, 27 # encoding: [0x1b,0xde,0x2c,0x7f]
+ lxsibzx 57, 12, 27
+# CHECK-BE: lxsihzx 57, 12, 27 # encoding: [0x7f,0x2c,0xde,0x5b]
+# CHECK-LE: lxsihzx 57, 12, 27 # encoding: [0x5b,0xde,0x2c,0x7f]
+ lxsihzx 57, 12, 27
+
+# Load Vector Halfword*8/Byte*16 Indexed
+# CHECK-BE: lxvh8x 57, 12, 27 # encoding: [0x7f,0x2c,0xde,0x59]
+# CHECK-LE: lxvh8x 57, 12, 27 # encoding: [0x59,0xde,0x2c,0x7f]
+ lxvh8x 57, 12, 27
+# CHECK-BE: lxvb16x 57, 12, 27 # encoding: [0x7f,0x2c,0xde,0xd9]
+# CHECK-LE: lxvb16x 57, 12, 27 # encoding: [0xd9,0xde,0x2c,0x7f]
+ lxvb16x 57, 12, 27
+
+# Load Vector Indexed
+# CHECK-BE: lxvx 57, 12, 27 # encoding: [0x7f,0x2c,0xda,0x19]
+# CHECK-LE: lxvx 57, 12, 27 # encoding: [0x19,0xda,0x2c,0x7f]
+ lxvx 57, 12, 27
+
+# Load Vector (Left-justified) with Length
+# CHECK-BE: lxvl 57, 12, 27 # encoding: [0x7f,0x2c,0xda,0x1b]
+# CHECK-LE: lxvl 57, 12, 27 # encoding: [0x1b,0xda,0x2c,0x7f]
+ lxvl 57, 12, 27
+# CHECK-BE: lxvll 57, 12, 27 # encoding: [0x7f,0x2c,0xda,0x5b]
+# CHECK-LE: lxvll 57, 12, 27 # encoding: [0x5b,0xda,0x2c,0x7f]
+ lxvll 57, 12, 27
+
+# Load Vector Word & Splat Indexed
+# CHECK-BE: lxvwsx 57, 12, 27 # encoding: [0x7f,0x2c,0xda,0xd9]
+# CHECK-LE: lxvwsx 57, 12, 27 # encoding: [0xd9,0xda,0x2c,0x7f]
+ lxvwsx 57, 12, 27
+
+# Store as Integer Byte/Halfword Indexed
+# CHECK-BE: stxsibx 57, 12, 27 # encoding: [0x7f,0x2c,0xdf,0x1b]
+# CHECK-LE: stxsibx 57, 12, 27 # encoding: [0x1b,0xdf,0x2c,0x7f]
+ stxsibx 57, 12, 27
+# CHECK-BE: stxsihx 57, 12, 27 # encoding: [0x7f,0x2c,0xdf,0x5b]
+# CHECK-LE: stxsihx 57, 12, 27 # encoding: [0x5b,0xdf,0x2c,0x7f]
+ stxsihx 57, 12, 27
+
+# Store Vector Halfword*8/Byte*16 Indexed
+# CHECK-BE: stxvh8x 57, 12, 27 # encoding: [0x7f,0x2c,0xdf,0x59]
+# CHECK-LE: stxvh8x 57, 12, 27 # encoding: [0x59,0xdf,0x2c,0x7f]
+ stxvh8x 57, 12, 27
+# CHECK-BE: stxvb16x 57, 12, 27 # encoding: [0x7f,0x2c,0xdf,0xd9]
+# CHECK-LE: stxvb16x 57, 12, 27 # encoding: [0xd9,0xdf,0x2c,0x7f]
+ stxvb16x 57, 12, 27
+
+# Store Vector Indexed
+# CHECK-BE: stxvx 57, 12, 27 # encoding: [0x7f,0x2c,0xdb,0x19]
+# CHECK-LE: stxvx 57, 12, 27 # encoding: [0x19,0xdb,0x2c,0x7f]
+ stxvx 57, 12, 27
+
+# Store Vector (Left-justified) with Length
+# CHECK-BE: stxvl 57, 12, 27 # encoding: [0x7f,0x2c,0xdb,0x1b]
+# CHECK-LE: stxvl 57, 12, 27 # encoding: [0x1b,0xdb,0x2c,0x7f]
+ stxvl 57, 12, 27
+# CHECK-BE: stxvll 57, 12, 27 # encoding: [0x7f,0x2c,0xdb,0x5b]
+# CHECK-LE: stxvll 57, 12, 27 # encoding: [0x5b,0xdb,0x2c,0x7f]
+ stxvll 57, 12, 27
+
+# P9 Direct Move Instructions
+# CHECK-BE: mtvsrws 34, 3 # encoding: [0x7c,0x43,0x03,0x27]
+# CHECK-LE: mtvsrws 34, 3 # encoding: [0x27,0x03,0x43,0x7c]
+ mtvsrws 34, 3
+
+# CHECK-BE: mtvsrdd 34, 3, 12 # encoding: [0x7c,0x43,0x63,0x67]
+# CHECK-LE: mtvsrdd 34, 3, 12 # encoding: [0x67,0x63,0x43,0x7c]
+ mtvsrdd 34, 3, 12
+
+# CHECK-BE: mfvsrld 3, 34 # encoding: [0x7c,0x43,0x02,0x67]
+# CHECK-LE: mfvsrld 3, 34 # encoding: [0x67,0x02,0x43,0x7c]
+ mfvsrld 3, 34
diff --git a/test/MC/Sparc/leon-instructions.s b/test/MC/Sparc/leon-instructions.s
new file mode 100755
index 000000000000..78a6d750a87d
--- /dev/null
+++ b/test/MC/Sparc/leon-instructions.s
@@ -0,0 +1,20 @@
+! RUN: llvm-mc %s -arch=sparc -mcpu=leon3 -show-encoding | FileCheck %s -check-prefix=CHECK_NO_CASA
+! RUN: llvm-mc %s -arch=sparc -mcpu=ut699 -show-encoding | FileCheck %s -check-prefix=CHECK_NO_CASA
+! RUN: llvm-mc %s -arch=sparc -mcpu=gr712rc -show-encoding | FileCheck %s
+! RUN: llvm-mc %s -arch=sparc -mcpu=leon4 -show-encoding | FileCheck %s
+! RUN: llvm-mc %s -arch=sparc -mcpu=gr740 -show-encoding | FileCheck %s
+
+
+ ! CHECK: casa [%i0] 10, %l6, %o2 ! encoding: [0xd5,0xe6,0x01,0x56]
+ casa [%i0] 10, %l6, %o2
+
+ ! CHECK: casa [%i0] 5, %l6, %o2 ! encoding: [0xd5,0xe6,0x00,0xb6]
+ casa [%i0] 5, %l6, %o2
+
+ ! CHECK: umac %i0, %l6, %o2 ! encoding: [0x95,0xf6,0x00,0x16]
+ ! CHECK_NO_CASA: umac %i0, %l6, %o2 ! encoding: [0x95,0xf6,0x00,0x16]
+ umac %i0, %l6, %o2
+
+ ! CHECK: smac %i0, %l6, %o2 ! encoding: [0x95,0xfe,0x00,0x16]
+ ! CHECK_NO_CASA: smac %i0, %l6, %o2 ! encoding: [0x95,0xfe,0x00,0x16]
+ smac %i0, %l6, %o2
diff --git a/test/MC/Sparc/sparc-coproc.s b/test/MC/Sparc/sparc-coproc.s
new file mode 100644
index 000000000000..f83e415cf31e
--- /dev/null
+++ b/test/MC/Sparc/sparc-coproc.s
@@ -0,0 +1,72 @@
+! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
+
+ ! CHECK: ld [%i1], %c4 ! encoding: [0xc9,0x86,0x40,0x00]
+ ! CHECK: ld [%i1+-15], %c4 ! encoding: [0xc9,0x86,0x7f,0xf1]
+ ! CHECK: ld [%i1+%o3], %c4 ! encoding: [0xc9,0x86,0x40,0x0b]
+ ! CHECK: ld [%i7], %c4 ! encoding: [0xc9,0x87,0xc0,0x00]
+ ! CHECK: ld [%i1], %c19 ! encoding: [0xe7,0x86,0x40,0x00]
+ ld [%i1], %c4
+ ld [%i1 - 15], %c4
+ ld [%i1 +%o3], %c4
+ ld [%i7], %c4
+ ld [%i1], %c19
+
+
+ ! CHECK: ldd [%i1], %c4 ! encoding: [0xc9,0x9e,0x40,0x00]
+ ! CHECK: ldd [%i7], %c4 ! encoding: [0xc9,0x9f,0xc0,0x00]
+ ! CHECK: ldd [%i7+200], %c4 ! encoding: [0xc9,0x9f,0xe0,0xc8]
+ ! CHECK: ldd [%i7+%o3], %c4 ! encoding: [0xc9,0x9f,0xc0,0x0b]
+ ! CHECK: ldd [%i1], %c30 ! encoding: [0xfd,0x9e,0x40,0x00]
+ ldd [%i1], %c4
+ ldd [%i7], %c4
+ ldd [%i7 + 200], %c4
+ ldd [%i7+%o3], %c4
+ ldd [%i1], %c30
+
+
+ ! CHECK: st %c4, [%i1] ! encoding: [0xc9,0xa6,0x40,0x00]
+ ! CHECK: st %c4, [%i7] ! encoding: [0xc9,0xa7,0xc0,0x00]
+ ! CHECK: st %c4, [%i7+48] ! encoding: [0xc9,0xa7,0xe0,0x30]
+ ! CHECK: st %c4, [%i4+%o2] ! encoding: [0xc9,0xa7,0x00,0x0a]
+ ! CHECK: st %c19, [%i1] ! encoding: [0xe7,0xa6,0x40,0x00]
+ st %c4, [%i1]
+ st %c4, [%i7]
+ st %c4, [%i7+48]
+ st %c4, [%i4+%o2]
+ st %c19, [%i1]
+
+
+ ! CHECK: std %c4, [%i1] ! encoding: [0xc9,0xbe,0x40,0x00]
+ ! CHECK: std %c4, [%i7] ! encoding: [0xc9,0xbf,0xc0,0x00]
+ ! CHECK: std %c4, [%i2+-240] ! encoding: [0xc9,0xbe,0xbf,0x10]
+ ! CHECK: std %c4, [%i1+%o5] ! encoding: [0xc9,0xbe,0x40,0x0d]
+ ! CHECK: std %c30, [%i1] ! encoding: [0xfd,0xbe,0x40,0x00]
+ std %c4, [%i1]
+ std %c4, [%i7]
+ std %c4, [%i2-240]
+ std %c4, [%i1+%o5]
+ std %c30, [%i1]
+
+
+ ! CHECK: ld [%i5], %csr ! encoding: [0xc1,0x8f,0x40,0x00]
+ ! CHECK: ld [%l2+3], %csr ! encoding: [0xc1,0x8c,0xa0,0x03]
+ ! CHECK: ld [%l4+%l5], %csr ! encoding: [0xc1,0x8d,0x00,0x15]
+ ld [%i5], %csr
+ ld [%l2+3], %csr
+ ld [%l4+%l5], %csr
+
+
+ ! CHECK: st %csr, [%i2] ! encoding: [0xc1,0xae,0x80,0x00]
+ ! CHECK: st %csr, [%i2+31] ! encoding: [0xc1,0xae,0xa0,0x1f]
+ ! CHECK: st %csr, [%i2+%o2] ! encoding: [0xc1,0xae,0x80,0x0a]
+ st %csr, [%i2]
+ st %csr, [%i2+31]
+ st %csr, [%i2+%o2]
+
+ ! CHECK: std %cq, [%o3] ! encoding: [0xc1,0xb2,0xc0,0x00]
+ ! CHECK: std %cq, [%o3+-93] ! encoding: [0xc1,0xb2,0xff,0xa3]
+ ! CHECK: std %cq, [%o3+%l5] ! encoding: [0xc1,0xb2,0xc0,0x15]
+ std %cq, [%o3]
+ std %cq, [%o3-93]
+ std %cq, [%o3+%l5]
+ \ No newline at end of file
diff --git a/test/MC/Sparc/sparc-ctrl-instructions.s b/test/MC/Sparc/sparc-ctrl-instructions.s
index ccfa36a0b143..8f3ad55cd3f8 100644
--- a/test/MC/Sparc/sparc-ctrl-instructions.s
+++ b/test/MC/Sparc/sparc-ctrl-instructions.s
@@ -199,6 +199,74 @@
! CHECK: fbo .BB0 ! encoding: [0x1f,0b10AAAAAA,A,A]
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
fbo .BB0
+
+ ! CHECK: cba .BB0 ! encoding: [0x11,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb .BB0
+
+ ! CHECK: cba .BB0 ! encoding: [0x11,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cba .BB0
+
+ ! CHECK: cbn .BB0 ! encoding: [0x01,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cbn .BB0
+
+ ! CHECK: cb3 .BB0 ! encoding: [0x0f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3 .BB0
+
+ ! CHECK: cb2 .BB0 ! encoding: [0x0d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2 .BB0
+
+ ! CHECK: cb23 .BB0 ! encoding: [0x0b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23 .BB0
+
+ ! CHECK: cb1 .BB0 ! encoding: [0x09,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1 .BB0
+
+ ! CHECK: cb13 .BB0 ! encoding: [0x07,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13 .BB0
+
+ ! CHECK: cb12 .BB0 ! encoding: [0x05,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12 .BB0
+
+ ! CHECK: cb123 .BB0 ! encoding: [0x03,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123 .BB0
+
+ ! CHECK: cb0 .BB0 ! encoding: [0x13,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0 .BB0
+
+ ! CHECK: cb03 .BB0 ! encoding: [0x15,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03 .BB0
+
+ ! CHECK: cb02 .BB0 ! encoding: [0x17,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02 .BB0
+
+ ! CHECK: cb023 .BB0 ! encoding: [0x19,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023 .BB0
+
+ ! CHECK: cb01 .BB0 ! encoding: [0x1b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01 .BB0
+
+ ! CHECK: cb013 .BB0 ! encoding: [0x1d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013 .BB0
+
+ ! CHECK: cb012 .BB0 ! encoding: [0x1f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012 .BB0
! CHECK: ba,a .BB0 ! encoding: [0x30,0b10AAAAAA,A,A]
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
@@ -317,3 +385,119 @@
! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
rett %i7 + 8
+
+ ! CHECK: cb3,a .BB0 ! encoding: [0x2f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3,a .BB0
+
+ ! CHECK: cb2,a .BB0 ! encoding: [0x2d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2,a .BB0
+
+ ! CHECK: cb23,a .BB0 ! encoding: [0x2b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23,a .BB0
+
+ ! CHECK: cb1,a .BB0 ! encoding: [0x29,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1,a .BB0
+
+ ! CHECK: cb13,a .BB0 ! encoding: [0x27,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13,a .BB0
+
+ ! CHECK: cb12,a .BB0 ! encoding: [0x25,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12,a .BB0
+
+ ! CHECK: cb123,a .BB0 ! encoding: [0x23,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123,a .BB0
+
+ ! CHECK: cb0,a .BB0 ! encoding: [0x33,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0,a .BB0
+
+ ! CHECK: cb03,a .BB0 ! encoding: [0x35,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03,a .BB0
+
+ ! CHECK: cb02,a .BB0 ! encoding: [0x37,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02,a .BB0
+
+ ! CHECK: cb023,a .BB0 ! encoding: [0x39,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023,a .BB0
+
+ ! CHECK: cb01,a .BB0 ! encoding: [0x3b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01,a .BB0
+
+ ! CHECK: cb013,a .BB0 ! encoding: [0x3d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013,a .BB0
+
+ ! CHECK: cb012,a .BB0 ! encoding: [0x3f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012,a .BB0
+
+ ! CHECK: cb3,a .BB0 ! encoding: [0x2f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb3,a .BB0
+
+ ! CHECK: cb2,a .BB0 ! encoding: [0x2d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb2,a .BB0
+
+ ! CHECK: cb23,a .BB0 ! encoding: [0x2b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb23,a .BB0
+
+ ! CHECK: cb1,a .BB0 ! encoding: [0x29,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb1,a .BB0
+
+ ! CHECK: cb13,a .BB0 ! encoding: [0x27,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb13,a .BB0
+
+ ! CHECK: cb12,a .BB0 ! encoding: [0x25,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb12,a .BB0
+
+ ! CHECK: cb123,a .BB0 ! encoding: [0x23,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb123,a .BB0
+
+ ! CHECK: cb0,a .BB0 ! encoding: [0x33,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb0,a .BB0
+
+ ! CHECK: cb03,a .BB0 ! encoding: [0x35,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb03,a .BB0
+
+ ! CHECK: cb02,a .BB0 ! encoding: [0x37,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb02,a .BB0
+
+ ! CHECK: cb023,a .BB0 ! encoding: [0x39,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb023,a .BB0
+
+ ! CHECK: cb01,a .BB0 ! encoding: [0x3b,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb01,a .BB0
+
+ ! CHECK: cb013,a .BB0 ! encoding: [0x3d,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb013,a .BB0
+
+ ! CHECK: cb012,a .BB0 ! encoding: [0x3f,0b11AAAAAA,A,A]
+ ! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
+ cb012,a .BB0
+
+ ! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
+ rett %i7 + 8
+
diff --git a/test/MC/Sparc/sparc-directives.s b/test/MC/Sparc/sparc-directives.s
index 9185e4bc9b2b..d804c1afe9b8 100644
--- a/test/MC/Sparc/sparc-directives.s
+++ b/test/MC/Sparc/sparc-directives.s
@@ -1,6 +1,10 @@
! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s --check-prefix=SPARC32
! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s --check-prefix=SPARC64
+ ! '.proc' is documented to do nothing in the binutils assembler.
+ ! so it should do nothing for clang either, i.e. not be an error.
+ .proc 1
+
! SPARC32: .byte 24
! SPARC64: .byte 24
.byte 24
diff --git a/test/MC/Sparc/sparc-fp-instructions.s b/test/MC/Sparc/sparc-fp-instructions.s
index 64f1538cb910..ae5ef37bf22d 100644
--- a/test/MC/Sparc/sparc-fp-instructions.s
+++ b/test/MC/Sparc/sparc-fp-instructions.s
@@ -65,8 +65,8 @@
faddq %f0, %f4, %f8
! make sure we can handle V9 double registers and their aliased quad registers.
- ! CHECK: faddd %f32, %f34, %f62 ! encoding: [0xbf,0xa0,0x48,0x43]
- ! CHECK: faddq %f32, %f36, %f60 ! encoding: [0xbb,0xa0,0x48,0x65]
+ ! CHECK: faddd %f32, %f34, %f62 ! encoding: [0xbf,0xa0,0x48,0x43]
+ ! CHECK: faddq %f32, %f36, %f60 ! encoding: [0xbb,0xa0,0x48,0x65]
faddd %f32, %f34, %f62
faddq %f32, %f36, %f60
@@ -103,23 +103,23 @@
fcmpd %f0, %f4
fcmpq %f0, %f4
- ! CHECK: fcmpes %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xa4]
- ! CHECK: fcmped %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xc4]
- ! CHECK: fcmpeq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xe4]
+ ! CHECK: fcmpes %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xa4]
+ ! CHECK: fcmped %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xc4]
+ ! CHECK: fcmpeq %f0, %f4 ! encoding: [0x81,0xa8,0x0a,0xe4]
fcmpes %f0, %f4
fcmped %f0, %f4
fcmpeq %f0, %f4
- ! CHECK: fcmps %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x24]
- ! CHECK: fcmpd %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x44]
- ! CHECK: fcmpq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x64]
+ ! CHECK: fcmps %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x24]
+ ! CHECK: fcmpd %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x44]
+ ! CHECK: fcmpq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0x64]
fcmps %fcc2, %f0, %f4
fcmpd %fcc2, %f0, %f4
fcmpq %fcc2, %f0, %f4
- ! CHECK: fcmpes %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xa4]
- ! CHECK: fcmped %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xc4]
- ! CHECK: fcmpeq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xe4]
+ ! CHECK: fcmpes %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xa4]
+ ! CHECK: fcmped %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xc4]
+ ! CHECK: fcmpeq %fcc2, %f0, %f4 ! encoding: [0x85,0xa8,0x0a,0xe4]
fcmpes %fcc2, %f0, %f4
fcmped %fcc2, %f0, %f4
fcmpeq %fcc2, %f0, %f4
@@ -147,3 +147,11 @@
! CHECK: std %f48, [%l0] ! encoding: [0xe3,0x3c,0x00,0x00]
st %f29, [%l0]
std %f48, [%l0]
+
+ ! CHECK: std %fq, [%o4] ! encoding: [0xc1,0x33,0x00,0x00]
+ ! CHECK: std %fq, [%l1+62] ! encoding: [0xc1,0x34,0x60,0x3e]
+ ! CHECK: std %fq, [%i3+%l7] ! encoding: [0xc1,0x36,0xc0,0x17]
+ std %fq, [%o4]
+ std %fq, [%l1+62]
+ std %fq, [%i3+%l7]
+ \ No newline at end of file
diff --git a/test/MC/Sparc/sparc-pic.s b/test/MC/Sparc/sparc-pic.s
index 1c935e0842ce..f51e1e93b509 100644
--- a/test/MC/Sparc/sparc-pic.s
+++ b/test/MC/Sparc/sparc-pic.s
@@ -1,5 +1,5 @@
-! RUN: llvm-mc %s -arch=sparcv9 --relocation-model=pic -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=PIC %s
-! RUN: llvm-mc %s -arch=sparcv9 --relocation-model=static -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=NOPIC %s
+! RUN: llvm-mc %s -arch=sparcv9 --position-independent -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=PIC %s
+! RUN: llvm-mc %s -arch=sparcv9 -filetype=obj | llvm-readobj -r | FileCheck --check-prefix=NOPIC %s
! PIC: Relocations [
diff --git a/test/MC/Sparc/sparc-special-registers.s b/test/MC/Sparc/sparc-special-registers.s
index 235c4cfedcf8..7667abea0144 100644
--- a/test/MC/Sparc/sparc-special-registers.s
+++ b/test/MC/Sparc/sparc-special-registers.s
@@ -51,3 +51,6 @@
! CHECK: st %fsr, [%g2+%i5] ! encoding: [0xc1,0x28,0x80,0x1d]
st %fsr,[%g2 + %i5]
+
+ ! CHECK: std %fq, [%g6+%i2] ! encoding: [0xc1,0x31,0x80,0x1a]
+ std %fq, [%g6 + %i2]
diff --git a/test/MC/Sparc/sparc-traps.s b/test/MC/Sparc/sparc-traps.s
new file mode 100644
index 000000000000..650477496f91
--- /dev/null
+++ b/test/MC/Sparc/sparc-traps.s
@@ -0,0 +1,151 @@
+! RUN: llvm-mc %s -arch=sparc -show-encoding | FileCheck %s
+
+ ! CHECK: ta %i5 ! encoding: [0x91,0xd0,0x00,0x1d]
+ ! CHECK: ta 82 ! encoding: [0x91,0xd0,0x20,0x52]
+ ! CHECK: ta %g1 + %i2 ! encoding: [0x91,0xd0,0x40,0x1a]
+ ! CHECK: ta %i5 + 41 ! encoding: [0x91,0xd7,0x60,0x29]
+ ta %i5
+ ta 82
+ ta %g1 + %i2
+ ta %i5 + 41
+
+ ! CHECK: tn %i5 ! encoding: [0x81,0xd0,0x00,0x1d]
+ ! CHECK: tn 82 ! encoding: [0x81,0xd0,0x20,0x52]
+ ! CHECK: tn %g1 + %i2 ! encoding: [0x81,0xd0,0x40,0x1a]
+ ! CHECK: tn %i5 + 41 ! encoding: [0x81,0xd7,0x60,0x29]
+ tn %i5
+ tn 82
+ tn %g1 + %i2
+ tn %i5 + 41
+
+ ! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ ! CHECK: tne 82 ! encoding: [0x93,0xd0,0x20,0x52]
+ ! CHECK: tne %g1 + %i2 ! encoding: [0x93,0xd0,0x40,0x1a]
+ ! CHECK: tne %i5 + 41 ! encoding: [0x93,0xd7,0x60,0x29]
+ tne %i5
+ tnz %i5
+ tne 82
+ tne %g1 + %i2
+ tne %i5 + 41
+
+ ! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ ! CHECK: te 82 ! encoding: [0x83,0xd0,0x20,0x52]
+ ! CHECK: te %g1 + %i2 ! encoding: [0x83,0xd0,0x40,0x1a]
+ ! CHECK: te %i5 + 41 ! encoding: [0x83,0xd7,0x60,0x29]
+ te %i5
+ tz %i5
+ te 82
+ te %g1 + %i2
+ te %i5 + 41
+
+ ! CHECK: tg %i5 ! encoding: [0x95,0xd0,0x00,0x1d]
+ ! CHECK: tg 82 ! encoding: [0x95,0xd0,0x20,0x52]
+ ! CHECK: tg %g1 + %i2 ! encoding: [0x95,0xd0,0x40,0x1a]
+ ! CHECK: tg %i5 + 41 ! encoding: [0x95,0xd7,0x60,0x29]
+ tg %i5
+ tg 82
+ tg %g1 + %i2
+ tg %i5 + 41
+
+ ! CHECK: tle %i5 ! encoding: [0x85,0xd0,0x00,0x1d]
+ ! CHECK: tle 82 ! encoding: [0x85,0xd0,0x20,0x52]
+ ! CHECK: tle %g1 + %i2 ! encoding: [0x85,0xd0,0x40,0x1a]
+ ! CHECK: tle %i5 + 41 ! encoding: [0x85,0xd7,0x60,0x29]
+ tle %i5
+ tle 82
+ tle %g1 + %i2
+ tle %i5 + 41
+
+ ! CHECK: tge %i5 ! encoding: [0x97,0xd0,0x00,0x1d]
+ ! CHECK: tge 82 ! encoding: [0x97,0xd0,0x20,0x52]
+ ! CHECK: tge %g1 + %i2 ! encoding: [0x97,0xd0,0x40,0x1a]
+ ! CHECK: tge %i5 + 41 ! encoding: [0x97,0xd7,0x60,0x29]
+ tge %i5
+ tge 82
+ tge %g1 + %i2
+ tge %i5 + 41
+
+ ! CHECK: tl %i5 ! encoding: [0x87,0xd0,0x00,0x1d]
+ ! CHECK: tl 82 ! encoding: [0x87,0xd0,0x20,0x52]
+ ! CHECK: tl %g1 + %i2 ! encoding: [0x87,0xd0,0x40,0x1a]
+ ! CHECK: tl %i5 + 41 ! encoding: [0x87,0xd7,0x60,0x29]
+ tl %i5
+ tl 82
+ tl %g1 + %i2
+ tl %i5 + 41
+
+ ! CHECK: tgu %i5 ! encoding: [0x99,0xd0,0x00,0x1d]
+ ! CHECK: tgu 82 ! encoding: [0x99,0xd0,0x20,0x52]
+ ! CHECK: tgu %g1 + %i2 ! encoding: [0x99,0xd0,0x40,0x1a]
+ ! CHECK: tgu %i5 + 41 ! encoding: [0x99,0xd7,0x60,0x29]
+ tgu %i5
+ tgu 82
+ tgu %g1 + %i2
+ tgu %i5 + 41
+
+ ! CHECK: tleu %i5 ! encoding: [0x89,0xd0,0x00,0x1d]
+ ! CHECK: tleu 82 ! encoding: [0x89,0xd0,0x20,0x52]
+ ! CHECK: tleu %g1 + %i2 ! encoding: [0x89,0xd0,0x40,0x1a]
+ ! CHECK: tleu %i5 + 41 ! encoding: [0x89,0xd7,0x60,0x29]
+ tleu %i5
+ tleu 82
+ tleu %g1 + %i2
+ tleu %i5 + 41
+
+ ! CHECK: tcc %i5 ! encoding: [0x9b,0xd0,0x00,0x1d]
+ ! CHECK: tcc 82 ! encoding: [0x9b,0xd0,0x20,0x52]
+ ! CHECK: tcc %g1 + %i2 ! encoding: [0x9b,0xd0,0x40,0x1a]
+ ! CHECK: tcc %i5 + 41 ! encoding: [0x9b,0xd7,0x60,0x29]
+ tcc %i5
+ tcc 82
+ tcc %g1 + %i2
+ tcc %i5 + 41
+
+ ! CHECK: tcs %i5 ! encoding: [0x8b,0xd0,0x00,0x1d]
+ ! CHECK: tcs 82 ! encoding: [0x8b,0xd0,0x20,0x52]
+ ! CHECK: tcs %g1 + %i2 ! encoding: [0x8b,0xd0,0x40,0x1a]
+ ! CHECK: tcs %i5 + 41 ! encoding: [0x8b,0xd7,0x60,0x29]
+ tcs %i5
+ tcs 82
+ tcs %g1 + %i2
+ tcs %i5 + 41
+
+ ! CHECK: tpos %i5 ! encoding: [0x9d,0xd0,0x00,0x1d]
+ ! CHECK: tpos 82 ! encoding: [0x9d,0xd0,0x20,0x52]
+ ! CHECK: tpos %g1 + %i2 ! encoding: [0x9d,0xd0,0x40,0x1a]
+ ! CHECK: tpos %i5 + 41 ! encoding: [0x9d,0xd7,0x60,0x29]
+ tpos %i5
+ tpos 82
+ tpos %g1 + %i2
+ tpos %i5 + 41
+
+ ! CHECK: tneg %i5 ! encoding: [0x8d,0xd0,0x00,0x1d]
+ ! CHECK: tneg 82 ! encoding: [0x8d,0xd0,0x20,0x52]
+ ! CHECK: tneg %g1 + %i2 ! encoding: [0x8d,0xd0,0x40,0x1a]
+ ! CHECK: tneg %i5 + 41 ! encoding: [0x8d,0xd7,0x60,0x29]
+ tneg %i5
+ tneg 82
+ tneg %g1 + %i2
+ tneg %i5 + 41
+
+ ! CHECK: tvc %i5 ! encoding: [0x9f,0xd0,0x00,0x1d]
+ ! CHECK: tvc 82 ! encoding: [0x9f,0xd0,0x20,0x52]
+ ! CHECK: tvc %g1 + %i2 ! encoding: [0x9f,0xd0,0x40,0x1a]
+ ! CHECK: tvc %i5 + 41 ! encoding: [0x9f,0xd7,0x60,0x29]
+ tvc %i5
+ tvc 82
+ tvc %g1 + %i2
+ tvc %i5 + 41
+
+ ! CHECK: tvs %i5 ! encoding: [0x8f,0xd0,0x00,0x1d]
+ ! CHECK: tvs 82 ! encoding: [0x8f,0xd0,0x20,0x52]
+ ! CHECK: tvs %g1 + %i2 ! encoding: [0x8f,0xd0,0x40,0x1a]
+ ! CHECK: tvs %i5 + 41 ! encoding: [0x8f,0xd7,0x60,0x29]
+ tvs %i5
+ tvs 82
+ tvs %g1 + %i2
+ tvs %i5 + 41
diff --git a/test/MC/Sparc/sparc-v9-traps.s b/test/MC/Sparc/sparc-v9-traps.s
new file mode 100644
index 000000000000..da11b36003bd
--- /dev/null
+++ b/test/MC/Sparc/sparc-v9-traps.s
@@ -0,0 +1,303 @@
+! RUN: llvm-mc %s -arch=sparcv9 -show-encoding | FileCheck %s
+
+ ! CHECK: ta %icc, %i5 ! encoding: [0x91,0xd0,0x00,0x1d]
+ ! CHECK: ta %icc, 82 ! encoding: [0x91,0xd0,0x20,0x52]
+ ! CHECK: ta %icc, %g1 + %i2 ! encoding: [0x91,0xd0,0x40,0x1a]
+ ! CHECK: ta %icc, %i5 + 41 ! encoding: [0x91,0xd7,0x60,0x29]
+ ta %icc, %i5
+ ta %icc, 82
+ ta %icc, %g1 + %i2
+ ta %icc, %i5 + 41
+
+ ! CHECK: tn %icc, %i5 ! encoding: [0x81,0xd0,0x00,0x1d]
+ ! CHECK: tn %icc, 82 ! encoding: [0x81,0xd0,0x20,0x52]
+ ! CHECK: tn %icc, %g1 + %i2 ! encoding: [0x81,0xd0,0x40,0x1a]
+ ! CHECK: tn %icc, %i5 + 41 ! encoding: [0x81,0xd7,0x60,0x29]
+ tn %icc, %i5
+ tn %icc, 82
+ tn %icc, %g1 + %i2
+ tn %icc, %i5 + 41
+
+ ! CHECK: tne %icc, %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %icc, %i5 ! encoding: [0x93,0xd0,0x00,0x1d]
+ ! CHECK: tne %icc, 82 ! encoding: [0x93,0xd0,0x20,0x52]
+ ! CHECK: tne %icc, %g1 + %i2 ! encoding: [0x93,0xd0,0x40,0x1a]
+ ! CHECK: tne %icc, %i5 + 41 ! encoding: [0x93,0xd7,0x60,0x29]
+ tne %icc, %i5
+ tnz %icc, %i5
+ tne %icc, 82
+ tne %icc, %g1 + %i2
+ tne %icc, %i5 + 41
+
+ ! CHECK: te %icc, %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %icc, %i5 ! encoding: [0x83,0xd0,0x00,0x1d]
+ ! CHECK: te %icc, 82 ! encoding: [0x83,0xd0,0x20,0x52]
+ ! CHECK: te %icc, %g1 + %i2 ! encoding: [0x83,0xd0,0x40,0x1a]
+ ! CHECK: te %icc, %i5 + 41 ! encoding: [0x83,0xd7,0x60,0x29]
+ te %icc, %i5
+ tz %icc, %i5
+ te %icc, 82
+ te %icc, %g1 + %i2
+ te %icc, %i5 + 41
+
+ ! CHECK: tg %icc, %i5 ! encoding: [0x95,0xd0,0x00,0x1d]
+ ! CHECK: tg %icc, 82 ! encoding: [0x95,0xd0,0x20,0x52]
+ ! CHECK: tg %icc, %g1 + %i2 ! encoding: [0x95,0xd0,0x40,0x1a]
+ ! CHECK: tg %icc, %i5 + 41 ! encoding: [0x95,0xd7,0x60,0x29]
+ tg %icc, %i5
+ tg %icc, 82
+ tg %icc, %g1 + %i2
+ tg %icc, %i5 + 41
+
+ ! CHECK: tle %icc, %i5 ! encoding: [0x85,0xd0,0x00,0x1d]
+ ! CHECK: tle %icc, 82 ! encoding: [0x85,0xd0,0x20,0x52]
+ ! CHECK: tle %icc, %g1 + %i2 ! encoding: [0x85,0xd0,0x40,0x1a]
+ ! CHECK: tle %icc, %i5 + 41 ! encoding: [0x85,0xd7,0x60,0x29]
+ tle %icc, %i5
+ tle %icc, 82
+ tle %icc, %g1 + %i2
+ tle %icc, %i5 + 41
+
+ ! CHECK: tge %icc, %i5 ! encoding: [0x97,0xd0,0x00,0x1d]
+ ! CHECK: tge %icc, 82 ! encoding: [0x97,0xd0,0x20,0x52]
+ ! CHECK: tge %icc, %g1 + %i2 ! encoding: [0x97,0xd0,0x40,0x1a]
+ ! CHECK: tge %icc, %i5 + 41 ! encoding: [0x97,0xd7,0x60,0x29]
+ tge %icc, %i5
+ tge %icc, 82
+ tge %icc, %g1 + %i2
+ tge %icc, %i5 + 41
+
+ ! CHECK: tl %icc, %i5 ! encoding: [0x87,0xd0,0x00,0x1d]
+ ! CHECK: tl %icc, 82 ! encoding: [0x87,0xd0,0x20,0x52]
+ ! CHECK: tl %icc, %g1 + %i2 ! encoding: [0x87,0xd0,0x40,0x1a]
+ ! CHECK: tl %icc, %i5 + 41 ! encoding: [0x87,0xd7,0x60,0x29]
+ tl %icc, %i5
+ tl %icc, 82
+ tl %icc, %g1 + %i2
+ tl %icc, %i5 + 41
+
+ ! CHECK: tgu %icc, %i5 ! encoding: [0x99,0xd0,0x00,0x1d]
+ ! CHECK: tgu %icc, 82 ! encoding: [0x99,0xd0,0x20,0x52]
+ ! CHECK: tgu %icc, %g1 + %i2 ! encoding: [0x99,0xd0,0x40,0x1a]
+ ! CHECK: tgu %icc, %i5 + 41 ! encoding: [0x99,0xd7,0x60,0x29]
+ tgu %icc, %i5
+ tgu %icc, 82
+ tgu %icc, %g1 + %i2
+ tgu %icc, %i5 + 41
+
+ ! CHECK: tleu %icc, %i5 ! encoding: [0x89,0xd0,0x00,0x1d]
+ ! CHECK: tleu %icc, 82 ! encoding: [0x89,0xd0,0x20,0x52]
+ ! CHECK: tleu %icc, %g1 + %i2 ! encoding: [0x89,0xd0,0x40,0x1a]
+ ! CHECK: tleu %icc, %i5 + 41 ! encoding: [0x89,0xd7,0x60,0x29]
+ tleu %icc, %i5
+ tleu %icc, 82
+ tleu %icc, %g1 + %i2
+ tleu %icc, %i5 + 41
+
+ ! CHECK: tcc %icc, %i5 ! encoding: [0x9b,0xd0,0x00,0x1d]
+ ! CHECK: tcc %icc, 82 ! encoding: [0x9b,0xd0,0x20,0x52]
+ ! CHECK: tcc %icc, %g1 + %i2 ! encoding: [0x9b,0xd0,0x40,0x1a]
+ ! CHECK: tcc %icc, %i5 + 41 ! encoding: [0x9b,0xd7,0x60,0x29]
+ tcc %icc, %i5
+ tcc %icc, 82
+ tcc %icc, %g1 + %i2
+ tcc %icc, %i5 + 41
+
+ ! CHECK: tcs %icc, %i5 ! encoding: [0x8b,0xd0,0x00,0x1d]
+ ! CHECK: tcs %icc, 82 ! encoding: [0x8b,0xd0,0x20,0x52]
+ ! CHECK: tcs %icc, %g1 + %i2 ! encoding: [0x8b,0xd0,0x40,0x1a]
+ ! CHECK: tcs %icc, %i5 + 41 ! encoding: [0x8b,0xd7,0x60,0x29]
+ tcs %icc, %i5
+ tcs %icc, 82
+ tcs %icc, %g1 + %i2
+ tcs %icc, %i5 + 41
+
+ ! CHECK: tpos %icc, %i5 ! encoding: [0x9d,0xd0,0x00,0x1d]
+ ! CHECK: tpos %icc, 82 ! encoding: [0x9d,0xd0,0x20,0x52]
+ ! CHECK: tpos %icc, %g1 + %i2 ! encoding: [0x9d,0xd0,0x40,0x1a]
+ ! CHECK: tpos %icc, %i5 + 41 ! encoding: [0x9d,0xd7,0x60,0x29]
+ tpos %icc, %i5
+ tpos %icc, 82
+ tpos %icc, %g1 + %i2
+ tpos %icc, %i5 + 41
+
+ ! CHECK: tneg %icc, %i5 ! encoding: [0x8d,0xd0,0x00,0x1d]
+ ! CHECK: tneg %icc, 82 ! encoding: [0x8d,0xd0,0x20,0x52]
+ ! CHECK: tneg %icc, %g1 + %i2 ! encoding: [0x8d,0xd0,0x40,0x1a]
+ ! CHECK: tneg %icc, %i5 + 41 ! encoding: [0x8d,0xd7,0x60,0x29]
+ tneg %icc, %i5
+ tneg %icc, 82
+ tneg %icc, %g1 + %i2
+ tneg %icc, %i5 + 41
+
+ ! CHECK: tvc %icc, %i5 ! encoding: [0x9f,0xd0,0x00,0x1d]
+ ! CHECK: tvc %icc, 82 ! encoding: [0x9f,0xd0,0x20,0x52]
+ ! CHECK: tvc %icc, %g1 + %i2 ! encoding: [0x9f,0xd0,0x40,0x1a]
+ ! CHECK: tvc %icc, %i5 + 41 ! encoding: [0x9f,0xd7,0x60,0x29]
+ tvc %icc, %i5
+ tvc %icc, 82
+ tvc %icc, %g1 + %i2
+ tvc %icc, %i5 + 41
+
+ ! CHECK: tvs %icc, %i5 ! encoding: [0x8f,0xd0,0x00,0x1d]
+ ! CHECK: tvs %icc, 82 ! encoding: [0x8f,0xd0,0x20,0x52]
+ ! CHECK: tvs %icc, %g1 + %i2 ! encoding: [0x8f,0xd0,0x40,0x1a]
+ ! CHECK: tvs %icc, %i5 + 41 ! encoding: [0x8f,0xd7,0x60,0x29]
+ tvs %icc, %i5
+ tvs %icc, 82
+ tvs %icc, %g1 + %i2
+ tvs %icc, %i5 + 41
+
+
+ ! CHECK: ta %xcc, %i5 ! encoding: [0x91,0xd0,0x10,0x1d]
+ ! CHECK: ta %xcc, 82 ! encoding: [0x91,0xd0,0x30,0x52]
+ ! CHECK: ta %xcc, %g1 + %i2 ! encoding: [0x91,0xd0,0x50,0x1a]
+ ! CHECK: ta %xcc, %i5 + 41 ! encoding: [0x91,0xd7,0x70,0x29]
+ ta %xcc, %i5
+ ta %xcc, 82
+ ta %xcc, %g1 + %i2
+ ta %xcc, %i5 + 41
+
+ ! CHECK: tn %xcc, %i5 ! encoding: [0x81,0xd0,0x10,0x1d]
+ ! CHECK: tn %xcc, 82 ! encoding: [0x81,0xd0,0x30,0x52]
+ ! CHECK: tn %xcc, %g1 + %i2 ! encoding: [0x81,0xd0,0x50,0x1a]
+ ! CHECK: tn %xcc, %i5 + 41 ! encoding: [0x81,0xd7,0x70,0x29]
+ tn %xcc, %i5
+ tn %xcc, 82
+ tn %xcc, %g1 + %i2
+ tn %xcc, %i5 + 41
+
+ ! CHECK: tne %xcc, %i5 ! encoding: [0x93,0xd0,0x10,0x1d]
+ !! tnz should be a synonym for tne
+ ! CHECK: tne %xcc, %i5 ! encoding: [0x93,0xd0,0x10,0x1d]
+ ! CHECK: tne %xcc, 82 ! encoding: [0x93,0xd0,0x30,0x52]
+ ! CHECK: tne %xcc, %g1 + %i2 ! encoding: [0x93,0xd0,0x50,0x1a]
+ ! CHECK: tne %xcc, %i5 + 41 ! encoding: [0x93,0xd7,0x70,0x29]
+ tne %xcc, %i5
+ tnz %xcc, %i5
+ tne %xcc, 82
+ tne %xcc, %g1 + %i2
+ tne %xcc, %i5 + 41
+
+ ! CHECK: te %xcc, %i5 ! encoding: [0x83,0xd0,0x10,0x1d]
+ !! tz should be a synonym for te
+ ! CHECK: te %xcc, %i5 ! encoding: [0x83,0xd0,0x10,0x1d]
+ ! CHECK: te %xcc, 82 ! encoding: [0x83,0xd0,0x30,0x52]
+ ! CHECK: te %xcc, %g1 + %i2 ! encoding: [0x83,0xd0,0x50,0x1a]
+ ! CHECK: te %xcc, %i5 + 41 ! encoding: [0x83,0xd7,0x70,0x29]
+ te %xcc, %i5
+ tz %xcc, %i5
+ te %xcc, 82
+ te %xcc, %g1 + %i2
+ te %xcc, %i5 + 41
+
+ ! CHECK: tg %xcc, %i5 ! encoding: [0x95,0xd0,0x10,0x1d]
+ ! CHECK: tg %xcc, 82 ! encoding: [0x95,0xd0,0x30,0x52]
+ ! CHECK: tg %xcc, %g1 + %i2 ! encoding: [0x95,0xd0,0x50,0x1a]
+ ! CHECK: tg %xcc, %i5 + 41 ! encoding: [0x95,0xd7,0x70,0x29]
+ tg %xcc, %i5
+ tg %xcc, 82
+ tg %xcc, %g1 + %i2
+ tg %xcc, %i5 + 41
+
+ ! CHECK: tle %xcc, %i5 ! encoding: [0x85,0xd0,0x10,0x1d]
+ ! CHECK: tle %xcc, 82 ! encoding: [0x85,0xd0,0x30,0x52]
+ ! CHECK: tle %xcc, %g1 + %i2 ! encoding: [0x85,0xd0,0x50,0x1a]
+ ! CHECK: tle %xcc, %i5 + 41 ! encoding: [0x85,0xd7,0x70,0x29]
+ tle %xcc, %i5
+ tle %xcc, 82
+ tle %xcc, %g1 + %i2
+ tle %xcc, %i5 + 41
+
+ ! CHECK: tge %xcc, %i5 ! encoding: [0x97,0xd0,0x10,0x1d]
+ ! CHECK: tge %xcc, 82 ! encoding: [0x97,0xd0,0x30,0x52]
+ ! CHECK: tge %xcc, %g1 + %i2 ! encoding: [0x97,0xd0,0x50,0x1a]
+ ! CHECK: tge %xcc, %i5 + 41 ! encoding: [0x97,0xd7,0x70,0x29]
+ tge %xcc, %i5
+ tge %xcc, 82
+ tge %xcc, %g1 + %i2
+ tge %xcc, %i5 + 41
+
+ ! CHECK: tl %xcc, %i5 ! encoding: [0x87,0xd0,0x10,0x1d]
+ ! CHECK: tl %xcc, 82 ! encoding: [0x87,0xd0,0x30,0x52]
+ ! CHECK: tl %xcc, %g1 + %i2 ! encoding: [0x87,0xd0,0x50,0x1a]
+ ! CHECK: tl %xcc, %i5 + 41 ! encoding: [0x87,0xd7,0x70,0x29]
+ tl %xcc, %i5
+ tl %xcc, 82
+ tl %xcc, %g1 + %i2
+ tl %xcc, %i5 + 41
+
+ ! CHECK: tgu %xcc, %i5 ! encoding: [0x99,0xd0,0x10,0x1d]
+ ! CHECK: tgu %xcc, 82 ! encoding: [0x99,0xd0,0x30,0x52]
+ ! CHECK: tgu %xcc, %g1 + %i2 ! encoding: [0x99,0xd0,0x50,0x1a]
+ ! CHECK: tgu %xcc, %i5 + 41 ! encoding: [0x99,0xd7,0x70,0x29]
+ tgu %xcc, %i5
+ tgu %xcc, 82
+ tgu %xcc, %g1 + %i2
+ tgu %xcc, %i5 + 41
+
+ ! CHECK: tleu %xcc, %i5 ! encoding: [0x89,0xd0,0x10,0x1d]
+ ! CHECK: tleu %xcc, 82 ! encoding: [0x89,0xd0,0x30,0x52]
+ ! CHECK: tleu %xcc, %g1 + %i2 ! encoding: [0x89,0xd0,0x50,0x1a]
+ ! CHECK: tleu %xcc, %i5 + 41 ! encoding: [0x89,0xd7,0x70,0x29]
+ tleu %xcc, %i5
+ tleu %xcc, 82
+ tleu %xcc, %g1 + %i2
+ tleu %xcc, %i5 + 41
+
+ ! CHECK: tcc %xcc, %i5 ! encoding: [0x9b,0xd0,0x10,0x1d]
+ ! CHECK: tcc %xcc, 82 ! encoding: [0x9b,0xd0,0x30,0x52]
+ ! CHECK: tcc %xcc, %g1 + %i2 ! encoding: [0x9b,0xd0,0x50,0x1a]
+ ! CHECK: tcc %xcc, %i5 + 41 ! encoding: [0x9b,0xd7,0x70,0x29]
+ tcc %xcc, %i5
+ tcc %xcc, 82
+ tcc %xcc, %g1 + %i2
+ tcc %xcc, %i5 + 41
+
+ ! CHECK: tcs %xcc, %i5 ! encoding: [0x8b,0xd0,0x10,0x1d]
+ ! CHECK: tcs %xcc, 82 ! encoding: [0x8b,0xd0,0x30,0x52]
+ ! CHECK: tcs %xcc, %g1 + %i2 ! encoding: [0x8b,0xd0,0x50,0x1a]
+ ! CHECK: tcs %xcc, %i5 + 41 ! encoding: [0x8b,0xd7,0x70,0x29]
+ tcs %xcc, %i5
+ tcs %xcc, 82
+ tcs %xcc, %g1 + %i2
+ tcs %xcc, %i5 + 41
+
+ ! CHECK: tpos %xcc, %i5 ! encoding: [0x9d,0xd0,0x10,0x1d]
+ ! CHECK: tpos %xcc, 82 ! encoding: [0x9d,0xd0,0x30,0x52]
+ ! CHECK: tpos %xcc, %g1 + %i2 ! encoding: [0x9d,0xd0,0x50,0x1a]
+ ! CHECK: tpos %xcc, %i5 + 41 ! encoding: [0x9d,0xd7,0x70,0x29]
+ tpos %xcc, %i5
+ tpos %xcc, 82
+ tpos %xcc, %g1 + %i2
+ tpos %xcc, %i5 + 41
+
+ ! CHECK: tneg %xcc, %i5 ! encoding: [0x8d,0xd0,0x10,0x1d]
+ ! CHECK: tneg %xcc, 82 ! encoding: [0x8d,0xd0,0x30,0x52]
+ ! CHECK: tneg %xcc, %g1 + %i2 ! encoding: [0x8d,0xd0,0x50,0x1a]
+ ! CHECK: tneg %xcc, %i5 + 41 ! encoding: [0x8d,0xd7,0x70,0x29]
+ tneg %xcc, %i5
+ tneg %xcc, 82
+ tneg %xcc, %g1 + %i2
+ tneg %xcc, %i5 + 41
+
+ ! CHECK: tvc %xcc, %i5 ! encoding: [0x9f,0xd0,0x10,0x1d]
+ ! CHECK: tvc %xcc, 82 ! encoding: [0x9f,0xd0,0x30,0x52]
+ ! CHECK: tvc %xcc, %g1 + %i2 ! encoding: [0x9f,0xd0,0x50,0x1a]
+ ! CHECK: tvc %xcc, %i5 + 41 ! encoding: [0x9f,0xd7,0x70,0x29]
+ tvc %xcc, %i5
+ tvc %xcc, 82
+ tvc %xcc, %g1 + %i2
+ tvc %xcc, %i5 + 41
+
+ ! CHECK: tvs %xcc, %i5 ! encoding: [0x8f,0xd0,0x10,0x1d]
+ ! CHECK: tvs %xcc, 82 ! encoding: [0x8f,0xd0,0x30,0x52]
+ ! CHECK: tvs %xcc, %g1 + %i2 ! encoding: [0x8f,0xd0,0x50,0x1a]
+ ! CHECK: tvs %xcc, %i5 + 41 ! encoding: [0x8f,0xd7,0x70,0x29]
+ tvs %xcc, %i5
+ tvs %xcc, 82
+ tvs %xcc, %g1 + %i2
+ tvs %xcc, %i5 + 41
+ \ No newline at end of file
diff --git a/test/MC/Sparc/sparc64-ctrl-instructions.s b/test/MC/Sparc/sparc64-ctrl-instructions.s
index 0e7ea25cab94..d1a744f7526a 100644
--- a/test/MC/Sparc/sparc64-ctrl-instructions.s
+++ b/test/MC/Sparc/sparc64-ctrl-instructions.s
@@ -1230,9 +1230,3 @@
! CHECK: rett %i7+8 ! encoding: [0x81,0xcf,0xe0,0x08]
return %i7 + 8
- ! CHECK: ta %icc, %g0 + 5 ! encoding: [0x91,0xd0,0x20,0x05]
- ta 5
-
- ! CHECK: te %xcc, %g0 + 3 ! encoding: [0x83,0xd0,0x30,0x03]
- te %xcc, 3
-
diff --git a/test/MC/SystemZ/insn-bad-z13.s b/test/MC/SystemZ/insn-bad-z13.s
index 6468e3ae2ba0..a07e1ac6cfe3 100644
--- a/test/MC/SystemZ/insn-bad-z13.s
+++ b/test/MC/SystemZ/insn-bad-z13.s
@@ -1199,3 +1199,26 @@
wledb %v0, %v0, 0, 16
wledb %v0, %v0, -1, 0
wledb %v0, %v0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: lochie %r0, 66000
+#CHECK: error: invalid operand
+#CHECK: lochie %f0, 0
+#CHECK: error: invalid operand
+#CHECK: lochie 0, %r0
+
+ lochie %r0, 66000
+ lochie %f0, 0
+ lochie 0, %r0
+
+#CHECK: error: invalid operand
+#CHECK: locghie %r0, 66000
+#CHECK: error: invalid operand
+#CHECK: locghie %f0, 0
+#CHECK: error: invalid operand
+#CHECK: locghie 0, %r0
+
+ locghie %r0, 66000
+ locghie %f0, 0
+ locghie 0, %r0
+
diff --git a/test/MC/SystemZ/insn-bad-z196.s b/test/MC/SystemZ/insn-bad-z196.s
index 1bd70a871ed2..e94f837a091b 100644
--- a/test/MC/SystemZ/insn-bad-z196.s
+++ b/test/MC/SystemZ/insn-bad-z196.s
@@ -607,6 +607,20 @@
risblg %r0,%r0,256,0,0
#CHECK: error: invalid operand
+#CHECK: slak %r0,%r0,-524289
+#CHECK: error: invalid operand
+#CHECK: slak %r0,%r0,524288
+#CHECK: error: %r0 used in an address
+#CHECK: slak %r0,%r0,0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: slak %r0,%r0,0(%r1,%r2)
+
+ slak %r0,%r0,-524289
+ slak %r0,%r0,524288
+ slak %r0,%r0,0(%r0)
+ slak %r0,%r0,0(%r1,%r2)
+
+#CHECK: error: invalid operand
#CHECK: sllk %r0,%r0,-524289
#CHECK: error: invalid operand
#CHECK: sllk %r0,%r0,524288
diff --git a/test/MC/SystemZ/insn-bad-zEC12.s b/test/MC/SystemZ/insn-bad-zEC12.s
index ee31f5707af1..371dc72a1678 100644
--- a/test/MC/SystemZ/insn-bad-zEC12.s
+++ b/test/MC/SystemZ/insn-bad-zEC12.s
@@ -1576,3 +1576,14 @@
#CHECK: wledb %v0, %v0, 0, 0
wledb %v0, %v0, 0, 0
+
+#CHECK: error: {{(instruction requires: load store on condition 2)?}}
+#CHECK: lochio %r11, 42
+
+ lochio %r11, 42
+
+#CHECK: error: {{(instruction requires: load store on condition 2)?}}
+#CHECK: locghio %r11, 42
+
+ locghio %r11, 42
+
diff --git a/test/MC/SystemZ/insn-bad.s b/test/MC/SystemZ/insn-bad.s
index 0410a411167e..d4cc38b2bdd6 100644
--- a/test/MC/SystemZ/insn-bad.s
+++ b/test/MC/SystemZ/insn-bad.s
@@ -584,6 +584,20 @@
cgijo %r0, 0, 0, 0
cgijno %r0, 0, 0, 0
+#CHECK: error: invalid operand
+#CHECK: cgit %r0, -32769
+#CHECK: error: invalid operand
+#CHECK: cgit %r0, 32768
+#CHECK: error: invalid instruction
+#CHECK: cgito %r0, 0
+#CHECK: error: invalid instruction
+#CHECK: cgitno %r0, 0
+
+ cgit %r0, -32769
+ cgit %r0, 32768
+ cgito %r0, 0
+ cgitno %r0, 0
+
#CHECK: error: offset out of range
#CHECK: cgrj %r0, %r0, 0, -0x100002
#CHECK: error: offset out of range
@@ -620,6 +634,14 @@
cgrl %r0, 1
cgrl %r0, 0x100000000
+#CHECK: error: invalid instruction
+#CHECK: cgrto %r0, %r0
+#CHECK: error: invalid instruction
+#CHECK: cgrtno %r0, %r0
+
+ cgrto %r0, %r0
+ cgrtno %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: cgxbr %r0, -1, %f0
#CHECK: error: invalid operand
@@ -748,6 +770,20 @@
cijno %r0, 0, 0, 0
#CHECK: error: invalid operand
+#CHECK: cit %r0, -32769
+#CHECK: error: invalid operand
+#CHECK: cit %r0, 32768
+#CHECK: error: invalid instruction
+#CHECK: cito %r0, 0
+#CHECK: error: invalid instruction
+#CHECK: citno %r0, 0
+
+ cit %r0, -32769
+ cit %r0, 32768
+ cito %r0, 0
+ citno %r0, 0
+
+#CHECK: error: invalid operand
#CHECK: cl %r0, -1
#CHECK: error: invalid operand
#CHECK: cl %r0, 4096
@@ -839,6 +875,20 @@
clfi %r0, -1
clfi %r0, (1 << 32)
+#CHECK: error: invalid operand
+#CHECK: clfit %r0, -1
+#CHECK: error: invalid operand
+#CHECK: clfit %r0, 65536
+#CHECK: error: invalid instruction
+#CHECK: clfito %r0, 0
+#CHECK: error: invalid instruction
+#CHECK: clfitno %r0, 0
+
+ clfit %r0, -1
+ clfit %r0, 65536
+ clfito %r0, 0
+ clfitno %r0, 0
+
#CHECK: error: {{(instruction requires: fp-extension)?}}
#CHECK: clfxbr %r0, 0, %f0, 0
@@ -852,6 +902,20 @@
clg %r0, -524289
clg %r0, 524288
+#CHECK: error: invalid operand
+#CHECK: clgit %r0, -1
+#CHECK: error: invalid operand
+#CHECK: clgit %r0, 65536
+#CHECK: error: invalid instruction
+#CHECK: clgito %r0, 0
+#CHECK: error: invalid instruction
+#CHECK: clgitno %r0, 0
+
+ clgit %r0, -1
+ clgit %r0, 65536
+ clgito %r0, 0
+ clgitno %r0, 0
+
#CHECK: error: {{(instruction requires: fp-extension)?}}
#CHECK: clgdbr %r0, 0, %f0, 0
@@ -981,6 +1045,14 @@
clgrl %r0, 1
clgrl %r0, 0x100000000
+#CHECK: error: invalid instruction
+#CHECK: clgrto %r0, %r0
+#CHECK: error: invalid instruction
+#CHECK: clgrtno %r0, %r0
+
+ clgrto %r0, %r0
+ clgrtno %r0, %r0
+
#CHECK: error: {{(instruction requires: fp-extension)?}}
#CHECK: clgxbr %r0, 0, %f0, 0
@@ -1122,6 +1194,14 @@
clrl %r0, 1
clrl %r0, 0x100000000
+#CHECK: error: invalid instruction
+#CHECK: clrto %r0, %r0
+#CHECK: error: invalid instruction
+#CHECK: clrtno %r0, %r0
+
+ clrto %r0, %r0
+ clrtno %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: cly %r0, -524289
#CHECK: error: invalid operand
@@ -1166,6 +1246,14 @@
crl %r0, 1
crl %r0, 0x100000000
+#CHECK: error: invalid instruction
+#CHECK: crto %r0, %r0
+#CHECK: error: invalid instruction
+#CHECK: crtno %r0, %r0
+
+ crto %r0, %r0
+ crtno %r0, %r0
+
#CHECK: error: invalid operand
#CHECK: cs %r0, %r0, -1
#CHECK: error: invalid operand
@@ -1324,6 +1412,14 @@
dxbr %f2, %f0
#CHECK: error: invalid operand
+#CHECK: ex %r0, -1
+#CHECK: error: invalid operand
+#CHECK: ex %r0, 4096
+
+ ex %r0, -1
+ ex %r0, 4096
+
+#CHECK: error: invalid operand
#CHECK: fidbr %f0, -1, %f0
#CHECK: error: invalid operand
#CHECK: fidbr %f0, 16, %f0
@@ -1382,6 +1478,48 @@
ic %r0, 4096
#CHECK: error: invalid operand
+#CHECK: icm %r0, 0, -1
+#CHECK: error: invalid operand
+#CHECK: icm %r0, 0, 4096
+#CHECK: error: invalid operand
+#CHECK: icm %r0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: icm %r0, 16, 0
+
+ icm %r0, 0, -1
+ icm %r0, 0, 4096
+ icm %r0, -1, 0
+ icm %r0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: icmh %r0, 0, -524289
+#CHECK: error: invalid operand
+#CHECK: icmh %r0, 0, 524288
+#CHECK: error: invalid operand
+#CHECK: icmh %r0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: icmh %r0, 16, 0
+
+ icmh %r0, 0, -524289
+ icmh %r0, 0, 524288
+ icmh %r0, -1, 0
+ icmh %r0, 16, 0
+
+#CHECK: error: invalid operand
+#CHECK: icmy %r0, 0, -524289
+#CHECK: error: invalid operand
+#CHECK: icmy %r0, 0, 524288
+#CHECK: error: invalid operand
+#CHECK: icmy %r0, -1, 0
+#CHECK: error: invalid operand
+#CHECK: icmy %r0, 16, 0
+
+ icmy %r0, 0, -524289
+ icmy %r0, 0, 524288
+ icmy %r0, -1, 0
+ icmy %r0, 16, 0
+
+#CHECK: error: invalid operand
#CHECK: icy %r0, -524289
#CHECK: error: invalid operand
#CHECK: icy %r0, 524288
@@ -1892,6 +2030,14 @@
llill %r0, 0x10000
#CHECK: error: invalid operand
+#CHECK: lm %r0, %r0, 4096
+#CHECK: error: invalid use of indexed addressing
+#CHECK: lm %r0, %r0, 0(%r1,%r2)
+
+ lm %r0, %r0, 4096
+ lm %r0, %r0, 0(%r1,%r2)
+
+#CHECK: error: invalid operand
#CHECK: lmg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: lmg %r0, %r0, 524288
@@ -1902,6 +2048,28 @@
lmg %r0, %r0, 524288
lmg %r0, %r0, 0(%r1,%r2)
+#CHECK: error: invalid operand
+#CHECK: lmh %r0, %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: lmh %r0, %r0, 524288
+#CHECK: error: invalid use of indexed addressing
+#CHECK: lmh %r0, %r0, 0(%r1,%r2)
+
+ lmh %r0, %r0, -524289
+ lmh %r0, %r0, 524288
+ lmh %r0, %r0, 0(%r1,%r2)
+
+#CHECK: error: invalid operand
+#CHECK: lmy %r0, %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: lmy %r0, %r0, 524288
+#CHECK: error: invalid use of indexed addressing
+#CHECK: lmy %r0, %r0, 0(%r1,%r2)
+
+ lmy %r0, %r0, -524289
+ lmy %r0, %r0, 524288
+ lmy %r0, %r0, 0(%r1,%r2)
+
#CHECK: error: invalid register pair
#CHECK: lnxbr %f0, %f2
#CHECK: error: invalid register pair
@@ -2912,6 +3080,25 @@
slgrk %r2,%r3,%r4
#CHECK: error: invalid operand
+#CHECK: sla %r0,-1
+#CHECK: error: invalid operand
+#CHECK: sla %r0,4096
+#CHECK: error: %r0 used in an address
+#CHECK: sla %r0,0(%r0)
+#CHECK: error: invalid use of indexed addressing
+#CHECK: sla %r0,0(%r1,%r2)
+
+ sla %r0,-1
+ sla %r0,4096
+ sla %r0,0(%r0)
+ sla %r0,0(%r1,%r2)
+
+#CHECK: error: {{(instruction requires: distinct-ops)?}}
+#CHECK: slak %r2,%r3,4(%r5)
+
+ slak %r2,%r3,4(%r5)
+
+#CHECK: error: invalid operand
#CHECK: sll %r0,-1
#CHECK: error: invalid operand
#CHECK: sll %r0,4096
@@ -3176,6 +3363,14 @@
stfh %r0, 0
#CHECK: error: invalid operand
+#CHECK: stm %r0, %r0, 4096
+#CHECK: error: invalid use of indexed addressing
+#CHECK: stm %r0, %r0, 0(%r1,%r2)
+
+ stm %r0, %r0, 4096
+ stm %r0, %r0, 0(%r1,%r2)
+
+#CHECK: error: invalid operand
#CHECK: stmg %r0, %r0, -524289
#CHECK: error: invalid operand
#CHECK: stmg %r0, %r0, 524288
@@ -3186,6 +3381,28 @@
stmg %r0, %r0, 524288
stmg %r0, %r0, 0(%r1,%r2)
+#CHECK: error: invalid operand
+#CHECK: stmh %r0, %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: stmh %r0, %r0, 524288
+#CHECK: error: invalid use of indexed addressing
+#CHECK: stmh %r0, %r0, 0(%r1,%r2)
+
+ stmh %r0, %r0, -524289
+ stmh %r0, %r0, 524288
+ stmh %r0, %r0, 0(%r1,%r2)
+
+#CHECK: error: invalid operand
+#CHECK: stmy %r0, %r0, -524289
+#CHECK: error: invalid operand
+#CHECK: stmy %r0, %r0, 524288
+#CHECK: error: invalid use of indexed addressing
+#CHECK: stmy %r0, %r0, 0(%r1,%r2)
+
+ stmy %r0, %r0, -524289
+ stmy %r0, %r0, 524288
+ stmy %r0, %r0, 0(%r1,%r2)
+
#CHECK: error: offset out of range
#CHECK: strl %r0, -0x1000000002
#CHECK: error: offset out of range
@@ -3241,6 +3458,30 @@
sy %r0, 524288
#CHECK: error: invalid operand
+#CHECK: tcdb %f0, -1
+#CHECK: error: invalid operand
+#CHECK: tcdb %f0, 4096
+
+ tcdb %f0, -1
+ tcdb %f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tceb %f0, -1
+#CHECK: error: invalid operand
+#CHECK: tceb %f0, 4096
+
+ tceb %f0, -1
+ tceb %f0, 4096
+
+#CHECK: error: invalid operand
+#CHECK: tcxb %f0, -1
+#CHECK: error: invalid operand
+#CHECK: tcxb %f0, 4096
+
+ tcxb %f0, -1
+ tcxb %f0, 4096
+
+#CHECK: error: invalid operand
#CHECK: tm -1, 0
#CHECK: error: invalid operand
#CHECK: tm 4096, 0
@@ -3274,6 +3515,14 @@
tmhl %r0, 0x10000
#CHECK: error: invalid operand
+#CHECK: tmh %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tmh %r0, 0x10000
+
+ tmh %r0, -1
+ tmh %r0, 0x10000
+
+#CHECK: error: invalid operand
#CHECK: tmlh %r0, -1
#CHECK: error: invalid operand
#CHECK: tmlh %r0, 0x10000
@@ -3282,6 +3531,14 @@
tmlh %r0, 0x10000
#CHECK: error: invalid operand
+#CHECK: tml %r0, -1
+#CHECK: error: invalid operand
+#CHECK: tml %r0, 0x10000
+
+ tml %r0, -1
+ tml %r0, 0x10000
+
+#CHECK: error: invalid operand
#CHECK: tmll %r0, -1
#CHECK: error: invalid operand
#CHECK: tmll %r0, 0x10000
diff --git a/test/MC/SystemZ/insn-good-z13.s b/test/MC/SystemZ/insn-good-z13.s
index db783295e546..411945a9b463 100644
--- a/test/MC/SystemZ/insn-good-z13.s
+++ b/test/MC/SystemZ/insn-good-z13.s
@@ -5089,3 +5089,71 @@
wledb %v0, %v31, 0, 0
wledb %v31, %v0, 0, 0
wledb %v14, %v17, 4, 10
+
+#CHECK: lochi %r11, 42, 0 # encoding: [0xec,0xb0,0x00,0x2a,0x00,0x42]
+#CHECK: lochio %r11, 42 # encoding: [0xec,0xb1,0x00,0x2a,0x00,0x42]
+#CHECK: lochih %r11, 42 # encoding: [0xec,0xb2,0x00,0x2a,0x00,0x42]
+#CHECK: lochinle %r11, 42 # encoding: [0xec,0xb3,0x00,0x2a,0x00,0x42]
+#CHECK: lochil %r11, -1 # encoding: [0xec,0xb4,0xff,0xff,0x00,0x42]
+#CHECK: lochinhe %r11, 42 # encoding: [0xec,0xb5,0x00,0x2a,0x00,0x42]
+#CHECK: lochilh %r11, -1 # encoding: [0xec,0xb6,0xff,0xff,0x00,0x42]
+#CHECK: lochine %r11, 0 # encoding: [0xec,0xb7,0x00,0x00,0x00,0x42]
+#CHECK: lochie %r11, 0 # encoding: [0xec,0xb8,0x00,0x00,0x00,0x42]
+#CHECK: lochinlh %r11, 42 # encoding: [0xec,0xb9,0x00,0x2a,0x00,0x42]
+#CHECK: lochihe %r11, 255 # encoding: [0xec,0xba,0x00,0xff,0x00,0x42]
+#CHECK: lochinl %r11, 255 # encoding: [0xec,0xbb,0x00,0xff,0x00,0x42]
+#CHECK: lochile %r11, 32767 # encoding: [0xec,0xbc,0x7f,0xff,0x00,0x42]
+#CHECK: lochinh %r11, 32767 # encoding: [0xec,0xbd,0x7f,0xff,0x00,0x42]
+#CHECK: lochino %r11, 32512 # encoding: [0xec,0xbe,0x7f,0x00,0x00,0x42]
+#CHECK: lochi %r11, 32512, 15 # encoding: [0xec,0xbf,0x7f,0x00,0x00,0x42]
+
+ lochi %r11, 42, 0
+ lochio %r11, 42
+ lochih %r11, 42
+ lochinle %r11, 42
+ lochil %r11, -1
+ lochinhe %r11, 42
+ lochilh %r11, -1
+ lochine %r11, 0
+ lochie %r11, 0
+ lochinlh %r11, 42
+ lochihe %r11, 255
+ lochinl %r11, 255
+ lochile %r11, 32767
+ lochinh %r11, 32767
+ lochino %r11, 32512
+ lochi %r11, 32512, 15
+
+#CHECK: locghi %r11, 42, 0 # encoding: [0xec,0xb0,0x00,0x2a,0x00,0x46]
+#CHECK: locghio %r11, 42 # encoding: [0xec,0xb1,0x00,0x2a,0x00,0x46]
+#CHECK: locghih %r11, 42 # encoding: [0xec,0xb2,0x00,0x2a,0x00,0x46]
+#CHECK: locghinle %r11, 42 # encoding: [0xec,0xb3,0x00,0x2a,0x00,0x46]
+#CHECK: locghil %r11, -1 # encoding: [0xec,0xb4,0xff,0xff,0x00,0x46]
+#CHECK: locghinhe %r11, 42 # encoding: [0xec,0xb5,0x00,0x2a,0x00,0x46]
+#CHECK: locghilh %r11, -1 # encoding: [0xec,0xb6,0xff,0xff,0x00,0x46]
+#CHECK: locghine %r11, 0 # encoding: [0xec,0xb7,0x00,0x00,0x00,0x46]
+#CHECK: locghie %r11, 0 # encoding: [0xec,0xb8,0x00,0x00,0x00,0x46]
+#CHECK: locghinlh %r11, 42 # encoding: [0xec,0xb9,0x00,0x2a,0x00,0x46]
+#CHECK: locghihe %r11, 255 # encoding: [0xec,0xba,0x00,0xff,0x00,0x46]
+#CHECK: locghinl %r11, 255 # encoding: [0xec,0xbb,0x00,0xff,0x00,0x46]
+#CHECK: locghile %r11, 32767 # encoding: [0xec,0xbc,0x7f,0xff,0x00,0x46]
+#CHECK: locghinh %r11, 32767 # encoding: [0xec,0xbd,0x7f,0xff,0x00,0x46]
+#CHECK: locghino %r11, 32512 # encoding: [0xec,0xbe,0x7f,0x00,0x00,0x46]
+#CHECK: locghi %r11, 32512, 15 # encoding: [0xec,0xbf,0x7f,0x00,0x00,0x46]
+
+ locghi %r11, 42, 0
+ locghio %r11, 42
+ locghih %r11, 42
+ locghinle %r11, 42
+ locghil %r11, -1
+ locghinhe %r11, 42
+ locghilh %r11, -1
+ locghine %r11, 0
+ locghie %r11, 0
+ locghinlh %r11, 42
+ locghihe %r11, 255
+ locghinl %r11, 255
+ locghile %r11, 32767
+ locghinh %r11, 32767
+ locghino %r11, 32512
+ locghi %r11, 32512, 15
diff --git a/test/MC/SystemZ/insn-good-z196.s b/test/MC/SystemZ/insn-good-z196.s
index 36bea38f5fee..fb2c2495d7af 100644
--- a/test/MC/SystemZ/insn-good-z196.s
+++ b/test/MC/SystemZ/insn-good-z196.s
@@ -825,32 +825,44 @@
#CHECK: loco %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xf2]
#CHECK: loch %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf2]
+#CHECK: locp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf2]
#CHECK: locnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xf2]
#CHECK: locl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf2]
+#CHECK: locm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf2]
#CHECK: locnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xf2]
#CHECK: loclh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xf2]
#CHECK: locne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf2]
+#CHECK: locnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf2]
#CHECK: loce %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf2]
+#CHECK: locz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf2]
#CHECK: locnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xf2]
#CHECK: loche %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xf2]
#CHECK: locnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf2]
+#CHECK: locnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf2]
#CHECK: locle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xf2]
#CHECK: locnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf2]
+#CHECK: locnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf2]
#CHECK: locno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xf2]
loco %r1,2(%r3)
loch %r1,2(%r3)
+ locp %r1,2(%r3)
locnle %r1,2(%r3)
locl %r1,2(%r3)
+ locm %r1,2(%r3)
locnhe %r1,2(%r3)
loclh %r1,2(%r3)
locne %r1,2(%r3)
+ locnz %r1,2(%r3)
loce %r1,2(%r3)
+ locz %r1,2(%r3)
locnlh %r1,2(%r3)
loche %r1,2(%r3)
locnl %r1,2(%r3)
+ locnm %r1,2(%r3)
locle %r1,2(%r3)
locnh %r1,2(%r3)
+ locnp %r1,2(%r3)
locno %r1,2(%r3)
#CHECK: locg %r0, 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xe2]
@@ -873,32 +885,44 @@
#CHECK: locgo %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xe2]
#CHECK: locgh %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe2]
+#CHECK: locgp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe2]
#CHECK: locgnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xe2]
#CHECK: locgl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe2]
+#CHECK: locgm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe2]
#CHECK: locgnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xe2]
#CHECK: locglh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xe2]
#CHECK: locgne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe2]
+#CHECK: locgnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe2]
#CHECK: locge %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe2]
+#CHECK: locgz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe2]
#CHECK: locgnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xe2]
#CHECK: locghe %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xe2]
#CHECK: locgnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe2]
+#CHECK: locgnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe2]
#CHECK: locgle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xe2]
#CHECK: locgnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe2]
+#CHECK: locgnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe2]
#CHECK: locgno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xe2]
locgo %r1,2(%r3)
locgh %r1,2(%r3)
+ locgp %r1,2(%r3)
locgnle %r1,2(%r3)
locgl %r1,2(%r3)
+ locgm %r1,2(%r3)
locgnhe %r1,2(%r3)
locglh %r1,2(%r3)
locgne %r1,2(%r3)
+ locgnz %r1,2(%r3)
locge %r1,2(%r3)
+ locgz %r1,2(%r3)
locgnlh %r1,2(%r3)
locghe %r1,2(%r3)
locgnl %r1,2(%r3)
+ locgnm %r1,2(%r3)
locgle %r1,2(%r3)
locgnh %r1,2(%r3)
+ locgnp %r1,2(%r3)
locgno %r1,2(%r3)
#CHECK: locgr %r1, %r2, 0 # encoding: [0xb9,0xe2,0x00,0x12]
@@ -909,32 +933,44 @@
#CHECK: locgro %r1, %r3 # encoding: [0xb9,0xe2,0x10,0x13]
#CHECK: locgrh %r1, %r3 # encoding: [0xb9,0xe2,0x20,0x13]
+#CHECK: locgrp %r1, %r3 # encoding: [0xb9,0xe2,0x20,0x13]
#CHECK: locgrnle %r1, %r3 # encoding: [0xb9,0xe2,0x30,0x13]
#CHECK: locgrl %r1, %r3 # encoding: [0xb9,0xe2,0x40,0x13]
+#CHECK: locgrm %r1, %r3 # encoding: [0xb9,0xe2,0x40,0x13]
#CHECK: locgrnhe %r1, %r3 # encoding: [0xb9,0xe2,0x50,0x13]
#CHECK: locgrlh %r1, %r3 # encoding: [0xb9,0xe2,0x60,0x13]
#CHECK: locgrne %r1, %r3 # encoding: [0xb9,0xe2,0x70,0x13]
+#CHECK: locgrnz %r1, %r3 # encoding: [0xb9,0xe2,0x70,0x13]
#CHECK: locgre %r1, %r3 # encoding: [0xb9,0xe2,0x80,0x13]
+#CHECK: locgrz %r1, %r3 # encoding: [0xb9,0xe2,0x80,0x13]
#CHECK: locgrnlh %r1, %r3 # encoding: [0xb9,0xe2,0x90,0x13]
#CHECK: locgrhe %r1, %r3 # encoding: [0xb9,0xe2,0xa0,0x13]
#CHECK: locgrnl %r1, %r3 # encoding: [0xb9,0xe2,0xb0,0x13]
+#CHECK: locgrnm %r1, %r3 # encoding: [0xb9,0xe2,0xb0,0x13]
#CHECK: locgrle %r1, %r3 # encoding: [0xb9,0xe2,0xc0,0x13]
#CHECK: locgrnh %r1, %r3 # encoding: [0xb9,0xe2,0xd0,0x13]
+#CHECK: locgrnp %r1, %r3 # encoding: [0xb9,0xe2,0xd0,0x13]
#CHECK: locgrno %r1, %r3 # encoding: [0xb9,0xe2,0xe0,0x13]
locgro %r1,%r3
locgrh %r1,%r3
+ locgrp %r1,%r3
locgrnle %r1,%r3
locgrl %r1,%r3
+ locgrm %r1,%r3
locgrnhe %r1,%r3
locgrlh %r1,%r3
locgrne %r1,%r3
+ locgrnz %r1,%r3
locgre %r1,%r3
+ locgrz %r1,%r3
locgrnlh %r1,%r3
locgrhe %r1,%r3
locgrnl %r1,%r3
+ locgrnm %r1,%r3
locgrle %r1,%r3
locgrnh %r1,%r3
+ locgrnp %r1,%r3
locgrno %r1,%r3
#CHECK: locr %r1, %r2, 0 # encoding: [0xb9,0xf2,0x00,0x12]
@@ -945,32 +981,44 @@
#CHECK: locro %r1, %r3 # encoding: [0xb9,0xf2,0x10,0x13]
#CHECK: locrh %r1, %r3 # encoding: [0xb9,0xf2,0x20,0x13]
+#CHECK: locrp %r1, %r3 # encoding: [0xb9,0xf2,0x20,0x13]
#CHECK: locrnle %r1, %r3 # encoding: [0xb9,0xf2,0x30,0x13]
#CHECK: locrl %r1, %r3 # encoding: [0xb9,0xf2,0x40,0x13]
+#CHECK: locrm %r1, %r3 # encoding: [0xb9,0xf2,0x40,0x13]
#CHECK: locrnhe %r1, %r3 # encoding: [0xb9,0xf2,0x50,0x13]
#CHECK: locrlh %r1, %r3 # encoding: [0xb9,0xf2,0x60,0x13]
#CHECK: locrne %r1, %r3 # encoding: [0xb9,0xf2,0x70,0x13]
+#CHECK: locrnz %r1, %r3 # encoding: [0xb9,0xf2,0x70,0x13]
#CHECK: locre %r1, %r3 # encoding: [0xb9,0xf2,0x80,0x13]
+#CHECK: locrz %r1, %r3 # encoding: [0xb9,0xf2,0x80,0x13]
#CHECK: locrnlh %r1, %r3 # encoding: [0xb9,0xf2,0x90,0x13]
#CHECK: locrhe %r1, %r3 # encoding: [0xb9,0xf2,0xa0,0x13]
#CHECK: locrnl %r1, %r3 # encoding: [0xb9,0xf2,0xb0,0x13]
+#CHECK: locrnm %r1, %r3 # encoding: [0xb9,0xf2,0xb0,0x13]
#CHECK: locrle %r1, %r3 # encoding: [0xb9,0xf2,0xc0,0x13]
#CHECK: locrnh %r1, %r3 # encoding: [0xb9,0xf2,0xd0,0x13]
+#CHECK: locrnp %r1, %r3 # encoding: [0xb9,0xf2,0xd0,0x13]
#CHECK: locrno %r1, %r3 # encoding: [0xb9,0xf2,0xe0,0x13]
locro %r1,%r3
locrh %r1,%r3
+ locrp %r1,%r3
locrnle %r1,%r3
locrl %r1,%r3
+ locrm %r1,%r3
locrnhe %r1,%r3
locrlh %r1,%r3
locrne %r1,%r3
+ locrnz %r1,%r3
locre %r1,%r3
+ locrz %r1,%r3
locrnlh %r1,%r3
locrhe %r1,%r3
locrnl %r1,%r3
+ locrnm %r1,%r3
locrle %r1,%r3
locrnh %r1,%r3
+ locrnp %r1,%r3
locrno %r1,%r3
#CHECK: ngrk %r0, %r0, %r0 # encoding: [0xb9,0xe4,0x00,0x00]
@@ -1075,6 +1123,32 @@
sgrk %r15,%r0,%r0
sgrk %r7,%r8,%r9
+#CHECK: slak %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xdd]
+#CHECK: slak %r15, %r1, 0 # encoding: [0xeb,0xf1,0x00,0x00,0x00,0xdd]
+#CHECK: slak %r1, %r15, 0 # encoding: [0xeb,0x1f,0x00,0x00,0x00,0xdd]
+#CHECK: slak %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0xdd]
+#CHECK: slak %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0xdd]
+#CHECK: slak %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0xdd]
+#CHECK: slak %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0xdd]
+#CHECK: slak %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0xdd]
+#CHECK: slak %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0xdd]
+#CHECK: slak %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0xdd]
+#CHECK: slak %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0xdd]
+#CHECK: slak %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0xdd]
+
+ slak %r0,%r0,0
+ slak %r15,%r1,0
+ slak %r1,%r15,0
+ slak %r15,%r15,0
+ slak %r0,%r0,-524288
+ slak %r0,%r0,-1
+ slak %r0,%r0,1
+ slak %r0,%r0,524287
+ slak %r0,%r0,0(%r1)
+ slak %r0,%r0,0(%r15)
+ slak %r0,%r0,524287(%r1)
+ slak %r0,%r0,524287(%r15)
+
#CHECK: slgrk %r0, %r0, %r0 # encoding: [0xb9,0xeb,0x00,0x00]
#CHECK: slgrk %r0, %r0, %r15 # encoding: [0xb9,0xeb,0xf0,0x00]
#CHECK: slgrk %r0, %r15, %r0 # encoding: [0xb9,0xeb,0x00,0x0f]
@@ -1275,32 +1349,44 @@
#CHECK: stoco %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xf3]
#CHECK: stoch %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf3]
+#CHECK: stocp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xf3]
#CHECK: stocnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xf3]
#CHECK: stocl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf3]
+#CHECK: stocm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xf3]
#CHECK: stocnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xf3]
#CHECK: stoclh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xf3]
#CHECK: stocne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf3]
+#CHECK: stocnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xf3]
#CHECK: stoce %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf3]
+#CHECK: stocz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xf3]
#CHECK: stocnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xf3]
#CHECK: stoche %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xf3]
#CHECK: stocnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf3]
+#CHECK: stocnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xf3]
#CHECK: stocle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xf3]
#CHECK: stocnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf3]
+#CHECK: stocnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xf3]
#CHECK: stocno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xf3]
stoco %r1,2(%r3)
stoch %r1,2(%r3)
+ stocp %r1,2(%r3)
stocnle %r1,2(%r3)
stocl %r1,2(%r3)
+ stocm %r1,2(%r3)
stocnhe %r1,2(%r3)
stoclh %r1,2(%r3)
stocne %r1,2(%r3)
+ stocnz %r1,2(%r3)
stoce %r1,2(%r3)
+ stocz %r1,2(%r3)
stocnlh %r1,2(%r3)
stoche %r1,2(%r3)
stocnl %r1,2(%r3)
+ stocnm %r1,2(%r3)
stocle %r1,2(%r3)
stocnh %r1,2(%r3)
+ stocnp %r1,2(%r3)
stocno %r1,2(%r3)
#CHECK: stocg %r0, 0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0xe3]
@@ -1323,32 +1409,44 @@
#CHECK: stocgo %r1, 2(%r3) # encoding: [0xeb,0x11,0x30,0x02,0x00,0xe3]
#CHECK: stocgh %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe3]
+#CHECK: stocgp %r1, 2(%r3) # encoding: [0xeb,0x12,0x30,0x02,0x00,0xe3]
#CHECK: stocgnle %r1, 2(%r3) # encoding: [0xeb,0x13,0x30,0x02,0x00,0xe3]
#CHECK: stocgl %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe3]
+#CHECK: stocgm %r1, 2(%r3) # encoding: [0xeb,0x14,0x30,0x02,0x00,0xe3]
#CHECK: stocgnhe %r1, 2(%r3) # encoding: [0xeb,0x15,0x30,0x02,0x00,0xe3]
#CHECK: stocglh %r1, 2(%r3) # encoding: [0xeb,0x16,0x30,0x02,0x00,0xe3]
#CHECK: stocgne %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe3]
+#CHECK: stocgnz %r1, 2(%r3) # encoding: [0xeb,0x17,0x30,0x02,0x00,0xe3]
#CHECK: stocge %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe3]
+#CHECK: stocgz %r1, 2(%r3) # encoding: [0xeb,0x18,0x30,0x02,0x00,0xe3]
#CHECK: stocgnlh %r1, 2(%r3) # encoding: [0xeb,0x19,0x30,0x02,0x00,0xe3]
#CHECK: stocghe %r1, 2(%r3) # encoding: [0xeb,0x1a,0x30,0x02,0x00,0xe3]
#CHECK: stocgnl %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe3]
+#CHECK: stocgnm %r1, 2(%r3) # encoding: [0xeb,0x1b,0x30,0x02,0x00,0xe3]
#CHECK: stocgle %r1, 2(%r3) # encoding: [0xeb,0x1c,0x30,0x02,0x00,0xe3]
#CHECK: stocgnh %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe3]
+#CHECK: stocgnp %r1, 2(%r3) # encoding: [0xeb,0x1d,0x30,0x02,0x00,0xe3]
#CHECK: stocgno %r1, 2(%r3) # encoding: [0xeb,0x1e,0x30,0x02,0x00,0xe3]
stocgo %r1,2(%r3)
stocgh %r1,2(%r3)
+ stocgp %r1,2(%r3)
stocgnle %r1,2(%r3)
stocgl %r1,2(%r3)
+ stocgm %r1,2(%r3)
stocgnhe %r1,2(%r3)
stocglh %r1,2(%r3)
stocgne %r1,2(%r3)
+ stocgnz %r1,2(%r3)
stocge %r1,2(%r3)
+ stocgz %r1,2(%r3)
stocgnlh %r1,2(%r3)
stocghe %r1,2(%r3)
stocgnl %r1,2(%r3)
+ stocgnm %r1,2(%r3)
stocgle %r1,2(%r3)
stocgnh %r1,2(%r3)
+ stocgnp %r1,2(%r3)
stocgno %r1,2(%r3)
#CHECK: xgrk %r0, %r0, %r0 # encoding: [0xb9,0xe7,0x00,0x00]
diff --git a/test/MC/SystemZ/insn-good.s b/test/MC/SystemZ/insn-good.s
index 0e8cad4bdb7a..ffc86bcf5eca 100644
--- a/test/MC/SystemZ/insn-good.s
+++ b/test/MC/SystemZ/insn-good.s
@@ -741,8 +741,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jh foo # encoding: [0xa7,0x24,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jp foo # encoding: [0xa7,0x24,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 2, foo
jh foo
+ jp foo
#CHECK: brc 3, foo # encoding: [0xa7,0x34,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@@ -755,8 +758,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jl foo # encoding: [0xa7,0x44,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jm foo # encoding: [0xa7,0x44,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 4, foo
jl foo
+ jm foo
#CHECK: brc 5, foo # encoding: [0xa7,0x54,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@@ -776,15 +782,21 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jne foo # encoding: [0xa7,0x74,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jnz foo # encoding: [0xa7,0x74,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 7, foo
jne foo
+ jnz foo
#CHECK: brc 8, foo # encoding: [0xa7,0x84,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: je foo # encoding: [0xa7,0x84,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jz foo # encoding: [0xa7,0x84,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 8, foo
je foo
+ jz foo
#CHECK: brc 9, foo # encoding: [0xa7,0x94,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@@ -804,8 +816,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnl foo # encoding: [0xa7,0xb4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jnm foo # encoding: [0xa7,0xb4,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 11, foo
jnl foo
+ jnm foo
#CHECK: brc 12, foo # encoding: [0xa7,0xc4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@@ -818,8 +833,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
#CHECK: jnh foo # encoding: [0xa7,0xd4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
+#CHECK: jnp foo # encoding: [0xa7,0xd4,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
brc 13, foo
jnh foo
+ jnp foo
#CHECK: brc 14, foo # encoding: [0xa7,0xe4,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC16DBL
@@ -991,8 +1009,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgh foo # encoding: [0xc0,0x24,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgp foo # encoding: [0xc0,0x24,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 2, foo
jgh foo
+ jgp foo
#CHECK: brcl 3, foo # encoding: [0xc0,0x34,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@@ -1005,8 +1026,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgl foo # encoding: [0xc0,0x44,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgm foo # encoding: [0xc0,0x44,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 4, foo
jgl foo
+ jgm foo
#CHECK: brcl 5, foo # encoding: [0xc0,0x54,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@@ -1026,15 +1050,21 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgne foo # encoding: [0xc0,0x74,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgnz foo # encoding: [0xc0,0x74,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 7, foo
jgne foo
+ jgnz foo
#CHECK: brcl 8, foo # encoding: [0xc0,0x84,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jge foo # encoding: [0xc0,0x84,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgz foo # encoding: [0xc0,0x84,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 8, foo
jge foo
+ jgz foo
#CHECK: brcl 9, foo # encoding: [0xc0,0x94,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@@ -1054,8 +1084,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnl foo # encoding: [0xc0,0xb4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgnm foo # encoding: [0xc0,0xb4,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 11, foo
jgnl foo
+ jgnm foo
#CHECK: brcl 12, foo # encoding: [0xc0,0xc4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@@ -1068,8 +1101,11 @@
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
#CHECK: jgnh foo # encoding: [0xc0,0xd4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: jgnp foo # encoding: [0xc0,0xd4,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
brcl 13, foo
jgnh foo
+ jgnp foo
#CHECK: brcl 14, foo # encoding: [0xc0,0xe4,A,A,A,A]
#CHECK: fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
@@ -1637,6 +1673,86 @@
cghsi 4095(%r1), 42
cghsi 4095(%r15), 42
+#CHECK: cgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfc]
+#CHECK: cgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfc]
+#CHECK: cgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfc]
+#CHECK: cgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfc]
+#CHECK: cgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfc]
+ cgib %r0, 0, 0, 0
+ cgib %r0, -128, 0, 0
+ cgib %r0, 127, 0, 0
+ cgib %r15, 0, 0, 0
+ cgib %r7, -1, 0, 0
+ cgib %r0, 0, 1, 0
+ cgib %r0, 0, 15, 0
+ cgib %r0, 0, 0, 0(%r13)
+ cgib %r0, 0, 0, 4095
+ cgib %r0, 0, 0, 4095(%r7)
+
+#CHECK: cgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfc]
+#CHECK: cgibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfc]
+#CHECK: cgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfc]
+#CHECK: cgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfc]
+#CHECK: cgibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfc]
+#CHECK: cgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfc]
+#CHECK: cgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfc]
+#CHECK: cgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfc]
+ cgibe %r0, 0, 0
+ cgibe %r0, -128, 0
+ cgibe %r0, 127, 0
+ cgibe %r15, 0, 0
+ cgibe %r7, -1, 0
+ cgibe %r0, 0, 0(%r13)
+ cgibe %r0, 0, 4095
+ cgibe %r0, 0, 4095(%r7)
+
+#CHECK: cgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+#CHECK: cgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 2, 3(%r4)
+ cgibh %r1, 2, 3(%r4)
+ cgibnle %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+#CHECK: cgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 4, 3(%r4)
+ cgibl %r1, 2, 3(%r4)
+ cgibnhe %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+#CHECK: cgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+#CHECK: cgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 6, 3(%r4)
+ cgiblh %r1, 2, 3(%r4)
+ cgibne %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+#CHECK: cgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 8, 3(%r4)
+ cgibe %r1, 2, 3(%r4)
+ cgibnlh %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+#CHECK: cgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 10, 3(%r4)
+ cgibhe %r1, 2, 3(%r4)
+ cgibnl %r1, 2, 3(%r4)
+
+#CHECK: cgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+#CHECK: cgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+#CHECK: cgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc]
+ cgib %r1, 2, 12, 3(%r4)
+ cgible %r1, 2, 3(%r4)
+ cgibnh %r1, 2, 3(%r4)
+
#CHECK: cgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7c]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cgij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7c]
@@ -1870,6 +1986,28 @@
#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL
cgijnh %r1, -66, bar@PLT
+#CHECK: cgit %r0, 0, 12 # encoding: [0xec,0x00,0x00,0x00,0xc0,0x70]
+#CHECK: cgit %r0, -1, 12 # encoding: [0xec,0x00,0xff,0xff,0xc0,0x70]
+#CHECK: cgit %r0, -32768, 12 # encoding: [0xec,0x00,0x80,0x00,0xc0,0x70]
+#CHECK: cgit %r0, 32767, 12 # encoding: [0xec,0x00,0x7f,0xff,0xc0,0x70]
+#CHECK: cgith %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x20,0x70]
+#CHECK: cgitl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x40,0x70]
+#CHECK: cgite %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x80,0x70]
+#CHECK: cgitne %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x60,0x70]
+#CHECK: cgitnl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xa0,0x70]
+#CHECK: cgitnh %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xc0,0x70]
+
+ cgit %r0, 0, 12
+ cgit %r0, -1, 12
+ cgit %r0, -32768, 12
+ cgit %r0, 32767, 12
+ cgith %r15, 1
+ cgitl %r15, 1
+ cgite %r15, 1
+ cgitne %r15, 1
+ cgitnl %r15, 1
+ cgitnh %r15, 1
+
#CHECK: cgr %r0, %r0 # encoding: [0xb9,0x20,0x00,0x00]
#CHECK: cgr %r0, %r15 # encoding: [0xb9,0x20,0x00,0x0f]
#CHECK: cgr %r15, %r0 # encoding: [0xb9,0x20,0x00,0xf0]
@@ -1880,6 +2018,82 @@
cgr %r15,%r0
cgr %r7,%r8
+#CHECK: cgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe4]
+#CHECK: cgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe4]
+#CHECK: cgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe4]
+ cgrb %r0, %r0, 0, 0
+ cgrb %r0, %r15, 0, 0
+ cgrb %r15, %r0, 0, 0
+ cgrb %r7, %r2, 0, 0
+ cgrb %r0, %r0, 1, 0
+ cgrb %r0, %r0, 15, 0
+ cgrb %r0, %r0, 0, 0(%r13)
+ cgrb %r0, %r0, 0, 4095
+ cgrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: cgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe4]
+#CHECK: cgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe4]
+ cgrbe %r0, %r0, 0
+ cgrbe %r0, %r15, 0
+ cgrbe %r15, %r0, 0
+ cgrbe %r7, %r2, 0
+ cgrbe %r0, %r0, 0(%r13)
+ cgrbe %r0, %r0, 4095
+ cgrbe %r0, %r0, 4095(%r7)
+
+#CHECK: cgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+#CHECK: cgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+#CHECK: cgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4]
+ cgrb %r1, %r2, 2, 3(%r4)
+ cgrbh %r1, %r2, 3(%r4)
+ cgrbnle %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+#CHECK: cgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+#CHECK: cgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4]
+ cgrb %r1, %r2, 4, 3(%r4)
+ cgrbl %r1, %r2, 3(%r4)
+ cgrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+#CHECK: cgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+#CHECK: cgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4]
+ cgrb %r1, %r2, 6, 3(%r4)
+ cgrblh %r1, %r2, 3(%r4)
+ cgrbne %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+#CHECK: cgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+#CHECK: cgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4]
+ cgrb %r1, %r2, 8, 3(%r4)
+ cgrbe %r1, %r2, 3(%r4)
+ cgrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+#CHECK: cgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+#CHECK: cgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4]
+ cgrb %r1, %r2, 10, 3(%r4)
+ cgrbhe %r1, %r2, 3(%r4)
+ cgrbnl %r1, %r2, 3(%r4)
+
+#CHECK: cgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+#CHECK: cgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+#CHECK: cgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4]
+ cgrb %r1, %r2, 12, 3(%r4)
+ cgrble %r1, %r2, 3(%r4)
+ cgrbnh %r1, %r2, 3(%r4)
+
#CHECK: cgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x64]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x64]
@@ -2147,6 +2361,28 @@
cgrl %r7,frob@PLT
cgrl %r8,frob@PLT
+#CHECK: cgrt %r0, %r1, 12 # encoding: [0xb9,0x60,0xc0,0x01]
+#CHECK: cgrt %r0, %r1, 12 # encoding: [0xb9,0x60,0xc0,0x01]
+#CHECK: cgrt %r0, %r1, 12 # encoding: [0xb9,0x60,0xc0,0x01]
+#CHECK: cgrt %r0, %r1, 12 # encoding: [0xb9,0x60,0xc0,0x01]
+#CHECK: cgrth %r0, %r15 # encoding: [0xb9,0x60,0x20,0x0f]
+#CHECK: cgrtl %r0, %r15 # encoding: [0xb9,0x60,0x40,0x0f]
+#CHECK: cgrte %r0, %r15 # encoding: [0xb9,0x60,0x80,0x0f]
+#CHECK: cgrtne %r0, %r15 # encoding: [0xb9,0x60,0x60,0x0f]
+#CHECK: cgrtnl %r0, %r15 # encoding: [0xb9,0x60,0xa0,0x0f]
+#CHECK: cgrtnh %r0, %r15 # encoding: [0xb9,0x60,0xc0,0x0f]
+
+ cgrt %r0, %r1, 12
+ cgrt %r0, %r1, 12
+ cgrt %r0, %r1, 12
+ cgrt %r0, %r1, 12
+ cgrth %r0, %r15
+ cgrtl %r0, %r15
+ cgrte %r0, %r15
+ cgrtne %r0, %r15
+ cgrtnl %r0, %r15
+ cgrtnh %r0, %r15
+
#CHECK: cgxbr %r0, 0, %f0 # encoding: [0xb3,0xaa,0x00,0x00]
#CHECK: cgxbr %r0, 0, %f13 # encoding: [0xb3,0xaa,0x00,0x0d]
#CHECK: cgxbr %r0, 15, %f0 # encoding: [0xb3,0xaa,0xf0,0x00]
@@ -2296,6 +2532,86 @@
chy %r0, 524287(%r15,%r1)
chy %r15, 0
+#CHECK: cib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfe]
+#CHECK: cib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfe]
+#CHECK: cib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfe]
+#CHECK: cib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfe]
+#CHECK: cib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfe]
+ cib %r0, 0, 0, 0
+ cib %r0, -128, 0, 0
+ cib %r0, 127, 0, 0
+ cib %r15, 0, 0, 0
+ cib %r7, -1, 0, 0
+ cib %r0, 0, 1, 0
+ cib %r0, 0, 15, 0
+ cib %r0, 0, 0, 0(%r13)
+ cib %r0, 0, 0, 4095
+ cib %r0, 0, 0, 4095(%r7)
+
+#CHECK: cibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfe]
+#CHECK: cibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfe]
+#CHECK: cibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfe]
+#CHECK: cibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfe]
+#CHECK: cibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfe]
+#CHECK: cibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfe]
+#CHECK: cibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfe]
+#CHECK: cibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfe]
+ cibe %r0, 0, 0
+ cibe %r0, -128, 0
+ cibe %r0, 127, 0
+ cibe %r15, 0, 0
+ cibe %r7, -1, 0
+ cibe %r0, 0, 0(%r13)
+ cibe %r0, 0, 4095
+ cibe %r0, 0, 4095(%r7)
+
+#CHECK: cib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+#CHECK: cibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+#CHECK: cibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 2, 3(%r4)
+ cibh %r1, 2, 3(%r4)
+ cibnle %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+#CHECK: cibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+#CHECK: cibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 4, 3(%r4)
+ cibl %r1, 2, 3(%r4)
+ cibnhe %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+#CHECK: ciblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+#CHECK: cibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 6, 3(%r4)
+ ciblh %r1, 2, 3(%r4)
+ cibne %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+#CHECK: cibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+#CHECK: cibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 8, 3(%r4)
+ cibe %r1, 2, 3(%r4)
+ cibnlh %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+#CHECK: cibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+#CHECK: cibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 10, 3(%r4)
+ cibhe %r1, 2, 3(%r4)
+ cibnl %r1, 2, 3(%r4)
+
+#CHECK: cib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+#CHECK: cible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+#CHECK: cibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe]
+ cib %r1, 2, 12, 3(%r4)
+ cible %r1, 2, 3(%r4)
+ cibnh %r1, 2, 3(%r4)
+
#CHECK: cij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7e]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: cij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7e]
@@ -2529,6 +2845,28 @@
#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL
cijnh %r1, -66, bar@PLT
+#CHECK: cit %r0, 0, 12 # encoding: [0xec,0x00,0x00,0x00,0xc0,0x72]
+#CHECK: cit %r0, -1, 12 # encoding: [0xec,0x00,0xff,0xff,0xc0,0x72]
+#CHECK: cit %r0, -32768, 12 # encoding: [0xec,0x00,0x80,0x00,0xc0,0x72]
+#CHECK: cit %r0, 32767, 12 # encoding: [0xec,0x00,0x7f,0xff,0xc0,0x72]
+#CHECK: cith %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x20,0x72]
+#CHECK: citl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x40,0x72]
+#CHECK: cite %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x80,0x72]
+#CHECK: citne %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x60,0x72]
+#CHECK: citnl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xa0,0x72]
+#CHECK: citnh %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xc0,0x72]
+
+ cit %r0, 0, 12
+ cit %r0, -1, 12
+ cit %r0, -32768, 12
+ cit %r0, 32767, 12
+ cith %r15, 1
+ citl %r15, 1
+ cite %r15, 1
+ citne %r15, 1
+ citnl %r15, 1
+ citnh %r15, 1
+
#CHECK: cl %r0, 0 # encoding: [0x55,0x00,0x00,0x00]
#CHECK: cl %r0, 4095 # encoding: [0x55,0x00,0x0f,0xff]
#CHECK: cl %r0, 0(%r1) # encoding: [0x55,0x00,0x10,0x00]
@@ -2595,6 +2933,26 @@
clfi %r0, (1 << 32) - 1
clfi %r15, 0
+#CHECK: clfit %r0, 0, 12 # encoding: [0xec,0x00,0x00,0x00,0xc0,0x73]
+#CHECK: clfit %r0, 65535, 12 # encoding: [0xec,0x00,0xff,0xff,0xc0,0x73]
+#CHECK: clfit %r0, 32768, 12 # encoding: [0xec,0x00,0x80,0x00,0xc0,0x73]
+#CHECK: clfith %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x20,0x73]
+#CHECK: clfitl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x40,0x73]
+#CHECK: clfite %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x80,0x73]
+#CHECK: clfitne %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x60,0x73]
+#CHECK: clfitnl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xa0,0x73]
+#CHECK: clfitnh %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xc0,0x73]
+
+ clfit %r0, 0, 12
+ clfit %r0, 65535, 12
+ clfit %r0, 32768, 12
+ clfith %r15, 1
+ clfitl %r15, 1
+ clfite %r15, 1
+ clfitne %r15, 1
+ clfitnl %r15, 1
+ clfitnh %r15, 1
+
#CHECK: clg %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x21]
#CHECK: clg %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x21]
#CHECK: clg %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x21]
@@ -2747,6 +3105,86 @@
clghsi 4095(%r1), 42
clghsi 4095(%r15), 42
+#CHECK: clgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfd]
+#CHECK: clgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfd]
+#CHECK: clgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfd]
+#CHECK: clgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfd]
+#CHECK: clgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfd]
+ clgib %r0, 0, 0, 0
+ clgib %r0, 128, 0, 0
+ clgib %r0, 127, 0, 0
+ clgib %r15, 0, 0, 0
+ clgib %r7, 255, 0, 0
+ clgib %r0, 0, 1, 0
+ clgib %r0, 0, 15, 0
+ clgib %r0, 0, 0, 0(%r13)
+ clgib %r0, 0, 0, 4095
+ clgib %r0, 0, 0, 4095(%r7)
+
+#CHECK: clgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfd]
+#CHECK: clgibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfd]
+#CHECK: clgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfd]
+#CHECK: clgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfd]
+#CHECK: clgibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfd]
+#CHECK: clgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfd]
+#CHECK: clgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfd]
+#CHECK: clgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfd]
+ clgibe %r0, 0, 0
+ clgibe %r0, 128, 0
+ clgibe %r0, 127, 0
+ clgibe %r15, 0, 0
+ clgibe %r7, 255, 0
+ clgibe %r0, 0, 0(%r13)
+ clgibe %r0, 0, 4095
+ clgibe %r0, 0, 4095(%r7)
+
+#CHECK: clgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+#CHECK: clgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 2, 3(%r4)
+ clgibh %r1, 2, 3(%r4)
+ clgibnle %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+#CHECK: clgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 4, 3(%r4)
+ clgibl %r1, 2, 3(%r4)
+ clgibnhe %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+#CHECK: clgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+#CHECK: clgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 6, 3(%r4)
+ clgiblh %r1, 2, 3(%r4)
+ clgibne %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+#CHECK: clgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 8, 3(%r4)
+ clgibe %r1, 2, 3(%r4)
+ clgibnlh %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+#CHECK: clgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 10, 3(%r4)
+ clgibhe %r1, 2, 3(%r4)
+ clgibnl %r1, 2, 3(%r4)
+
+#CHECK: clgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+#CHECK: clgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+#CHECK: clgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd]
+ clgib %r1, 2, 12, 3(%r4)
+ clgible %r1, 2, 3(%r4)
+ clgibnh %r1, 2, 3(%r4)
+
#CHECK: clgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7d]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clgij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7d]
@@ -2974,6 +3412,26 @@
#CHECK: fixup A - offset: 2, value: bar@PLT+2, kind: FK_390_PC16DBL
clgijnh %r1, 193, bar@PLT
+#CHECK: clgit %r0, 0, 12 # encoding: [0xec,0x00,0x00,0x00,0xc0,0x71]
+#CHECK: clgit %r0, 65535, 12 # encoding: [0xec,0x00,0xff,0xff,0xc0,0x71]
+#CHECK: clgit %r0, 32768, 12 # encoding: [0xec,0x00,0x80,0x00,0xc0,0x71]
+#CHECK: clgith %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x20,0x71]
+#CHECK: clgitl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x40,0x71]
+#CHECK: clgite %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x80,0x71]
+#CHECK: clgitne %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0x60,0x71]
+#CHECK: clgitnl %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xa0,0x71]
+#CHECK: clgitnh %r15, 1 # encoding: [0xec,0xf0,0x00,0x01,0xc0,0x71]
+
+ clgit %r0, 0, 12
+ clgit %r0, 65535, 12
+ clgit %r0, 32768, 12
+ clgith %r15, 1
+ clgitl %r15, 1
+ clgite %r15, 1
+ clgitne %r15, 1
+ clgitnl %r15, 1
+ clgitnh %r15, 1
+
#CHECK: clgr %r0, %r0 # encoding: [0xb9,0x21,0x00,0x00]
#CHECK: clgr %r0, %r15 # encoding: [0xb9,0x21,0x00,0x0f]
#CHECK: clgr %r15, %r0 # encoding: [0xb9,0x21,0x00,0xf0]
@@ -2984,6 +3442,82 @@
clgr %r15,%r0
clgr %r7,%r8
+#CHECK: clgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe5]
+#CHECK: clgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe5]
+#CHECK: clgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe5]
+ clgrb %r0, %r0, 0, 0
+ clgrb %r0, %r15, 0, 0
+ clgrb %r15, %r0, 0, 0
+ clgrb %r7, %r2, 0, 0
+ clgrb %r0, %r0, 1, 0
+ clgrb %r0, %r0, 15, 0
+ clgrb %r0, %r0, 0, 0(%r13)
+ clgrb %r0, %r0, 0, 4095
+ clgrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: clgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe5]
+#CHECK: clgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe5]
+ clgrbe %r0, %r0, 0
+ clgrbe %r0, %r15, 0
+ clgrbe %r15, %r0, 0
+ clgrbe %r7, %r2, 0
+ clgrbe %r0, %r0, 0(%r13)
+ clgrbe %r0, %r0, 4095
+ clgrbe %r0, %r0, 4095(%r7)
+
+#CHECK: clgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+#CHECK: clgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+#CHECK: clgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5]
+ clgrb %r1, %r2, 2, 3(%r4)
+ clgrbh %r1, %r2, 3(%r4)
+ clgrbnle %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+#CHECK: clgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+#CHECK: clgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5]
+ clgrb %r1, %r2, 4, 3(%r4)
+ clgrbl %r1, %r2, 3(%r4)
+ clgrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+#CHECK: clgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+#CHECK: clgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5]
+ clgrb %r1, %r2, 6, 3(%r4)
+ clgrblh %r1, %r2, 3(%r4)
+ clgrbne %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+#CHECK: clgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+#CHECK: clgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5]
+ clgrb %r1, %r2, 8, 3(%r4)
+ clgrbe %r1, %r2, 3(%r4)
+ clgrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+#CHECK: clgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+#CHECK: clgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5]
+ clgrb %r1, %r2, 10, 3(%r4)
+ clgrbhe %r1, %r2, 3(%r4)
+ clgrbnl %r1, %r2, 3(%r4)
+
+#CHECK: clgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+#CHECK: clgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+#CHECK: clgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5]
+ clgrb %r1, %r2, 12, 3(%r4)
+ clgrble %r1, %r2, 3(%r4)
+ clgrbnh %r1, %r2, 3(%r4)
+
#CHECK: clgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x65]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x65]
@@ -3320,6 +3854,86 @@
cli 4095(%r1), 42
cli 4095(%r15), 42
+#CHECK: clib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xff]
+#CHECK: clib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xff]
+#CHECK: clib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xff]
+#CHECK: clib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xff]
+#CHECK: clib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xff]
+#CHECK: clib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xff]
+ clib %r0, 0, 0, 0
+ clib %r0, 128, 0, 0
+ clib %r0, 127, 0, 0
+ clib %r15, 0, 0, 0
+ clib %r7, 255, 0, 0
+ clib %r0, 0, 1, 0
+ clib %r0, 0, 15, 0
+ clib %r0, 0, 0, 0(%r13)
+ clib %r0, 0, 0, 4095
+ clib %r0, 0, 0, 4095(%r7)
+
+#CHECK: clibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xff]
+#CHECK: clibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xff]
+#CHECK: clibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xff]
+#CHECK: clibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xff]
+#CHECK: clibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xff]
+#CHECK: clibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xff]
+#CHECK: clibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xff]
+#CHECK: clibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xff]
+ clibe %r0, 0, 0
+ clibe %r0, 128, 0
+ clibe %r0, 127, 0
+ clibe %r15, 0, 0
+ clibe %r7, 255, 0
+ clibe %r0, 0, 0(%r13)
+ clibe %r0, 0, 4095
+ clibe %r0, 0, 4095(%r7)
+
+#CHECK: clib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+#CHECK: clibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+#CHECK: clibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 2, 3(%r4)
+ clibh %r1, 2, 3(%r4)
+ clibnle %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+#CHECK: clibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+#CHECK: clibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 4, 3(%r4)
+ clibl %r1, 2, 3(%r4)
+ clibnhe %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+#CHECK: cliblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+#CHECK: clibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 6, 3(%r4)
+ cliblh %r1, 2, 3(%r4)
+ clibne %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+#CHECK: clibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+#CHECK: clibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 8, 3(%r4)
+ clibe %r1, 2, 3(%r4)
+ clibnlh %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+#CHECK: clibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+#CHECK: clibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 10, 3(%r4)
+ clibhe %r1, 2, 3(%r4)
+ clibnl %r1, 2, 3(%r4)
+
+#CHECK: clib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+#CHECK: clible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+#CHECK: clibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff]
+ clib %r1, 2, 12, 3(%r4)
+ clible %r1, 2, 3(%r4)
+ clibnh %r1, 2, 3(%r4)
+
#CHECK: clij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7f]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7f]
@@ -3579,6 +4193,104 @@
clr %r15,%r0
clr %r7,%r8
+#CHECK: clrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf7]
+#CHECK: clrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf7]
+#CHECK: clrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf7]
+#CHECK: clrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf7]
+ clrb %r0, %r0, 0, 0
+ clrb %r0, %r15, 0, 0
+ clrb %r15, %r0, 0, 0
+ clrb %r7, %r2, 0, 0
+ clrb %r0, %r0, 1, 0
+ clrb %r0, %r0, 15, 0
+ clrb %r0, %r0, 0, 0(%r13)
+ clrb %r0, %r0, 0, 4095
+ clrb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: clrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf7]
+#CHECK: clrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf7]
+ clrbe %r0, %r0, 0
+ clrbe %r0, %r15, 0
+ clrbe %r15, %r0, 0
+ clrbe %r7, %r2, 0
+ clrbe %r0, %r0, 0(%r13)
+ clrbe %r0, %r0, 4095
+ clrbe %r0, %r0, 4095(%r7)
+
+#CHECK: clrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+#CHECK: clrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+#CHECK: clrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7]
+ clrb %r1, %r2, 2, 3(%r4)
+ clrbh %r1, %r2, 3(%r4)
+ clrbnle %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+#CHECK: clrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+#CHECK: clrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7]
+ clrb %r1, %r2, 4, 3(%r4)
+ clrbl %r1, %r2, 3(%r4)
+ clrbnhe %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+#CHECK: clrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+#CHECK: clrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7]
+ clrb %r1, %r2, 6, 3(%r4)
+ clrblh %r1, %r2, 3(%r4)
+ clrbne %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+#CHECK: clrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+#CHECK: clrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7]
+ clrb %r1, %r2, 8, 3(%r4)
+ clrbe %r1, %r2, 3(%r4)
+ clrbnlh %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+#CHECK: clrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+#CHECK: clrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7]
+ clrb %r1, %r2, 10, 3(%r4)
+ clrbhe %r1, %r2, 3(%r4)
+ clrbnl %r1, %r2, 3(%r4)
+
+#CHECK: clrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+#CHECK: clrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+#CHECK: clrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7]
+ clrb %r1, %r2, 12, 3(%r4)
+ clrble %r1, %r2, 3(%r4)
+ clrbnh %r1, %r2, 3(%r4)
+
+#CHECK: clgrt %r0, %r1, 12 # encoding: [0xb9,0x61,0xc0,0x01]
+#CHECK: clgrt %r0, %r1, 12 # encoding: [0xb9,0x61,0xc0,0x01]
+#CHECK: clgrt %r0, %r1, 12 # encoding: [0xb9,0x61,0xc0,0x01]
+#CHECK: clgrt %r0, %r1, 12 # encoding: [0xb9,0x61,0xc0,0x01]
+#CHECK: clgrth %r0, %r15 # encoding: [0xb9,0x61,0x20,0x0f]
+#CHECK: clgrtl %r0, %r15 # encoding: [0xb9,0x61,0x40,0x0f]
+#CHECK: clgrte %r0, %r15 # encoding: [0xb9,0x61,0x80,0x0f]
+#CHECK: clgrtne %r0, %r15 # encoding: [0xb9,0x61,0x60,0x0f]
+#CHECK: clgrtnl %r0, %r15 # encoding: [0xb9,0x61,0xa0,0x0f]
+#CHECK: clgrtnh %r0, %r15 # encoding: [0xb9,0x61,0xc0,0x0f]
+
+ clgrt %r0, %r1, 12
+ clgrt %r0, %r1, 12
+ clgrt %r0, %r1, 12
+ clgrt %r0, %r1, 12
+ clgrth %r0, %r15
+ clgrtl %r0, %r15
+ clgrte %r0, %r15
+ clgrtne %r0, %r15
+ clgrtnl %r0, %r15
+ clgrtnh %r0, %r15
+
#CHECK: clrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x77]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: clrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x77]
@@ -3846,6 +4558,28 @@
clrl %r7,frob@PLT
clrl %r8,frob@PLT
+#CHECK: clrt %r0, %r1, 12 # encoding: [0xb9,0x73,0xc0,0x01]
+#CHECK: clrt %r0, %r1, 12 # encoding: [0xb9,0x73,0xc0,0x01]
+#CHECK: clrt %r0, %r1, 12 # encoding: [0xb9,0x73,0xc0,0x01]
+#CHECK: clrt %r0, %r1, 12 # encoding: [0xb9,0x73,0xc0,0x01]
+#CHECK: clrth %r0, %r15 # encoding: [0xb9,0x73,0x20,0x0f]
+#CHECK: clrtl %r0, %r15 # encoding: [0xb9,0x73,0x40,0x0f]
+#CHECK: clrte %r0, %r15 # encoding: [0xb9,0x73,0x80,0x0f]
+#CHECK: clrtne %r0, %r15 # encoding: [0xb9,0x73,0x60,0x0f]
+#CHECK: clrtnl %r0, %r15 # encoding: [0xb9,0x73,0xa0,0x0f]
+#CHECK: clrtnh %r0, %r15 # encoding: [0xb9,0x73,0xc0,0x0f]
+
+ clrt %r0, %r1, 12
+ clrt %r0, %r1, 12
+ clrt %r0, %r1, 12
+ clrt %r0, %r1, 12
+ clrth %r0, %r15
+ clrtl %r0, %r15
+ clrte %r0, %r15
+ clrtne %r0, %r15
+ clrtnl %r0, %r15
+ clrtnh %r0, %r15
+
#CHECK: clst %r0, %r0 # encoding: [0xb2,0x5d,0x00,0x00]
#CHECK: clst %r0, %r15 # encoding: [0xb2,0x5d,0x00,0x0f]
#CHECK: clst %r15, %r0 # encoding: [0xb2,0x5d,0x00,0xf0]
@@ -3903,6 +4637,82 @@
cr %r15,%r0
cr %r7,%r8
+#CHECK: crb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf6]
+#CHECK: crb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf6]
+#CHECK: crb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf6]
+#CHECK: crb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf6]
+#CHECK: crb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf6]
+ crb %r0, %r0, 0, 0
+ crb %r0, %r15, 0, 0
+ crb %r15, %r0, 0, 0
+ crb %r7, %r2, 0, 0
+ crb %r0, %r0, 1, 0
+ crb %r0, %r0, 15, 0
+ crb %r0, %r0, 0, 0(%r13)
+ crb %r0, %r0, 0, 4095
+ crb %r0, %r0, 0, 4095(%r7)
+
+#CHECK: crbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf6]
+#CHECK: crbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf6]
+ crbe %r0, %r0, 0
+ crbe %r0, %r15, 0
+ crbe %r15, %r0, 0
+ crbe %r7, %r2, 0
+ crbe %r0, %r0, 0(%r13)
+ crbe %r0, %r0, 4095
+ crbe %r0, %r0, 4095(%r7)
+
+#CHECK: crb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+#CHECK: crbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+#CHECK: crbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6]
+ crb %r1, %r2, 2, 3(%r4)
+ crbh %r1, %r2, 3(%r4)
+ crbnle %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+#CHECK: crbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+#CHECK: crbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6]
+ crb %r1, %r2, 4, 3(%r4)
+ crbl %r1, %r2, 3(%r4)
+ crbnhe %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+#CHECK: crblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+#CHECK: crbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6]
+ crb %r1, %r2, 6, 3(%r4)
+ crblh %r1, %r2, 3(%r4)
+ crbne %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+#CHECK: crbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+#CHECK: crbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6]
+ crb %r1, %r2, 8, 3(%r4)
+ crbe %r1, %r2, 3(%r4)
+ crbnlh %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+#CHECK: crbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+#CHECK: crbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6]
+ crb %r1, %r2, 10, 3(%r4)
+ crbhe %r1, %r2, 3(%r4)
+ crbnl %r1, %r2, 3(%r4)
+
+#CHECK: crb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+#CHECK: crble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+#CHECK: crbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6]
+ crb %r1, %r2, 12, 3(%r4)
+ crble %r1, %r2, 3(%r4)
+ crbnh %r1, %r2, 3(%r4)
+
#CHECK: crj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x76]
#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL
#CHECK: crj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x76]
@@ -4170,6 +4980,28 @@
crl %r7,frob@PLT
crl %r8,frob@PLT
+#CHECK: crt %r0, %r1, 12 # encoding: [0xb9,0x72,0xc0,0x01]
+#CHECK: crt %r0, %r1, 12 # encoding: [0xb9,0x72,0xc0,0x01]
+#CHECK: crt %r0, %r1, 12 # encoding: [0xb9,0x72,0xc0,0x01]
+#CHECK: crt %r0, %r1, 12 # encoding: [0xb9,0x72,0xc0,0x01]
+#CHECK: crth %r0, %r15 # encoding: [0xb9,0x72,0x20,0x0f]
+#CHECK: crtl %r0, %r15 # encoding: [0xb9,0x72,0x40,0x0f]
+#CHECK: crte %r0, %r15 # encoding: [0xb9,0x72,0x80,0x0f]
+#CHECK: crtne %r0, %r15 # encoding: [0xb9,0x72,0x60,0x0f]
+#CHECK: crtnl %r0, %r15 # encoding: [0xb9,0x72,0xa0,0x0f]
+#CHECK: crtnh %r0, %r15 # encoding: [0xb9,0x72,0xc0,0x0f]
+
+ crt %r0, %r1, 12
+ crt %r0, %r1, 12
+ crt %r0, %r1, 12
+ crt %r0, %r1, 12
+ crth %r0, %r15
+ crtl %r0, %r15
+ crte %r0, %r15
+ crtne %r0, %r15
+ crtnl %r0, %r15
+ crtnh %r0, %r15
+
#CHECK: cs %r0, %r0, 0 # encoding: [0xba,0x00,0x00,0x00]
#CHECK: cs %r0, %r0, 4095 # encoding: [0xba,0x00,0x0f,0xff]
#CHECK: cs %r0, %r0, 0(%r1) # encoding: [0xba,0x00,0x10,0x00]
@@ -4494,6 +5326,59 @@
ear %r7, %a8
ear %r15, %a15
+#CHECK: ex %r0, 0 # encoding: [0x44,0x00,0x00,0x00]
+#CHECK: ex %r0, 4095 # encoding: [0x44,0x00,0x0f,0xff]
+#CHECK: ex %r0, 0(%r1) # encoding: [0x44,0x00,0x10,0x00]
+#CHECK: ex %r0, 0(%r15) # encoding: [0x44,0x00,0xf0,0x00]
+#CHECK: ex %r0, 4095(%r1,%r15) # encoding: [0x44,0x01,0xff,0xff]
+#CHECK: ex %r0, 4095(%r15,%r1) # encoding: [0x44,0x0f,0x1f,0xff]
+#CHECK: ex %r15, 0 # encoding: [0x44,0xf0,0x00,0x00]
+
+ ex %r0, 0
+ ex %r0, 4095
+ ex %r0, 0(%r1)
+ ex %r0, 0(%r15)
+ ex %r0, 4095(%r1,%r15)
+ ex %r0, 4095(%r15,%r1)
+ ex %r15, 0
+
+#CHECK: exrl %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc6,0x00,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL
+ exrl %r0, -0x100000000
+#CHECK: exrl %r0, .[[LAB:L.*]]-2 # encoding: [0xc6,0x00,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: (.[[LAB]]-2)+2, kind: FK_390_PC32DBL
+ exrl %r0, -2
+#CHECK: exrl %r0, .[[LAB:L.*]] # encoding: [0xc6,0x00,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC32DBL
+ exrl %r0, 0
+#CHECK: exrl %r0, .[[LAB:L.*]]+4294967294 # encoding: [0xc6,0x00,A,A,A,A]
+#CHECK: fixup A - offset: 2, value: (.[[LAB]]+4294967294)+2, kind: FK_390_PC32DBL
+ exrl %r0, 0xfffffffe
+
+#CHECK: exrl %r0, foo # encoding: [0xc6,0x00,A,A,A,A]
+# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+#CHECK: exrl %r15, foo # encoding: [0xc6,0xf0,A,A,A,A]
+# fixup A - offset: 2, value: foo+2, kind: FK_390_PC32DBL
+
+ exrl %r0,foo
+ exrl %r15,foo
+
+#CHECK: exrl %r3, bar+100 # encoding: [0xc6,0x30,A,A,A,A]
+# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL
+#CHECK: exrl %r4, bar+100 # encoding: [0xc6,0x40,A,A,A,A]
+# fixup A - offset: 2, value: (bar+100)+2, kind: FK_390_PC32DBL
+
+ exrl %r3,bar+100
+ exrl %r4,bar+100
+
+#CHECK: exrl %r7, frob@PLT # encoding: [0xc6,0x70,A,A,A,A]
+# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL
+#CHECK: exrl %r8, frob@PLT # encoding: [0xc6,0x80,A,A,A,A]
+# fixup A - offset: 2, value: frob@PLT+2, kind: FK_390_PC32DBL
+
+ exrl %r7,frob@PLT
+ exrl %r8,frob@PLT
+
#CHECK: fidbr %f0, 0, %f0 # encoding: [0xb3,0x5f,0x00,0x00]
#CHECK: fidbr %f0, 0, %f15 # encoding: [0xb3,0x5f,0x00,0x0f]
#CHECK: fidbr %f0, 15, %f0 # encoding: [0xb3,0x5f,0xf0,0x00]
@@ -4556,6 +5441,66 @@
ic %r0, 4095(%r15,%r1)
ic %r15, 0
+#CHECK: icm %r0, 0, 0 # encoding: [0xbf,0x00,0x00,0x00]
+#CHECK: icm %r0, 15, 4095 # encoding: [0xbf,0x0f,0x0f,0xff]
+#CHECK: icm %r0, 0, 0(%r1) # encoding: [0xbf,0x00,0x10,0x00]
+#CHECK: icm %r0, 0, 0(%r15) # encoding: [0xbf,0x00,0xf0,0x00]
+#CHECK: icm %r15, 15, 4095(%r1) # encoding: [0xbf,0xff,0x1f,0xff]
+#CHECK: icm %r0, 0, 4095(%r15) # encoding: [0xbf,0x00,0xff,0xff]
+#CHECK: icm %r15, 0, 0 # encoding: [0xbf,0xf0,0x00,0x00]
+
+ icm %r0, 0, 0
+ icm %r0, 15, 4095
+ icm %r0, 0, 0(%r1)
+ icm %r0, 0, 0(%r15)
+ icm %r15, 15, 4095(%r1)
+ icm %r0, 0, 4095(%r15)
+ icm %r15, 0, 0
+
+#CHECK: icmh %r0, 0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x80]
+#CHECK: icmh %r0, 0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x80]
+#CHECK: icmh %r0, 15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x80]
+#CHECK: icmh %r0, 15, 1 # encoding: [0xeb,0x0f,0x00,0x01,0x00,0x80]
+#CHECK: icmh %r0, 8, 524287 # encoding: [0xeb,0x08,0x0f,0xff,0x7f,0x80]
+#CHECK: icmh %r0, 8, 0(%r1) # encoding: [0xeb,0x08,0x10,0x00,0x00,0x80]
+#CHECK: icmh %r0, 4, 0(%r15) # encoding: [0xeb,0x04,0xf0,0x00,0x00,0x80]
+#CHECK: icmh %r0, 4, 524287(%r15) # encoding: [0xeb,0x04,0xff,0xff,0x7f,0x80]
+#CHECK: icmh %r0, 0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x80]
+#CHECK: icmh %r15, 0, 0 # encoding: [0xeb,0xf0,0x00,0x00,0x00,0x80]
+
+ icmh %r0, 0, -524288
+ icmh %r0, 0, -1
+ icmh %r0, 15, 0
+ icmh %r0, 15, 1
+ icmh %r0, 8, 524287
+ icmh %r0, 8, 0(%r1)
+ icmh %r0, 4, 0(%r15)
+ icmh %r0, 4, 524287(%r15)
+ icmh %r0, 0, 524287(%r1)
+ icmh %r15, 0, 0
+
+#CHECK: icmy %r0, 0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x81]
+#CHECK: icmy %r0, 0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x81]
+#CHECK: icmy %r0, 15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x81]
+#CHECK: icmy %r0, 15, 1 # encoding: [0xeb,0x0f,0x00,0x01,0x00,0x81]
+#CHECK: icmy %r0, 8, 524287 # encoding: [0xeb,0x08,0x0f,0xff,0x7f,0x81]
+#CHECK: icmy %r0, 8, 0(%r1) # encoding: [0xeb,0x08,0x10,0x00,0x00,0x81]
+#CHECK: icmy %r0, 4, 0(%r15) # encoding: [0xeb,0x04,0xf0,0x00,0x00,0x81]
+#CHECK: icmy %r0, 4, 524287(%r15) # encoding: [0xeb,0x04,0xff,0xff,0x7f,0x81]
+#CHECK: icmy %r0, 0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x81]
+#CHECK: icmy %r15, 0, 0 # encoding: [0xeb,0xf0,0x00,0x00,0x00,0x81]
+
+ icmy %r0, 0, -524288
+ icmy %r0, 0, -1
+ icmy %r0, 15, 0
+ icmy %r0, 15, 1
+ icmy %r0, 8, 524287
+ icmy %r0, 8, 0(%r1)
+ icmy %r0, 4, 0(%r15)
+ icmy %r0, 4, 524287(%r15)
+ icmy %r0, 0, 524287(%r1)
+ icmy %r15, 0, 0
+
#CHECK: icy %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x73]
#CHECK: icy %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x73]
#CHECK: icy %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x73]
@@ -5684,6 +6629,28 @@
llill %r0, 0xffff
llill %r15, 0
+#CHECK: lm %r0, %r0, 0 # encoding: [0x98,0x00,0x00,0x00]
+#CHECK: lm %r0, %r15, 0 # encoding: [0x98,0x0f,0x00,0x00]
+#CHECK: lm %r14, %r15, 0 # encoding: [0x98,0xef,0x00,0x00]
+#CHECK: lm %r15, %r15, 0 # encoding: [0x98,0xff,0x00,0x00]
+#CHECK: lm %r0, %r0, 4095 # encoding: [0x98,0x00,0x0f,0xff]
+#CHECK: lm %r0, %r0, 1 # encoding: [0x98,0x00,0x00,0x01]
+#CHECK: lm %r0, %r0, 0(%r1) # encoding: [0x98,0x00,0x10,0x00]
+#CHECK: lm %r0, %r0, 0(%r15) # encoding: [0x98,0x00,0xf0,0x00]
+#CHECK: lm %r0, %r0, 4095(%r1) # encoding: [0x98,0x00,0x1f,0xff]
+#CHECK: lm %r0, %r0, 4095(%r15) # encoding: [0x98,0x00,0xff,0xff]
+
+ lm %r0,%r0,0
+ lm %r0,%r15,0
+ lm %r14,%r15,0
+ lm %r15,%r15,0
+ lm %r0,%r0,4095
+ lm %r0,%r0,1
+ lm %r0,%r0,0(%r1)
+ lm %r0,%r0,0(%r15)
+ lm %r0,%r0,4095(%r1)
+ lm %r0,%r0,4095(%r15)
+
#CHECK: lmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x04]
#CHECK: lmg %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x04]
#CHECK: lmg %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x04]
@@ -5712,6 +6679,62 @@
lmg %r0,%r0,524287(%r1)
lmg %r0,%r0,524287(%r15)
+#CHECK: lmh %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x96]
+#CHECK: lmh %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x96]
+#CHECK: lmh %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x96]
+#CHECK: lmh %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x96]
+#CHECK: lmh %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x96]
+#CHECK: lmh %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x96]
+#CHECK: lmh %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x96]
+#CHECK: lmh %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x96]
+#CHECK: lmh %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x96]
+#CHECK: lmh %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x96]
+#CHECK: lmh %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x96]
+#CHECK: lmh %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x96]
+#CHECK: lmh %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x96]
+
+ lmh %r0,%r0,0
+ lmh %r0,%r15,0
+ lmh %r14,%r15,0
+ lmh %r15,%r15,0
+ lmh %r0,%r0,-524288
+ lmh %r0,%r0,-1
+ lmh %r0,%r0,0
+ lmh %r0,%r0,1
+ lmh %r0,%r0,524287
+ lmh %r0,%r0,0(%r1)
+ lmh %r0,%r0,0(%r15)
+ lmh %r0,%r0,524287(%r1)
+ lmh %r0,%r0,524287(%r15)
+
+#CHECK: lmy %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x98]
+#CHECK: lmy %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x98]
+#CHECK: lmy %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x98]
+#CHECK: lmy %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x98]
+#CHECK: lmy %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x98]
+#CHECK: lmy %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x98]
+#CHECK: lmy %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x98]
+#CHECK: lmy %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x98]
+#CHECK: lmy %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x98]
+#CHECK: lmy %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x98]
+#CHECK: lmy %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x98]
+#CHECK: lmy %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x98]
+#CHECK: lmy %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x98]
+
+ lmy %r0,%r0,0
+ lmy %r0,%r15,0
+ lmy %r14,%r15,0
+ lmy %r15,%r15,0
+ lmy %r0,%r0,-524288
+ lmy %r0,%r0,-1
+ lmy %r0,%r0,0
+ lmy %r0,%r0,1
+ lmy %r0,%r0,524287
+ lmy %r0,%r0,0(%r1)
+ lmy %r0,%r0,0(%r15)
+ lmy %r0,%r0,524287(%r1)
+ lmy %r0,%r0,524287(%r15)
+
#CHECK: lndbr %f0, %f9 # encoding: [0xb3,0x11,0x00,0x09]
#CHECK: lndbr %f0, %f15 # encoding: [0xb3,0x11,0x00,0x0f]
#CHECK: lndbr %f15, %f0 # encoding: [0xb3,0x11,0x00,0xf0]
@@ -5879,6 +6902,28 @@
lrl %r7,frob@PLT
lrl %r8,frob@PLT
+#CHECK: lrvh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1f]
+#CHECK: lrvh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1f]
+#CHECK: lrvh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1f]
+#CHECK: lrvh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x1f]
+#CHECK: lrvh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x1f]
+#CHECK: lrvh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x1f]
+#CHECK: lrvh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x1f]
+#CHECK: lrvh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x1f]
+#CHECK: lrvh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x1f]
+#CHECK: lrvh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x1f]
+
+ lrvh %r0,-524288
+ lrvh %r0,-1
+ lrvh %r0,0
+ lrvh %r0,1
+ lrvh %r0,524287
+ lrvh %r0,0(%r1)
+ lrvh %r0,0(%r15)
+ lrvh %r0,524287(%r1,%r15)
+ lrvh %r0,524287(%r15,%r1)
+ lrvh %r15,0
+
#CHECK: lrv %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x1e]
#CHECK: lrv %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x1e]
#CHECK: lrv %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x1e]
@@ -6931,6 +7976,12 @@
niy 524287(%r1), 42
niy 524287(%r15), 42
+#CHECK: bc 0, 0 # encoding: [0x47,0x00,0x00,0x00]
+#CHECK: bcr 0, %r7 # encoding: [0x07,0x07]
+
+ nop 0
+ nopr %r7
+
#CHECK: nr %r0, %r0 # encoding: [0x14,0x00]
#CHECK: nr %r0, %r15 # encoding: [0x14,0x0f]
#CHECK: nr %r15, %r0 # encoding: [0x14,0xf0]
@@ -7668,6 +8719,24 @@
slgr %r15,%r0
slgr %r7,%r8
+#CHECK: sla %r0, 0 # encoding: [0x8b,0x00,0x00,0x00]
+#CHECK: sla %r7, 0 # encoding: [0x8b,0x70,0x00,0x00]
+#CHECK: sla %r15, 0 # encoding: [0x8b,0xf0,0x00,0x00]
+#CHECK: sla %r0, 4095 # encoding: [0x8b,0x00,0x0f,0xff]
+#CHECK: sla %r0, 0(%r1) # encoding: [0x8b,0x00,0x10,0x00]
+#CHECK: sla %r0, 0(%r15) # encoding: [0x8b,0x00,0xf0,0x00]
+#CHECK: sla %r0, 4095(%r1) # encoding: [0x8b,0x00,0x1f,0xff]
+#CHECK: sla %r0, 4095(%r15) # encoding: [0x8b,0x00,0xff,0xff]
+
+ sla %r0,0
+ sla %r7,0
+ sla %r15,0
+ sla %r0,4095
+ sla %r0,0(%r1)
+ sla %r0,0(%r15)
+ sla %r0,4095(%r1)
+ sla %r0,4095(%r15)
+
#CHECK: sll %r0, 0 # encoding: [0x89,0x00,0x00,0x00]
#CHECK: sll %r7, 0 # encoding: [0x89,0x70,0x00,0x00]
#CHECK: sll %r15, 0 # encoding: [0x89,0xf0,0x00,0x00]
@@ -8234,6 +9303,28 @@
sthy %r0, 524287(%r15,%r1)
sthy %r15, 0
+#CHECK: stm %r0, %r0, 0 # encoding: [0x90,0x00,0x00,0x00]
+#CHECK: stm %r0, %r15, 0 # encoding: [0x90,0x0f,0x00,0x00]
+#CHECK: stm %r14, %r15, 0 # encoding: [0x90,0xef,0x00,0x00]
+#CHECK: stm %r15, %r15, 0 # encoding: [0x90,0xff,0x00,0x00]
+#CHECK: stm %r0, %r0, 4095 # encoding: [0x90,0x00,0x0f,0xff]
+#CHECK: stm %r0, %r0, 1 # encoding: [0x90,0x00,0x00,0x01]
+#CHECK: stm %r0, %r0, 0(%r1) # encoding: [0x90,0x00,0x10,0x00]
+#CHECK: stm %r0, %r0, 0(%r15) # encoding: [0x90,0x00,0xf0,0x00]
+#CHECK: stm %r0, %r0, 4095(%r1) # encoding: [0x90,0x00,0x1f,0xff]
+#CHECK: stm %r0, %r0, 4095(%r15) # encoding: [0x90,0x00,0xff,0xff]
+
+ stm %r0,%r0,0
+ stm %r0,%r15,0
+ stm %r14,%r15,0
+ stm %r15,%r15,0
+ stm %r0,%r0,4095
+ stm %r0,%r0,1
+ stm %r0,%r0,0(%r1)
+ stm %r0,%r0,0(%r15)
+ stm %r0,%r0,4095(%r1)
+ stm %r0,%r0,4095(%r15)
+
#CHECK: stmg %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x24]
#CHECK: stmg %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x24]
#CHECK: stmg %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x24]
@@ -8262,6 +9353,62 @@
stmg %r0,%r0,524287(%r1)
stmg %r0,%r0,524287(%r15)
+#CHECK: stmh %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x26]
+#CHECK: stmh %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x26]
+#CHECK: stmh %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x26]
+#CHECK: stmh %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x26]
+#CHECK: stmh %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x26]
+#CHECK: stmh %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x26]
+#CHECK: stmh %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x26]
+#CHECK: stmh %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x26]
+#CHECK: stmh %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x26]
+#CHECK: stmh %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x26]
+#CHECK: stmh %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x26]
+#CHECK: stmh %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x26]
+#CHECK: stmh %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x26]
+
+ stmh %r0,%r0,0
+ stmh %r0,%r15,0
+ stmh %r14,%r15,0
+ stmh %r15,%r15,0
+ stmh %r0,%r0,-524288
+ stmh %r0,%r0,-1
+ stmh %r0,%r0,0
+ stmh %r0,%r0,1
+ stmh %r0,%r0,524287
+ stmh %r0,%r0,0(%r1)
+ stmh %r0,%r0,0(%r15)
+ stmh %r0,%r0,524287(%r1)
+ stmh %r0,%r0,524287(%r15)
+
+#CHECK: stmy %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x90]
+#CHECK: stmy %r0, %r15, 0 # encoding: [0xeb,0x0f,0x00,0x00,0x00,0x90]
+#CHECK: stmy %r14, %r15, 0 # encoding: [0xeb,0xef,0x00,0x00,0x00,0x90]
+#CHECK: stmy %r15, %r15, 0 # encoding: [0xeb,0xff,0x00,0x00,0x00,0x90]
+#CHECK: stmy %r0, %r0, -524288 # encoding: [0xeb,0x00,0x00,0x00,0x80,0x90]
+#CHECK: stmy %r0, %r0, -1 # encoding: [0xeb,0x00,0x0f,0xff,0xff,0x90]
+#CHECK: stmy %r0, %r0, 0 # encoding: [0xeb,0x00,0x00,0x00,0x00,0x90]
+#CHECK: stmy %r0, %r0, 1 # encoding: [0xeb,0x00,0x00,0x01,0x00,0x90]
+#CHECK: stmy %r0, %r0, 524287 # encoding: [0xeb,0x00,0x0f,0xff,0x7f,0x90]
+#CHECK: stmy %r0, %r0, 0(%r1) # encoding: [0xeb,0x00,0x10,0x00,0x00,0x90]
+#CHECK: stmy %r0, %r0, 0(%r15) # encoding: [0xeb,0x00,0xf0,0x00,0x00,0x90]
+#CHECK: stmy %r0, %r0, 524287(%r1) # encoding: [0xeb,0x00,0x1f,0xff,0x7f,0x90]
+#CHECK: stmy %r0, %r0, 524287(%r15) # encoding: [0xeb,0x00,0xff,0xff,0x7f,0x90]
+
+ stmy %r0,%r0,0
+ stmy %r0,%r15,0
+ stmy %r14,%r15,0
+ stmy %r15,%r15,0
+ stmy %r0,%r0,-524288
+ stmy %r0,%r0,-1
+ stmy %r0,%r0,0
+ stmy %r0,%r0,1
+ stmy %r0,%r0,524287
+ stmy %r0,%r0,0(%r1)
+ stmy %r0,%r0,0(%r15)
+ stmy %r0,%r0,524287(%r1)
+ stmy %r0,%r0,524287(%r15)
+
#CHECK: strl %r0, .[[LAB:L.*]]-4294967296 # encoding: [0xc4,0x0f,A,A,A,A]
#CHECK: fixup A - offset: 2, value: (.[[LAB]]-4294967296)+2, kind: FK_390_PC32DBL
strl %r0, -0x100000000
@@ -8299,6 +9446,28 @@
strl %r7,frob@PLT
strl %r8,frob@PLT
+#CHECK: strvh %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x3f]
+#CHECK: strvh %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x3f]
+#CHECK: strvh %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x3f]
+#CHECK: strvh %r0, 1 # encoding: [0xe3,0x00,0x00,0x01,0x00,0x3f]
+#CHECK: strvh %r0, 524287 # encoding: [0xe3,0x00,0x0f,0xff,0x7f,0x3f]
+#CHECK: strvh %r0, 0(%r1) # encoding: [0xe3,0x00,0x10,0x00,0x00,0x3f]
+#CHECK: strvh %r0, 0(%r15) # encoding: [0xe3,0x00,0xf0,0x00,0x00,0x3f]
+#CHECK: strvh %r0, 524287(%r1,%r15) # encoding: [0xe3,0x01,0xff,0xff,0x7f,0x3f]
+#CHECK: strvh %r0, 524287(%r15,%r1) # encoding: [0xe3,0x0f,0x1f,0xff,0x7f,0x3f]
+#CHECK: strvh %r15, 0 # encoding: [0xe3,0xf0,0x00,0x00,0x00,0x3f]
+
+ strvh %r0,-524288
+ strvh %r0,-1
+ strvh %r0,0
+ strvh %r0,1
+ strvh %r0,524287
+ strvh %r0,0(%r1)
+ strvh %r0,0(%r15)
+ strvh %r0,524287(%r1,%r15)
+ strvh %r0,524287(%r15,%r1)
+ strvh %r15,0
+
#CHECK: strv %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x3e]
#CHECK: strv %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x3e]
#CHECK: strv %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x3e]
@@ -8343,6 +9512,16 @@
strvg %r0,524287(%r15,%r1)
strvg %r15,0
+#CHECK: svc 0 # encoding: [0x0a,0x00]
+#CHECK: svc 3 # encoding: [0x0a,0x03]
+#CHECK: svc 128 # encoding: [0x0a,0x80]
+#CHECK: svc 255 # encoding: [0x0a,0xff]
+
+ svc 0
+ svc 3
+ svc 128
+ svc 0xff
+
#CHECK: sty %r0, -524288 # encoding: [0xe3,0x00,0x00,0x00,0x80,0x50]
#CHECK: sty %r0, -1 # encoding: [0xe3,0x00,0x0f,0xff,0xff,0x50]
#CHECK: sty %r0, 0 # encoding: [0xe3,0x00,0x00,0x00,0x00,0x50]
@@ -8397,6 +9576,54 @@
sy %r0, 524287(%r15,%r1)
sy %r15, 0
+#CHECK: tcdb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x11]
+#CHECK: tcdb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x11]
+#CHECK: tcdb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x11]
+#CHECK: tcdb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x11]
+#CHECK: tcdb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x11]
+#CHECK: tcdb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x11]
+#CHECK: tcdb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x11]
+
+ tcdb %f0, 0
+ tcdb %f0, 4095
+ tcdb %f0, 0(%r1)
+ tcdb %f0, 0(%r15)
+ tcdb %f0, 4095(%r1,%r15)
+ tcdb %f0, 4095(%r15,%r1)
+ tcdb %f15, 0
+
+#CHECK: tceb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x10]
+#CHECK: tceb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x10]
+#CHECK: tceb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x10]
+#CHECK: tceb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x10]
+#CHECK: tceb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x10]
+#CHECK: tceb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x10]
+#CHECK: tceb %f15, 0 # encoding: [0xed,0xf0,0x00,0x00,0x00,0x10]
+
+ tceb %f0, 0
+ tceb %f0, 4095
+ tceb %f0, 0(%r1)
+ tceb %f0, 0(%r15)
+ tceb %f0, 4095(%r1,%r15)
+ tceb %f0, 4095(%r15,%r1)
+ tceb %f15, 0
+
+#CHECK: tcxb %f0, 0 # encoding: [0xed,0x00,0x00,0x00,0x00,0x12]
+#CHECK: tcxb %f0, 4095 # encoding: [0xed,0x00,0x0f,0xff,0x00,0x12]
+#CHECK: tcxb %f0, 0(%r1) # encoding: [0xed,0x00,0x10,0x00,0x00,0x12]
+#CHECK: tcxb %f0, 0(%r15) # encoding: [0xed,0x00,0xf0,0x00,0x00,0x12]
+#CHECK: tcxb %f0, 4095(%r1,%r15) # encoding: [0xed,0x01,0xff,0xff,0x00,0x12]
+#CHECK: tcxb %f0, 4095(%r15,%r1) # encoding: [0xed,0x0f,0x1f,0xff,0x00,0x12]
+#CHECK: tcxb %f13, 0 # encoding: [0xed,0xd0,0x00,0x00,0x00,0x12]
+
+ tcxb %f0, 0
+ tcxb %f0, 4095
+ tcxb %f0, 0(%r1)
+ tcxb %f0, 0(%r15)
+ tcxb %f0, 4095(%r1,%r15)
+ tcxb %f0, 4095(%r15,%r1)
+ tcxb %f13, 0
+
#CHECK: tm 0, 0 # encoding: [0x91,0x00,0x00,0x00]
#CHECK: tm 4095, 0 # encoding: [0x91,0x00,0x0f,0xff]
#CHECK: tm 0, 255 # encoding: [0x91,0xff,0x00,0x00]
@@ -8438,6 +9665,16 @@
#CHECK: tmlh %r0, 65535 # encoding: [0xa7,0x00,0xff,0xff]
#CHECK: tmlh %r15, 0 # encoding: [0xa7,0xf0,0x00,0x00]
+ tmh %r0, 0
+ tmh %r0, 0x8000
+ tmh %r0, 0xffff
+ tmh %r15, 0
+
+#CHECK: tmlh %r0, 0 # encoding: [0xa7,0x00,0x00,0x00]
+#CHECK: tmlh %r0, 32768 # encoding: [0xa7,0x00,0x80,0x00]
+#CHECK: tmlh %r0, 65535 # encoding: [0xa7,0x00,0xff,0xff]
+#CHECK: tmlh %r15, 0 # encoding: [0xa7,0xf0,0x00,0x00]
+
tmlh %r0, 0
tmlh %r0, 0x8000
tmlh %r0, 0xffff
@@ -8448,6 +9685,16 @@
#CHECK: tmll %r0, 65535 # encoding: [0xa7,0x01,0xff,0xff]
#CHECK: tmll %r15, 0 # encoding: [0xa7,0xf1,0x00,0x00]
+ tml %r0, 0
+ tml %r0, 0x8000
+ tml %r0, 0xffff
+ tml %r15, 0
+
+#CHECK: tmll %r0, 0 # encoding: [0xa7,0x01,0x00,0x00]
+#CHECK: tmll %r0, 32768 # encoding: [0xa7,0x01,0x80,0x00]
+#CHECK: tmll %r0, 65535 # encoding: [0xa7,0x01,0xff,0xff]
+#CHECK: tmll %r15, 0 # encoding: [0xa7,0xf1,0x00,0x00]
+
tmll %r0, 0
tmll %r0, 0x8000
tmll %r0, 0xffff
diff --git a/test/MC/SystemZ/word.s b/test/MC/SystemZ/word.s
new file mode 100644
index 000000000000..70f009a1e856
--- /dev/null
+++ b/test/MC/SystemZ/word.s
@@ -0,0 +1,24 @@
+# RUN: llvm-mc -triple s390x-linux-gnu -filetype=obj %s | \
+# RUN: llvm-readobj -s -sd | FileCheck %s
+
+.section word, "aw"
+.word 0xabcd
+
+# CHECK: Section {
+# CHECK: Name: word
+# CHECK-NEXT: Type: SHT_PROGBITS
+# CHECK-NEXT: Flags [
+# CHECK-NEXT: SHF_ALLOC
+# CHECK-NEXT: SHF_WRITE
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address: 0x0
+# CHECK-NEXT: Offset:
+# CHECK-NEXT: Size: 2
+# CHECK-NEXT: Link: 0
+# CHECK-NEXT: Info: 0
+# CHECK-NEXT: AddressAlignment:
+# CHECK-NEXT: EntrySize: 0
+# CHECK-NEXT: SectionData (
+# CHECK-NEXT: 0000: ABCD
+# CHECK-NEXT: )
+# CHECK-NEXT: }
diff --git a/test/MC/X86/avx512-encodings.s b/test/MC/X86/avx512-encodings.s
index 7191058692eb..fc224d0555b6 100644
--- a/test/MC/X86/avx512-encodings.s
+++ b/test/MC/X86/avx512-encodings.s
@@ -6416,29 +6416,29 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
// CHECK: encoding: [0x62,0xb1,0x56,0x78,0x58,0xfb]
vaddss {rz-sae}, %xmm19, %xmm5, %xmm7
-// CHECK: vaddss (%rcx), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xf1,0x56,0x08,0x58,0x39]
- vaddss (%rcx), %xmm5, %xmm7
+// CHECK: vaddss (%rcx), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x58,0x39]
+ vaddss (%rcx), %xmm25, %xmm7
-// CHECK: vaddss 291(%rax,%r14,8), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xb1,0x56,0x08,0x58,0xbc,0xf0,0x23,0x01,0x00,0x00]
- vaddss 291(%rax,%r14,8), %xmm5, %xmm7
+// CHECK: vaddss 291(%rax,%r14,8), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xb1,0x36,0x00,0x58,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vaddss 291(%rax,%r14,8), %xmm25, %xmm7
-// CHECK: vaddss 508(%rdx), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xf1,0x56,0x08,0x58,0x7a,0x7f]
- vaddss 508(%rdx), %xmm5, %xmm7
+// CHECK: vaddss 508(%rdx), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x58,0x7a,0x7f]
+ vaddss 508(%rdx), %xmm25, %xmm7
-// CHECK: vaddss 512(%rdx), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xf1,0x56,0x08,0x58,0xba,0x00,0x02,0x00,0x00]
- vaddss 512(%rdx), %xmm5, %xmm7
+// CHECK: vaddss 512(%rdx), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x58,0xba,0x00,0x02,0x00,0x00]
+ vaddss 512(%rdx), %xmm25, %xmm7
-// CHECK: vaddss -512(%rdx), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xf1,0x56,0x08,0x58,0x7a,0x80]
- vaddss -512(%rdx), %xmm5, %xmm7
+// CHECK: vaddss -512(%rdx), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x58,0x7a,0x80]
+ vaddss -512(%rdx), %xmm25, %xmm7
-// CHECK: vaddss -516(%rdx), %xmm5, %xmm7
-// CHECK: encoding: [0x62,0xf1,0x56,0x08,0x58,0xba,0xfc,0xfd,0xff,0xff]
- vaddss -516(%rdx), %xmm5, %xmm7
+// CHECK: vaddss -516(%rdx), %xmm25, %xmm7
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x58,0xba,0xfc,0xfd,0xff,0xff]
+ vaddss -516(%rdx), %xmm25, %xmm7
// CHECK: vdivpd {rn-sae}, %zmm11, %zmm6, %zmm18
// CHECK: encoding: [0x62,0xc1,0xcd,0x18,0x5e,0xd3]
@@ -6640,29 +6640,29 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
// CHECK: encoding: [0x62,0x71,0x5e,0x18,0x5f,0xc6]
vmaxss {sae}, %xmm6, %xmm4, %xmm8
-// CHECK: vmaxss (%rcx), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x71,0x5e,0x08,0x5f,0x01]
- vmaxss (%rcx), %xmm4, %xmm8
+// CHECK: vmaxss (%rcx), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xe1,0x5e,0x08,0x5f,0x11]
+ vmaxss (%rcx), %xmm4, %xmm18
-// CHECK: vmaxss 291(%rax,%r14,8), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x31,0x5e,0x08,0x5f,0x84,0xf0,0x23,0x01,0x00,0x00]
- vmaxss 291(%rax,%r14,8), %xmm4, %xmm8
+// CHECK: vmaxss 291(%rax,%r14,8), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xa1,0x5e,0x08,0x5f,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmaxss 291(%rax,%r14,8), %xmm4, %xmm18
-// CHECK: vmaxss 508(%rdx), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x71,0x5e,0x08,0x5f,0x42,0x7f]
- vmaxss 508(%rdx), %xmm4, %xmm8
+// CHECK: vmaxss 508(%rdx), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xe1,0x5e,0x08,0x5f,0x52,0x7f]
+ vmaxss 508(%rdx), %xmm4, %xmm18
-// CHECK: vmaxss 512(%rdx), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x71,0x5e,0x08,0x5f,0x82,0x00,0x02,0x00,0x00]
- vmaxss 512(%rdx), %xmm4, %xmm8
+// CHECK: vmaxss 512(%rdx), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xe1,0x5e,0x08,0x5f,0x92,0x00,0x02,0x00,0x00]
+ vmaxss 512(%rdx), %xmm4, %xmm18
-// CHECK: vmaxss -512(%rdx), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x71,0x5e,0x08,0x5f,0x42,0x80]
- vmaxss -512(%rdx), %xmm4, %xmm8
+// CHECK: vmaxss -512(%rdx), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xe1,0x5e,0x08,0x5f,0x52,0x80]
+ vmaxss -512(%rdx), %xmm4, %xmm18
-// CHECK: vmaxss -516(%rdx), %xmm4, %xmm8
-// CHECK: encoding: [0x62,0x71,0x5e,0x08,0x5f,0x82,0xfc,0xfd,0xff,0xff]
- vmaxss -516(%rdx), %xmm4, %xmm8
+// CHECK: vmaxss -516(%rdx), %xmm4, %xmm18
+// CHECK: encoding: [0x62,0xe1,0x5e,0x08,0x5f,0x92,0xfc,0xfd,0xff,0xff]
+ vmaxss -516(%rdx), %xmm4, %xmm18
// CHECK: vminpd {sae}, %zmm22, %zmm6, %zmm6
// CHECK: encoding: [0x62,0xb1,0xcd,0x18,0x5d,0xf6]
@@ -6812,29 +6812,29 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
// CHECK: encoding: [0x62,0x31,0xdf,0x78,0x59,0xea]
vmulsd {rz-sae}, %xmm18, %xmm4, %xmm13
-// CHECK: vmulsd (%rcx), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x71,0xdf,0x08,0x59,0x29]
- vmulsd (%rcx), %xmm4, %xmm13
+// CHECK: vmulsd (%rcx), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xe1,0xdf,0x08,0x59,0x39]
+ vmulsd (%rcx), %xmm4, %xmm23
-// CHECK: vmulsd 291(%rax,%r14,8), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x31,0xdf,0x08,0x59,0xac,0xf0,0x23,0x01,0x00,0x00]
- vmulsd 291(%rax,%r14,8), %xmm4, %xmm13
+// CHECK: vmulsd 291(%rax,%r14,8), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xa1,0xdf,0x08,0x59,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vmulsd 291(%rax,%r14,8), %xmm4, %xmm23
-// CHECK: vmulsd 1016(%rdx), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x71,0xdf,0x08,0x59,0x6a,0x7f]
- vmulsd 1016(%rdx), %xmm4, %xmm13
+// CHECK: vmulsd 1016(%rdx), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xe1,0xdf,0x08,0x59,0x7a,0x7f]
+ vmulsd 1016(%rdx), %xmm4, %xmm23
-// CHECK: vmulsd 1024(%rdx), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x71,0xdf,0x08,0x59,0xaa,0x00,0x04,0x00,0x00]
- vmulsd 1024(%rdx), %xmm4, %xmm13
+// CHECK: vmulsd 1024(%rdx), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xe1,0xdf,0x08,0x59,0xba,0x00,0x04,0x00,0x00]
+ vmulsd 1024(%rdx), %xmm4, %xmm23
-// CHECK: vmulsd -1024(%rdx), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x71,0xdf,0x08,0x59,0x6a,0x80]
- vmulsd -1024(%rdx), %xmm4, %xmm13
+// CHECK: vmulsd -1024(%rdx), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xe1,0xdf,0x08,0x59,0x7a,0x80]
+ vmulsd -1024(%rdx), %xmm4, %xmm23
-// CHECK: vmulsd -1032(%rdx), %xmm4, %xmm13
-// CHECK: encoding: [0x62,0x71,0xdf,0x08,0x59,0xaa,0xf8,0xfb,0xff,0xff]
- vmulsd -1032(%rdx), %xmm4, %xmm13
+// CHECK: vmulsd -1032(%rdx), %xmm4, %xmm23
+// CHECK: encoding: [0x62,0xe1,0xdf,0x08,0x59,0xba,0xf8,0xfb,0xff,0xff]
+ vmulsd -1032(%rdx), %xmm4, %xmm23
// CHECK: vmulss %xmm14, %xmm10, %xmm22
// CHECK: encoding: [0x62,0xc1,0x2e,0x08,0x59,0xf6]
@@ -19275,3 +19275,211 @@ vpermilpd $0x23, 0x400(%rbx), %zmm2
// CHECK: vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
// CHECK: encoding: [0x62,0x11,0x26,0x82,0x10,0xf8]
vmovss %xmm24, %xmm27, %xmm15 {%k2} {z}
+
+//CHECK: vcmpeqpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x00]
+ vcmpeq_oqpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpeqpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x00]
+ vcmpeq_oqpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpeqpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x00]
+ vcmpeq_oqpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpeqpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x00]
+ vcmpeq_oqpd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpltpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x01]
+ vcmplt_ospd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpltpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x01]
+ vcmplt_ospd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpltpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x01]
+ vcmplt_ospd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpltpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x01]
+ vcmplt_ospd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmplepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x02]
+ vcmple_ospd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmplepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x02]
+ vcmple_ospd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmplepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x02]
+ vcmple_ospd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmplepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x02
+ vcmple_ospd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpunordpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x03]
+ vcmpunord_qpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpunordpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x03]
+ vcmpunord_qpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpunordpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x03]
+ vcmpunord_qpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpunordpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x03]
+ vcmpunord_qpd -1024(%rdx){1to8}, %zmm30, %k5
+
+ //CHECK: vcmpneqpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x04]
+ vcmpneq_uqpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpneqpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x04]
+ vcmpneq_uqpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpneqpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x04]
+ vcmpneq_uqpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpneqpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x04]
+ vcmpneq_uqpd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpnltpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x05]
+ vcmpnlt_uspd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpnltpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x05]
+ vcmpnlt_uspd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpnltpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x05]
+ vcmpnlt_uspd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpnltpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x05]
+ vcmpnlt_uspd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpnlepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x06]
+ vcmpnle_uspd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpnlepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x06]
+ vcmpnle_uspd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpnlepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x06]
+ vcmpnle_uspd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpnlepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x06]
+ vcmpnle_uspd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpordpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x07]
+ vcmpord_qpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpordpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x07]
+ vcmpord_qpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpordpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x07]
+ vcmpord_qpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpordpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x07]
+ vcmpord_qpd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpngepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x09]
+ vcmpnge_uspd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpngepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x09]
+ vcmpnge_uspd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpngepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x09]
+ vcmpnge_uspd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpngepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x09]
+ vcmpnge_uspd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpfalsepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0b]
+ vcmpfalse_oqpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpfalsepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0b]
+ vcmpfalse_oqpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpfalsepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0b]
+ vcmpfalse_oqpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpfalsepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0b]
+ vcmpfalse_oqpd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpgepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0d]
+ vcmpge_ospd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpgepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0d]
+ vcmpge_ospd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpgepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0d]
+ vcmpge_ospd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpgepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0d]
+ vcmpge_ospd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpgtpd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0e]
+ vcmpgt_ospd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmpgtpd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0e]
+ vcmpgt_ospd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmpgtpd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0e]
+ vcmpgt_ospd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmpgtpd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0e]
+ vcmpgt_ospd -1024(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmptruepd 8128(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x7f,0x0f]
+ vcmptrue_uqpd 8128(%rdx), %zmm30, %k5
+
+//CHECK: vcmptruepd -8192(%rdx), %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x40,0xc2,0x6a,0x80,0x0f]
+ vcmptrue_uqpd -8192(%rdx), %zmm30, %k5
+
+//CHECK: vcmptruepd 1016(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x7f,0x0f]
+ vcmptrue_uqpd 1016(%rdx){1to8}, %zmm30, %k5
+
+//CHECK: vcmptruepd -1024(%rdx){1to8}, %zmm30, %k5
+//CHECK: encoding: [0x62,0xf1,0x8d,0x50,0xc2,0x6a,0x80,0x0f]
+ vcmptrue_uqpd -1024(%rdx){1to8}, %zmm30, %k5
diff --git a/test/MC/X86/avx512ifma-encoding.s b/test/MC/X86/avx512ifma-encoding.s
new file mode 100644
index 000000000000..644fd1dd02c0
--- /dev/null
+++ b/test/MC/X86/avx512ifma-encoding.s
@@ -0,0 +1,145 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512ifma --show-encoding %s | FileCheck %s
+
+ vpmadd52luq %zmm4, %zmm5, %zmm6
+//CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6
+//CHECK: encoding: [0x62,0xf2,0xd5,0x48,0xb4,0xf4]
+
+ vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7}
+//CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x4f,0xb4,0xf4]
+
+ vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} {z}
+//CHECK: vpmadd52luq %zmm4, %zmm5, %zmm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0xcf,0xb4,0xf4]
+
+ vpmadd52luq %zmm28, %zmm29, %zmm30
+//CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x40,0xb4,0xf4]
+
+ vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x47,0xb4,0xf4]
+
+ vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpmadd52luq %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xc7,0xb4,0xf4]
+
+ vpmadd52luq (%rcx), %zmm29, %zmm30
+//CHECK: vpmadd52luq (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x31]
+
+ vpmadd52luq 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmadd52luq 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52luq (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52luq (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x31]
+
+ vpmadd52luq 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52luq 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52luq 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0xb2,0x00,0x20,0x00,0x00]
+
+ vpmadd52luq -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52luq -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52luq -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb4,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpmadd52luq 0x3f8(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52luq 1016(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52luq 1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52luq -0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52luq -1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x408(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52luq -1032(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52luq 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmadd52luq 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmadd52huq %zmm4, %zmm5, %zmm6
+//CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6
+//CHECK: encoding: [0x62,0xf2,0xd5,0x48,0xb5,0xf4]
+
+ vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7}
+//CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x4f,0xb5,0xf4]
+
+ vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} {z}
+//CHECK: vpmadd52huq %zmm4, %zmm5, %zmm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0xcf,0xb5,0xf4]
+
+ vpmadd52huq %zmm28, %zmm29, %zmm30
+//CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x40,0xb5,0xf4]
+
+ vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x47,0xb5,0xf4]
+
+ vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpmadd52huq %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xc7,0xb5,0xf4]
+
+ vpmadd52huq (%rcx), %zmm29, %zmm30
+//CHECK: vpmadd52huq (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x31]
+
+ vpmadd52huq 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmadd52huq 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52huq (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52huq (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x31]
+
+ vpmadd52huq 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52huq 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52huq 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0xb2,0x00,0x20,0x00,0x00]
+
+ vpmadd52huq -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52huq -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpmadd52huq -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0xb5,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpmadd52huq 0x3f8(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52huq 1016(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52huq 1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52huq -0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52huq -1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x408(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmadd52huq -1032(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52huq 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmadd52huq 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
diff --git a/test/MC/X86/avx512ifmavl-encoding.s b/test/MC/X86/avx512ifmavl-encoding.s
new file mode 100644
index 000000000000..1620772df3eb
--- /dev/null
+++ b/test/MC/X86/avx512ifmavl-encoding.s
@@ -0,0 +1,274 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512ifma -mattr=+avx512vl --show-encoding %s | FileCheck %s
+
+ vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
+//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb4,0xf4]
+
+ vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
+//CHECK: vpmadd52luq %xmm4, %xmm5, %xmm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb4,0xf4]
+
+ vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
+//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb4,0xf4]
+
+ vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
+//CHECK: vpmadd52luq %ymm4, %ymm5, %ymm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb4,0xf4]
+
+ vpmadd52luq %xmm28, %xmm29, %xmm30
+//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb4,0xf4]
+
+ vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb4,0xf4]
+
+ vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpmadd52luq %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb4,0xf4]
+
+ vpmadd52luq (%rcx), %xmm29, %xmm30
+//CHECK: vpmadd52luq (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x31]
+
+ vpmadd52luq 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmadd52luq 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52luq (%rcx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x31]
+
+ vpmadd52luq 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52luq 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52luq 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0x00,0x08,0x00,0x00]
+
+ vpmadd52luq -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52luq -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52luq -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb4,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpmadd52luq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52luq 1016(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52luq 1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52luq -0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52luq -1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x408(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52luq -1032(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52luq %ymm28, %ymm29, %ymm30
+//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb4,0xf4]
+
+ vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb4,0xf4]
+
+ vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpmadd52luq %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb4,0xf4]
+
+ vpmadd52luq (%rcx), %ymm29, %ymm30
+//CHECK: vpmadd52luq (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x31]
+
+ vpmadd52luq 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmadd52luq 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52luq (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x31]
+
+ vpmadd52luq 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52luq 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52luq 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0x00,0x10,0x00,0x00]
+
+ vpmadd52luq -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52luq -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52luq -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb4,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpmadd52luq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52luq 1016(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x7f]
+
+ vpmadd52luq 0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52luq 1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52luq -0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52luq -1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0x72,0x80]
+
+ vpmadd52luq -0x408(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52luq -1032(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb4,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52luq 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmadd52luq 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmadd52luq 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmadd52luq 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb4,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
+//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x0f,0xb5,0xf4]
+
+ vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
+//CHECK: vpmadd52huq %xmm4, %xmm5, %xmm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x8f,0xb5,0xf4]
+
+ vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
+//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7}
+//CHECK: encoding: [0x62,0xf2,0xd5,0x2f,0xb5,0xf4]
+
+ vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
+//CHECK: vpmadd52huq %ymm4, %ymm5, %ymm6 {%k7} {z}
+//CHECK: encoding: [0x62,0xf2,0xd5,0xaf,0xb5,0xf4]
+
+ vpmadd52huq %xmm28, %xmm29, %xmm30
+//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x00,0xb5,0xf4]
+
+ vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x07,0xb5,0xf4]
+
+ vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpmadd52huq %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0x87,0xb5,0xf4]
+
+ vpmadd52huq (%rcx), %xmm29, %xmm30
+//CHECK: vpmadd52huq (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x31]
+
+ vpmadd52huq 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmadd52huq 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52huq (%rcx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x31]
+
+ vpmadd52huq 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52huq 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52huq 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0x00,0x08,0x00,0x00]
+
+ vpmadd52huq -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52huq -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpmadd52huq -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0xb5,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpmadd52huq 0x3f8(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52huq 1016(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52huq 1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52huq -0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52huq -1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x408(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmadd52huq -1032(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52huq %ymm28, %ymm29, %ymm30
+//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x95,0x20,0xb5,0xf4]
+
+ vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x27,0xb5,0xf4]
+
+ vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpmadd52huq %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xa7,0xb5,0xf4]
+
+ vpmadd52huq (%rcx), %ymm29, %ymm30
+//CHECK: vpmadd52huq (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x31]
+
+ vpmadd52huq 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmadd52huq 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52huq (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x31]
+
+ vpmadd52huq 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52huq 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52huq 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0x00,0x10,0x00,0x00]
+
+ vpmadd52huq -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52huq -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpmadd52huq -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0xb5,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpmadd52huq 0x3f8(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52huq 1016(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x7f]
+
+ vpmadd52huq 0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52huq 1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmadd52huq -0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52huq -1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0x72,0x80]
+
+ vpmadd52huq -0x408(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmadd52huq -1032(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0xb5,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmadd52huq 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmadd52huq 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmadd52huq 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmadd52huq 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0xb5,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
diff --git a/test/MC/X86/avx512vbmi-encoding.s b/test/MC/X86/avx512vbmi-encoding.s
new file mode 100644
index 000000000000..040947301d68
--- /dev/null
+++ b/test/MC/X86/avx512vbmi-encoding.s
@@ -0,0 +1,543 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=skx -mattr=+avx512vl -mattr=+avx512vbmi --show-encoding %s | FileCheck %s
+
+ vpermb %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x07,0x8d,0xf4]
+
+ vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpermb %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0x87,0x8d,0xf4]
+
+ vpermb (%rcx), %xmm29, %xmm30
+//CHECK: vpermb (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x31]
+
+ vpermb 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermb 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermb 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpermb 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x7f]
+
+ vpermb 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermb 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0x00,0x08,0x00,0x00]
+
+ vpermb -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermb -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0x72,0x80]
+
+ vpermb -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpermb -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x8d,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpermb %ymm28, %ymm29, %ymm30
+//CHECK: vpermb %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x15,0x20,0x8d,0xf4]
+
+ vpermb %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x27,0x8d,0xf4]
+
+ vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpermb %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x8d,0xf4]
+
+ vpermb (%rcx), %ymm29, %ymm30
+//CHECK: vpermb (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x31]
+
+ vpermb 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermb 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermb 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpermb 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x7f]
+
+ vpermb 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermb 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0x00,0x10,0x00,0x00]
+
+ vpermb -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermb -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0x72,0x80]
+
+ vpermb -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpermb -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x8d,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpermb %xmm28, %xmm29, %xmm30
+//CHECK: vpermb %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x00,0x8d,0xf4]
+
+ vpermb 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermb 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermb 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermb 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermb %zmm28, %zmm29, %zmm30
+//CHECK: vpermb %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x40,0x8d,0xf4]
+
+ vpermb %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x47,0x8d,0xf4]
+
+ vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpermb %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x8d,0xf4]
+
+ vpermb (%rcx), %zmm29, %zmm30
+//CHECK: vpermb (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x31]
+
+ vpermb 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermb 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermb 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpermb 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x7f]
+
+ vpermb 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermb 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0x00,0x20,0x00,0x00]
+
+ vpermb -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermb -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0x72,0x80]
+
+ vpermb -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpermb -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x8d,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpermb 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermb 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x8d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermt2b %xmm28, %xmm29, %xmm30
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x00,0x7d,0xf4]
+
+ vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x07,0x7d,0xf4]
+
+ vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpermt2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0x87,0x7d,0xf4]
+
+ vpermt2b (%rcx), %xmm29, %xmm30
+//CHECK: vpermt2b (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x7f]
+
+ vpermt2b 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0x00,0x08,0x00,0x00]
+
+ vpermt2b -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0x72,0x80]
+
+ vpermt2b -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpermt2b -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x7d,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpermt2b %ymm28, %ymm29, %ymm30
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x15,0x20,0x7d,0xf4]
+
+ vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x27,0x7d,0xf4]
+
+ vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpermt2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x7d,0xf4]
+
+ vpermt2b (%rcx), %ymm29, %ymm30
+//CHECK: vpermt2b (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x7f]
+
+ vpermt2b 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0x00,0x10,0x00,0x00]
+
+ vpermt2b -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0x72,0x80]
+
+ vpermt2b -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpermt2b -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x7d,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpermt2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermt2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermt2b %zmm28, %zmm29, %zmm30
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x40,0x7d,0xf4]
+
+ vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x47,0x7d,0xf4]
+
+ vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpermt2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x7d,0xf4]
+
+ vpermt2b (%rcx), %zmm29, %zmm30
+//CHECK: vpermt2b (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x31]
+
+ vpermt2b 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermt2b 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermt2b 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x7f]
+
+ vpermt2b 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0x00,0x20,0x00,0x00]
+
+ vpermt2b -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0x72,0x80]
+
+ vpermt2b -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpermt2b -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x7d,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpermt2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermt2b 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x7d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b %xmm28, %xmm29, %xmm30
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x00,0x75,0xf4]
+
+ vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x07,0x75,0xf4]
+
+ vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpermi2b %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0x87,0x75,0xf4]
+
+ vpermi2b (%rcx), %xmm29, %xmm30
+//CHECK: vpermi2b (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x7f]
+
+ vpermi2b 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0x00,0x08,0x00,0x00]
+
+ vpermi2b -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0x72,0x80]
+
+ vpermi2b -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpermi2b -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x00,0x75,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpermi2b %ymm28, %ymm29, %ymm30
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x15,0x20,0x75,0xf4]
+
+ vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x27,0x75,0xf4]
+
+ vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpermi2b %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xa7,0x75,0xf4]
+
+ vpermi2b (%rcx), %ymm29, %ymm30
+//CHECK: vpermi2b (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x7f]
+
+ vpermi2b 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0x00,0x10,0x00,0x00]
+
+ vpermi2b -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0x72,0x80]
+
+ vpermi2b -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpermi2b -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x15,0x20,0x75,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpermi2b 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x00,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x15,0x20,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpermi2b %zmm28, %zmm29, %zmm30
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x15,0x40,0x75,0xf4]
+
+ vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x15,0x47,0x75,0xf4]
+
+ vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpermi2b %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x15,0xc7,0x75,0xf4]
+
+ vpermi2b (%rcx), %zmm29, %zmm30
+//CHECK: vpermi2b (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x31]
+
+ vpermi2b 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermi2b 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpermi2b 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x7f]
+
+ vpermi2b 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0x00,0x20,0x00,0x00]
+
+ vpermi2b -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0x72,0x80]
+
+ vpermi2b -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpermi2b -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x15,0x40,0x75,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpermi2b 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpermi2b 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x15,0x40,0x75,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmultishiftqb %xmm28, %xmm29, %xmm30
+//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x00,0x83,0xf4]
+
+ vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x07,0x83,0xf4]
+
+ vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: vpmultishiftqb %xmm28, %xmm29, %xmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0x87,0x83,0xf4]
+
+ vpmultishiftqb (%rcx), %xmm29, %xmm30
+//CHECK: vpmultishiftqb (%rcx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x31]
+
+ vpmultishiftqb 0x123(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmultishiftqb 291(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
+//CHECK: vpmultishiftqb (%rcx){1to2}, %xmm29, %xmm30
+
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x31]
+
+ vpmultishiftqb 0x7f0(%rdx), %xmm29, %xmm30
+//CHECK: vpmultishiftqb 2032(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmultishiftqb 2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0x00,0x08,0x00,0x00]
+
+ vpmultishiftqb -0x800(%rdx), %xmm29, %xmm30
+//CHECK: vpmultishiftqb -2048(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x810(%rdx), %xmm29, %xmm30
+//CHECK: vpmultishiftqb -2064(%rdx), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x00,0x83,0xb2,0xf0,0xf7,0xff,0xff]
+
+ vpmultishiftqb 0x3f8(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmultishiftqb 1016(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmultishiftqb 1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmultishiftqb -0x400(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmultishiftqb -1024(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x408(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: vpmultishiftqb -1032(%rdx){1to2}, %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x10,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmultishiftqb %ymm28, %ymm29, %ymm30
+//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x02,0x95,0x20,0x83,0xf4]
+
+ vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x27,0x83,0xf4]
+
+ vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: vpmultishiftqb %ymm28, %ymm29, %ymm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xa7,0x83,0xf4]
+
+ vpmultishiftqb (%rcx), %ymm29, %ymm30
+//CHECK: vpmultishiftqb (%rcx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x31]
+
+ vpmultishiftqb 0x123(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmultishiftqb 291(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: vpmultishiftqb (%rcx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x31]
+
+ vpmultishiftqb 0xfe0(%rdx), %ymm29, %ymm30
+//CHECK: vpmultishiftqb 4064(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmultishiftqb 4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0x00,0x10,0x00,0x00]
+
+ vpmultishiftqb -0x1000(%rdx), %ymm29, %ymm30
+//CHECK: vpmultishiftqb -4096(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x1020(%rdx), %ymm29, %ymm30
+//CHECK: vpmultishiftqb -4128(%rdx), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x20,0x83,0xb2,0xe0,0xef,0xff,0xff]
+
+ vpmultishiftqb 0x3f8(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmultishiftqb 1016(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmultishiftqb 1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmultishiftqb -0x400(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmultishiftqb -1024(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x408(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: vpmultishiftqb -1032(%rdx){1to4}, %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x62,0x95,0x30,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmultishiftqb 0x1234(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %xmm29, %xmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x00,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmultishiftqb 0x1234(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %ymm29, %ymm30
+//CHECK: encoding: [0x62,0x22,0x95,0x20,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
+ vpmultishiftqb %zmm28, %zmm29, %zmm30
+//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x02,0x95,0x40,0x83,0xf4]
+
+ vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7}
+//CHECK: encoding: [0x62,0x02,0x95,0x47,0x83,0xf4]
+
+ vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: vpmultishiftqb %zmm28, %zmm29, %zmm30 {%k7} {z}
+//CHECK: encoding: [0x62,0x02,0x95,0xc7,0x83,0xf4]
+
+ vpmultishiftqb (%rcx), %zmm29, %zmm30
+//CHECK: vpmultishiftqb (%rcx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x31]
+
+ vpmultishiftqb 0x123(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmultishiftqb 291(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x23,0x01,0x00,0x00]
+
+ vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: vpmultishiftqb (%rcx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x31]
+
+ vpmultishiftqb 0x1fc0(%rdx), %zmm29, %zmm30
+//CHECK: vpmultishiftqb 8128(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmultishiftqb 8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0x00,0x20,0x00,0x00]
+
+ vpmultishiftqb -0x2000(%rdx), %zmm29, %zmm30
+//CHECK: vpmultishiftqb -8192(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x2040(%rdx), %zmm29, %zmm30
+//CHECK: vpmultishiftqb -8256(%rdx), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x40,0x83,0xb2,0xc0,0xdf,0xff,0xff]
+
+ vpmultishiftqb 0x3f8(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmultishiftqb 1016(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x7f]
+
+ vpmultishiftqb 0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmultishiftqb 1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0x00,0x04,0x00,0x00]
+
+ vpmultishiftqb -0x400(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmultishiftqb -1024(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0x72,0x80]
+
+ vpmultishiftqb -0x408(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: vpmultishiftqb -1032(%rdx){1to8}, %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x62,0x95,0x50,0x83,0xb2,0xf8,0xfb,0xff,0xff]
+
+ vpmultishiftqb 0x1234(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: vpmultishiftqb 4660(%rax,%r14,8), %zmm29, %zmm30
+//CHECK: encoding: [0x62,0x22,0x95,0x40,0x83,0xb4,0xf0,0x34,0x12,0x00,0x00]
+
diff --git a/test/MC/X86/error-reloc.s b/test/MC/X86/error-reloc.s
new file mode 100644
index 000000000000..647f764ff0d6
--- /dev/null
+++ b/test/MC/X86/error-reloc.s
@@ -0,0 +1,21 @@
+// RUN: not llvm-mc -triple x86_64-pc-linux %s -o %t.o -filetype=obj 2>&1 | FileCheck %s
+
+ .quad foo@gotpcrel
+// CHECK: 32 bit reloc applied to a field with a different size
+// CHECK-NEXT: .quad foo@gotpcrel
+
+ .quad foo@plt
+// CHECK: 32 bit reloc applied to a field with a different size
+// CHECK-NEXT: .quad foo@plt
+
+ .quad foo@tlsld
+// CHECK: 32 bit reloc applied to a field with a different size
+// CHECK-NEXT: .quad foo@tlsld
+
+ .quad foo@gottpoff
+// CHECK: 32 bit reloc applied to a field with a different size
+// CHECK-NEXT: .quad foo@gottpoff
+
+ .quad foo@tlsgd
+// CHECK: 32 bit reloc applied to a field with a different size
+// CHECK-NEXT: .quad foo@tlsgd
diff --git a/test/MC/X86/i386-darwin-frame-register.ll b/test/MC/X86/i386-darwin-frame-register.ll
index 12b1e1e5c548..5f0cb6f20b28 100644
--- a/test/MC/X86/i386-darwin-frame-register.ll
+++ b/test/MC/X86/i386-darwin-frame-register.ll
@@ -29,7 +29,7 @@ attributes #0 = { nounwind }
!llvm.module.flags = !{!3, !4, !5}
!llvm.ident = !{!6}
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.7.0 (trunk 230514) (llvm/trunk 230518)", isOptimized: false, emissionKind: 1, file: !1, enums: !2, retainedTypes: !2, subprograms: !2, globals: !2, imports: !2)
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, producer: "clang version 3.7.0 (trunk 230514) (llvm/trunk 230518)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2)
!1 = !DIFile(filename: "foo.c", directory: "/tmp")
!2 = !{}
!3 = !{i32 2, !"Dwarf Version", i32 2}
diff --git a/test/MC/X86/imm-comments.s b/test/MC/X86/imm-comments.s
new file mode 100644
index 000000000000..844bc39ac225
--- /dev/null
+++ b/test/MC/X86/imm-comments.s
@@ -0,0 +1,28 @@
+# RUN: llvm-mc %s -triple=x86_64-unknown-unknown | FileCheck %s
+
+movb $127, %al
+movb $-128, %al
+
+movw $32767, %ax
+movw $-32768, %ax
+
+movl $2147483647, %eax
+movl $-2147483648, %eax
+
+movabsq $9223372036854775807, %rax
+
+# This line should not induce undefined behavior via negation of INT64_MIN.
+movabsq $-9223372036854775808, %rax
+
+# CHECK: movb $127, %al
+# CHECK: movb $-128, %al
+
+# CHECK: movw $32767, %ax # imm = 0x7FFF
+# CHECK: movw $-32768, %ax # imm = 0x8000
+
+# CHECK: movl $2147483647, %eax # imm = 0x7FFFFFFF
+# CHECK: movl $-2147483648, %eax # imm = 0x80000000
+
+# CHECK: movabsq $9223372036854775807, %rax # imm = 0x7FFFFFFFFFFFFFFF
+# CHECK: movabsq $-9223372036854775808, %rax # imm = 0x8000000000000000
+
diff --git a/test/MC/X86/index-operations.s b/test/MC/X86/index-operations.s
index 9f69b0b78499..0f9bc91f7ade 100644
--- a/test/MC/X86/index-operations.s
+++ b/test/MC/X86/index-operations.s
@@ -144,3 +144,19 @@ insw %dx, (%edi)
// 64: insw %dx, %es:(%edi) # encoding: [0x66,0x67,0x6d]
// 32: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]
// 16: insw %dx, %es:(%edi) # encoding: [0x67,0x6d]
+
+insw %dx, (%bx)
+// ERR64: invalid 16-bit base register
+// 32: insw %dx, %es:(%di) # encoding: [0x66,0x67,0x6d]
+// 16: insw %dx, %es:(%di) # encoding: [0x6d]
+
+insw %dx, (%ebx)
+// 64: insw %dx, %es:(%edi) # encoding: [0x66,0x67,0x6d]
+// 32: insw %dx, %es:(%edi) # encoding: [0x66,0x6d]
+// 16: insw %dx, %es:(%edi) # encoding: [0x67,0x6d]
+
+insw %dx, (%rbx)
+// 64: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d]
+// ERR32: 64-bit
+// ERR16: 64-bit
+
diff --git a/test/MC/X86/intel-syntax-avx512.s b/test/MC/X86/intel-syntax-avx512.s
index 1ad2b86bb8ca..2705e8c3b957 100644
--- a/test/MC/X86/intel-syntax-avx512.s
+++ b/test/MC/X86/intel-syntax-avx512.s
@@ -6,31 +6,31 @@ vaddps zmm1, zmm1, zmmword ptr [rax]
// CHECK: vaddpd zmm1, zmm1, zmm2
// CHECK: encoding: [0x62,0xf1,0xf5,0x48,0x58,0xca]
-vaddpd zmm1,zmm1,zmm2
+vaddpd zmm1, zmm1, zmm2
// CHECK: vaddpd zmm1 {k5}, zmm1, zmm2
// CHECK: encoding: [0x62,0xf1,0xf5,0x4d,0x58,0xca]
-vaddpd zmm1{k5},zmm1,zmm2
+vaddpd zmm1 {k5}, zmm1, zmm2
// CHECK: vaddpd zmm1 {k5} {z}, zmm1, zmm2
// CHECK: encoding: [0x62,0xf1,0xf5,0xcd,0x58,0xca]
-vaddpd zmm1{k5} {z},zmm1,zmm2
+vaddpd zmm1 {k5} {z}, zmm1, zmm2
// CHECK: vaddpd zmm1, zmm1, zmm2, {rn-sae}
// CHECK: encoding: [0x62,0xf1,0xf5,0x18,0x58,0xca]
-vaddpd zmm1,zmm1,zmm2,{rn-sae}
+vaddpd zmm1, zmm1, zmm2, {rn-sae}
// CHECK: vaddpd zmm1, zmm1, zmm2, {ru-sae}
// CHECK: encoding: [0x62,0xf1,0xf5,0x58,0x58,0xca]
-vaddpd zmm1,zmm1,zmm2,{ru-sae}
+vaddpd zmm1, zmm1, zmm2, {ru-sae}
// CHECK: vaddpd zmm1, zmm1, zmm2, {rd-sae}
// CHECK: encoding: [0x62,0xf1,0xf5,0x38,0x58,0xca]
-vaddpd zmm1,zmm1,zmm2,{rd-sae}
+vaddpd zmm1, zmm1, zmm2, {rd-sae}
// CHECK: vaddpd zmm1, zmm1, zmm2, {rz-sae}
// CHECK: encoding: [0x62,0xf1,0xf5,0x78,0x58,0xca]
-vaddpd zmm1,zmm1,zmm2,{rz-sae}
+vaddpd zmm1, zmm1, zmm2, {rz-sae}
// CHECK: vcmppd k2, zmm12, zmm26, 171
// CHECK: encoding: [0x62,0x91,0x9d,0x48,0xc2,0xd2,0xab]
@@ -267,7 +267,7 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae}
// CHECK: vmovss dword ptr [rcx] {k2}, xmm13
// CHECK: encoding: [0x62,0x71,0x7e,0x0a,0x11,0x29]
- vmovss dword ptr [rcx]{k2},xmm13
+ vmovss dword ptr [rcx] {k2}, xmm13
// CHECK: vmovss dword ptr [rax + 8*r14 + 4660], xmm13
// CHECK: encoding: [0xc4,0x21,0x7a,0x11,0xac,0xf0,0x34,0x12,0x00,0x00]
@@ -307,7 +307,7 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae}
// CHECK: vmovss dword ptr [rcx], xmm13
// CHECK: encoding: [0xc5,0x7a,0x11,0x29]
- vmovss dword ptr [rcx],xmm13
+ vmovss dword ptr [rcx], xmm13
// CHECK: vmovss xmm2, dword ptr [rcx]
// CHECK: encoding: [0xc5,0xfa,0x10,0x11]
@@ -315,11 +315,11 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae}
// CHECK: vmovss xmm2 {k4}, dword ptr [rcx]
// CHECK: encoding: [0x62,0xf1,0x7e,0x0c,0x10,0x11]
- vmovss xmm2{k4}, dword ptr [rcx]
+ vmovss xmm2 {k4}, dword ptr [rcx]
// CHECK: vmovss xmm2 {k4} {z}, dword ptr [rcx]
// CHECK: encoding: [0x62,0xf1,0x7e,0x8c,0x10,0x11]
- vmovss xmm2{k4} {z}, dword ptr [rcx]
+ vmovss xmm2 {k4} {z}, dword ptr [rcx]
// CHECK: vmovsd xmm25, qword ptr [rcx]
// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x09]
@@ -327,11 +327,11 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae}
// CHECK: vmovsd xmm25 {k3}, qword ptr [rcx]
// CHECK: encoding: [0x62,0x61,0xff,0x0b,0x10,0x09]
- vmovsd xmm25{k3}, qword ptr [rcx]
+ vmovsd xmm25 {k3}, qword ptr [rcx]
// CHECK: vmovsd xmm25 {k3} {z}, qword ptr [rcx]
// CHECK: encoding: [0x62,0x61,0xff,0x8b,0x10,0x09]
- vmovsd xmm25{k3} {z}, qword ptr [rcx]
+ vmovsd xmm25 {k3} {z}, qword ptr [rcx]
// CHECK: vmovsd xmm25, qword ptr [rax + 8*r14 + 291]
// CHECK: encoding: [0x62,0x21,0xff,0x08,0x10,0x8c,0xf0,0x23,0x01,0x00,0x00]
@@ -352,3 +352,37994 @@ vaddpd zmm1,zmm1,zmm2,{rz-sae}
// CHECK: vmovsd xmm25, qword ptr [rdx - 1032]
// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x8a,0xf8,0xfb,0xff,0xff]
vmovsd xmm25, qword ptr [rdx-0x408]
+
+// CHECK: vaddpd zmm8, zmm27, zmm6
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0xc6]
+ vaddpd zmm8, zmm27, zmm6
+
+// CHECK: vaddpd zmm8 {k7}, zmm27, zmm6
+// CHECK: encoding: [0x62,0x71,0xa5,0x47,0x58,0xc6]
+ vaddpd zmm8 {k7}, zmm27, zmm6
+
+// CHECK: vaddpd zmm8 {k7} {z}, zmm27, zmm6
+// CHECK: encoding: [0x62,0x71,0xa5,0xc7,0x58,0xc6]
+ vaddpd zmm8 {k7} {z}, zmm27, zmm6
+
+// CHECK: vaddpd zmm8, zmm27, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0xa5,0x10,0x58,0xc6]
+ vaddpd zmm8, zmm27, zmm6, {rn-sae}
+
+// CHECK: vaddpd zmm8, zmm27, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0xc6]
+ vaddpd zmm8, zmm27, zmm6, {ru-sae}
+
+// CHECK: vaddpd zmm8, zmm27, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0xa5,0x30,0x58,0xc6]
+ vaddpd zmm8, zmm27, zmm6, {rd-sae}
+
+// CHECK: vaddpd zmm8, zmm27, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0xa5,0x70,0x58,0xc6]
+ vaddpd zmm8, zmm27, zmm6, {rz-sae}
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x01]
+ vaddpd zmm8, zmm27, zmmword ptr [rcx]
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xa5,0x40,0x58,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vaddpd zmm8, zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vaddpd zmm8, zmm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x01]
+ vaddpd zmm8, zmm27, qword ptr [rcx]{1to8}
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x7f]
+ vaddpd zmm8, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x82,0x00,0x20,0x00,0x00]
+ vaddpd zmm8, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x80]
+ vaddpd zmm8, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vaddpd zmm8, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xa5,0x40,0x58,0x82,0xc0,0xdf,0xff,0xff]
+ vaddpd zmm8, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vaddpd zmm8, zmm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x42,0x7f]
+ vaddpd zmm8, zmm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vaddpd zmm8, zmm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0x00,0x04,0x00,0x00]
+ vaddpd zmm8, zmm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vaddpd zmm8, zmm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x42,0x80]
+ vaddpd zmm8, zmm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vaddpd zmm8, zmm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xa5,0x50,0x58,0x82,0xf8,0xfb,0xff,0xff]
+ vaddpd zmm8, zmm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vaddps zmm18, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0xd2]
+ vaddps zmm18, zmm13, zmm2
+
+// CHECK: vaddps zmm18 {k4}, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe1,0x14,0x4c,0x58,0xd2]
+ vaddps zmm18 {k4}, zmm13, zmm2
+
+// CHECK: vaddps zmm18 {k4} {z}, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe1,0x14,0xcc,0x58,0xd2]
+ vaddps zmm18 {k4} {z}, zmm13, zmm2
+
+// CHECK: vaddps zmm18, zmm13, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0x14,0x18,0x58,0xd2]
+ vaddps zmm18, zmm13, zmm2, {rn-sae}
+
+// CHECK: vaddps zmm18, zmm13, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0xd2]
+ vaddps zmm18, zmm13, zmm2, {ru-sae}
+
+// CHECK: vaddps zmm18, zmm13, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0x14,0x38,0x58,0xd2]
+ vaddps zmm18, zmm13, zmm2, {rd-sae}
+
+// CHECK: vaddps zmm18, zmm13, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0x14,0x78,0x58,0xd2]
+ vaddps zmm18, zmm13, zmm2, {rz-sae}
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x11]
+ vaddps zmm18, zmm13, zmmword ptr [rcx]
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x14,0x48,0x58,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vaddps zmm18, zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vaddps zmm18, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x11]
+ vaddps zmm18, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x7f]
+ vaddps zmm18, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x92,0x00,0x20,0x00,0x00]
+ vaddps zmm18, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x80]
+ vaddps zmm18, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vaddps zmm18, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x14,0x48,0x58,0x92,0xc0,0xdf,0xff,0xff]
+ vaddps zmm18, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vaddps zmm18, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x52,0x7f]
+ vaddps zmm18, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vaddps zmm18, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0x00,0x02,0x00,0x00]
+ vaddps zmm18, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vaddps zmm18, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x52,0x80]
+ vaddps zmm18, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vaddps zmm18, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x14,0x58,0x58,0x92,0xfc,0xfd,0xff,0xff]
+ vaddps zmm18, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vaddsd xmm3, xmm17, xmm8
+// CHECK: encoding: [0x62,0xd1,0xf7,0x00,0x58,0xd8]
+ vaddsd xmm3, xmm17, xmm8
+
+// CHECK: vaddsd xmm3 {k3}, xmm17, xmm8
+// CHECK: encoding: [0x62,0xd1,0xf7,0x03,0x58,0xd8]
+ vaddsd xmm3 {k3}, xmm17, xmm8
+
+// CHECK: vaddsd xmm3 {k3} {z}, xmm17, xmm8
+// CHECK: encoding: [0x62,0xd1,0xf7,0x83,0x58,0xd8]
+ vaddsd xmm3 {k3} {z}, xmm17, xmm8
+
+// CHECK: vaddsd xmm3, xmm17, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0xf7,0x10,0x58,0xd8]
+ vaddsd xmm3, xmm17, xmm8, {rn-sae}
+
+// CHECK: vaddsd xmm3, xmm17, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0xf7,0x50,0x58,0xd8]
+ vaddsd xmm3, xmm17, xmm8, {ru-sae}
+
+// CHECK: vaddsd xmm3, xmm17, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0xf7,0x30,0x58,0xd8]
+ vaddsd xmm3, xmm17, xmm8, {rd-sae}
+
+// CHECK: vaddsd xmm3, xmm17, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0xf7,0x70,0x58,0xd8]
+ vaddsd xmm3, xmm17, xmm8, {rz-sae}
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xf7,0x00,0x58,0x19]
+ vaddsd xmm3, xmm17, qword ptr [rcx]
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xf7,0x00,0x58,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vaddsd xmm3, xmm17, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xf7,0x00,0x58,0x5a,0x7f]
+ vaddsd xmm3, xmm17, qword ptr [rdx + 1016]
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xf7,0x00,0x58,0x9a,0x00,0x04,0x00,0x00]
+ vaddsd xmm3, xmm17, qword ptr [rdx + 1024]
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xf7,0x00,0x58,0x5a,0x80]
+ vaddsd xmm3, xmm17, qword ptr [rdx - 1024]
+
+// CHECK: vaddsd xmm3, xmm17, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xf7,0x00,0x58,0x9a,0xf8,0xfb,0xff,0xff]
+ vaddsd xmm3, xmm17, qword ptr [rdx - 1032]
+
+// CHECK: vaddss xmm7, xmm5, xmm19
+// CHECK: encoding: [0x62,0xb1,0x56,0x08,0x58,0xfb]
+ vaddss xmm7, xmm5, xmm19
+
+// CHECK: vaddss xmm7 {k2}, xmm5, xmm19
+// CHECK: encoding: [0x62,0xb1,0x56,0x0a,0x58,0xfb]
+ vaddss xmm7 {k2}, xmm5, xmm19
+
+// CHECK: vaddss xmm7 {k2} {z}, xmm5, xmm19
+// CHECK: encoding: [0x62,0xb1,0x56,0x8a,0x58,0xfb]
+ vaddss xmm7 {k2} {z}, xmm5, xmm19
+
+// CHECK: vaddss xmm7, xmm5, xmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0x56,0x18,0x58,0xfb]
+ vaddss xmm7, xmm5, xmm19, {rn-sae}
+
+// CHECK: vaddss xmm7, xmm5, xmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0x56,0x58,0x58,0xfb]
+ vaddss xmm7, xmm5, xmm19, {ru-sae}
+
+// CHECK: vaddss xmm7, xmm5, xmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0x56,0x38,0x58,0xfb]
+ vaddss xmm7, xmm5, xmm19, {rd-sae}
+
+// CHECK: vaddss xmm7, xmm5, xmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0x56,0x78,0x58,0xfb]
+ vaddss xmm7, xmm5, xmm19, {rz-sae}
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0xd2,0x58,0x39]
+ vaddss xmm7, xmm5, dword ptr [rcx]
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa1,0x52,0x58,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vaddss xmm7, xmm5, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0xd2,0x58,0xba,0xfc,0x01,0x00,0x00]
+ vaddss xmm7, xmm5, dword ptr [rdx + 508]
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0xd2,0x58,0xba,0x00,0x02,0x00,0x00]
+ vaddss xmm7, xmm5, dword ptr [rdx + 512]
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0xd2,0x58,0xba,0x00,0xfe,0xff,0xff]
+ vaddss xmm7, xmm5, dword ptr [rdx - 512]
+
+// CHECK: vaddss xmm7, xmm5, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0xd2,0x58,0xba,0xfc,0xfd,0xff,0xff]
+ vaddss xmm7, xmm5, dword ptr [rdx - 516]
+
+// CHECK: valignd zmm9, zmm18, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x40,0x03,0xca,0xab]
+ valignd zmm9, zmm18, zmm26, 171
+
+// CHECK: valignd zmm9 {k4}, zmm18, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x44,0x03,0xca,0xab]
+ valignd zmm9 {k4}, zmm18, zmm26, 171
+
+// CHECK: valignd zmm9 {k4} {z}, zmm18, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0xc4,0x03,0xca,0xab]
+ valignd zmm9 {k4} {z}, zmm18, zmm26, 171
+
+// CHECK: valignd zmm9, zmm18, zmm26, 123
+// CHECK: encoding: [0x62,0x13,0x6d,0x40,0x03,0xca,0x7b]
+ valignd zmm9, zmm18, zmm26, 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x40,0x03,0x09,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rcx], 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x6d,0x40,0x03,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: valignd zmm9, zmm18, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x50,0x03,0x09,0x7b]
+ valignd zmm9, zmm18, dword ptr [rcx]{1to16}, 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x40,0x03,0x4a,0x7f,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rdx + 8128], 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x40,0x03,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rdx + 8192], 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x40,0x03,0x4a,0x80,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rdx - 8192], 123
+
+// CHECK: valignd zmm9, zmm18, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x40,0x03,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ valignd zmm9, zmm18, zmmword ptr [rdx - 8256], 123
+
+// CHECK: valignd zmm9, zmm18, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x50,0x03,0x4a,0x7f,0x7b]
+ valignd zmm9, zmm18, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: valignd zmm9, zmm18, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x50,0x03,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ valignd zmm9, zmm18, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: valignd zmm9, zmm18, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x50,0x03,0x4a,0x80,0x7b]
+ valignd zmm9, zmm18, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: valignd zmm9, zmm18, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x50,0x03,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ valignd zmm9, zmm18, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vblendmpd zmm8, zmm28, zmm12
+// CHECK: encoding: [0x62,0x52,0x9d,0x40,0x65,0xc4]
+ vblendmpd zmm8, zmm28, zmm12
+
+// CHECK: vblendmpd zmm8 {k1}, zmm28, zmm12
+// CHECK: encoding: [0x62,0x52,0x9d,0x41,0x65,0xc4]
+ vblendmpd zmm8 {k1}, zmm28, zmm12
+
+// CHECK: vblendmpd zmm8 {k1} {z}, zmm28, zmm12
+// CHECK: encoding: [0x62,0x52,0x9d,0xc1,0x65,0xc4]
+ vblendmpd zmm8 {k1} {z}, zmm28, zmm12
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x65,0x01]
+ vblendmpd zmm8, zmm28, zmmword ptr [rcx]
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x9d,0x40,0x65,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vblendmpd zmm8, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vblendmpd zmm8, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x65,0x01]
+ vblendmpd zmm8, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x65,0x42,0x7f]
+ vblendmpd zmm8, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x65,0x82,0x00,0x20,0x00,0x00]
+ vblendmpd zmm8, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x65,0x42,0x80]
+ vblendmpd zmm8, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vblendmpd zmm8, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x65,0x82,0xc0,0xdf,0xff,0xff]
+ vblendmpd zmm8, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vblendmpd zmm8, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x65,0x42,0x7f]
+ vblendmpd zmm8, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vblendmpd zmm8, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x65,0x82,0x00,0x04,0x00,0x00]
+ vblendmpd zmm8, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vblendmpd zmm8, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x65,0x42,0x80]
+ vblendmpd zmm8, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vblendmpd zmm8, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x65,0x82,0xf8,0xfb,0xff,0xff]
+ vblendmpd zmm8, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vblendmps zmm15, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0xfc]
+ vblendmps zmm15, zmm28, zmm4
+
+// CHECK: vblendmps zmm15 {k3}, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0x43,0x65,0xfc]
+ vblendmps zmm15 {k3}, zmm28, zmm4
+
+// CHECK: vblendmps zmm15 {k3} {z}, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0xc3,0x65,0xfc]
+ vblendmps zmm15 {k3} {z}, zmm28, zmm4
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0x39]
+ vblendmps zmm15, zmm28, zmmword ptr [rcx]
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x1d,0x40,0x65,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vblendmps zmm15, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vblendmps zmm15, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x65,0x39]
+ vblendmps zmm15, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0x7a,0x7f]
+ vblendmps zmm15, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0xba,0x00,0x20,0x00,0x00]
+ vblendmps zmm15, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0x7a,0x80]
+ vblendmps zmm15, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vblendmps zmm15, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x65,0xba,0xc0,0xdf,0xff,0xff]
+ vblendmps zmm15, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vblendmps zmm15, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x65,0x7a,0x7f]
+ vblendmps zmm15, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vblendmps zmm15, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x65,0xba,0x00,0x02,0x00,0x00]
+ vblendmps zmm15, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vblendmps zmm15, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x65,0x7a,0x80]
+ vblendmps zmm15, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vblendmps zmm15, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x65,0xba,0xfc,0xfd,0xff,0xff]
+ vblendmps zmm15, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1a,0x19]
+ vbroadcastf32x4 zmm3, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm3 {k7}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4f,0x1a,0x19]
+ vbroadcastf32x4 zmm3 {k7}, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm3 {k7} {z}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xcf,0x1a,0x19]
+ vbroadcastf32x4 zmm3 {k7} {z}, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x1a,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcastf32x4 zmm3, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1a,0x5a,0x7f]
+ vbroadcastf32x4 zmm3, xmmword ptr [rdx + 2032]
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1a,0x9a,0x00,0x08,0x00,0x00]
+ vbroadcastf32x4 zmm3, xmmword ptr [rdx + 2048]
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1a,0x5a,0x80]
+ vbroadcastf32x4 zmm3, xmmword ptr [rdx - 2048]
+
+// CHECK: vbroadcastf32x4 zmm3, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1a,0x9a,0xf0,0xf7,0xff,0xff]
+ vbroadcastf32x4 zmm3, xmmword ptr [rdx - 2064]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x09]
+ vbroadcastf64x4 zmm25, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm25 {k6}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4e,0x1b,0x09]
+ vbroadcastf64x4 zmm25 {k6}, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm25 {k6} {z}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xce,0x1b,0x09]
+ vbroadcastf64x4 zmm25 {k6} {z}, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x1b,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcastf64x4 zmm25, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x4a,0x7f]
+ vbroadcastf64x4 zmm25, ymmword ptr [rdx + 4064]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x8a,0x00,0x10,0x00,0x00]
+ vbroadcastf64x4 zmm25, ymmword ptr [rdx + 4096]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x4a,0x80]
+ vbroadcastf64x4 zmm25, ymmword ptr [rdx - 4096]
+
+// CHECK: vbroadcastf64x4 zmm25, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x8a,0xe0,0xef,0xff,0xff]
+ vbroadcastf64x4 zmm25, ymmword ptr [rdx - 4128]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x5a,0x31]
+ vbroadcasti32x4 zmm30, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm30 {k3}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x4b,0x5a,0x31]
+ vbroadcasti32x4 zmm30 {k3}, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm30 {k3} {z}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0xcb,0x5a,0x31]
+ vbroadcasti32x4 zmm30 {k3} {z}, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x5a,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcasti32x4 zmm30, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x5a,0x72,0x7f]
+ vbroadcasti32x4 zmm30, xmmword ptr [rdx + 2032]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x5a,0xb2,0x00,0x08,0x00,0x00]
+ vbroadcasti32x4 zmm30, xmmword ptr [rdx + 2048]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x5a,0x72,0x80]
+ vbroadcasti32x4 zmm30, xmmword ptr [rdx - 2048]
+
+// CHECK: vbroadcasti32x4 zmm30, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x5a,0xb2,0xf0,0xf7,0xff,0xff]
+ vbroadcasti32x4 zmm30, xmmword ptr [rdx - 2064]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x5b,0x29]
+ vbroadcasti64x4 zmm13, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm13 {k4}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x4c,0x5b,0x29]
+ vbroadcasti64x4 zmm13 {k4}, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm13 {k4} {z}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0xcc,0x5b,0x29]
+ vbroadcasti64x4 zmm13 {k4} {z}, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x5b,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcasti64x4 zmm13, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x5b,0x6a,0x7f]
+ vbroadcasti64x4 zmm13, ymmword ptr [rdx + 4064]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x5b,0xaa,0x00,0x10,0x00,0x00]
+ vbroadcasti64x4 zmm13, ymmword ptr [rdx + 4096]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x5b,0x6a,0x80]
+ vbroadcasti64x4 zmm13, ymmword ptr [rdx - 4096]
+
+// CHECK: vbroadcasti64x4 zmm13, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x5b,0xaa,0xe0,0xef,0xff,0xff]
+ vbroadcasti64x4 zmm13, ymmword ptr [rdx - 4128]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x31]
+ vbroadcastsd zmm30, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm30 {k4}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4c,0x19,0x31]
+ vbroadcastsd zmm30 {k4}, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm30 {k4} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xcc,0x19,0x31]
+ vbroadcastsd zmm30 {k4} {z}, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x19,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcastsd zmm30, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x72,0x7f]
+ vbroadcastsd zmm30, qword ptr [rdx + 1016]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0xb2,0x00,0x04,0x00,0x00]
+ vbroadcastsd zmm30, qword ptr [rdx + 1024]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x72,0x80]
+ vbroadcastsd zmm30, qword ptr [rdx - 1024]
+
+// CHECK: vbroadcastsd zmm30, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0xb2,0xf8,0xfb,0xff,0xff]
+ vbroadcastsd zmm30, qword ptr [rdx - 1032]
+
+// CHECK: vbroadcastsd zmm21, xmm22
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x19,0xee]
+ vbroadcastsd zmm21, xmm22
+
+// CHECK: vbroadcastsd zmm21 {k7}, xmm22
+// CHECK: encoding: [0x62,0xa2,0xfd,0x4f,0x19,0xee]
+ vbroadcastsd zmm21 {k7}, xmm22
+
+// CHECK: vbroadcastsd zmm21 {k7} {z}, xmm22
+// CHECK: encoding: [0x62,0xa2,0xfd,0xcf,0x19,0xee]
+ vbroadcastsd zmm21 {k7} {z}, xmm22
+
+// CHECK: vbroadcastss zmm3, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x19]
+ vbroadcastss zmm3, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm3 {k4}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4c,0x18,0x19]
+ vbroadcastss zmm3 {k4}, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm3 {k4} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xcc,0x18,0x19]
+ vbroadcastss zmm3 {k4} {z}, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm3, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x18,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vbroadcastss zmm3, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vbroadcastss zmm3, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x5a,0x7f]
+ vbroadcastss zmm3, dword ptr [rdx + 508]
+
+// CHECK: vbroadcastss zmm3, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x9a,0x00,0x02,0x00,0x00]
+ vbroadcastss zmm3, dword ptr [rdx + 512]
+
+// CHECK: vbroadcastss zmm3, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x5a,0x80]
+ vbroadcastss zmm3, dword ptr [rdx - 512]
+
+// CHECK: vbroadcastss zmm3, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x9a,0xfc,0xfd,0xff,0xff]
+ vbroadcastss zmm3, dword ptr [rdx - 516]
+
+// CHECK: vbroadcastss zmm18, xmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x18,0xd2]
+ vbroadcastss zmm18, xmm18
+
+// CHECK: vbroadcastss zmm18 {k2}, xmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x4a,0x18,0xd2]
+ vbroadcastss zmm18 {k2}, xmm18
+
+// CHECK: vbroadcastss zmm18 {k2} {z}, xmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0xca,0x18,0xd2]
+ vbroadcastss zmm18 {k2} {z}, xmm18
+
+// CHECK: vcmppd k2, zmm12, zmm26, 171
+// CHECK: encoding: [0x62,0x91,0x9d,0x48,0xc2,0xd2,0xab]
+ vcmppd k2, zmm12, zmm26, 171
+
+// CHECK: vcmppd k2 {k3}, zmm12, zmm26, 171
+// CHECK: encoding: [0x62,0x91,0x9d,0x4b,0xc2,0xd2,0xab]
+ vcmppd k2 {k3}, zmm12, zmm26, 171
+
+// CHECK: vcmppd k2, zmm12, zmm26, {sae}, 171
+// CHECK: encoding: [0x62,0x91,0x9d,0x18,0xc2,0xd2,0xab]
+ vcmppd k2, zmm12, zmm26, {sae}, 171
+
+// CHECK: vcmppd k2, zmm12, zmm26, 123
+// CHECK: encoding: [0x62,0x91,0x9d,0x48,0xc2,0xd2,0x7b]
+ vcmppd k2, zmm12, zmm26, 123
+
+// CHECK: vcmppd k2, zmm12, zmm26, {sae}, 123
+// CHECK: encoding: [0x62,0x91,0x9d,0x18,0xc2,0xd2,0x7b]
+ vcmppd k2, zmm12, zmm26, {sae}, 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x48,0xc2,0x11,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rcx], 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x9d,0x48,0xc2,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vcmppd k2, zmm12, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x58,0xc2,0x11,0x7b]
+ vcmppd k2, zmm12, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x48,0xc2,0x52,0x7f,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x48,0xc2,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x48,0xc2,0x52,0x80,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vcmppd k2, zmm12, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x48,0xc2,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vcmppd k2, zmm12, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vcmppd k2, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x58,0xc2,0x52,0x7f,0x7b]
+ vcmppd k2, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vcmppd k2, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x58,0xc2,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vcmppd k2, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vcmppd k2, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x58,0xc2,0x52,0x80,0x7b]
+ vcmppd k2, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vcmppd k2, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x9d,0x58,0xc2,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vcmppd k2, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vcmpps k2, zmm17, zmm22, 171
+// CHECK: encoding: [0x62,0xb1,0x74,0x40,0xc2,0xd6,0xab]
+ vcmpps k2, zmm17, zmm22, 171
+
+// CHECK: vcmpps k2 {k3}, zmm17, zmm22, 171
+// CHECK: encoding: [0x62,0xb1,0x74,0x43,0xc2,0xd6,0xab]
+ vcmpps k2 {k3}, zmm17, zmm22, 171
+
+// CHECK: vcmpps k2, zmm17, zmm22, {sae}, 171
+// CHECK: encoding: [0x62,0xb1,0x74,0x10,0xc2,0xd6,0xab]
+ vcmpps k2, zmm17, zmm22, {sae}, 171
+
+// CHECK: vcmpps k2, zmm17, zmm22, 123
+// CHECK: encoding: [0x62,0xb1,0x74,0x40,0xc2,0xd6,0x7b]
+ vcmpps k2, zmm17, zmm22, 123
+
+// CHECK: vcmpps k2, zmm17, zmm22, {sae}, 123
+// CHECK: encoding: [0x62,0xb1,0x74,0x10,0xc2,0xd6,0x7b]
+ vcmpps k2, zmm17, zmm22, {sae}, 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x40,0xc2,0x11,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rcx], 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x74,0x40,0xc2,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vcmpps k2, zmm17, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x50,0xc2,0x11,0x7b]
+ vcmpps k2, zmm17, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x40,0xc2,0x52,0x7f,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x40,0xc2,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x40,0xc2,0x52,0x80,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vcmpps k2, zmm17, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x40,0xc2,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vcmpps k2, zmm17, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vcmpps k2, zmm17, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x50,0xc2,0x52,0x7f,0x7b]
+ vcmpps k2, zmm17, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm17, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x50,0xc2,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vcmpps k2, zmm17, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm17, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x50,0xc2,0x52,0x80,0x7b]
+ vcmpps k2, zmm17, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm17, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x50,0xc2,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vcmpps k2, zmm17, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vcmpsd k5, xmm19, xmm4, 171
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0xec,0xab]
+ vcmpsd k5, xmm19, xmm4, 171
+
+// CHECK: vcmpsd k5 {k1}, xmm19, xmm4, 171
+// CHECK: encoding: [0x62,0xf1,0xe7,0x01,0xc2,0xec,0xab]
+ vcmpsd k5 {k1}, xmm19, xmm4, 171
+
+// CHECK: vcmpsd k5, xmm19, xmm4, {sae}, 171
+// CHECK: encoding: [0x62,0xf1,0xe7,0x10,0xc2,0xec,0xab]
+ vcmpsd k5, xmm19, xmm4, {sae}, 171
+
+// CHECK: vcmpsd k5, xmm19, xmm4, 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0xec,0x7b]
+ vcmpsd k5, xmm19, xmm4, 123
+
+// CHECK: vcmpsd k5, xmm19, xmm4, {sae}, 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x10,0xc2,0xec,0x7b]
+ vcmpsd k5, xmm19, xmm4, {sae}, 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0x29,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rcx], 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0xe7,0x00,0xc2,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0x6a,0x7f,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rdx + 1016], 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0xaa,0x00,0x04,0x00,0x00,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rdx + 1024], 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0x6a,0x80,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rdx - 1024], 123
+
+// CHECK: vcmpsd k5, xmm19, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0xf1,0xe7,0x00,0xc2,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
+ vcmpsd k5, xmm19, qword ptr [rdx - 1032], 123
+
+// CHECK: vcmpss k4, xmm15, xmm12, 171
+// CHECK: encoding: [0x62,0xd1,0x06,0x08,0xc2,0xe4,0xab]
+ vcmpss k4, xmm15, xmm12, 171
+
+// CHECK: vcmpss k4 {k5}, xmm15, xmm12, 171
+// CHECK: encoding: [0x62,0xd1,0x06,0x0d,0xc2,0xe4,0xab]
+ vcmpss k4 {k5}, xmm15, xmm12, 171
+
+// CHECK: vcmpss k4, xmm15, xmm12, {sae}, 171
+// CHECK: encoding: [0x62,0xd1,0x06,0x18,0xc2,0xe4,0xab]
+ vcmpss k4, xmm15, xmm12, {sae}, 171
+
+// CHECK: vcmpss k4, xmm15, xmm12, 123
+// CHECK: encoding: [0x62,0xd1,0x06,0x08,0xc2,0xe4,0x7b]
+ vcmpss k4, xmm15, xmm12, 123
+
+// CHECK: vcmpss k4, xmm15, xmm12, {sae}, 123
+// CHECK: encoding: [0x62,0xd1,0x06,0x18,0xc2,0xe4,0x7b]
+ vcmpss k4, xmm15, xmm12, {sae}, 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x06,0x08,0xc2,0x21,0x7b]
+ vcmpss k4, xmm15, dword ptr [rcx], 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x06,0x08,0xc2,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vcmpss k4, xmm15, dword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0xf1,0x06,0x08,0xc2,0x62,0x7f,0x7b]
+ vcmpss k4, xmm15, dword ptr [rdx + 508], 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0xf1,0x06,0x08,0xc2,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vcmpss k4, xmm15, dword ptr [rdx + 512], 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0xf1,0x06,0x08,0xc2,0x62,0x80,0x7b]
+ vcmpss k4, xmm15, dword ptr [rdx - 512], 123
+
+// CHECK: vcmpss k4, xmm15, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0xf1,0x06,0x08,0xc2,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vcmpss k4, xmm15, dword ptr [rdx - 516], 123
+
+// CHECK: vcomisd xmm23, xmm21
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0x2f,0xfd]
+ vcomisd xmm23, xmm21
+
+// CHECK: vcomisd xmm23, xmm21, {sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x18,0x2f,0xfd]
+ vcomisd xmm23, xmm21, {sae}
+
+// CHECK: vcomisd xmm23, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2f,0x39]
+ vcomisd xmm23, qword ptr [rcx]
+
+// CHECK: vcomisd xmm23, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0x2f,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vcomisd xmm23, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcomisd xmm23, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2f,0x7a,0x7f]
+ vcomisd xmm23, qword ptr [rdx + 1016]
+
+// CHECK: vcomisd xmm23, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2f,0xba,0x00,0x04,0x00,0x00]
+ vcomisd xmm23, qword ptr [rdx + 1024]
+
+// CHECK: vcomisd xmm23, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2f,0x7a,0x80]
+ vcomisd xmm23, qword ptr [rdx - 1024]
+
+// CHECK: vcomisd xmm23, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2f,0xba,0xf8,0xfb,0xff,0xff]
+ vcomisd xmm23, qword ptr [rdx - 1032]
+
+// CHECK: vcomiss xmm14, xmm28
+// CHECK: encoding: [0x62,0x11,0x7c,0x08,0x2f,0xf4]
+ vcomiss xmm14, xmm28
+
+// CHECK: vcomiss xmm14, xmm28, {sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x18,0x2f,0xf4]
+ vcomiss xmm14, xmm28, {sae}
+
+// CHECK: vcomiss xmm14, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x31]
+ vcomiss xmm14, dword ptr [rcx]
+
+// CHECK: vcomiss xmm14, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x21,0x78,0x2f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcomiss xmm14, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcomiss xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0x78,0x2f,0xb2,0xfc,0x01,0x00,0x00]
+ vcomiss xmm14, dword ptr [rdx + 508]
+
+// CHECK: vcomiss xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0x78,0x2f,0xb2,0x00,0x02,0x00,0x00]
+ vcomiss xmm14, dword ptr [rdx + 512]
+
+// CHECK: vcomiss xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0x78,0x2f,0xb2,0x00,0xfe,0xff,0xff]
+ vcomiss xmm14, dword ptr [rdx - 512]
+
+// CHECK: vcomiss xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0x78,0x2f,0xb2,0xfc,0xfd,0xff,0xff]
+ vcomiss xmm14, dword ptr [rdx - 516]
+
+// CHECK: vcompresspd zmmword ptr [rcx], zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8a,0x09]
+ vcompresspd zmmword ptr [rcx], zmm9
+
+// CHECK: vcompresspd zmmword ptr [rcx] {k4}, zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x4c,0x8a,0x09]
+ vcompresspd zmmword ptr [rcx] {k4}, zmm9
+
+// CHECK: vcompresspd zmmword ptr [rax + 8*r14 + 291], zmm9
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x8a,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vcompresspd zmmword ptr [rax + 8*r14 + 291], zmm9
+
+// CHECK: vcompresspd zmmword ptr [rdx + 1016], zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8a,0x4a,0x7f]
+ vcompresspd zmmword ptr [rdx + 1016], zmm9
+
+// CHECK: vcompresspd zmmword ptr [rdx + 1024], zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8a,0x8a,0x00,0x04,0x00,0x00]
+ vcompresspd zmmword ptr [rdx + 1024], zmm9
+
+// CHECK: vcompresspd zmmword ptr [rdx - 1024], zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8a,0x4a,0x80]
+ vcompresspd zmmword ptr [rdx - 1024], zmm9
+
+// CHECK: vcompresspd zmmword ptr [rdx - 1032], zmm9
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8a,0x8a,0xf8,0xfb,0xff,0xff]
+ vcompresspd zmmword ptr [rdx - 1032], zmm9
+
+// CHECK: vcompresspd zmm8, zmm4
+// CHECK: encoding: [0x62,0xd2,0xfd,0x48,0x8a,0xe0]
+ vcompresspd zmm8, zmm4
+
+// CHECK: vcompresspd zmm8 {k6}, zmm4
+// CHECK: encoding: [0x62,0xd2,0xfd,0x4e,0x8a,0xe0]
+ vcompresspd zmm8 {k6}, zmm4
+
+// CHECK: vcompresspd zmm8 {k6} {z}, zmm4
+// CHECK: encoding: [0x62,0xd2,0xfd,0xce,0x8a,0xe0]
+ vcompresspd zmm8 {k6} {z}, zmm4
+
+// CHECK: vcompressps zmmword ptr [rcx], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x11]
+ vcompressps zmmword ptr [rcx], zmm10
+
+// CHECK: vcompressps zmmword ptr [rcx] {k7}, zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x4f,0x8a,0x11]
+ vcompressps zmmword ptr [rcx] {k7}, zmm10
+
+// CHECK: vcompressps zmmword ptr [rax + 8*r14 + 291], zmm10
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x8a,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vcompressps zmmword ptr [rax + 8*r14 + 291], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx + 508], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x52,0x7f]
+ vcompressps zmmword ptr [rdx + 508], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx + 512], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x92,0x00,0x02,0x00,0x00]
+ vcompressps zmmword ptr [rdx + 512], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx - 512], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x52,0x80]
+ vcompressps zmmword ptr [rdx - 512], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx - 516], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x92,0xfc,0xfd,0xff,0xff]
+ vcompressps zmmword ptr [rdx - 516], zmm10
+
+// CHECK: vcompressps zmm4, zmm14
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0xf4]
+ vcompressps zmm4, zmm14
+
+// CHECK: vcompressps zmm4 {k2}, zmm14
+// CHECK: encoding: [0x62,0x72,0x7d,0x4a,0x8a,0xf4]
+ vcompressps zmm4 {k2}, zmm14
+
+// CHECK: vcompressps zmm4 {k2} {z}, zmm14
+// CHECK: encoding: [0x62,0x72,0x7d,0xca,0x8a,0xf4]
+ vcompressps zmm4 {k2} {z}, zmm14
+
+// CHECK: vcvtdq2pd zmm22, ymm24
+// CHECK: encoding: [0x62,0x81,0x7e,0x48,0xe6,0xf0]
+ vcvtdq2pd zmm22, ymm24
+
+// CHECK: vcvtdq2pd zmm22 {k4}, ymm24
+// CHECK: encoding: [0x62,0x81,0x7e,0x4c,0xe6,0xf0]
+ vcvtdq2pd zmm22 {k4}, ymm24
+
+// CHECK: vcvtdq2pd zmm22 {k4} {z}, ymm24
+// CHECK: encoding: [0x62,0x81,0x7e,0xcc,0xe6,0xf0]
+ vcvtdq2pd zmm22 {k4} {z}, ymm24
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0xe6,0x31]
+ vcvtdq2pd zmm22, ymmword ptr [rcx]
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0xe6,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtdq2pd zmm22, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtdq2pd zmm22, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0xe6,0x31]
+ vcvtdq2pd zmm22, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0xe6,0x72,0x7f]
+ vcvtdq2pd zmm22, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0xe6,0xb2,0x00,0x10,0x00,0x00]
+ vcvtdq2pd zmm22, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0xe6,0x72,0x80]
+ vcvtdq2pd zmm22, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtdq2pd zmm22, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0xe6,0xb2,0xe0,0xef,0xff,0xff]
+ vcvtdq2pd zmm22, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtdq2pd zmm22, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0xe6,0x72,0x7f]
+ vcvtdq2pd zmm22, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtdq2pd zmm22, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0xe6,0xb2,0x00,0x02,0x00,0x00]
+ vcvtdq2pd zmm22, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtdq2pd zmm22, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0xe6,0x72,0x80]
+ vcvtdq2pd zmm22, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtdq2pd zmm22, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0xe6,0xb2,0xfc,0xfd,0xff,0xff]
+ vcvtdq2pd zmm22, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtdq2ps zmm7, zmm25
+// CHECK: encoding: [0x62,0x91,0x7c,0x48,0x5b,0xf9]
+ vcvtdq2ps zmm7, zmm25
+
+// CHECK: vcvtdq2ps zmm7 {k5}, zmm25
+// CHECK: encoding: [0x62,0x91,0x7c,0x4d,0x5b,0xf9]
+ vcvtdq2ps zmm7 {k5}, zmm25
+
+// CHECK: vcvtdq2ps zmm7 {k5} {z}, zmm25
+// CHECK: encoding: [0x62,0x91,0x7c,0xcd,0x5b,0xf9]
+ vcvtdq2ps zmm7 {k5} {z}, zmm25
+
+// CHECK: vcvtdq2ps zmm7, zmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7c,0x18,0x5b,0xf9]
+ vcvtdq2ps zmm7, zmm25, {rn-sae}
+
+// CHECK: vcvtdq2ps zmm7, zmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7c,0x58,0x5b,0xf9]
+ vcvtdq2ps zmm7, zmm25, {ru-sae}
+
+// CHECK: vcvtdq2ps zmm7, zmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7c,0x38,0x5b,0xf9]
+ vcvtdq2ps zmm7, zmm25, {rd-sae}
+
+// CHECK: vcvtdq2ps zmm7, zmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7c,0x78,0x5b,0xf9]
+ vcvtdq2ps zmm7, zmm25, {rz-sae}
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x5b,0x39]
+ vcvtdq2ps zmm7, zmmword ptr [rcx]
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x5b,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vcvtdq2ps zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtdq2ps zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x5b,0x39]
+ vcvtdq2ps zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x5b,0x7a,0x7f]
+ vcvtdq2ps zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x5b,0xba,0x00,0x20,0x00,0x00]
+ vcvtdq2ps zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x5b,0x7a,0x80]
+ vcvtdq2ps zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtdq2ps zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x5b,0xba,0xc0,0xdf,0xff,0xff]
+ vcvtdq2ps zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtdq2ps zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x5b,0x7a,0x7f]
+ vcvtdq2ps zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtdq2ps zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x5b,0xba,0x00,0x02,0x00,0x00]
+ vcvtdq2ps zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtdq2ps zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x5b,0x7a,0x80]
+ vcvtdq2ps zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtdq2ps zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x5b,0xba,0xfc,0xfd,0xff,0xff]
+ vcvtdq2ps zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtpd2dq ymm24, zmm15
+// CHECK: encoding: [0x62,0x41,0xff,0x48,0xe6,0xc7]
+ vcvtpd2dq ymm24, zmm15
+
+// CHECK: vcvtpd2dq ymm24 {k3}, zmm15
+// CHECK: encoding: [0x62,0x41,0xff,0x4b,0xe6,0xc7]
+ vcvtpd2dq ymm24 {k3}, zmm15
+
+// CHECK: vcvtpd2dq ymm24 {k3} {z}, zmm15
+// CHECK: encoding: [0x62,0x41,0xff,0xcb,0xe6,0xc7]
+ vcvtpd2dq ymm24 {k3} {z}, zmm15
+
+// CHECK: vcvtpd2dq ymm24, zmm15, {rn-sae}
+// CHECK: encoding: [0x62,0x41,0xff,0x18,0xe6,0xc7]
+ vcvtpd2dq ymm24, zmm15, {rn-sae}
+
+// CHECK: vcvtpd2dq ymm24, zmm15, {ru-sae}
+// CHECK: encoding: [0x62,0x41,0xff,0x58,0xe6,0xc7]
+ vcvtpd2dq ymm24, zmm15, {ru-sae}
+
+// CHECK: vcvtpd2dq ymm24, zmm15, {rd-sae}
+// CHECK: encoding: [0x62,0x41,0xff,0x38,0xe6,0xc7]
+ vcvtpd2dq ymm24, zmm15, {rd-sae}
+
+// CHECK: vcvtpd2dq ymm24, zmm15, {rz-sae}
+// CHECK: encoding: [0x62,0x41,0xff,0x78,0xe6,0xc7]
+ vcvtpd2dq ymm24, zmm15, {rz-sae}
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xff,0x48,0xe6,0x01]
+ vcvtpd2dq ymm24, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xff,0x48,0xe6,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtpd2dq ymm24, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtpd2dq ymm24, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xff,0x58,0xe6,0x01]
+ vcvtpd2dq ymm24, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xff,0x48,0xe6,0x42,0x7f]
+ vcvtpd2dq ymm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xff,0x48,0xe6,0x82,0x00,0x20,0x00,0x00]
+ vcvtpd2dq ymm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xff,0x48,0xe6,0x42,0x80]
+ vcvtpd2dq ymm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2dq ymm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xff,0x48,0xe6,0x82,0xc0,0xdf,0xff,0xff]
+ vcvtpd2dq ymm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2dq ymm24, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xff,0x58,0xe6,0x42,0x7f]
+ vcvtpd2dq ymm24, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2dq ymm24, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xff,0x58,0xe6,0x82,0x00,0x04,0x00,0x00]
+ vcvtpd2dq ymm24, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2dq ymm24, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xff,0x58,0xe6,0x42,0x80]
+ vcvtpd2dq ymm24, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2dq ymm24, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xff,0x58,0xe6,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtpd2dq ymm24, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtpd2ps ymm5, zmm23
+// CHECK: encoding: [0x62,0xb1,0xfd,0x48,0x5a,0xef]
+ vcvtpd2ps ymm5, zmm23
+
+// CHECK: vcvtpd2ps ymm5 {k5}, zmm23
+// CHECK: encoding: [0x62,0xb1,0xfd,0x4d,0x5a,0xef]
+ vcvtpd2ps ymm5 {k5}, zmm23
+
+// CHECK: vcvtpd2ps ymm5 {k5} {z}, zmm23
+// CHECK: encoding: [0x62,0xb1,0xfd,0xcd,0x5a,0xef]
+ vcvtpd2ps ymm5 {k5} {z}, zmm23
+
+// CHECK: vcvtpd2ps ymm5, zmm23, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0xfd,0x18,0x5a,0xef]
+ vcvtpd2ps ymm5, zmm23, {rn-sae}
+
+// CHECK: vcvtpd2ps ymm5, zmm23, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0xfd,0x58,0x5a,0xef]
+ vcvtpd2ps ymm5, zmm23, {ru-sae}
+
+// CHECK: vcvtpd2ps ymm5, zmm23, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0xfd,0x38,0x5a,0xef]
+ vcvtpd2ps ymm5, zmm23, {rd-sae}
+
+// CHECK: vcvtpd2ps ymm5, zmm23, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0xfd,0x78,0x5a,0xef]
+ vcvtpd2ps ymm5, zmm23, {rz-sae}
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x5a,0x29]
+ vcvtpd2ps ymm5, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xfd,0x48,0x5a,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtpd2ps ymm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtpd2ps ymm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0x5a,0x29]
+ vcvtpd2ps ymm5, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x5a,0x6a,0x7f]
+ vcvtpd2ps ymm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x5a,0xaa,0x00,0x20,0x00,0x00]
+ vcvtpd2ps ymm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x5a,0x6a,0x80]
+ vcvtpd2ps ymm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2ps ymm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x5a,0xaa,0xc0,0xdf,0xff,0xff]
+ vcvtpd2ps ymm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2ps ymm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0x5a,0x6a,0x7f]
+ vcvtpd2ps ymm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2ps ymm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0x5a,0xaa,0x00,0x04,0x00,0x00]
+ vcvtpd2ps ymm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2ps ymm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0x5a,0x6a,0x80]
+ vcvtpd2ps ymm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2ps ymm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0x5a,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtpd2ps ymm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtpd2udq ymm15, zmm19
+// CHECK: encoding: [0x62,0x31,0xfc,0x48,0x79,0xfb]
+ vcvtpd2udq ymm15, zmm19
+
+// CHECK: vcvtpd2udq ymm15 {k7}, zmm19
+// CHECK: encoding: [0x62,0x31,0xfc,0x4f,0x79,0xfb]
+ vcvtpd2udq ymm15 {k7}, zmm19
+
+// CHECK: vcvtpd2udq ymm15 {k7} {z}, zmm19
+// CHECK: encoding: [0x62,0x31,0xfc,0xcf,0x79,0xfb]
+ vcvtpd2udq ymm15 {k7} {z}, zmm19
+
+// CHECK: vcvtpd2udq ymm15, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0xfc,0x18,0x79,0xfb]
+ vcvtpd2udq ymm15, zmm19, {rn-sae}
+
+// CHECK: vcvtpd2udq ymm15, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0xfc,0x58,0x79,0xfb]
+ vcvtpd2udq ymm15, zmm19, {ru-sae}
+
+// CHECK: vcvtpd2udq ymm15, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0xfc,0x38,0x79,0xfb]
+ vcvtpd2udq ymm15, zmm19, {rd-sae}
+
+// CHECK: vcvtpd2udq ymm15, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0xfc,0x78,0x79,0xfb]
+ vcvtpd2udq ymm15, zmm19, {rz-sae}
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfc,0x48,0x79,0x39]
+ vcvtpd2udq ymm15, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xfc,0x48,0x79,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vcvtpd2udq ymm15, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtpd2udq ymm15, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfc,0x58,0x79,0x39]
+ vcvtpd2udq ymm15, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xfc,0x48,0x79,0x7a,0x7f]
+ vcvtpd2udq ymm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xfc,0x48,0x79,0xba,0x00,0x20,0x00,0x00]
+ vcvtpd2udq ymm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xfc,0x48,0x79,0x7a,0x80]
+ vcvtpd2udq ymm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2udq ymm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xfc,0x48,0x79,0xba,0xc0,0xdf,0xff,0xff]
+ vcvtpd2udq ymm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2udq ymm15, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfc,0x58,0x79,0x7a,0x7f]
+ vcvtpd2udq ymm15, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2udq ymm15, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfc,0x58,0x79,0xba,0x00,0x04,0x00,0x00]
+ vcvtpd2udq ymm15, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2udq ymm15, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfc,0x58,0x79,0x7a,0x80]
+ vcvtpd2udq ymm15, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2udq ymm15, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfc,0x58,0x79,0xba,0xf8,0xfb,0xff,0xff]
+ vcvtpd2udq ymm15, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtph2ps zmm13, ymm27
+// CHECK: encoding: [0x62,0x12,0x7d,0x48,0x13,0xeb]
+ vcvtph2ps zmm13, ymm27
+
+// CHECK: vcvtph2ps zmm13 {k3}, ymm27
+// CHECK: encoding: [0x62,0x12,0x7d,0x4b,0x13,0xeb]
+ vcvtph2ps zmm13 {k3}, ymm27
+
+// CHECK: vcvtph2ps zmm13 {k3} {z}, ymm27
+// CHECK: encoding: [0x62,0x12,0x7d,0xcb,0x13,0xeb]
+ vcvtph2ps zmm13 {k3} {z}, ymm27
+
+// CHECK: vcvtph2ps zmm13, ymm27, {sae}
+// CHECK: encoding: [0x62,0x12,0x7d,0x18,0x13,0xeb]
+ vcvtph2ps zmm13, ymm27, {sae}
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x29]
+ vcvtph2ps zmm13, ymmword ptr [rcx]
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x13,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtph2ps zmm13, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x6a,0x7f]
+ vcvtph2ps zmm13, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0xaa,0x00,0x10,0x00,0x00]
+ vcvtph2ps zmm13, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x6a,0x80]
+ vcvtph2ps zmm13, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtph2ps zmm13, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0xaa,0xe0,0xef,0xff,0xff]
+ vcvtph2ps zmm13, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtps2dq zmm12, zmm24
+// CHECK: encoding: [0x62,0x11,0x7d,0x48,0x5b,0xe0]
+ vcvtps2dq zmm12, zmm24
+
+// CHECK: vcvtps2dq zmm12 {k4}, zmm24
+// CHECK: encoding: [0x62,0x11,0x7d,0x4c,0x5b,0xe0]
+ vcvtps2dq zmm12 {k4}, zmm24
+
+// CHECK: vcvtps2dq zmm12 {k4} {z}, zmm24
+// CHECK: encoding: [0x62,0x11,0x7d,0xcc,0x5b,0xe0]
+ vcvtps2dq zmm12 {k4} {z}, zmm24
+
+// CHECK: vcvtps2dq zmm12, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0x7d,0x18,0x5b,0xe0]
+ vcvtps2dq zmm12, zmm24, {rn-sae}
+
+// CHECK: vcvtps2dq zmm12, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0x7d,0x58,0x5b,0xe0]
+ vcvtps2dq zmm12, zmm24, {ru-sae}
+
+// CHECK: vcvtps2dq zmm12, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0x7d,0x38,0x5b,0xe0]
+ vcvtps2dq zmm12, zmm24, {rd-sae}
+
+// CHECK: vcvtps2dq zmm12, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0x7d,0x78,0x5b,0xe0]
+ vcvtps2dq zmm12, zmm24, {rz-sae}
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7d,0x48,0x5b,0x21]
+ vcvtps2dq zmm12, zmmword ptr [rcx]
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7d,0x48,0x5b,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtps2dq zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtps2dq zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7d,0x58,0x5b,0x21]
+ vcvtps2dq zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7d,0x48,0x5b,0x62,0x7f]
+ vcvtps2dq zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7d,0x48,0x5b,0xa2,0x00,0x20,0x00,0x00]
+ vcvtps2dq zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7d,0x48,0x5b,0x62,0x80]
+ vcvtps2dq zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtps2dq zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7d,0x48,0x5b,0xa2,0xc0,0xdf,0xff,0xff]
+ vcvtps2dq zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtps2dq zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7d,0x58,0x5b,0x62,0x7f]
+ vcvtps2dq zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtps2dq zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7d,0x58,0x5b,0xa2,0x00,0x02,0x00,0x00]
+ vcvtps2dq zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtps2dq zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7d,0x58,0x5b,0x62,0x80]
+ vcvtps2dq zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtps2dq zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7d,0x58,0x5b,0xa2,0xfc,0xfd,0xff,0xff]
+ vcvtps2dq zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtps2pd zmm13, ymm6
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0xee]
+ vcvtps2pd zmm13, ymm6
+
+// CHECK: vcvtps2pd zmm13 {k3}, ymm6
+// CHECK: encoding: [0x62,0x71,0x7c,0x4b,0x5a,0xee]
+ vcvtps2pd zmm13 {k3}, ymm6
+
+// CHECK: vcvtps2pd zmm13 {k3} {z}, ymm6
+// CHECK: encoding: [0x62,0x71,0x7c,0xcb,0x5a,0xee]
+ vcvtps2pd zmm13 {k3} {z}, ymm6
+
+// CHECK: vcvtps2pd zmm13, ymm6, {sae}
+// CHECK: encoding: [0x62,0x71,0x7c,0x18,0x5a,0xee]
+ vcvtps2pd zmm13, ymm6, {sae}
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x29]
+ vcvtps2pd zmm13, ymmword ptr [rcx]
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7c,0x48,0x5a,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtps2pd zmm13, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtps2pd zmm13, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x29]
+ vcvtps2pd zmm13, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x6a,0x7f]
+ vcvtps2pd zmm13, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0xaa,0x00,0x10,0x00,0x00]
+ vcvtps2pd zmm13, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x6a,0x80]
+ vcvtps2pd zmm13, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtps2pd zmm13, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0xaa,0xe0,0xef,0xff,0xff]
+ vcvtps2pd zmm13, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtps2pd zmm13, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x6a,0x7f]
+ vcvtps2pd zmm13, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtps2pd zmm13, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0xaa,0x00,0x02,0x00,0x00]
+ vcvtps2pd zmm13, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtps2pd zmm13, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x6a,0x80]
+ vcvtps2pd zmm13, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtps2pd zmm13, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtps2pd zmm13, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtps2ph ymm11, zmm14, 171
+// CHECK: encoding: [0x62,0x53,0x7d,0x48,0x1d,0xf3,0xab]
+ vcvtps2ph ymm11, zmm14, 171
+
+// CHECK: vcvtps2ph ymm11 {k6}, zmm14, 171
+// CHECK: encoding: [0x62,0x53,0x7d,0x4e,0x1d,0xf3,0xab]
+ vcvtps2ph ymm11 {k6}, zmm14, 171
+
+// CHECK: vcvtps2ph ymm11 {k6} {z}, zmm14, 171
+// CHECK: encoding: [0x62,0x53,0x7d,0xce,0x1d,0xf3,0xab]
+ vcvtps2ph ymm11 {k6} {z}, zmm14, 171
+
+// CHECK: vcvtps2ph ymm11, zmm14, {sae}, 171
+// CHECK: encoding: [0x62,0x53,0x7d,0x18,0x1d,0xf3,0xab]
+ vcvtps2ph ymm11, zmm14, {sae}, 171
+
+// CHECK: vcvtps2ph ymm11, zmm14, 123
+// CHECK: encoding: [0x62,0x53,0x7d,0x48,0x1d,0xf3,0x7b]
+ vcvtps2ph ymm11, zmm14, 123
+
+// CHECK: vcvtps2ph ymm11, zmm14, {sae}, 123
+// CHECK: encoding: [0x62,0x53,0x7d,0x18,0x1d,0xf3,0x7b]
+ vcvtps2ph ymm11, zmm14, {sae}, 123
+
+// CHECK: vcvtps2udq zmm12, zmm26
+// CHECK: encoding: [0x62,0x11,0x7c,0x48,0x79,0xe2]
+ vcvtps2udq zmm12, zmm26
+
+// CHECK: vcvtps2udq zmm12 {k4}, zmm26
+// CHECK: encoding: [0x62,0x11,0x7c,0x4c,0x79,0xe2]
+ vcvtps2udq zmm12 {k4}, zmm26
+
+// CHECK: vcvtps2udq zmm12 {k4} {z}, zmm26
+// CHECK: encoding: [0x62,0x11,0x7c,0xcc,0x79,0xe2]
+ vcvtps2udq zmm12 {k4} {z}, zmm26
+
+// CHECK: vcvtps2udq zmm12, zmm26, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x18,0x79,0xe2]
+ vcvtps2udq zmm12, zmm26, {rn-sae}
+
+// CHECK: vcvtps2udq zmm12, zmm26, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x58,0x79,0xe2]
+ vcvtps2udq zmm12, zmm26, {ru-sae}
+
+// CHECK: vcvtps2udq zmm12, zmm26, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x38,0x79,0xe2]
+ vcvtps2udq zmm12, zmm26, {rd-sae}
+
+// CHECK: vcvtps2udq zmm12, zmm26, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x78,0x79,0xe2]
+ vcvtps2udq zmm12, zmm26, {rz-sae}
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x79,0x21]
+ vcvtps2udq zmm12, zmmword ptr [rcx]
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7c,0x48,0x79,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtps2udq zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtps2udq zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x79,0x21]
+ vcvtps2udq zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x79,0x62,0x7f]
+ vcvtps2udq zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x79,0xa2,0x00,0x20,0x00,0x00]
+ vcvtps2udq zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x79,0x62,0x80]
+ vcvtps2udq zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtps2udq zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x79,0xa2,0xc0,0xdf,0xff,0xff]
+ vcvtps2udq zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtps2udq zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x79,0x62,0x7f]
+ vcvtps2udq zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtps2udq zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x79,0xa2,0x00,0x02,0x00,0x00]
+ vcvtps2udq zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtps2udq zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x79,0x62,0x80]
+ vcvtps2udq zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtps2udq zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x79,0xa2,0xfc,0xfd,0xff,0xff]
+ vcvtps2udq zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtsd2si eax, xmm7, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2d,0xc7]
+ vcvtsd2si eax, xmm7, {rn-sae}
+
+// CHECK: vcvtsd2si eax, xmm7, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x2d,0xc7]
+ vcvtsd2si eax, xmm7, {ru-sae}
+
+// CHECK: vcvtsd2si eax, xmm7, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x38,0x2d,0xc7]
+ vcvtsd2si eax, xmm7, {rd-sae}
+
+// CHECK: vcvtsd2si eax, xmm7, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x78,0x2d,0xc7]
+ vcvtsd2si eax, xmm7, {rz-sae}
+
+// CHECK: vcvtsd2si ebp, xmm7, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2d,0xef]
+ vcvtsd2si ebp, xmm7, {rn-sae}
+
+// CHECK: vcvtsd2si ebp, xmm7, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x2d,0xef]
+ vcvtsd2si ebp, xmm7, {ru-sae}
+
+// CHECK: vcvtsd2si ebp, xmm7, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x38,0x2d,0xef]
+ vcvtsd2si ebp, xmm7, {rd-sae}
+
+// CHECK: vcvtsd2si ebp, xmm7, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x78,0x2d,0xef]
+ vcvtsd2si ebp, xmm7, {rz-sae}
+
+// CHECK: vcvtsd2si r13d, xmm7, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x18,0x2d,0xef]
+ vcvtsd2si r13d, xmm7, {rn-sae}
+
+// CHECK: vcvtsd2si r13d, xmm7, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x58,0x2d,0xef]
+ vcvtsd2si r13d, xmm7, {ru-sae}
+
+// CHECK: vcvtsd2si r13d, xmm7, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x38,0x2d,0xef]
+ vcvtsd2si r13d, xmm7, {rd-sae}
+
+// CHECK: vcvtsd2si r13d, xmm7, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x78,0x2d,0xef]
+ vcvtsd2si r13d, xmm7, {rz-sae}
+
+// CHECK: vcvtsd2si rax, xmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x18,0x2d,0xc2]
+ vcvtsd2si rax, xmm10, {rn-sae}
+
+// CHECK: vcvtsd2si rax, xmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x58,0x2d,0xc2]
+ vcvtsd2si rax, xmm10, {ru-sae}
+
+// CHECK: vcvtsd2si rax, xmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x38,0x2d,0xc2]
+ vcvtsd2si rax, xmm10, {rd-sae}
+
+// CHECK: vcvtsd2si rax, xmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x78,0x2d,0xc2]
+ vcvtsd2si rax, xmm10, {rz-sae}
+
+// CHECK: vcvtsd2si r8, xmm10, {rn-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x18,0x2d,0xc2]
+ vcvtsd2si r8, xmm10, {rn-sae}
+
+// CHECK: vcvtsd2si r8, xmm10, {ru-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x58,0x2d,0xc2]
+ vcvtsd2si r8, xmm10, {ru-sae}
+
+// CHECK: vcvtsd2si r8, xmm10, {rd-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x38,0x2d,0xc2]
+ vcvtsd2si r8, xmm10, {rd-sae}
+
+// CHECK: vcvtsd2si r8, xmm10, {rz-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x78,0x2d,0xc2]
+ vcvtsd2si r8, xmm10, {rz-sae}
+
+// CHECK: vcvtsd2ss xmm17, xmm9, xmm12
+// CHECK: encoding: [0x62,0xc1,0xb7,0x48,0x5a,0xcc]
+ vcvtsd2ss xmm17, xmm9, xmm12
+
+// CHECK: vcvtsd2ss xmm17 {k6}, xmm9, xmm12
+// CHECK: encoding: [0x62,0xc1,0xb7,0x4e,0x5a,0xcc]
+ vcvtsd2ss xmm17 {k6}, xmm9, xmm12
+
+// CHECK: vcvtsd2ss xmm17 {k6} {z}, xmm9, xmm12
+// CHECK: encoding: [0x62,0xc1,0xb7,0xce,0x5a,0xcc]
+ vcvtsd2ss xmm17 {k6} {z}, xmm9, xmm12
+
+// CHECK: vcvtsd2ss xmm17, xmm9, xmm12, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0xb7,0x18,0x5a,0xcc]
+ vcvtsd2ss xmm17, xmm9, xmm12, {rn-sae}
+
+// CHECK: vcvtsd2ss xmm17, xmm9, xmm12, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0xb7,0x58,0x5a,0xcc]
+ vcvtsd2ss xmm17, xmm9, xmm12, {ru-sae}
+
+// CHECK: vcvtsd2ss xmm17, xmm9, xmm12, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0xb7,0x38,0x5a,0xcc]
+ vcvtsd2ss xmm17, xmm9, xmm12, {rd-sae}
+
+// CHECK: vcvtsd2ss xmm17, xmm9, xmm12, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0xb7,0x78,0x5a,0xcc]
+ vcvtsd2ss xmm17, xmm9, xmm12, {rz-sae}
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x09]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rcx]
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xb7,0x48,0x5a,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x7f]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0x00,0x04,0x00,0x00]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x4a,0x80]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xb7,0x48,0x5a,0x8a,0xf8,0xfb,0xff,0xff]
+ vcvtsd2ss xmm17, xmm9, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, eax
+// CHECK: encoding: [0xc5,0xab,0x2a,0xf8]
+ vcvtsi2sd xmm7, xmm10, eax
+
+// CHECK: vcvtsi2sd xmm7, xmm10, ebp
+// CHECK: encoding: [0xc5,0xab,0x2a,0xfd]
+ vcvtsi2sd xmm7, xmm10, ebp
+
+// CHECK: vcvtsi2sd xmm7, xmm10, r13d
+// CHECK: encoding: [0xc4,0xc1,0x2b,0x2a,0xfd]
+ vcvtsi2sd xmm7, xmm10, r13d
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0xab,0x2a,0x39]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rcx]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa1,0x2b,0x2a,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0xab,0x2a,0xba,0xfc,0x01,0x00,0x00]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rdx + 508]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0xab,0x2a,0xba,0x00,0x02,0x00,0x00]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rdx + 512]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0xab,0x2a,0xba,0x00,0xfe,0xff,0xff]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rdx - 512]
+
+// CHECK: vcvtsi2sd xmm7, xmm10, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0xab,0x2a,0xba,0xfc,0xfd,0xff,0xff]
+ vcvtsi2sd xmm7, xmm10, dword ptr [rdx - 516]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, rax
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, rax
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rn-sae}, rax
+// CHECK: encoding: [0x62,0x61,0x9f,0x18,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rn-sae}, rax
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {ru-sae}, rax
+// CHECK: encoding: [0x62,0x61,0x9f,0x58,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {ru-sae}, rax
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rd-sae}, rax
+// CHECK: encoding: [0x62,0x61,0x9f,0x38,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rd-sae}, rax
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rz-sae}, rax
+// CHECK: encoding: [0x62,0x61,0x9f,0x78,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rz-sae}, rax
+
+// CHECK: vcvtsi2sd xmm29, xmm12, r8
+// CHECK: encoding: [0x62,0x41,0x9f,0x08,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, r8
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rn-sae}, r8
+// CHECK: encoding: [0x62,0x41,0x9f,0x18,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rn-sae}, r8
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {ru-sae}, r8
+// CHECK: encoding: [0x62,0x41,0x9f,0x58,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {ru-sae}, r8
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rd-sae}, r8
+// CHECK: encoding: [0x62,0x41,0x9f,0x38,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rd-sae}, r8
+
+// CHECK: vcvtsi2sd xmm29, xmm12, {rz-sae}, r8
+// CHECK: encoding: [0x62,0x41,0x9f,0x78,0x2a,0xe8]
+ vcvtsi2sd xmm29, xmm12, {rz-sae}, r8
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0x29]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rcx]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x9f,0x08,0x2a,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0x6a,0x7f]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0xaa,0x00,0x04,0x00,0x00]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0x6a,0x80]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsi2sd xmm29, xmm12, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0x9f,0x08,0x2a,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtsi2sd xmm29, xmm12, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, eax
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xf8]
+ vcvtsi2ss xmm15, xmm10, eax
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rn-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x2e,0x18,0x2a,0xf8]
+ vcvtsi2ss xmm15, xmm10, {rn-sae}, eax
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {ru-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x2e,0x58,0x2a,0xf8]
+ vcvtsi2ss xmm15, xmm10, {ru-sae}, eax
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rd-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x2e,0x38,0x2a,0xf8]
+ vcvtsi2ss xmm15, xmm10, {rd-sae}, eax
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rz-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x2e,0x78,0x2a,0xf8]
+ vcvtsi2ss xmm15, xmm10, {rz-sae}, eax
+
+// CHECK: vcvtsi2ss xmm15, xmm10, ebp
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, ebp
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rn-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x2e,0x18,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rn-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {ru-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x2e,0x58,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {ru-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rd-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x2e,0x38,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rd-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rz-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x2e,0x78,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rz-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm15, xmm10, r13d
+// CHECK: encoding: [0xc4,0x41,0x2a,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, r13d
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rn-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x2e,0x18,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rn-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {ru-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x2e,0x58,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {ru-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rd-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x2e,0x38,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rd-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm15, xmm10, {rz-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x2e,0x78,0x2a,0xfd]
+ vcvtsi2ss xmm15, xmm10, {rz-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0x2a,0x2a,0x39]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rcx]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x21,0x2a,0x2a,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xba,0xfc,0x01,0x00,0x00]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rdx + 508]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xba,0x00,0x02,0x00,0x00]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rdx + 512]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xba,0x00,0xfe,0xff,0xff]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rdx - 512]
+
+// CHECK: vcvtsi2ss xmm15, xmm10, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0x2a,0x2a,0xba,0xfc,0xfd,0xff,0xff]
+ vcvtsi2ss xmm15, xmm10, dword ptr [rdx - 516]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, rax
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rn-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x18,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rn-sae}, rax
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {ru-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x58,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {ru-sae}, rax
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rd-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x38,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rd-sae}, rax
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rz-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x78,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rz-sae}, rax
+
+// CHECK: vcvtsi2ss xmm16, xmm10, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x08,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, r8
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rn-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x18,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rn-sae}, r8
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {ru-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x58,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {ru-sae}, r8
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rd-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x38,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rd-sae}, r8
+
+// CHECK: vcvtsi2ss xmm16, xmm10, {rz-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x78,0x2a,0xc0]
+ vcvtsi2ss xmm16, xmm10, {rz-sae}, r8
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0x01]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rcx]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xae,0x08,0x2a,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0x42,0x7f]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0x82,0x00,0x04,0x00,0x00]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0x42,0x80]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsi2ss xmm16, xmm10, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x2a,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsi2ss xmm16, xmm10, qword ptr [rdx - 1032]
+
+// CHECK: vcvtss2sd xmm28, xmm6, xmm6
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xe6]
+ vcvtss2sd xmm28, xmm6, xmm6
+
+// CHECK: vcvtss2sd xmm28 {k3}, xmm6, xmm6
+// CHECK: encoding: [0x62,0x61,0x4e,0x4b,0x5a,0xe6]
+ vcvtss2sd xmm28 {k3}, xmm6, xmm6
+
+// CHECK: vcvtss2sd xmm28 {k3} {z}, xmm6, xmm6
+// CHECK: encoding: [0x62,0x61,0x4e,0xcb,0x5a,0xe6]
+ vcvtss2sd xmm28 {k3} {z}, xmm6, xmm6
+
+// CHECK: vcvtss2sd xmm28, xmm6, xmm6, {sae}
+// CHECK: encoding: [0x62,0x61,0x4e,0x18,0x5a,0xe6]
+ vcvtss2sd xmm28, xmm6, xmm6, {sae}
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x21]
+ vcvtss2sd xmm28, xmm6, dword ptr [rcx]
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x4e,0x48,0x5a,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2sd xmm28, xmm6, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x7f]
+ vcvtss2sd xmm28, xmm6, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0x00,0x02,0x00,0x00]
+ vcvtss2sd xmm28, xmm6, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0x62,0x80]
+ vcvtss2sd xmm28, xmm6, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2sd xmm28, xmm6, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x4e,0x48,0x5a,0xa2,0xfc,0xfd,0xff,0xff]
+ vcvtss2sd xmm28, xmm6, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2si eax, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x2d,0xc6]
+ vcvtss2si eax, xmm22, {rn-sae}
+
+// CHECK: vcvtss2si eax, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x58,0x2d,0xc6]
+ vcvtss2si eax, xmm22, {ru-sae}
+
+// CHECK: vcvtss2si eax, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x38,0x2d,0xc6]
+ vcvtss2si eax, xmm22, {rd-sae}
+
+// CHECK: vcvtss2si eax, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x78,0x2d,0xc6]
+ vcvtss2si eax, xmm22, {rz-sae}
+
+// CHECK: vcvtss2si ebp, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x2d,0xee]
+ vcvtss2si ebp, xmm22, {rn-sae}
+
+// CHECK: vcvtss2si ebp, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x58,0x2d,0xee]
+ vcvtss2si ebp, xmm22, {ru-sae}
+
+// CHECK: vcvtss2si ebp, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x38,0x2d,0xee]
+ vcvtss2si ebp, xmm22, {rd-sae}
+
+// CHECK: vcvtss2si ebp, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x78,0x2d,0xee]
+ vcvtss2si ebp, xmm22, {rz-sae}
+
+// CHECK: vcvtss2si r13d, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x18,0x2d,0xee]
+ vcvtss2si r13d, xmm22, {rn-sae}
+
+// CHECK: vcvtss2si r13d, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x58,0x2d,0xee]
+ vcvtss2si r13d, xmm22, {ru-sae}
+
+// CHECK: vcvtss2si r13d, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x38,0x2d,0xee]
+ vcvtss2si r13d, xmm22, {rd-sae}
+
+// CHECK: vcvtss2si r13d, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x78,0x2d,0xee]
+ vcvtss2si r13d, xmm22, {rz-sae}
+
+// CHECK: vcvtss2si rax, xmm29, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x18,0x2d,0xc5]
+ vcvtss2si rax, xmm29, {rn-sae}
+
+// CHECK: vcvtss2si rax, xmm29, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x58,0x2d,0xc5]
+ vcvtss2si rax, xmm29, {ru-sae}
+
+// CHECK: vcvtss2si rax, xmm29, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x38,0x2d,0xc5]
+ vcvtss2si rax, xmm29, {rd-sae}
+
+// CHECK: vcvtss2si rax, xmm29, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x78,0x2d,0xc5]
+ vcvtss2si rax, xmm29, {rz-sae}
+
+// CHECK: vcvtss2si r8, xmm29, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x18,0x2d,0xc5]
+ vcvtss2si r8, xmm29, {rn-sae}
+
+// CHECK: vcvtss2si r8, xmm29, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x58,0x2d,0xc5]
+ vcvtss2si r8, xmm29, {ru-sae}
+
+// CHECK: vcvtss2si r8, xmm29, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x38,0x2d,0xc5]
+ vcvtss2si r8, xmm29, {rd-sae}
+
+// CHECK: vcvtss2si r8, xmm29, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x78,0x2d,0xc5]
+ vcvtss2si r8, xmm29, {rz-sae}
+
+// CHECK: vcvttpd2dq ymm27, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0x48,0xe6,0xd9]
+ vcvttpd2dq ymm27, zmm9
+
+// CHECK: vcvttpd2dq ymm27 {k5}, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0x4d,0xe6,0xd9]
+ vcvttpd2dq ymm27 {k5}, zmm9
+
+// CHECK: vcvttpd2dq ymm27 {k5} {z}, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0xcd,0xe6,0xd9]
+ vcvttpd2dq ymm27 {k5} {z}, zmm9
+
+// CHECK: vcvttpd2dq ymm27, zmm9, {sae}
+// CHECK: encoding: [0x62,0x41,0xfd,0x18,0xe6,0xd9]
+ vcvttpd2dq ymm27, zmm9, {sae}
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0xe6,0x19]
+ vcvttpd2dq ymm27, zmmword ptr [rcx]
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xfd,0x48,0xe6,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vcvttpd2dq ymm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttpd2dq ymm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfd,0x58,0xe6,0x19]
+ vcvttpd2dq ymm27, qword ptr [rcx]{1to8}
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0xe6,0x5a,0x7f]
+ vcvttpd2dq ymm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0xe6,0x9a,0x00,0x20,0x00,0x00]
+ vcvttpd2dq ymm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0xe6,0x5a,0x80]
+ vcvttpd2dq ymm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttpd2dq ymm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0xe6,0x9a,0xc0,0xdf,0xff,0xff]
+ vcvttpd2dq ymm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttpd2dq ymm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfd,0x58,0xe6,0x5a,0x7f]
+ vcvttpd2dq ymm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvttpd2dq ymm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfd,0x58,0xe6,0x9a,0x00,0x04,0x00,0x00]
+ vcvttpd2dq ymm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvttpd2dq ymm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfd,0x58,0xe6,0x5a,0x80]
+ vcvttpd2dq ymm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvttpd2dq ymm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfd,0x58,0xe6,0x9a,0xf8,0xfb,0xff,0xff]
+ vcvttpd2dq ymm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvttps2dq zmm14, zmm25
+// CHECK: encoding: [0x62,0x11,0x7e,0x48,0x5b,0xf1]
+ vcvttps2dq zmm14, zmm25
+
+// CHECK: vcvttps2dq zmm14 {k3}, zmm25
+// CHECK: encoding: [0x62,0x11,0x7e,0x4b,0x5b,0xf1]
+ vcvttps2dq zmm14 {k3}, zmm25
+
+// CHECK: vcvttps2dq zmm14 {k3} {z}, zmm25
+// CHECK: encoding: [0x62,0x11,0x7e,0xcb,0x5b,0xf1]
+ vcvttps2dq zmm14 {k3} {z}, zmm25
+
+// CHECK: vcvttps2dq zmm14, zmm25, {sae}
+// CHECK: encoding: [0x62,0x11,0x7e,0x18,0x5b,0xf1]
+ vcvttps2dq zmm14, zmm25, {sae}
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x5b,0x31]
+ vcvttps2dq zmm14, zmmword ptr [rcx]
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7e,0x48,0x5b,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcvttps2dq zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttps2dq zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x5b,0x31]
+ vcvttps2dq zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x5b,0x72,0x7f]
+ vcvttps2dq zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x5b,0xb2,0x00,0x20,0x00,0x00]
+ vcvttps2dq zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x5b,0x72,0x80]
+ vcvttps2dq zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttps2dq zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x5b,0xb2,0xc0,0xdf,0xff,0xff]
+ vcvttps2dq zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttps2dq zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x5b,0x72,0x7f]
+ vcvttps2dq zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvttps2dq zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x5b,0xb2,0x00,0x02,0x00,0x00]
+ vcvttps2dq zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvttps2dq zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x5b,0x72,0x80]
+ vcvttps2dq zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvttps2dq zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x5b,0xb2,0xfc,0xfd,0xff,0xff]
+ vcvttps2dq zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvttsd2si eax, xmm3, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2c,0xc3]
+ vcvttsd2si eax, xmm3, {sae}
+
+// CHECK: vcvttsd2si ebp, xmm3, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2c,0xeb]
+ vcvttsd2si ebp, xmm3, {sae}
+
+// CHECK: vcvttsd2si r13d, xmm3, {sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x18,0x2c,0xeb]
+ vcvttsd2si r13d, xmm3, {sae}
+
+// CHECK: vcvttsd2si rax, xmm1, {sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x18,0x2c,0xc1]
+ vcvttsd2si rax, xmm1, {sae}
+
+// CHECK: vcvttsd2si r8, xmm1, {sae}
+// CHECK: encoding: [0x62,0x71,0xff,0x18,0x2c,0xc1]
+ vcvttsd2si r8, xmm1, {sae}
+
+// CHECK: vcvttss2si eax, xmm14, {sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x18,0x2c,0xc6]
+ vcvttss2si eax, xmm14, {sae}
+
+// CHECK: vcvttss2si ebp, xmm14, {sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x18,0x2c,0xee]
+ vcvttss2si ebp, xmm14, {sae}
+
+// CHECK: vcvttss2si r13d, xmm14, {sae}
+// CHECK: encoding: [0x62,0x51,0x7e,0x18,0x2c,0xee]
+ vcvttss2si r13d, xmm14, {sae}
+
+// CHECK: vcvttss2si rax, xmm21, {sae}
+// CHECK: encoding: [0x62,0xb1,0xfe,0x18,0x2c,0xc5]
+ vcvttss2si rax, xmm21, {sae}
+
+// CHECK: vcvttss2si r8, xmm21, {sae}
+// CHECK: encoding: [0x62,0x31,0xfe,0x18,0x2c,0xc5]
+ vcvttss2si r8, xmm21, {sae}
+
+// CHECK: vcvtudq2pd zmm18, ymm14
+// CHECK: encoding: [0x62,0xc1,0x7e,0x48,0x7a,0xd6]
+ vcvtudq2pd zmm18, ymm14
+
+// CHECK: vcvtudq2pd zmm18 {k3}, ymm14
+// CHECK: encoding: [0x62,0xc1,0x7e,0x4b,0x7a,0xd6]
+ vcvtudq2pd zmm18 {k3}, ymm14
+
+// CHECK: vcvtudq2pd zmm18 {k3} {z}, ymm14
+// CHECK: encoding: [0x62,0xc1,0x7e,0xcb,0x7a,0xd6]
+ vcvtudq2pd zmm18 {k3} {z}, ymm14
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x11]
+ vcvtudq2pd zmm18, ymmword ptr [rcx]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x7a,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vcvtudq2pd zmm18, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x11]
+ vcvtudq2pd zmm18, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x52,0x7f]
+ vcvtudq2pd zmm18, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x92,0x00,0x10,0x00,0x00]
+ vcvtudq2pd zmm18, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x52,0x80]
+ vcvtudq2pd zmm18, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x92,0xe0,0xef,0xff,0xff]
+ vcvtudq2pd zmm18, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x52,0x7f]
+ vcvtudq2pd zmm18, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x92,0x00,0x02,0x00,0x00]
+ vcvtudq2pd zmm18, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x52,0x80]
+ vcvtudq2pd zmm18, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x92,0xfc,0xfd,0xff,0xff]
+ vcvtudq2pd zmm18, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtudq2ps zmm18, zmm7
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0xd7]
+ vcvtudq2ps zmm18, zmm7
+
+// CHECK: vcvtudq2ps zmm18 {k2}, zmm7
+// CHECK: encoding: [0x62,0xe1,0x7f,0x4a,0x7a,0xd7]
+ vcvtudq2ps zmm18 {k2}, zmm7
+
+// CHECK: vcvtudq2ps zmm18 {k2} {z}, zmm7
+// CHECK: encoding: [0x62,0xe1,0x7f,0xca,0x7a,0xd7]
+ vcvtudq2ps zmm18 {k2} {z}, zmm7
+
+// CHECK: vcvtudq2ps zmm18, zmm7, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x18,0x7a,0xd7]
+ vcvtudq2ps zmm18, zmm7, {rn-sae}
+
+// CHECK: vcvtudq2ps zmm18, zmm7, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0xd7]
+ vcvtudq2ps zmm18, zmm7, {ru-sae}
+
+// CHECK: vcvtudq2ps zmm18, zmm7, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x38,0x7a,0xd7]
+ vcvtudq2ps zmm18, zmm7, {rd-sae}
+
+// CHECK: vcvtudq2ps zmm18, zmm7, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x78,0x7a,0xd7]
+ vcvtudq2ps zmm18, zmm7, {rz-sae}
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0x11]
+ vcvtudq2ps zmm18, zmmword ptr [rcx]
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7f,0x48,0x7a,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vcvtudq2ps zmm18, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtudq2ps zmm18, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0x11]
+ vcvtudq2ps zmm18, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0x52,0x7f]
+ vcvtudq2ps zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0x92,0x00,0x20,0x00,0x00]
+ vcvtudq2ps zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0x52,0x80]
+ vcvtudq2ps zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtudq2ps zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7f,0x48,0x7a,0x92,0xc0,0xdf,0xff,0xff]
+ vcvtudq2ps zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtudq2ps zmm18, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0x52,0x7f]
+ vcvtudq2ps zmm18, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtudq2ps zmm18, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0x92,0x00,0x02,0x00,0x00]
+ vcvtudq2ps zmm18, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtudq2ps zmm18, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0x52,0x80]
+ vcvtudq2ps zmm18, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtudq2ps zmm18, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7f,0x58,0x7a,0x92,0xfc,0xfd,0xff,0xff]
+ vcvtudq2ps zmm18, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vdivpd zmm18, zmm6, zmm11
+// CHECK: encoding: [0x62,0xc1,0xcd,0x48,0x5e,0xd3]
+ vdivpd zmm18, zmm6, zmm11
+
+// CHECK: vdivpd zmm18 {k4}, zmm6, zmm11
+// CHECK: encoding: [0x62,0xc1,0xcd,0x4c,0x5e,0xd3]
+ vdivpd zmm18 {k4}, zmm6, zmm11
+
+// CHECK: vdivpd zmm18 {k4} {z}, zmm6, zmm11
+// CHECK: encoding: [0x62,0xc1,0xcd,0xcc,0x5e,0xd3]
+ vdivpd zmm18 {k4} {z}, zmm6, zmm11
+
+// CHECK: vdivpd zmm18, zmm6, zmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0xcd,0x18,0x5e,0xd3]
+ vdivpd zmm18, zmm6, zmm11, {rn-sae}
+
+// CHECK: vdivpd zmm18, zmm6, zmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0xcd,0x58,0x5e,0xd3]
+ vdivpd zmm18, zmm6, zmm11, {ru-sae}
+
+// CHECK: vdivpd zmm18, zmm6, zmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0xcd,0x38,0x5e,0xd3]
+ vdivpd zmm18, zmm6, zmm11, {rd-sae}
+
+// CHECK: vdivpd zmm18, zmm6, zmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0xcd,0x78,0x5e,0xd3]
+ vdivpd zmm18, zmm6, zmm11, {rz-sae}
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x11]
+ vdivpd zmm18, zmm6, zmmword ptr [rcx]
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xcd,0x48,0x5e,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vdivpd zmm18, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vdivpd zmm18, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x11]
+ vdivpd zmm18, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x7f]
+ vdivpd zmm18, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x92,0x00,0x20,0x00,0x00]
+ vdivpd zmm18, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x80]
+ vdivpd zmm18, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vdivpd zmm18, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x92,0xc0,0xdf,0xff,0xff]
+ vdivpd zmm18, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vdivpd zmm18, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x52,0x7f]
+ vdivpd zmm18, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vdivpd zmm18, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0x00,0x04,0x00,0x00]
+ vdivpd zmm18, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vdivpd zmm18, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x52,0x80]
+ vdivpd zmm18, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vdivpd zmm18, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x92,0xf8,0xfb,0xff,0xff]
+ vdivpd zmm18, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vdivps zmm23, zmm23, zmm28
+// CHECK: encoding: [0x62,0x81,0x44,0x40,0x5e,0xfc]
+ vdivps zmm23, zmm23, zmm28
+
+// CHECK: vdivps zmm23 {k2}, zmm23, zmm28
+// CHECK: encoding: [0x62,0x81,0x44,0x42,0x5e,0xfc]
+ vdivps zmm23 {k2}, zmm23, zmm28
+
+// CHECK: vdivps zmm23 {k2} {z}, zmm23, zmm28
+// CHECK: encoding: [0x62,0x81,0x44,0xc2,0x5e,0xfc]
+ vdivps zmm23 {k2} {z}, zmm23, zmm28
+
+// CHECK: vdivps zmm23, zmm23, zmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x81,0x44,0x10,0x5e,0xfc]
+ vdivps zmm23, zmm23, zmm28, {rn-sae}
+
+// CHECK: vdivps zmm23, zmm23, zmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x81,0x44,0x50,0x5e,0xfc]
+ vdivps zmm23, zmm23, zmm28, {ru-sae}
+
+// CHECK: vdivps zmm23, zmm23, zmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x81,0x44,0x30,0x5e,0xfc]
+ vdivps zmm23, zmm23, zmm28, {rd-sae}
+
+// CHECK: vdivps zmm23, zmm23, zmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x81,0x44,0x70,0x5e,0xfc]
+ vdivps zmm23, zmm23, zmm28, {rz-sae}
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x39]
+ vdivps zmm23, zmm23, zmmword ptr [rcx]
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x44,0x40,0x5e,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vdivps zmm23, zmm23, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vdivps zmm23, zmm23, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x39]
+ vdivps zmm23, zmm23, dword ptr [rcx]{1to16}
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x7f]
+ vdivps zmm23, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0xba,0x00,0x20,0x00,0x00]
+ vdivps zmm23, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x80]
+ vdivps zmm23, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vdivps zmm23, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x44,0x40,0x5e,0xba,0xc0,0xdf,0xff,0xff]
+ vdivps zmm23, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vdivps zmm23, zmm23, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x7a,0x7f]
+ vdivps zmm23, zmm23, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vdivps zmm23, zmm23, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0x00,0x02,0x00,0x00]
+ vdivps zmm23, zmm23, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vdivps zmm23, zmm23, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0x7a,0x80]
+ vdivps zmm23, zmm23, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vdivps zmm23, zmm23, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x44,0x50,0x5e,0xba,0xfc,0xfd,0xff,0xff]
+ vdivps zmm23, zmm23, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vdivsd xmm29, xmm13, xmm22
+// CHECK: encoding: [0x62,0x21,0x97,0x08,0x5e,0xee]
+ vdivsd xmm29, xmm13, xmm22
+
+// CHECK: vdivsd xmm29 {k3}, xmm13, xmm22
+// CHECK: encoding: [0x62,0x21,0x97,0x0b,0x5e,0xee]
+ vdivsd xmm29 {k3}, xmm13, xmm22
+
+// CHECK: vdivsd xmm29 {k3} {z}, xmm13, xmm22
+// CHECK: encoding: [0x62,0x21,0x97,0x8b,0x5e,0xee]
+ vdivsd xmm29 {k3} {z}, xmm13, xmm22
+
+// CHECK: vdivsd xmm29, xmm13, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x21,0x97,0x18,0x5e,0xee]
+ vdivsd xmm29, xmm13, xmm22, {rn-sae}
+
+// CHECK: vdivsd xmm29, xmm13, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x21,0x97,0x58,0x5e,0xee]
+ vdivsd xmm29, xmm13, xmm22, {ru-sae}
+
+// CHECK: vdivsd xmm29, xmm13, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x21,0x97,0x38,0x5e,0xee]
+ vdivsd xmm29, xmm13, xmm22, {rd-sae}
+
+// CHECK: vdivsd xmm29, xmm13, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x21,0x97,0x78,0x5e,0xee]
+ vdivsd xmm29, xmm13, xmm22, {rz-sae}
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x97,0x08,0x5e,0x29]
+ vdivsd xmm29, xmm13, qword ptr [rcx]
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x97,0x08,0x5e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vdivsd xmm29, xmm13, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0x97,0x08,0x5e,0x6a,0x7f]
+ vdivsd xmm29, xmm13, qword ptr [rdx + 1016]
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0x97,0x08,0x5e,0xaa,0x00,0x04,0x00,0x00]
+ vdivsd xmm29, xmm13, qword ptr [rdx + 1024]
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0x97,0x08,0x5e,0x6a,0x80]
+ vdivsd xmm29, xmm13, qword ptr [rdx - 1024]
+
+// CHECK: vdivsd xmm29, xmm13, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0x97,0x08,0x5e,0xaa,0xf8,0xfb,0xff,0xff]
+ vdivsd xmm29, xmm13, qword ptr [rdx - 1032]
+
+// CHECK: vdivss xmm21, xmm6, xmm17
+// CHECK: encoding: [0x62,0xa1,0x4e,0x08,0x5e,0xe9]
+ vdivss xmm21, xmm6, xmm17
+
+// CHECK: vdivss xmm21 {k5}, xmm6, xmm17
+// CHECK: encoding: [0x62,0xa1,0x4e,0x0d,0x5e,0xe9]
+ vdivss xmm21 {k5}, xmm6, xmm17
+
+// CHECK: vdivss xmm21 {k5} {z}, xmm6, xmm17
+// CHECK: encoding: [0x62,0xa1,0x4e,0x8d,0x5e,0xe9]
+ vdivss xmm21 {k5} {z}, xmm6, xmm17
+
+// CHECK: vdivss xmm21, xmm6, xmm17, {rn-sae}
+// CHECK: encoding: [0x62,0xa1,0x4e,0x18,0x5e,0xe9]
+ vdivss xmm21, xmm6, xmm17, {rn-sae}
+
+// CHECK: vdivss xmm21, xmm6, xmm17, {ru-sae}
+// CHECK: encoding: [0x62,0xa1,0x4e,0x58,0x5e,0xe9]
+ vdivss xmm21, xmm6, xmm17, {ru-sae}
+
+// CHECK: vdivss xmm21, xmm6, xmm17, {rd-sae}
+// CHECK: encoding: [0x62,0xa1,0x4e,0x38,0x5e,0xe9]
+ vdivss xmm21, xmm6, xmm17, {rd-sae}
+
+// CHECK: vdivss xmm21, xmm6, xmm17, {rz-sae}
+// CHECK: encoding: [0x62,0xa1,0x4e,0x78,0x5e,0xe9]
+ vdivss xmm21, xmm6, xmm17, {rz-sae}
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x4e,0x08,0x5e,0x29]
+ vdivss xmm21, xmm6, dword ptr [rcx]
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x4e,0x08,0x5e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vdivss xmm21, xmm6, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x4e,0x08,0x5e,0x6a,0x7f]
+ vdivss xmm21, xmm6, dword ptr [rdx + 508]
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x4e,0x08,0x5e,0xaa,0x00,0x02,0x00,0x00]
+ vdivss xmm21, xmm6, dword ptr [rdx + 512]
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x4e,0x08,0x5e,0x6a,0x80]
+ vdivss xmm21, xmm6, dword ptr [rdx - 512]
+
+// CHECK: vdivss xmm21, xmm6, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x4e,0x08,0x5e,0xaa,0xfc,0xfd,0xff,0xff]
+ vdivss xmm21, xmm6, dword ptr [rdx - 516]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x88,0x01]
+ vexpandpd zmm24, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm24 {k4}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4c,0x88,0x01]
+ vexpandpd zmm24 {k4}, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm24 {k4} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xcc,0x88,0x01]
+ vexpandpd zmm24 {k4} {z}, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x88,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vexpandpd zmm24, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x88,0x42,0x7f]
+ vexpandpd zmm24, zmmword ptr [rdx + 1016]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x88,0x82,0x00,0x04,0x00,0x00]
+ vexpandpd zmm24, zmmword ptr [rdx + 1024]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x88,0x42,0x80]
+ vexpandpd zmm24, zmmword ptr [rdx - 1024]
+
+// CHECK: vexpandpd zmm24, zmmword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x88,0x82,0xf8,0xfb,0xff,0xff]
+ vexpandpd zmm24, zmmword ptr [rdx - 1032]
+
+// CHECK: vexpandpd zmm23, zmm15
+// CHECK: encoding: [0x62,0xc2,0xfd,0x48,0x88,0xff]
+ vexpandpd zmm23, zmm15
+
+// CHECK: vexpandpd zmm23 {k5}, zmm15
+// CHECK: encoding: [0x62,0xc2,0xfd,0x4d,0x88,0xff]
+ vexpandpd zmm23 {k5}, zmm15
+
+// CHECK: vexpandpd zmm23 {k5} {z}, zmm15
+// CHECK: encoding: [0x62,0xc2,0xfd,0xcd,0x88,0xff]
+ vexpandpd zmm23 {k5} {z}, zmm15
+
+// CHECK: vexpandps zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x88,0x21]
+ vexpandps zmm4, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm4 {k6}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4e,0x88,0x21]
+ vexpandps zmm4 {k6}, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm4 {k6} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xce,0x88,0x21]
+ vexpandps zmm4 {k6} {z}, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x88,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vexpandps zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vexpandps zmm4, zmmword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x88,0x62,0x7f]
+ vexpandps zmm4, zmmword ptr [rdx + 508]
+
+// CHECK: vexpandps zmm4, zmmword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x88,0xa2,0x00,0x02,0x00,0x00]
+ vexpandps zmm4, zmmword ptr [rdx + 512]
+
+// CHECK: vexpandps zmm4, zmmword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x88,0x62,0x80]
+ vexpandps zmm4, zmmword ptr [rdx - 512]
+
+// CHECK: vexpandps zmm4, zmmword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x88,0xa2,0xfc,0xfd,0xff,0xff]
+ vexpandps zmm4, zmmword ptr [rdx - 516]
+
+// CHECK: vexpandps zmm14, zmm9
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x88,0xf1]
+ vexpandps zmm14, zmm9
+
+// CHECK: vexpandps zmm14 {k2}, zmm9
+// CHECK: encoding: [0x62,0x52,0x7d,0x4a,0x88,0xf1]
+ vexpandps zmm14 {k2}, zmm9
+
+// CHECK: vexpandps zmm14 {k2} {z}, zmm9
+// CHECK: encoding: [0x62,0x52,0x7d,0xca,0x88,0xf1]
+ vexpandps zmm14 {k2} {z}, zmm9
+
+// CHECK: vextractf32x4 xmm15, zmm21, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x19,0xef,0xab]
+ vextractf32x4 xmm15, zmm21, 171
+
+// CHECK: vextractf32x4 xmm15 {k1}, zmm21, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x49,0x19,0xef,0xab]
+ vextractf32x4 xmm15 {k1}, zmm21, 171
+
+// CHECK: vextractf32x4 xmm15 {k1} {z}, zmm21, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0xc9,0x19,0xef,0xab]
+ vextractf32x4 xmm15 {k1} {z}, zmm21, 171
+
+// CHECK: vextractf32x4 xmm15, zmm21, 123
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x19,0xef,0x7b]
+ vextractf32x4 xmm15, zmm21, 123
+
+// CHECK: vextractf64x4 ymm11, zmm24, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0x48,0x1b,0xc3,0xab]
+ vextractf64x4 ymm11, zmm24, 171
+
+// CHECK: vextractf64x4 ymm11 {k5}, zmm24, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0x4d,0x1b,0xc3,0xab]
+ vextractf64x4 ymm11 {k5}, zmm24, 171
+
+// CHECK: vextractf64x4 ymm11 {k5} {z}, zmm24, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0xcd,0x1b,0xc3,0xab]
+ vextractf64x4 ymm11 {k5} {z}, zmm24, 171
+
+// CHECK: vextractf64x4 ymm11, zmm24, 123
+// CHECK: encoding: [0x62,0x43,0xfd,0x48,0x1b,0xc3,0x7b]
+ vextractf64x4 ymm11, zmm24, 123
+
+// CHECK: vextracti32x4 xmm13, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x39,0xc5,0xab]
+ vextracti32x4 xmm13, zmm16, 171
+
+// CHECK: vextracti32x4 xmm13 {k5}, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x4d,0x39,0xc5,0xab]
+ vextracti32x4 xmm13 {k5}, zmm16, 171
+
+// CHECK: vextracti32x4 xmm13 {k5} {z}, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0xcd,0x39,0xc5,0xab]
+ vextracti32x4 xmm13 {k5} {z}, zmm16, 171
+
+// CHECK: vextracti32x4 xmm13, zmm16, 123
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x39,0xc5,0x7b]
+ vextracti32x4 xmm13, zmm16, 123
+
+// CHECK: vextracti64x4 ymm13, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0xfd,0x48,0x3b,0xc5,0xab]
+ vextracti64x4 ymm13, zmm16, 171
+
+// CHECK: vextracti64x4 ymm13 {k3}, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0xfd,0x4b,0x3b,0xc5,0xab]
+ vextracti64x4 ymm13 {k3}, zmm16, 171
+
+// CHECK: vextracti64x4 ymm13 {k3} {z}, zmm16, 171
+// CHECK: encoding: [0x62,0xc3,0xfd,0xcb,0x3b,0xc5,0xab]
+ vextracti64x4 ymm13 {k3} {z}, zmm16, 171
+
+// CHECK: vextracti64x4 ymm13, zmm16, 123
+// CHECK: encoding: [0x62,0xc3,0xfd,0x48,0x3b,0xc5,0x7b]
+ vextracti64x4 ymm13, zmm16, 123
+
+// CHECK: vextractps eax, xmm24, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0xc0,0xab]
+ vextractps eax, xmm24, 171
+
+// CHECK: vextractps eax, xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0xc0,0x7b]
+ vextractps eax, xmm24, 123
+
+// CHECK: vextractps r8d, xmm24, 123
+// CHECK: encoding: [0x62,0x43,0x7d,0x08,0x17,0xc0,0x7b]
+ vextractps r8d, xmm24, 123
+
+// CHECK: vextractps dword ptr [rcx], xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0x01,0x7b]
+ vextractps dword ptr [rcx], xmm24, 123
+
+// CHECK: vextractps dword ptr [rax + 8*r14 + 291], xmm24, 123
+// CHECK: encoding: [0x62,0x23,0x7d,0x08,0x17,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vextractps dword ptr [rax + 8*r14 + 291], xmm24, 123
+
+// CHECK: vextractps dword ptr [rdx + 508], xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0x42,0x7f,0x7b]
+ vextractps dword ptr [rdx + 508], xmm24, 123
+
+// CHECK: vextractps dword ptr [rdx + 512], xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0x82,0x00,0x02,0x00,0x00,0x7b]
+ vextractps dword ptr [rdx + 512], xmm24, 123
+
+// CHECK: vextractps dword ptr [rdx - 512], xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0x42,0x80,0x7b]
+ vextractps dword ptr [rdx - 512], xmm24, 123
+
+// CHECK: vextractps dword ptr [rdx - 516], xmm24, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x08,0x17,0x82,0xfc,0xfd,0xff,0xff,0x7b]
+ vextractps dword ptr [rdx - 516], xmm24, 123
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmm21
+// CHECK: encoding: [0x62,0x22,0xfd,0x40,0x98,0xd5]
+ vfmadd132pd zmm26, zmm16, zmm21
+
+// CHECK: vfmadd132pd zmm26 {k5}, zmm16, zmm21
+// CHECK: encoding: [0x62,0x22,0xfd,0x45,0x98,0xd5]
+ vfmadd132pd zmm26 {k5}, zmm16, zmm21
+
+// CHECK: vfmadd132pd zmm26 {k5} {z}, zmm16, zmm21
+// CHECK: encoding: [0x62,0x22,0xfd,0xc5,0x98,0xd5]
+ vfmadd132pd zmm26 {k5} {z}, zmm16, zmm21
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmm21, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0xfd,0x10,0x98,0xd5]
+ vfmadd132pd zmm26, zmm16, zmm21, {rn-sae}
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmm21, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0xfd,0x50,0x98,0xd5]
+ vfmadd132pd zmm26, zmm16, zmm21, {ru-sae}
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmm21, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0xfd,0x30,0x98,0xd5]
+ vfmadd132pd zmm26, zmm16, zmm21, {rd-sae}
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmm21, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0xfd,0x70,0x98,0xd5]
+ vfmadd132pd zmm26, zmm16, zmm21, {rz-sae}
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x40,0x98,0x11]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rcx]
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x40,0x98,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd132pd zmm26, zmm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x50,0x98,0x11]
+ vfmadd132pd zmm26, zmm16, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xfd,0x40,0x98,0x52,0x7f]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xfd,0x40,0x98,0x92,0x00,0x20,0x00,0x00]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xfd,0x40,0x98,0x52,0x80]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd132pd zmm26, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xfd,0x40,0x98,0x92,0xc0,0xdf,0xff,0xff]
+ vfmadd132pd zmm26, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd132pd zmm26, zmm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x50,0x98,0x52,0x7f]
+ vfmadd132pd zmm26, zmm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd132pd zmm26, zmm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x50,0x98,0x92,0x00,0x04,0x00,0x00]
+ vfmadd132pd zmm26, zmm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd132pd zmm26, zmm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x50,0x98,0x52,0x80]
+ vfmadd132pd zmm26, zmm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd132pd zmm26, zmm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x50,0x98,0x92,0xf8,0xfb,0xff,0xff]
+ vfmadd132pd zmm26, zmm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmm25
+// CHECK: encoding: [0x62,0x92,0x5d,0x40,0x98,0xc9]
+ vfmadd132ps zmm1, zmm20, zmm25
+
+// CHECK: vfmadd132ps zmm1 {k1}, zmm20, zmm25
+// CHECK: encoding: [0x62,0x92,0x5d,0x41,0x98,0xc9]
+ vfmadd132ps zmm1 {k1}, zmm20, zmm25
+
+// CHECK: vfmadd132ps zmm1 {k1} {z}, zmm20, zmm25
+// CHECK: encoding: [0x62,0x92,0x5d,0xc1,0x98,0xc9]
+ vfmadd132ps zmm1 {k1} {z}, zmm20, zmm25
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x92,0x5d,0x10,0x98,0xc9]
+ vfmadd132ps zmm1, zmm20, zmm25, {rn-sae}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x92,0x5d,0x50,0x98,0xc9]
+ vfmadd132ps zmm1, zmm20, zmm25, {ru-sae}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x92,0x5d,0x30,0x98,0xc9]
+ vfmadd132ps zmm1, zmm20, zmm25, {rd-sae}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x92,0x5d,0x70,0x98,0xc9]
+ vfmadd132ps zmm1, zmm20, zmm25, {rz-sae}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x40,0x98,0x09]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rcx]
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x5d,0x40,0x98,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd132ps zmm1, zmm20, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x50,0x98,0x09]
+ vfmadd132ps zmm1, zmm20, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x40,0x98,0x4a,0x7f]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x40,0x98,0x8a,0x00,0x20,0x00,0x00]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x40,0x98,0x4a,0x80]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd132ps zmm1, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x40,0x98,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmadd132ps zmm1, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd132ps zmm1, zmm20, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x50,0x98,0x4a,0x7f]
+ vfmadd132ps zmm1, zmm20, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd132ps zmm1, zmm20, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x50,0x98,0x8a,0x00,0x02,0x00,0x00]
+ vfmadd132ps zmm1, zmm20, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd132ps zmm1, zmm20, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x50,0x98,0x4a,0x80]
+ vfmadd132ps zmm1, zmm20, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd132ps zmm1, zmm20, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x50,0x98,0x8a,0xfc,0xfd,0xff,0xff]
+ vfmadd132ps zmm1, zmm20, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd132sd xmm28, xmm17, xmm3
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0xe3]
+ vfmadd132sd xmm28, xmm17, xmm3
+
+// CHECK: vfmadd132sd xmm28 {k2}, xmm17, xmm3
+// CHECK: encoding: [0x62,0x62,0xf5,0x02,0x99,0xe3]
+ vfmadd132sd xmm28 {k2}, xmm17, xmm3
+
+// CHECK: vfmadd132sd xmm28 {k2} {z}, xmm17, xmm3
+// CHECK: encoding: [0x62,0x62,0xf5,0x82,0x99,0xe3]
+ vfmadd132sd xmm28 {k2} {z}, xmm17, xmm3
+
+// CHECK: vfmadd132sd xmm28, xmm17, xmm3, {rn-sae}
+// CHECK: encoding: [0x62,0x62,0xf5,0x10,0x99,0xe3]
+ vfmadd132sd xmm28, xmm17, xmm3, {rn-sae}
+
+// CHECK: vfmadd132sd xmm28, xmm17, xmm3, {ru-sae}
+// CHECK: encoding: [0x62,0x62,0xf5,0x50,0x99,0xe3]
+ vfmadd132sd xmm28, xmm17, xmm3, {ru-sae}
+
+// CHECK: vfmadd132sd xmm28, xmm17, xmm3, {rd-sae}
+// CHECK: encoding: [0x62,0x62,0xf5,0x30,0x99,0xe3]
+ vfmadd132sd xmm28, xmm17, xmm3, {rd-sae}
+
+// CHECK: vfmadd132sd xmm28, xmm17, xmm3, {rz-sae}
+// CHECK: encoding: [0x62,0x62,0xf5,0x70,0x99,0xe3]
+ vfmadd132sd xmm28, xmm17, xmm3, {rz-sae}
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0x21]
+ vfmadd132sd xmm28, xmm17, qword ptr [rcx]
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xf5,0x00,0x99,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd132sd xmm28, xmm17, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0x62,0x7f]
+ vfmadd132sd xmm28, xmm17, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0xa2,0x00,0x04,0x00,0x00]
+ vfmadd132sd xmm28, xmm17, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0x62,0x80]
+ vfmadd132sd xmm28, xmm17, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd132sd xmm28, xmm17, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xf5,0x00,0x99,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmadd132sd xmm28, xmm17, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd132ss xmm30, xmm17, xmm22
+// CHECK: encoding: [0x62,0x22,0x75,0x00,0x99,0xf6]
+ vfmadd132ss xmm30, xmm17, xmm22
+
+// CHECK: vfmadd132ss xmm30 {k3}, xmm17, xmm22
+// CHECK: encoding: [0x62,0x22,0x75,0x03,0x99,0xf6]
+ vfmadd132ss xmm30 {k3}, xmm17, xmm22
+
+// CHECK: vfmadd132ss xmm30 {k3} {z}, xmm17, xmm22
+// CHECK: encoding: [0x62,0x22,0x75,0x83,0x99,0xf6]
+ vfmadd132ss xmm30 {k3} {z}, xmm17, xmm22
+
+// CHECK: vfmadd132ss xmm30, xmm17, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x10,0x99,0xf6]
+ vfmadd132ss xmm30, xmm17, xmm22, {rn-sae}
+
+// CHECK: vfmadd132ss xmm30, xmm17, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x50,0x99,0xf6]
+ vfmadd132ss xmm30, xmm17, xmm22, {ru-sae}
+
+// CHECK: vfmadd132ss xmm30, xmm17, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x30,0x99,0xf6]
+ vfmadd132ss xmm30, xmm17, xmm22, {rd-sae}
+
+// CHECK: vfmadd132ss xmm30, xmm17, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x70,0x99,0xf6]
+ vfmadd132ss xmm30, xmm17, xmm22, {rz-sae}
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x75,0x00,0x99,0x31]
+ vfmadd132ss xmm30, xmm17, dword ptr [rcx]
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x75,0x00,0x99,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd132ss xmm30, xmm17, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x75,0x00,0x99,0x72,0x7f]
+ vfmadd132ss xmm30, xmm17, dword ptr [rdx + 508]
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x00,0x99,0xb2,0x00,0x02,0x00,0x00]
+ vfmadd132ss xmm30, xmm17, dword ptr [rdx + 512]
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x00,0x99,0x72,0x80]
+ vfmadd132ss xmm30, xmm17, dword ptr [rdx - 512]
+
+// CHECK: vfmadd132ss xmm30, xmm17, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x75,0x00,0x99,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmadd132ss xmm30, xmm17, dword ptr [rdx - 516]
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0x40,0xa8,0xd1]
+ vfmadd213pd zmm18, zmm16, zmm25
+
+// CHECK: vfmadd213pd zmm18 {k3}, zmm16, zmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0x43,0xa8,0xd1]
+ vfmadd213pd zmm18 {k3}, zmm16, zmm25
+
+// CHECK: vfmadd213pd zmm18 {k3} {z}, zmm16, zmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0xc3,0xa8,0xd1]
+ vfmadd213pd zmm18 {k3} {z}, zmm16, zmm25
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0xfd,0x10,0xa8,0xd1]
+ vfmadd213pd zmm18, zmm16, zmm25, {rn-sae}
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0xfd,0x50,0xa8,0xd1]
+ vfmadd213pd zmm18, zmm16, zmm25, {ru-sae}
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0xfd,0x30,0xa8,0xd1]
+ vfmadd213pd zmm18, zmm16, zmm25, {rd-sae}
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0xfd,0x70,0xa8,0xd1]
+ vfmadd213pd zmm18, zmm16, zmm25, {rz-sae}
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xa8,0x11]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rcx]
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0xa8,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd213pd zmm18, zmm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xa8,0x11]
+ vfmadd213pd zmm18, zmm16, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xa8,0x52,0x7f]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xa8,0x92,0x00,0x20,0x00,0x00]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xa8,0x52,0x80]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd213pd zmm18, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xa8,0x92,0xc0,0xdf,0xff,0xff]
+ vfmadd213pd zmm18, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd213pd zmm18, zmm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xa8,0x52,0x7f]
+ vfmadd213pd zmm18, zmm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd213pd zmm18, zmm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xa8,0x92,0x00,0x04,0x00,0x00]
+ vfmadd213pd zmm18, zmm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd213pd zmm18, zmm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xa8,0x52,0x80]
+ vfmadd213pd zmm18, zmm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd213pd zmm18, zmm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xa8,0x92,0xf8,0xfb,0xff,0xff]
+ vfmadd213pd zmm18, zmm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmm14
+// CHECK: encoding: [0x62,0xc2,0x65,0x40,0xa8,0xe6]
+ vfmadd213ps zmm20, zmm19, zmm14
+
+// CHECK: vfmadd213ps zmm20 {k4}, zmm19, zmm14
+// CHECK: encoding: [0x62,0xc2,0x65,0x44,0xa8,0xe6]
+ vfmadd213ps zmm20 {k4}, zmm19, zmm14
+
+// CHECK: vfmadd213ps zmm20 {k4} {z}, zmm19, zmm14
+// CHECK: encoding: [0x62,0xc2,0x65,0xc4,0xa8,0xe6]
+ vfmadd213ps zmm20 {k4} {z}, zmm19, zmm14
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x10,0xa8,0xe6]
+ vfmadd213ps zmm20, zmm19, zmm14, {rn-sae}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x50,0xa8,0xe6]
+ vfmadd213ps zmm20, zmm19, zmm14, {ru-sae}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x30,0xa8,0xe6]
+ vfmadd213ps zmm20, zmm19, zmm14, {rd-sae}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x70,0xa8,0xe6]
+ vfmadd213ps zmm20, zmm19, zmm14, {rz-sae}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x65,0x40,0xa8,0x21]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rcx]
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x65,0x40,0xa8,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd213ps zmm20, zmm19, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x50,0xa8,0x21]
+ vfmadd213ps zmm20, zmm19, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x65,0x40,0xa8,0x62,0x7f]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x65,0x40,0xa8,0xa2,0x00,0x20,0x00,0x00]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x65,0x40,0xa8,0x62,0x80]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd213ps zmm20, zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x65,0x40,0xa8,0xa2,0xc0,0xdf,0xff,0xff]
+ vfmadd213ps zmm20, zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd213ps zmm20, zmm19, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x50,0xa8,0x62,0x7f]
+ vfmadd213ps zmm20, zmm19, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd213ps zmm20, zmm19, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x50,0xa8,0xa2,0x00,0x02,0x00,0x00]
+ vfmadd213ps zmm20, zmm19, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd213ps zmm20, zmm19, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x50,0xa8,0x62,0x80]
+ vfmadd213ps zmm20, zmm19, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd213ps zmm20, zmm19, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x50,0xa8,0xa2,0xfc,0xfd,0xff,0xff]
+ vfmadd213ps zmm20, zmm19, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd213sd xmm24, xmm26, xmm13
+// CHECK: encoding: [0x62,0x42,0xad,0x00,0xa9,0xc5]
+ vfmadd213sd xmm24, xmm26, xmm13
+
+// CHECK: vfmadd213sd xmm24 {k3}, xmm26, xmm13
+// CHECK: encoding: [0x62,0x42,0xad,0x03,0xa9,0xc5]
+ vfmadd213sd xmm24 {k3}, xmm26, xmm13
+
+// CHECK: vfmadd213sd xmm24 {k3} {z}, xmm26, xmm13
+// CHECK: encoding: [0x62,0x42,0xad,0x83,0xa9,0xc5]
+ vfmadd213sd xmm24 {k3} {z}, xmm26, xmm13
+
+// CHECK: vfmadd213sd xmm24, xmm26, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xad,0x10,0xa9,0xc5]
+ vfmadd213sd xmm24, xmm26, xmm13, {rn-sae}
+
+// CHECK: vfmadd213sd xmm24, xmm26, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xad,0x50,0xa9,0xc5]
+ vfmadd213sd xmm24, xmm26, xmm13, {ru-sae}
+
+// CHECK: vfmadd213sd xmm24, xmm26, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xad,0x30,0xa9,0xc5]
+ vfmadd213sd xmm24, xmm26, xmm13, {rd-sae}
+
+// CHECK: vfmadd213sd xmm24, xmm26, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xad,0x70,0xa9,0xc5]
+ vfmadd213sd xmm24, xmm26, xmm13, {rz-sae}
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xad,0x00,0xa9,0x01]
+ vfmadd213sd xmm24, xmm26, qword ptr [rcx]
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xad,0x00,0xa9,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd213sd xmm24, xmm26, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xad,0x00,0xa9,0x42,0x7f]
+ vfmadd213sd xmm24, xmm26, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xad,0x00,0xa9,0x82,0x00,0x04,0x00,0x00]
+ vfmadd213sd xmm24, xmm26, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xad,0x00,0xa9,0x42,0x80]
+ vfmadd213sd xmm24, xmm26, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd213sd xmm24, xmm26, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xad,0x00,0xa9,0x82,0xf8,0xfb,0xff,0xff]
+ vfmadd213sd xmm24, xmm26, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd213ss xmm30, xmm22, xmm16
+// CHECK: encoding: [0x62,0x22,0x4d,0x00,0xa9,0xf0]
+ vfmadd213ss xmm30, xmm22, xmm16
+
+// CHECK: vfmadd213ss xmm30 {k1}, xmm22, xmm16
+// CHECK: encoding: [0x62,0x22,0x4d,0x01,0xa9,0xf0]
+ vfmadd213ss xmm30 {k1}, xmm22, xmm16
+
+// CHECK: vfmadd213ss xmm30 {k1} {z}, xmm22, xmm16
+// CHECK: encoding: [0x62,0x22,0x4d,0x81,0xa9,0xf0]
+ vfmadd213ss xmm30 {k1} {z}, xmm22, xmm16
+
+// CHECK: vfmadd213ss xmm30, xmm22, xmm16, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x10,0xa9,0xf0]
+ vfmadd213ss xmm30, xmm22, xmm16, {rn-sae}
+
+// CHECK: vfmadd213ss xmm30, xmm22, xmm16, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x50,0xa9,0xf0]
+ vfmadd213ss xmm30, xmm22, xmm16, {ru-sae}
+
+// CHECK: vfmadd213ss xmm30, xmm22, xmm16, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x30,0xa9,0xf0]
+ vfmadd213ss xmm30, xmm22, xmm16, {rd-sae}
+
+// CHECK: vfmadd213ss xmm30, xmm22, xmm16, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x70,0xa9,0xf0]
+ vfmadd213ss xmm30, xmm22, xmm16, {rz-sae}
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0xa9,0x31]
+ vfmadd213ss xmm30, xmm22, dword ptr [rcx]
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x4d,0x00,0xa9,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd213ss xmm30, xmm22, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0xa9,0x72,0x7f]
+ vfmadd213ss xmm30, xmm22, dword ptr [rdx + 508]
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0xa9,0xb2,0x00,0x02,0x00,0x00]
+ vfmadd213ss xmm30, xmm22, dword ptr [rdx + 512]
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0xa9,0x72,0x80]
+ vfmadd213ss xmm30, xmm22, dword ptr [rdx - 512]
+
+// CHECK: vfmadd213ss xmm30, xmm22, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0xa9,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmadd213ss xmm30, xmm22, dword ptr [rdx - 516]
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmm9
+// CHECK: encoding: [0x62,0x42,0xcd,0x48,0xb8,0xf1]
+ vfmadd231pd zmm30, zmm6, zmm9
+
+// CHECK: vfmadd231pd zmm30 {k4}, zmm6, zmm9
+// CHECK: encoding: [0x62,0x42,0xcd,0x4c,0xb8,0xf1]
+ vfmadd231pd zmm30 {k4}, zmm6, zmm9
+
+// CHECK: vfmadd231pd zmm30 {k4} {z}, zmm6, zmm9
+// CHECK: encoding: [0x62,0x42,0xcd,0xcc,0xb8,0xf1]
+ vfmadd231pd zmm30 {k4} {z}, zmm6, zmm9
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x18,0xb8,0xf1]
+ vfmadd231pd zmm30, zmm6, zmm9, {rn-sae}
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x58,0xb8,0xf1]
+ vfmadd231pd zmm30, zmm6, zmm9, {ru-sae}
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x38,0xb8,0xf1]
+ vfmadd231pd zmm30, zmm6, zmm9, {rd-sae}
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x78,0xb8,0xf1]
+ vfmadd231pd zmm30, zmm6, zmm9, {rz-sae}
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xb8,0x31]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rcx]
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xcd,0x48,0xb8,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd231pd zmm30, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xb8,0x31]
+ vfmadd231pd zmm30, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xb8,0x72,0x7f]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xb8,0xb2,0x00,0x20,0x00,0x00]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xb8,0x72,0x80]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd231pd zmm30, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xb8,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmadd231pd zmm30, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd231pd zmm30, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xb8,0x72,0x7f]
+ vfmadd231pd zmm30, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd231pd zmm30, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xb8,0xb2,0x00,0x04,0x00,0x00]
+ vfmadd231pd zmm30, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd231pd zmm30, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xb8,0x72,0x80]
+ vfmadd231pd zmm30, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd231pd zmm30, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xb8,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmadd231pd zmm30, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmm25
+// CHECK: encoding: [0x62,0x02,0x1d,0x40,0xb8,0xd9]
+ vfmadd231ps zmm27, zmm28, zmm25
+
+// CHECK: vfmadd231ps zmm27 {k3}, zmm28, zmm25
+// CHECK: encoding: [0x62,0x02,0x1d,0x43,0xb8,0xd9]
+ vfmadd231ps zmm27 {k3}, zmm28, zmm25
+
+// CHECK: vfmadd231ps zmm27 {k3} {z}, zmm28, zmm25
+// CHECK: encoding: [0x62,0x02,0x1d,0xc3,0xb8,0xd9]
+ vfmadd231ps zmm27 {k3} {z}, zmm28, zmm25
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x1d,0x10,0xb8,0xd9]
+ vfmadd231ps zmm27, zmm28, zmm25, {rn-sae}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x1d,0x50,0xb8,0xd9]
+ vfmadd231ps zmm27, zmm28, zmm25, {ru-sae}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x1d,0x30,0xb8,0xd9]
+ vfmadd231ps zmm27, zmm28, zmm25, {rd-sae}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x1d,0x70,0xb8,0xd9]
+ vfmadd231ps zmm27, zmm28, zmm25, {rz-sae}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x1d,0x40,0xb8,0x19]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rcx]
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x1d,0x40,0xb8,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd231ps zmm27, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x1d,0x50,0xb8,0x19]
+ vfmadd231ps zmm27, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x1d,0x40,0xb8,0x5a,0x7f]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x1d,0x40,0xb8,0x9a,0x00,0x20,0x00,0x00]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x1d,0x40,0xb8,0x5a,0x80]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd231ps zmm27, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x1d,0x40,0xb8,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmadd231ps zmm27, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd231ps zmm27, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x1d,0x50,0xb8,0x5a,0x7f]
+ vfmadd231ps zmm27, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd231ps zmm27, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x1d,0x50,0xb8,0x9a,0x00,0x02,0x00,0x00]
+ vfmadd231ps zmm27, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd231ps zmm27, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x1d,0x50,0xb8,0x5a,0x80]
+ vfmadd231ps zmm27, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd231ps zmm27, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x1d,0x50,0xb8,0x9a,0xfc,0xfd,0xff,0xff]
+ vfmadd231ps zmm27, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd231sd xmm4, xmm1, xmm14
+// CHECK: encoding: [0xc4,0xc2,0xf1,0xb9,0xe6]
+ vfmadd231sd xmm4, xmm1, xmm14
+
+// CHECK: vfmadd231sd xmm4 {k1}, xmm1, xmm14
+// CHECK: encoding: [0x62,0xd2,0xf5,0x09,0xb9,0xe6]
+ vfmadd231sd xmm4 {k1}, xmm1, xmm14
+
+// CHECK: vfmadd231sd xmm4 {k1} {z}, xmm1, xmm14
+// CHECK: encoding: [0x62,0xd2,0xf5,0x89,0xb9,0xe6]
+ vfmadd231sd xmm4 {k1} {z}, xmm1, xmm14
+
+// CHECK: vfmadd231sd xmm4, xmm1, xmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0xf5,0x18,0xb9,0xe6]
+ vfmadd231sd xmm4, xmm1, xmm14, {rn-sae}
+
+// CHECK: vfmadd231sd xmm4, xmm1, xmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0xf5,0x58,0xb9,0xe6]
+ vfmadd231sd xmm4, xmm1, xmm14, {ru-sae}
+
+// CHECK: vfmadd231sd xmm4, xmm1, xmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0xf5,0x38,0xb9,0xe6]
+ vfmadd231sd xmm4, xmm1, xmm14, {rd-sae}
+
+// CHECK: vfmadd231sd xmm4, xmm1, xmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0xf5,0x78,0xb9,0xe6]
+ vfmadd231sd xmm4, xmm1, xmm14, {rz-sae}
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xf1,0xb9,0x21]
+ vfmadd231sd xmm4, xmm1, qword ptr [rcx]
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa2,0xf1,0xb9,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd231sd xmm4, xmm1, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xf1,0xb9,0xa2,0xf8,0x03,0x00,0x00]
+ vfmadd231sd xmm4, xmm1, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xf1,0xb9,0xa2,0x00,0x04,0x00,0x00]
+ vfmadd231sd xmm4, xmm1, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xf1,0xb9,0xa2,0x00,0xfc,0xff,0xff]
+ vfmadd231sd xmm4, xmm1, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd231sd xmm4, xmm1, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xf1,0xb9,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmadd231sd xmm4, xmm1, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd231ss xmm29, xmm15, xmm10
+// CHECK: encoding: [0x62,0x42,0x05,0x08,0xb9,0xea]
+ vfmadd231ss xmm29, xmm15, xmm10
+
+// CHECK: vfmadd231ss xmm29 {k4}, xmm15, xmm10
+// CHECK: encoding: [0x62,0x42,0x05,0x0c,0xb9,0xea]
+ vfmadd231ss xmm29 {k4}, xmm15, xmm10
+
+// CHECK: vfmadd231ss xmm29 {k4} {z}, xmm15, xmm10
+// CHECK: encoding: [0x62,0x42,0x05,0x8c,0xb9,0xea]
+ vfmadd231ss xmm29 {k4} {z}, xmm15, xmm10
+
+// CHECK: vfmadd231ss xmm29, xmm15, xmm10, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x05,0x18,0xb9,0xea]
+ vfmadd231ss xmm29, xmm15, xmm10, {rn-sae}
+
+// CHECK: vfmadd231ss xmm29, xmm15, xmm10, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x05,0x58,0xb9,0xea]
+ vfmadd231ss xmm29, xmm15, xmm10, {ru-sae}
+
+// CHECK: vfmadd231ss xmm29, xmm15, xmm10, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x05,0x38,0xb9,0xea]
+ vfmadd231ss xmm29, xmm15, xmm10, {rd-sae}
+
+// CHECK: vfmadd231ss xmm29, xmm15, xmm10, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x05,0x78,0xb9,0xea]
+ vfmadd231ss xmm29, xmm15, xmm10, {rz-sae}
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x05,0x08,0xb9,0x29]
+ vfmadd231ss xmm29, xmm15, dword ptr [rcx]
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x05,0x08,0xb9,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfmadd231ss xmm29, xmm15, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x05,0x08,0xb9,0x6a,0x7f]
+ vfmadd231ss xmm29, xmm15, dword ptr [rdx + 508]
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x05,0x08,0xb9,0xaa,0x00,0x02,0x00,0x00]
+ vfmadd231ss xmm29, xmm15, dword ptr [rdx + 512]
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x05,0x08,0xb9,0x6a,0x80]
+ vfmadd231ss xmm29, xmm15, dword ptr [rdx - 512]
+
+// CHECK: vfmadd231ss xmm29, xmm15, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x05,0x08,0xb9,0xaa,0xfc,0xfd,0xff,0xff]
+ vfmadd231ss xmm29, xmm15, dword ptr [rdx - 516]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmm21
+// CHECK: encoding: [0x62,0xa2,0xb5,0x40,0x96,0xe5]
+ vfmaddsub132pd zmm20, zmm25, zmm21
+
+// CHECK: vfmaddsub132pd zmm20 {k2}, zmm25, zmm21
+// CHECK: encoding: [0x62,0xa2,0xb5,0x42,0x96,0xe5]
+ vfmaddsub132pd zmm20 {k2}, zmm25, zmm21
+
+// CHECK: vfmaddsub132pd zmm20 {k2} {z}, zmm25, zmm21
+// CHECK: encoding: [0x62,0xa2,0xb5,0xc2,0x96,0xe5]
+ vfmaddsub132pd zmm20 {k2} {z}, zmm25, zmm21
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmm21, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0xb5,0x10,0x96,0xe5]
+ vfmaddsub132pd zmm20, zmm25, zmm21, {rn-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmm21, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0xb5,0x50,0x96,0xe5]
+ vfmaddsub132pd zmm20, zmm25, zmm21, {ru-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmm21, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0xb5,0x30,0x96,0xe5]
+ vfmaddsub132pd zmm20, zmm25, zmm21, {rd-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmm21, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0xb5,0x70,0x96,0xe5]
+ vfmaddsub132pd zmm20, zmm25, zmm21, {rz-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x96,0x21]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xb5,0x40,0x96,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xb5,0x50,0x96,0x21]
+ vfmaddsub132pd zmm20, zmm25, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x96,0x62,0x7f]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x96,0xa2,0x00,0x20,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x96,0x62,0x80]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xb5,0x40,0x96,0xa2,0xc0,0xdf,0xff,0xff]
+ vfmaddsub132pd zmm20, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xb5,0x50,0x96,0x62,0x7f]
+ vfmaddsub132pd zmm20, zmm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xb5,0x50,0x96,0xa2,0x00,0x04,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xb5,0x50,0x96,0x62,0x80]
+ vfmaddsub132pd zmm20, zmm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xb5,0x50,0x96,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmaddsub132pd zmm20, zmm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmm20
+// CHECK: encoding: [0x62,0x32,0x35,0x48,0x96,0xd4]
+ vfmaddsub132ps zmm10, zmm9, zmm20
+
+// CHECK: vfmaddsub132ps zmm10 {k3}, zmm9, zmm20
+// CHECK: encoding: [0x62,0x32,0x35,0x4b,0x96,0xd4]
+ vfmaddsub132ps zmm10 {k3}, zmm9, zmm20
+
+// CHECK: vfmaddsub132ps zmm10 {k3} {z}, zmm9, zmm20
+// CHECK: encoding: [0x62,0x32,0x35,0xcb,0x96,0xd4]
+ vfmaddsub132ps zmm10 {k3} {z}, zmm9, zmm20
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmm20, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0x35,0x18,0x96,0xd4]
+ vfmaddsub132ps zmm10, zmm9, zmm20, {rn-sae}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmm20, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0x35,0x58,0x96,0xd4]
+ vfmaddsub132ps zmm10, zmm9, zmm20, {ru-sae}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmm20, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0x35,0x38,0x96,0xd4]
+ vfmaddsub132ps zmm10, zmm9, zmm20, {rd-sae}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmm20, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0x35,0x78,0x96,0xd4]
+ vfmaddsub132ps zmm10, zmm9, zmm20, {rz-sae}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0x96,0x11]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x35,0x48,0x96,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0x96,0x11]
+ vfmaddsub132ps zmm10, zmm9, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0x96,0x52,0x7f]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0x96,0x92,0x00,0x20,0x00,0x00]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0x96,0x52,0x80]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0x96,0x92,0xc0,0xdf,0xff,0xff]
+ vfmaddsub132ps zmm10, zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0x96,0x52,0x7f]
+ vfmaddsub132ps zmm10, zmm9, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0x96,0x92,0x00,0x02,0x00,0x00]
+ vfmaddsub132ps zmm10, zmm9, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0x96,0x52,0x80]
+ vfmaddsub132ps zmm10, zmm9, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub132ps zmm10, zmm9, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0x96,0x92,0xfc,0xfd,0xff,0xff]
+ vfmaddsub132ps zmm10, zmm9, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0x48,0xa6,0xd2]
+ vfmaddsub213pd zmm26, zmm6, zmm10
+
+// CHECK: vfmaddsub213pd zmm26 {k6}, zmm6, zmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0x4e,0xa6,0xd2]
+ vfmaddsub213pd zmm26 {k6}, zmm6, zmm10
+
+// CHECK: vfmaddsub213pd zmm26 {k6} {z}, zmm6, zmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0xce,0xa6,0xd2]
+ vfmaddsub213pd zmm26 {k6} {z}, zmm6, zmm10
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x18,0xa6,0xd2]
+ vfmaddsub213pd zmm26, zmm6, zmm10, {rn-sae}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x58,0xa6,0xd2]
+ vfmaddsub213pd zmm26, zmm6, zmm10, {ru-sae}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x38,0xa6,0xd2]
+ vfmaddsub213pd zmm26, zmm6, zmm10, {rd-sae}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xcd,0x78,0xa6,0xd2]
+ vfmaddsub213pd zmm26, zmm6, zmm10, {rz-sae}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xa6,0x11]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xcd,0x48,0xa6,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xa6,0x11]
+ vfmaddsub213pd zmm26, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xa6,0x52,0x7f]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xa6,0x92,0x00,0x20,0x00,0x00]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xa6,0x52,0x80]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xcd,0x48,0xa6,0x92,0xc0,0xdf,0xff,0xff]
+ vfmaddsub213pd zmm26, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xa6,0x52,0x7f]
+ vfmaddsub213pd zmm26, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xa6,0x92,0x00,0x04,0x00,0x00]
+ vfmaddsub213pd zmm26, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xa6,0x52,0x80]
+ vfmaddsub213pd zmm26, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub213pd zmm26, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x58,0xa6,0x92,0xf8,0xfb,0xff,0xff]
+ vfmaddsub213pd zmm26, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmm28
+// CHECK: encoding: [0x62,0x82,0x3d,0x40,0xa6,0xcc]
+ vfmaddsub213ps zmm17, zmm24, zmm28
+
+// CHECK: vfmaddsub213ps zmm17 {k6}, zmm24, zmm28
+// CHECK: encoding: [0x62,0x82,0x3d,0x46,0xa6,0xcc]
+ vfmaddsub213ps zmm17 {k6}, zmm24, zmm28
+
+// CHECK: vfmaddsub213ps zmm17 {k6} {z}, zmm24, zmm28
+// CHECK: encoding: [0x62,0x82,0x3d,0xc6,0xa6,0xcc]
+ vfmaddsub213ps zmm17 {k6} {z}, zmm24, zmm28
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0x3d,0x10,0xa6,0xcc]
+ vfmaddsub213ps zmm17, zmm24, zmm28, {rn-sae}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0x3d,0x50,0xa6,0xcc]
+ vfmaddsub213ps zmm17, zmm24, zmm28, {ru-sae}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0x3d,0x30,0xa6,0xcc]
+ vfmaddsub213ps zmm17, zmm24, zmm28, {rd-sae}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0x3d,0x70,0xa6,0xcc]
+ vfmaddsub213ps zmm17, zmm24, zmm28, {rz-sae}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0xa6,0x09]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x3d,0x40,0xa6,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0xa6,0x09]
+ vfmaddsub213ps zmm17, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0xa6,0x4a,0x7f]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0xa6,0x8a,0x00,0x20,0x00,0x00]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0xa6,0x4a,0x80]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0xa6,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmaddsub213ps zmm17, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0xa6,0x4a,0x7f]
+ vfmaddsub213ps zmm17, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0xa6,0x8a,0x00,0x02,0x00,0x00]
+ vfmaddsub213ps zmm17, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0xa6,0x4a,0x80]
+ vfmaddsub213ps zmm17, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub213ps zmm17, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0xa6,0x8a,0xfc,0xfd,0xff,0xff]
+ vfmaddsub213ps zmm17, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmm24
+// CHECK: encoding: [0x62,0x12,0xa5,0x40,0xb6,0xc8]
+ vfmaddsub231pd zmm9, zmm27, zmm24
+
+// CHECK: vfmaddsub231pd zmm9 {k7}, zmm27, zmm24
+// CHECK: encoding: [0x62,0x12,0xa5,0x47,0xb6,0xc8]
+ vfmaddsub231pd zmm9 {k7}, zmm27, zmm24
+
+// CHECK: vfmaddsub231pd zmm9 {k7} {z}, zmm27, zmm24
+// CHECK: encoding: [0x62,0x12,0xa5,0xc7,0xb6,0xc8]
+ vfmaddsub231pd zmm9 {k7} {z}, zmm27, zmm24
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x12,0xa5,0x10,0xb6,0xc8]
+ vfmaddsub231pd zmm9, zmm27, zmm24, {rn-sae}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x12,0xa5,0x50,0xb6,0xc8]
+ vfmaddsub231pd zmm9, zmm27, zmm24, {ru-sae}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x12,0xa5,0x30,0xb6,0xc8]
+ vfmaddsub231pd zmm9, zmm27, zmm24, {rd-sae}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x12,0xa5,0x70,0xb6,0xc8]
+ vfmaddsub231pd zmm9, zmm27, zmm24, {rz-sae}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xa5,0x40,0xb6,0x09]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xa5,0x40,0xb6,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xb6,0x09]
+ vfmaddsub231pd zmm9, zmm27, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xa5,0x40,0xb6,0x4a,0x7f]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xa5,0x40,0xb6,0x8a,0x00,0x20,0x00,0x00]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xa5,0x40,0xb6,0x4a,0x80]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xa5,0x40,0xb6,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmaddsub231pd zmm9, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xb6,0x4a,0x7f]
+ vfmaddsub231pd zmm9, zmm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xb6,0x8a,0x00,0x04,0x00,0x00]
+ vfmaddsub231pd zmm9, zmm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xb6,0x4a,0x80]
+ vfmaddsub231pd zmm9, zmm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub231pd zmm9, zmm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xb6,0x8a,0xf8,0xfb,0xff,0xff]
+ vfmaddsub231pd zmm9, zmm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmm19
+// CHECK: encoding: [0x62,0x32,0x55,0x40,0xb6,0xfb]
+ vfmaddsub231ps zmm15, zmm21, zmm19
+
+// CHECK: vfmaddsub231ps zmm15 {k6}, zmm21, zmm19
+// CHECK: encoding: [0x62,0x32,0x55,0x46,0xb6,0xfb]
+ vfmaddsub231ps zmm15 {k6}, zmm21, zmm19
+
+// CHECK: vfmaddsub231ps zmm15 {k6} {z}, zmm21, zmm19
+// CHECK: encoding: [0x62,0x32,0x55,0xc6,0xb6,0xfb]
+ vfmaddsub231ps zmm15 {k6} {z}, zmm21, zmm19
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0x55,0x10,0xb6,0xfb]
+ vfmaddsub231ps zmm15, zmm21, zmm19, {rn-sae}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0x55,0x50,0xb6,0xfb]
+ vfmaddsub231ps zmm15, zmm21, zmm19, {ru-sae}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0x55,0x30,0xb6,0xfb]
+ vfmaddsub231ps zmm15, zmm21, zmm19, {rd-sae}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0x55,0x70,0xb6,0xfb]
+ vfmaddsub231ps zmm15, zmm21, zmm19, {rz-sae}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x55,0x40,0xb6,0x39]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x55,0x40,0xb6,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x55,0x50,0xb6,0x39]
+ vfmaddsub231ps zmm15, zmm21, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x55,0x40,0xb6,0x7a,0x7f]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x55,0x40,0xb6,0xba,0x00,0x20,0x00,0x00]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x55,0x40,0xb6,0x7a,0x80]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x55,0x40,0xb6,0xba,0xc0,0xdf,0xff,0xff]
+ vfmaddsub231ps zmm15, zmm21, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x55,0x50,0xb6,0x7a,0x7f]
+ vfmaddsub231ps zmm15, zmm21, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x55,0x50,0xb6,0xba,0x00,0x02,0x00,0x00]
+ vfmaddsub231ps zmm15, zmm21, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x55,0x50,0xb6,0x7a,0x80]
+ vfmaddsub231ps zmm15, zmm21, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub231ps zmm15, zmm21, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x55,0x50,0xb6,0xba,0xfc,0xfd,0xff,0xff]
+ vfmaddsub231ps zmm15, zmm21, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmm27
+// CHECK: encoding: [0x62,0x82,0x9d,0x48,0x9a,0xf3]
+ vfmsub132pd zmm22, zmm12, zmm27
+
+// CHECK: vfmsub132pd zmm22 {k2}, zmm12, zmm27
+// CHECK: encoding: [0x62,0x82,0x9d,0x4a,0x9a,0xf3]
+ vfmsub132pd zmm22 {k2}, zmm12, zmm27
+
+// CHECK: vfmsub132pd zmm22 {k2} {z}, zmm12, zmm27
+// CHECK: encoding: [0x62,0x82,0x9d,0xca,0x9a,0xf3]
+ vfmsub132pd zmm22 {k2} {z}, zmm12, zmm27
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0x9d,0x18,0x9a,0xf3]
+ vfmsub132pd zmm22, zmm12, zmm27, {rn-sae}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0x9d,0x58,0x9a,0xf3]
+ vfmsub132pd zmm22, zmm12, zmm27, {ru-sae}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0x9d,0x38,0x9a,0xf3]
+ vfmsub132pd zmm22, zmm12, zmm27, {rd-sae}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0x9d,0x78,0x9a,0xf3]
+ vfmsub132pd zmm22, zmm12, zmm27, {rz-sae}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x9a,0x31]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rcx]
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x9d,0x48,0x9a,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub132pd zmm22, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x9a,0x31]
+ vfmsub132pd zmm22, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x9a,0x72,0x7f]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x9a,0xb2,0x00,0x20,0x00,0x00]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x9a,0x72,0x80]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub132pd zmm22, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x9a,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmsub132pd zmm22, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub132pd zmm22, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x9a,0x72,0x7f]
+ vfmsub132pd zmm22, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub132pd zmm22, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x9a,0xb2,0x00,0x04,0x00,0x00]
+ vfmsub132pd zmm22, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub132pd zmm22, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x9a,0x72,0x80]
+ vfmsub132pd zmm22, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub132pd zmm22, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x9a,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmsub132pd zmm22, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0x48,0x9a,0xc8]
+ vfmsub132ps zmm1, zmm13, zmm16
+
+// CHECK: vfmsub132ps zmm1 {k4}, zmm13, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0x4c,0x9a,0xc8]
+ vfmsub132ps zmm1 {k4}, zmm13, zmm16
+
+// CHECK: vfmsub132ps zmm1 {k4} {z}, zmm13, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0xcc,0x9a,0xc8]
+ vfmsub132ps zmm1 {k4} {z}, zmm13, zmm16
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmm16, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x18,0x9a,0xc8]
+ vfmsub132ps zmm1, zmm13, zmm16, {rn-sae}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmm16, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x58,0x9a,0xc8]
+ vfmsub132ps zmm1, zmm13, zmm16, {ru-sae}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmm16, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x38,0x9a,0xc8]
+ vfmsub132ps zmm1, zmm13, zmm16, {rd-sae}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmm16, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x78,0x9a,0xc8]
+ vfmsub132ps zmm1, zmm13, zmm16, {rz-sae}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x9a,0x09]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rcx]
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x15,0x48,0x9a,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub132ps zmm1, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x9a,0x09]
+ vfmsub132ps zmm1, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x9a,0x4a,0x7f]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x9a,0x8a,0x00,0x20,0x00,0x00]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x9a,0x4a,0x80]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub132ps zmm1, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x9a,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmsub132ps zmm1, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub132ps zmm1, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x9a,0x4a,0x7f]
+ vfmsub132ps zmm1, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub132ps zmm1, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x9a,0x8a,0x00,0x02,0x00,0x00]
+ vfmsub132ps zmm1, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub132ps zmm1, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x9a,0x4a,0x80]
+ vfmsub132ps zmm1, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub132ps zmm1, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x9a,0x8a,0xfc,0xfd,0xff,0xff]
+ vfmsub132ps zmm1, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub132sd xmm12, xmm8, xmm27
+// CHECK: encoding: [0x62,0x12,0xbd,0x08,0x9b,0xe3]
+ vfmsub132sd xmm12, xmm8, xmm27
+
+// CHECK: vfmsub132sd xmm12 {k3}, xmm8, xmm27
+// CHECK: encoding: [0x62,0x12,0xbd,0x0b,0x9b,0xe3]
+ vfmsub132sd xmm12 {k3}, xmm8, xmm27
+
+// CHECK: vfmsub132sd xmm12 {k3} {z}, xmm8, xmm27
+// CHECK: encoding: [0x62,0x12,0xbd,0x8b,0x9b,0xe3]
+ vfmsub132sd xmm12 {k3} {z}, xmm8, xmm27
+
+// CHECK: vfmsub132sd xmm12, xmm8, xmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x12,0xbd,0x18,0x9b,0xe3]
+ vfmsub132sd xmm12, xmm8, xmm27, {rn-sae}
+
+// CHECK: vfmsub132sd xmm12, xmm8, xmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x12,0xbd,0x58,0x9b,0xe3]
+ vfmsub132sd xmm12, xmm8, xmm27, {ru-sae}
+
+// CHECK: vfmsub132sd xmm12, xmm8, xmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x12,0xbd,0x38,0x9b,0xe3]
+ vfmsub132sd xmm12, xmm8, xmm27, {rd-sae}
+
+// CHECK: vfmsub132sd xmm12, xmm8, xmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x12,0xbd,0x78,0x9b,0xe3]
+ vfmsub132sd xmm12, xmm8, xmm27, {rz-sae}
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0x62,0xb9,0x9b,0x21]
+ vfmsub132sd xmm12, xmm8, qword ptr [rcx]
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x22,0xb9,0x9b,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub132sd xmm12, xmm8, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0x62,0xb9,0x9b,0xa2,0xf8,0x03,0x00,0x00]
+ vfmsub132sd xmm12, xmm8, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0x62,0xb9,0x9b,0xa2,0x00,0x04,0x00,0x00]
+ vfmsub132sd xmm12, xmm8, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0x62,0xb9,0x9b,0xa2,0x00,0xfc,0xff,0xff]
+ vfmsub132sd xmm12, xmm8, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub132sd xmm12, xmm8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0x62,0xb9,0x9b,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmsub132sd xmm12, xmm8, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub132ss xmm30, xmm22, xmm27
+// CHECK: encoding: [0x62,0x02,0x4d,0x00,0x9b,0xf3]
+ vfmsub132ss xmm30, xmm22, xmm27
+
+// CHECK: vfmsub132ss xmm30 {k3}, xmm22, xmm27
+// CHECK: encoding: [0x62,0x02,0x4d,0x03,0x9b,0xf3]
+ vfmsub132ss xmm30 {k3}, xmm22, xmm27
+
+// CHECK: vfmsub132ss xmm30 {k3} {z}, xmm22, xmm27
+// CHECK: encoding: [0x62,0x02,0x4d,0x83,0x9b,0xf3]
+ vfmsub132ss xmm30 {k3} {z}, xmm22, xmm27
+
+// CHECK: vfmsub132ss xmm30, xmm22, xmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x4d,0x10,0x9b,0xf3]
+ vfmsub132ss xmm30, xmm22, xmm27, {rn-sae}
+
+// CHECK: vfmsub132ss xmm30, xmm22, xmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x4d,0x50,0x9b,0xf3]
+ vfmsub132ss xmm30, xmm22, xmm27, {ru-sae}
+
+// CHECK: vfmsub132ss xmm30, xmm22, xmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x4d,0x30,0x9b,0xf3]
+ vfmsub132ss xmm30, xmm22, xmm27, {rd-sae}
+
+// CHECK: vfmsub132ss xmm30, xmm22, xmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x4d,0x70,0x9b,0xf3]
+ vfmsub132ss xmm30, xmm22, xmm27, {rz-sae}
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0x9b,0x31]
+ vfmsub132ss xmm30, xmm22, dword ptr [rcx]
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x4d,0x00,0x9b,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub132ss xmm30, xmm22, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0x9b,0x72,0x7f]
+ vfmsub132ss xmm30, xmm22, dword ptr [rdx + 508]
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0x9b,0xb2,0x00,0x02,0x00,0x00]
+ vfmsub132ss xmm30, xmm22, dword ptr [rdx + 512]
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0x9b,0x72,0x80]
+ vfmsub132ss xmm30, xmm22, dword ptr [rdx - 512]
+
+// CHECK: vfmsub132ss xmm30, xmm22, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x4d,0x00,0x9b,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsub132ss xmm30, xmm22, dword ptr [rdx - 516]
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmm4
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0xec]
+ vfmsub213pd zmm5, zmm10, zmm4
+
+// CHECK: vfmsub213pd zmm5 {k1}, zmm10, zmm4
+// CHECK: encoding: [0x62,0xf2,0xad,0x49,0xaa,0xec]
+ vfmsub213pd zmm5 {k1}, zmm10, zmm4
+
+// CHECK: vfmsub213pd zmm5 {k1} {z}, zmm10, zmm4
+// CHECK: encoding: [0x62,0xf2,0xad,0xc9,0xaa,0xec]
+ vfmsub213pd zmm5 {k1} {z}, zmm10, zmm4
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xad,0x18,0xaa,0xec]
+ vfmsub213pd zmm5, zmm10, zmm4, {rn-sae}
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0xec]
+ vfmsub213pd zmm5, zmm10, zmm4, {ru-sae}
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xad,0x38,0xaa,0xec]
+ vfmsub213pd zmm5, zmm10, zmm4, {rd-sae}
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xad,0x78,0xaa,0xec]
+ vfmsub213pd zmm5, zmm10, zmm4, {rz-sae}
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0x29]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rcx]
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xad,0x48,0xaa,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub213pd zmm5, zmm10, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0x29]
+ vfmsub213pd zmm5, zmm10, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0x6a,0x7f]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0xaa,0x00,0x20,0x00,0x00]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0x6a,0x80]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub213pd zmm5, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xaa,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsub213pd zmm5, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub213pd zmm5, zmm10, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0x6a,0x7f]
+ vfmsub213pd zmm5, zmm10, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub213pd zmm5, zmm10, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0xaa,0x00,0x04,0x00,0x00]
+ vfmsub213pd zmm5, zmm10, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub213pd zmm5, zmm10, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0x6a,0x80]
+ vfmsub213pd zmm5, zmm10, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub213pd zmm5, zmm10, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xaa,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmsub213pd zmm5, zmm10, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmm10
+// CHECK: encoding: [0x62,0xc2,0x4d,0x40,0xaa,0xf2]
+ vfmsub213ps zmm22, zmm22, zmm10
+
+// CHECK: vfmsub213ps zmm22 {k6}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xc2,0x4d,0x46,0xaa,0xf2]
+ vfmsub213ps zmm22 {k6}, zmm22, zmm10
+
+// CHECK: vfmsub213ps zmm22 {k6} {z}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xc2,0x4d,0xc6,0xaa,0xf2]
+ vfmsub213ps zmm22 {k6} {z}, zmm22, zmm10
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x4d,0x10,0xaa,0xf2]
+ vfmsub213ps zmm22, zmm22, zmm10, {rn-sae}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x4d,0x50,0xaa,0xf2]
+ vfmsub213ps zmm22, zmm22, zmm10, {ru-sae}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x4d,0x30,0xaa,0xf2]
+ vfmsub213ps zmm22, zmm22, zmm10, {rd-sae}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x4d,0x70,0xaa,0xf2]
+ vfmsub213ps zmm22, zmm22, zmm10, {rz-sae}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0xaa,0x31]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rcx]
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x4d,0x40,0xaa,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub213ps zmm22, zmm22, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x50,0xaa,0x31]
+ vfmsub213ps zmm22, zmm22, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0xaa,0x72,0x7f]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0xaa,0xb2,0x00,0x20,0x00,0x00]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0xaa,0x72,0x80]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub213ps zmm22, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x40,0xaa,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmsub213ps zmm22, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub213ps zmm22, zmm22, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x50,0xaa,0x72,0x7f]
+ vfmsub213ps zmm22, zmm22, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub213ps zmm22, zmm22, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x50,0xaa,0xb2,0x00,0x02,0x00,0x00]
+ vfmsub213ps zmm22, zmm22, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub213ps zmm22, zmm22, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x50,0xaa,0x72,0x80]
+ vfmsub213ps zmm22, zmm22, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub213ps zmm22, zmm22, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x50,0xaa,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsub213ps zmm22, zmm22, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub213sd xmm6, xmm8, xmm12
+// CHECK: encoding: [0xc4,0xc2,0xb9,0xab,0xf4]
+ vfmsub213sd xmm6, xmm8, xmm12
+
+// CHECK: vfmsub213sd xmm6 {k1}, xmm8, xmm12
+// CHECK: encoding: [0x62,0xd2,0xbd,0x09,0xab,0xf4]
+ vfmsub213sd xmm6 {k1}, xmm8, xmm12
+
+// CHECK: vfmsub213sd xmm6 {k1} {z}, xmm8, xmm12
+// CHECK: encoding: [0x62,0xd2,0xbd,0x89,0xab,0xf4]
+ vfmsub213sd xmm6 {k1} {z}, xmm8, xmm12
+
+// CHECK: vfmsub213sd xmm6, xmm8, xmm12, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0xbd,0x18,0xab,0xf4]
+ vfmsub213sd xmm6, xmm8, xmm12, {rn-sae}
+
+// CHECK: vfmsub213sd xmm6, xmm8, xmm12, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0xbd,0x58,0xab,0xf4]
+ vfmsub213sd xmm6, xmm8, xmm12, {ru-sae}
+
+// CHECK: vfmsub213sd xmm6, xmm8, xmm12, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0xbd,0x38,0xab,0xf4]
+ vfmsub213sd xmm6, xmm8, xmm12, {rd-sae}
+
+// CHECK: vfmsub213sd xmm6, xmm8, xmm12, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0xbd,0x78,0xab,0xf4]
+ vfmsub213sd xmm6, xmm8, xmm12, {rz-sae}
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0xab,0x31]
+ vfmsub213sd xmm6, xmm8, qword ptr [rcx]
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa2,0xb9,0xab,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub213sd xmm6, xmm8, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0xab,0xb2,0xf8,0x03,0x00,0x00]
+ vfmsub213sd xmm6, xmm8, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0xab,0xb2,0x00,0x04,0x00,0x00]
+ vfmsub213sd xmm6, xmm8, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0xab,0xb2,0x00,0xfc,0xff,0xff]
+ vfmsub213sd xmm6, xmm8, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub213sd xmm6, xmm8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0xab,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmsub213sd xmm6, xmm8, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub213ss xmm30, xmm13, xmm26
+// CHECK: encoding: [0x62,0x02,0x15,0x08,0xab,0xf2]
+ vfmsub213ss xmm30, xmm13, xmm26
+
+// CHECK: vfmsub213ss xmm30 {k1}, xmm13, xmm26
+// CHECK: encoding: [0x62,0x02,0x15,0x09,0xab,0xf2]
+ vfmsub213ss xmm30 {k1}, xmm13, xmm26
+
+// CHECK: vfmsub213ss xmm30 {k1} {z}, xmm13, xmm26
+// CHECK: encoding: [0x62,0x02,0x15,0x89,0xab,0xf2]
+ vfmsub213ss xmm30 {k1} {z}, xmm13, xmm26
+
+// CHECK: vfmsub213ss xmm30, xmm13, xmm26, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x15,0x18,0xab,0xf2]
+ vfmsub213ss xmm30, xmm13, xmm26, {rn-sae}
+
+// CHECK: vfmsub213ss xmm30, xmm13, xmm26, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x15,0x58,0xab,0xf2]
+ vfmsub213ss xmm30, xmm13, xmm26, {ru-sae}
+
+// CHECK: vfmsub213ss xmm30, xmm13, xmm26, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x15,0x38,0xab,0xf2]
+ vfmsub213ss xmm30, xmm13, xmm26, {rd-sae}
+
+// CHECK: vfmsub213ss xmm30, xmm13, xmm26, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x15,0x78,0xab,0xf2]
+ vfmsub213ss xmm30, xmm13, xmm26, {rz-sae}
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xab,0x31]
+ vfmsub213ss xmm30, xmm13, dword ptr [rcx]
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x15,0x08,0xab,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub213ss xmm30, xmm13, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xab,0x72,0x7f]
+ vfmsub213ss xmm30, xmm13, dword ptr [rdx + 508]
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xab,0xb2,0x00,0x02,0x00,0x00]
+ vfmsub213ss xmm30, xmm13, dword ptr [rdx + 512]
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xab,0x72,0x80]
+ vfmsub213ss xmm30, xmm13, dword ptr [rdx - 512]
+
+// CHECK: vfmsub213ss xmm30, xmm13, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xab,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsub213ss xmm30, xmm13, dword ptr [rdx - 516]
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmm11
+// CHECK: encoding: [0x62,0xd2,0x9d,0x48,0xba,0xeb]
+ vfmsub231pd zmm5, zmm12, zmm11
+
+// CHECK: vfmsub231pd zmm5 {k2}, zmm12, zmm11
+// CHECK: encoding: [0x62,0xd2,0x9d,0x4a,0xba,0xeb]
+ vfmsub231pd zmm5 {k2}, zmm12, zmm11
+
+// CHECK: vfmsub231pd zmm5 {k2} {z}, zmm12, zmm11
+// CHECK: encoding: [0x62,0xd2,0x9d,0xca,0xba,0xeb]
+ vfmsub231pd zmm5 {k2} {z}, zmm12, zmm11
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0x9d,0x18,0xba,0xeb]
+ vfmsub231pd zmm5, zmm12, zmm11, {rn-sae}
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0x9d,0x58,0xba,0xeb]
+ vfmsub231pd zmm5, zmm12, zmm11, {ru-sae}
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0x9d,0x38,0xba,0xeb]
+ vfmsub231pd zmm5, zmm12, zmm11, {rd-sae}
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0x9d,0x78,0xba,0xeb]
+ vfmsub231pd zmm5, zmm12, zmm11, {rz-sae}
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0xba,0x29]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rcx]
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x9d,0x48,0xba,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub231pd zmm5, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0xba,0x29]
+ vfmsub231pd zmm5, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0xba,0x6a,0x7f]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0xba,0xaa,0x00,0x20,0x00,0x00]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0xba,0x6a,0x80]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub231pd zmm5, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0xba,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsub231pd zmm5, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub231pd zmm5, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0xba,0x6a,0x7f]
+ vfmsub231pd zmm5, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub231pd zmm5, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0xba,0xaa,0x00,0x04,0x00,0x00]
+ vfmsub231pd zmm5, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub231pd zmm5, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0xba,0x6a,0x80]
+ vfmsub231pd zmm5, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub231pd zmm5, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0xba,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmsub231pd zmm5, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmm27
+// CHECK: encoding: [0x62,0x92,0x55,0x40,0xba,0xf3]
+ vfmsub231ps zmm6, zmm21, zmm27
+
+// CHECK: vfmsub231ps zmm6 {k3}, zmm21, zmm27
+// CHECK: encoding: [0x62,0x92,0x55,0x43,0xba,0xf3]
+ vfmsub231ps zmm6 {k3}, zmm21, zmm27
+
+// CHECK: vfmsub231ps zmm6 {k3} {z}, zmm21, zmm27
+// CHECK: encoding: [0x62,0x92,0x55,0xc3,0xba,0xf3]
+ vfmsub231ps zmm6 {k3} {z}, zmm21, zmm27
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x92,0x55,0x10,0xba,0xf3]
+ vfmsub231ps zmm6, zmm21, zmm27, {rn-sae}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x92,0x55,0x50,0xba,0xf3]
+ vfmsub231ps zmm6, zmm21, zmm27, {ru-sae}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x92,0x55,0x30,0xba,0xf3]
+ vfmsub231ps zmm6, zmm21, zmm27, {rd-sae}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x92,0x55,0x70,0xba,0xf3]
+ vfmsub231ps zmm6, zmm21, zmm27, {rz-sae}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x55,0x40,0xba,0x31]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rcx]
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x55,0x40,0xba,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub231ps zmm6, zmm21, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x55,0x50,0xba,0x31]
+ vfmsub231ps zmm6, zmm21, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x55,0x40,0xba,0x72,0x7f]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x55,0x40,0xba,0xb2,0x00,0x20,0x00,0x00]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x55,0x40,0xba,0x72,0x80]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub231ps zmm6, zmm21, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x55,0x40,0xba,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmsub231ps zmm6, zmm21, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub231ps zmm6, zmm21, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x55,0x50,0xba,0x72,0x7f]
+ vfmsub231ps zmm6, zmm21, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub231ps zmm6, zmm21, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x55,0x50,0xba,0xb2,0x00,0x02,0x00,0x00]
+ vfmsub231ps zmm6, zmm21, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub231ps zmm6, zmm21, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x55,0x50,0xba,0x72,0x80]
+ vfmsub231ps zmm6, zmm21, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub231ps zmm6, zmm21, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x55,0x50,0xba,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsub231ps zmm6, zmm21, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub231sd xmm3, xmm11, xmm6
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0xde]
+ vfmsub231sd xmm3, xmm11, xmm6
+
+// CHECK: vfmsub231sd xmm3 {k7}, xmm11, xmm6
+// CHECK: encoding: [0x62,0xf2,0xa5,0x0f,0xbb,0xde]
+ vfmsub231sd xmm3 {k7}, xmm11, xmm6
+
+// CHECK: vfmsub231sd xmm3 {k7} {z}, xmm11, xmm6
+// CHECK: encoding: [0x62,0xf2,0xa5,0x8f,0xbb,0xde]
+ vfmsub231sd xmm3 {k7} {z}, xmm11, xmm6
+
+// CHECK: vfmsub231sd xmm3, xmm11, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x18,0xbb,0xde]
+ vfmsub231sd xmm3, xmm11, xmm6, {rn-sae}
+
+// CHECK: vfmsub231sd xmm3, xmm11, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x58,0xbb,0xde]
+ vfmsub231sd xmm3, xmm11, xmm6, {ru-sae}
+
+// CHECK: vfmsub231sd xmm3, xmm11, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x38,0xbb,0xde]
+ vfmsub231sd xmm3, xmm11, xmm6, {rd-sae}
+
+// CHECK: vfmsub231sd xmm3, xmm11, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x78,0xbb,0xde]
+ vfmsub231sd xmm3, xmm11, xmm6, {rz-sae}
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0x19]
+ vfmsub231sd xmm3, xmm11, qword ptr [rcx]
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa2,0xa1,0xbb,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub231sd xmm3, xmm11, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0x9a,0xf8,0x03,0x00,0x00]
+ vfmsub231sd xmm3, xmm11, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0x9a,0x00,0x04,0x00,0x00]
+ vfmsub231sd xmm3, xmm11, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0x9a,0x00,0xfc,0xff,0xff]
+ vfmsub231sd xmm3, xmm11, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub231sd xmm3, xmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbb,0x9a,0xf8,0xfb,0xff,0xff]
+ vfmsub231sd xmm3, xmm11, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub231ss xmm29, xmm3, xmm5
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0xed]
+ vfmsub231ss xmm29, xmm3, xmm5
+
+// CHECK: vfmsub231ss xmm29 {k6}, xmm3, xmm5
+// CHECK: encoding: [0x62,0x62,0x65,0x0e,0xbb,0xed]
+ vfmsub231ss xmm29 {k6}, xmm3, xmm5
+
+// CHECK: vfmsub231ss xmm29 {k6} {z}, xmm3, xmm5
+// CHECK: encoding: [0x62,0x62,0x65,0x8e,0xbb,0xed]
+ vfmsub231ss xmm29 {k6} {z}, xmm3, xmm5
+
+// CHECK: vfmsub231ss xmm29, xmm3, xmm5, {rn-sae}
+// CHECK: encoding: [0x62,0x62,0x65,0x18,0xbb,0xed]
+ vfmsub231ss xmm29, xmm3, xmm5, {rn-sae}
+
+// CHECK: vfmsub231ss xmm29, xmm3, xmm5, {ru-sae}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0xbb,0xed]
+ vfmsub231ss xmm29, xmm3, xmm5, {ru-sae}
+
+// CHECK: vfmsub231ss xmm29, xmm3, xmm5, {rd-sae}
+// CHECK: encoding: [0x62,0x62,0x65,0x38,0xbb,0xed]
+ vfmsub231ss xmm29, xmm3, xmm5, {rd-sae}
+
+// CHECK: vfmsub231ss xmm29, xmm3, xmm5, {rz-sae}
+// CHECK: encoding: [0x62,0x62,0x65,0x78,0xbb,0xed]
+ vfmsub231ss xmm29, xmm3, xmm5, {rz-sae}
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0x29]
+ vfmsub231ss xmm29, xmm3, dword ptr [rcx]
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x65,0x08,0xbb,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfmsub231ss xmm29, xmm3, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0x6a,0x7f]
+ vfmsub231ss xmm29, xmm3, dword ptr [rdx + 508]
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0xaa,0x00,0x02,0x00,0x00]
+ vfmsub231ss xmm29, xmm3, dword ptr [rdx + 512]
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0x6a,0x80]
+ vfmsub231ss xmm29, xmm3, dword ptr [rdx - 512]
+
+// CHECK: vfmsub231ss xmm29, xmm3, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xbb,0xaa,0xfc,0xfd,0xff,0xff]
+ vfmsub231ss xmm29, xmm3, dword ptr [rdx - 516]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmm18
+// CHECK: encoding: [0x62,0xa2,0x9d,0x40,0x97,0xea]
+ vfmsubadd132pd zmm21, zmm28, zmm18
+
+// CHECK: vfmsubadd132pd zmm21 {k7}, zmm28, zmm18
+// CHECK: encoding: [0x62,0xa2,0x9d,0x47,0x97,0xea]
+ vfmsubadd132pd zmm21 {k7}, zmm28, zmm18
+
+// CHECK: vfmsubadd132pd zmm21 {k7} {z}, zmm28, zmm18
+// CHECK: encoding: [0x62,0xa2,0x9d,0xc7,0x97,0xea]
+ vfmsubadd132pd zmm21 {k7} {z}, zmm28, zmm18
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0x9d,0x10,0x97,0xea]
+ vfmsubadd132pd zmm21, zmm28, zmm18, {rn-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0x9d,0x50,0x97,0xea]
+ vfmsubadd132pd zmm21, zmm28, zmm18, {ru-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0x9d,0x30,0x97,0xea]
+ vfmsubadd132pd zmm21, zmm28, zmm18, {rd-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0x9d,0x70,0x97,0xea]
+ vfmsubadd132pd zmm21, zmm28, zmm18, {rz-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x97,0x29]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x9d,0x40,0x97,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x97,0x29]
+ vfmsubadd132pd zmm21, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x97,0x6a,0x7f]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x97,0xaa,0x00,0x20,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x97,0x6a,0x80]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x97,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsubadd132pd zmm21, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x97,0x6a,0x7f]
+ vfmsubadd132pd zmm21, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x97,0xaa,0x00,0x04,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x97,0x6a,0x80]
+ vfmsubadd132pd zmm21, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x97,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmsubadd132pd zmm21, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmm21
+// CHECK: encoding: [0x62,0xb2,0x15,0x48,0x97,0xd5]
+ vfmsubadd132ps zmm2, zmm13, zmm21
+
+// CHECK: vfmsubadd132ps zmm2 {k7}, zmm13, zmm21
+// CHECK: encoding: [0x62,0xb2,0x15,0x4f,0x97,0xd5]
+ vfmsubadd132ps zmm2 {k7}, zmm13, zmm21
+
+// CHECK: vfmsubadd132ps zmm2 {k7} {z}, zmm13, zmm21
+// CHECK: encoding: [0x62,0xb2,0x15,0xcf,0x97,0xd5]
+ vfmsubadd132ps zmm2 {k7} {z}, zmm13, zmm21
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmm21, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x18,0x97,0xd5]
+ vfmsubadd132ps zmm2, zmm13, zmm21, {rn-sae}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmm21, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x58,0x97,0xd5]
+ vfmsubadd132ps zmm2, zmm13, zmm21, {ru-sae}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmm21, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x38,0x97,0xd5]
+ vfmsubadd132ps zmm2, zmm13, zmm21, {rd-sae}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmm21, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x15,0x78,0x97,0xd5]
+ vfmsubadd132ps zmm2, zmm13, zmm21, {rz-sae}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x97,0x11]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x15,0x48,0x97,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x97,0x11]
+ vfmsubadd132ps zmm2, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x97,0x52,0x7f]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x97,0x92,0x00,0x20,0x00,0x00]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x97,0x52,0x80]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x15,0x48,0x97,0x92,0xc0,0xdf,0xff,0xff]
+ vfmsubadd132ps zmm2, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x97,0x52,0x7f]
+ vfmsubadd132ps zmm2, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x97,0x92,0x00,0x02,0x00,0x00]
+ vfmsubadd132ps zmm2, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x97,0x52,0x80]
+ vfmsubadd132ps zmm2, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd132ps zmm2, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x58,0x97,0x92,0xfc,0xfd,0xff,0xff]
+ vfmsubadd132ps zmm2, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0xd2]
+ vfmsubadd213pd zmm2, zmm23, zmm2
+
+// CHECK: vfmsubadd213pd zmm2 {k6}, zmm23, zmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0x46,0xa7,0xd2]
+ vfmsubadd213pd zmm2 {k6}, zmm23, zmm2
+
+// CHECK: vfmsubadd213pd zmm2 {k6} {z}, zmm23, zmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0xc6,0xa7,0xd2]
+ vfmsubadd213pd zmm2 {k6} {z}, zmm23, zmm2
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x10,0xa7,0xd2]
+ vfmsubadd213pd zmm2, zmm23, zmm2, {rn-sae}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0xd2]
+ vfmsubadd213pd zmm2, zmm23, zmm2, {ru-sae}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x30,0xa7,0xd2]
+ vfmsubadd213pd zmm2, zmm23, zmm2, {rd-sae}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x70,0xa7,0xd2]
+ vfmsubadd213pd zmm2, zmm23, zmm2, {rz-sae}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0x11]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xc5,0x40,0xa7,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0x11]
+ vfmsubadd213pd zmm2, zmm23, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0x52,0x7f]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0x92,0x00,0x20,0x00,0x00]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0x52,0x80]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x40,0xa7,0x92,0xc0,0xdf,0xff,0xff]
+ vfmsubadd213pd zmm2, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0x52,0x7f]
+ vfmsubadd213pd zmm2, zmm23, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0x92,0x00,0x04,0x00,0x00]
+ vfmsubadd213pd zmm2, zmm23, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0x52,0x80]
+ vfmsubadd213pd zmm2, zmm23, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd213pd zmm2, zmm23, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x50,0xa7,0x92,0xf8,0xfb,0xff,0xff]
+ vfmsubadd213pd zmm2, zmm23, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmm14
+// CHECK: encoding: [0x62,0xc2,0x1d,0x48,0xa7,0xf6]
+ vfmsubadd213ps zmm22, zmm12, zmm14
+
+// CHECK: vfmsubadd213ps zmm22 {k6}, zmm12, zmm14
+// CHECK: encoding: [0x62,0xc2,0x1d,0x4e,0xa7,0xf6]
+ vfmsubadd213ps zmm22 {k6}, zmm12, zmm14
+
+// CHECK: vfmsubadd213ps zmm22 {k6} {z}, zmm12, zmm14
+// CHECK: encoding: [0x62,0xc2,0x1d,0xce,0xa7,0xf6]
+ vfmsubadd213ps zmm22 {k6} {z}, zmm12, zmm14
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x1d,0x18,0xa7,0xf6]
+ vfmsubadd213ps zmm22, zmm12, zmm14, {rn-sae}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x1d,0x58,0xa7,0xf6]
+ vfmsubadd213ps zmm22, zmm12, zmm14, {ru-sae}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x1d,0x38,0xa7,0xf6]
+ vfmsubadd213ps zmm22, zmm12, zmm14, {rd-sae}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x1d,0x78,0xa7,0xf6]
+ vfmsubadd213ps zmm22, zmm12, zmm14, {rz-sae}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x48,0xa7,0x31]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x1d,0x48,0xa7,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0xa7,0x31]
+ vfmsubadd213ps zmm22, zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x48,0xa7,0x72,0x7f]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x48,0xa7,0xb2,0x00,0x20,0x00,0x00]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x48,0xa7,0x72,0x80]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x48,0xa7,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmsubadd213ps zmm22, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0xa7,0x72,0x7f]
+ vfmsubadd213ps zmm22, zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0xa7,0xb2,0x00,0x02,0x00,0x00]
+ vfmsubadd213ps zmm22, zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0xa7,0x72,0x80]
+ vfmsubadd213ps zmm22, zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd213ps zmm22, zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0xa7,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsubadd213ps zmm22, zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0x40,0xb7,0xc5]
+ vfmsubadd231pd zmm16, zmm27, zmm21
+
+// CHECK: vfmsubadd231pd zmm16 {k2}, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0x42,0xb7,0xc5]
+ vfmsubadd231pd zmm16 {k2}, zmm27, zmm21
+
+// CHECK: vfmsubadd231pd zmm16 {k2} {z}, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0xc2,0xb7,0xc5]
+ vfmsubadd231pd zmm16 {k2} {z}, zmm27, zmm21
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmm21, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0xa5,0x10,0xb7,0xc5]
+ vfmsubadd231pd zmm16, zmm27, zmm21, {rn-sae}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmm21, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0xa5,0x50,0xb7,0xc5]
+ vfmsubadd231pd zmm16, zmm27, zmm21, {ru-sae}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmm21, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0xa5,0x30,0xb7,0xc5]
+ vfmsubadd231pd zmm16, zmm27, zmm21, {rd-sae}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmm21, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0xa5,0x70,0xb7,0xc5]
+ vfmsubadd231pd zmm16, zmm27, zmm21, {rz-sae}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0xb7,0x01]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xa5,0x40,0xb7,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0xb7,0x01]
+ vfmsubadd231pd zmm16, zmm27, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0xb7,0x42,0x7f]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0xb7,0x82,0x00,0x20,0x00,0x00]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0xb7,0x42,0x80]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0xb7,0x82,0xc0,0xdf,0xff,0xff]
+ vfmsubadd231pd zmm16, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0xb7,0x42,0x7f]
+ vfmsubadd231pd zmm16, zmm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0xb7,0x82,0x00,0x04,0x00,0x00]
+ vfmsubadd231pd zmm16, zmm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0xb7,0x42,0x80]
+ vfmsubadd231pd zmm16, zmm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd231pd zmm16, zmm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0xb7,0x82,0xf8,0xfb,0xff,0xff]
+ vfmsubadd231pd zmm16, zmm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmm1
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0xc1]
+ vfmsubadd231ps zmm8, zmm19, zmm1
+
+// CHECK: vfmsubadd231ps zmm8 {k2}, zmm19, zmm1
+// CHECK: encoding: [0x62,0x72,0x65,0x42,0xb7,0xc1]
+ vfmsubadd231ps zmm8 {k2}, zmm19, zmm1
+
+// CHECK: vfmsubadd231ps zmm8 {k2} {z}, zmm19, zmm1
+// CHECK: encoding: [0x62,0x72,0x65,0xc2,0xb7,0xc1]
+ vfmsubadd231ps zmm8 {k2} {z}, zmm19, zmm1
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmm1, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0x65,0x10,0xb7,0xc1]
+ vfmsubadd231ps zmm8, zmm19, zmm1, {rn-sae}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmm1, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0xc1]
+ vfmsubadd231ps zmm8, zmm19, zmm1, {ru-sae}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmm1, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0x65,0x30,0xb7,0xc1]
+ vfmsubadd231ps zmm8, zmm19, zmm1, {rd-sae}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmm1, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0x65,0x70,0xb7,0xc1]
+ vfmsubadd231ps zmm8, zmm19, zmm1, {rz-sae}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0x01]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x65,0x40,0xb7,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0x01]
+ vfmsubadd231ps zmm8, zmm19, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0x42,0x7f]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0x82,0x00,0x20,0x00,0x00]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0x42,0x80]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x65,0x40,0xb7,0x82,0xc0,0xdf,0xff,0xff]
+ vfmsubadd231ps zmm8, zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0x42,0x7f]
+ vfmsubadd231ps zmm8, zmm19, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0x82,0x00,0x02,0x00,0x00]
+ vfmsubadd231ps zmm8, zmm19, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0x42,0x80]
+ vfmsubadd231ps zmm8, zmm19, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd231ps zmm8, zmm19, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x50,0xb7,0x82,0xfc,0xfd,0xff,0xff]
+ vfmsubadd231ps zmm8, zmm19, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmm1
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0xe1]
+ vfnmadd132pd zmm12, zmm14, zmm1
+
+// CHECK: vfnmadd132pd zmm12 {k7}, zmm14, zmm1
+// CHECK: encoding: [0x62,0x72,0x8d,0x4f,0x9c,0xe1]
+ vfnmadd132pd zmm12 {k7}, zmm14, zmm1
+
+// CHECK: vfnmadd132pd zmm12 {k7} {z}, zmm14, zmm1
+// CHECK: encoding: [0x62,0x72,0x8d,0xcf,0x9c,0xe1]
+ vfnmadd132pd zmm12 {k7} {z}, zmm14, zmm1
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmm1, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0x8d,0x18,0x9c,0xe1]
+ vfnmadd132pd zmm12, zmm14, zmm1, {rn-sae}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmm1, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0xe1]
+ vfnmadd132pd zmm12, zmm14, zmm1, {ru-sae}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmm1, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0x8d,0x38,0x9c,0xe1]
+ vfnmadd132pd zmm12, zmm14, zmm1, {rd-sae}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmm1, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0x8d,0x78,0x9c,0xe1]
+ vfnmadd132pd zmm12, zmm14, zmm1, {rz-sae}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0x21]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rcx]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x8d,0x48,0x9c,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0x21]
+ vfnmadd132pd zmm12, zmm14, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0x62,0x7f]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0xa2,0x00,0x20,0x00,0x00]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0x62,0x80]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x8d,0x48,0x9c,0xa2,0xc0,0xdf,0xff,0xff]
+ vfnmadd132pd zmm12, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd132pd zmm12, zmm14, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0x62,0x7f]
+ vfnmadd132pd zmm12, zmm14, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0xa2,0x00,0x04,0x00,0x00]
+ vfnmadd132pd zmm12, zmm14, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0x62,0x80]
+ vfnmadd132pd zmm12, zmm14, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd132pd zmm12, zmm14, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0x8d,0x58,0x9c,0xa2,0xf8,0xfb,0xff,0xff]
+ vfnmadd132pd zmm12, zmm14, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmm10
+// CHECK: encoding: [0x62,0xc2,0x7d,0x40,0x9c,0xea]
+ vfnmadd132ps zmm21, zmm16, zmm10
+
+// CHECK: vfnmadd132ps zmm21 {k5}, zmm16, zmm10
+// CHECK: encoding: [0x62,0xc2,0x7d,0x45,0x9c,0xea]
+ vfnmadd132ps zmm21 {k5}, zmm16, zmm10
+
+// CHECK: vfnmadd132ps zmm21 {k5} {z}, zmm16, zmm10
+// CHECK: encoding: [0x62,0xc2,0x7d,0xc5,0x9c,0xea]
+ vfnmadd132ps zmm21 {k5} {z}, zmm16, zmm10
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x7d,0x10,0x9c,0xea]
+ vfnmadd132ps zmm21, zmm16, zmm10, {rn-sae}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x7d,0x50,0x9c,0xea]
+ vfnmadd132ps zmm21, zmm16, zmm10, {ru-sae}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x7d,0x30,0x9c,0xea]
+ vfnmadd132ps zmm21, zmm16, zmm10, {rd-sae}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x7d,0x70,0x9c,0xea]
+ vfnmadd132ps zmm21, zmm16, zmm10, {rz-sae}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x40,0x9c,0x29]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rcx]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x40,0x9c,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x50,0x9c,0x29]
+ vfnmadd132ps zmm21, zmm16, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x40,0x9c,0x6a,0x7f]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x40,0x9c,0xaa,0x00,0x20,0x00,0x00]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x40,0x9c,0x6a,0x80]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x40,0x9c,0xaa,0xc0,0xdf,0xff,0xff]
+ vfnmadd132ps zmm21, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd132ps zmm21, zmm16, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x50,0x9c,0x6a,0x7f]
+ vfnmadd132ps zmm21, zmm16, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x50,0x9c,0xaa,0x00,0x02,0x00,0x00]
+ vfnmadd132ps zmm21, zmm16, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x50,0x9c,0x6a,0x80]
+ vfnmadd132ps zmm21, zmm16, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd132ps zmm21, zmm16, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x50,0x9c,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmadd132ps zmm21, zmm16, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd132sd xmm19, xmm3, xmm11
+// CHECK: encoding: [0x62,0xc2,0xe5,0x08,0x9d,0xdb]
+ vfnmadd132sd xmm19, xmm3, xmm11
+
+// CHECK: vfnmadd132sd xmm19 {k2}, xmm3, xmm11
+// CHECK: encoding: [0x62,0xc2,0xe5,0x0a,0x9d,0xdb]
+ vfnmadd132sd xmm19 {k2}, xmm3, xmm11
+
+// CHECK: vfnmadd132sd xmm19 {k2} {z}, xmm3, xmm11
+// CHECK: encoding: [0x62,0xc2,0xe5,0x8a,0x9d,0xdb]
+ vfnmadd132sd xmm19 {k2} {z}, xmm3, xmm11
+
+// CHECK: vfnmadd132sd xmm19, xmm3, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xe5,0x18,0x9d,0xdb]
+ vfnmadd132sd xmm19, xmm3, xmm11, {rn-sae}
+
+// CHECK: vfnmadd132sd xmm19, xmm3, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xe5,0x58,0x9d,0xdb]
+ vfnmadd132sd xmm19, xmm3, xmm11, {ru-sae}
+
+// CHECK: vfnmadd132sd xmm19, xmm3, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xe5,0x38,0x9d,0xdb]
+ vfnmadd132sd xmm19, xmm3, xmm11, {rd-sae}
+
+// CHECK: vfnmadd132sd xmm19, xmm3, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xe5,0x78,0x9d,0xdb]
+ vfnmadd132sd xmm19, xmm3, xmm11, {rz-sae}
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xe5,0x08,0x9d,0x19]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rcx]
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xe5,0x08,0x9d,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0xe5,0x08,0x9d,0x5a,0x7f]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0xe5,0x08,0x9d,0x9a,0x00,0x04,0x00,0x00]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0xe5,0x08,0x9d,0x5a,0x80]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd132sd xmm19, xmm3, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0xe5,0x08,0x9d,0x9a,0xf8,0xfb,0xff,0xff]
+ vfnmadd132sd xmm19, xmm3, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, xmm23
+// CHECK: encoding: [0x62,0x22,0x75,0x08,0x9d,0xcf]
+ vfnmadd132ss xmm25, xmm1, xmm23
+
+// CHECK: vfnmadd132ss xmm25 {k3}, xmm1, xmm23
+// CHECK: encoding: [0x62,0x22,0x75,0x0b,0x9d,0xcf]
+ vfnmadd132ss xmm25 {k3}, xmm1, xmm23
+
+// CHECK: vfnmadd132ss xmm25 {k3} {z}, xmm1, xmm23
+// CHECK: encoding: [0x62,0x22,0x75,0x8b,0x9d,0xcf]
+ vfnmadd132ss xmm25 {k3} {z}, xmm1, xmm23
+
+// CHECK: vfnmadd132ss xmm25, xmm1, xmm23, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x18,0x9d,0xcf]
+ vfnmadd132ss xmm25, xmm1, xmm23, {rn-sae}
+
+// CHECK: vfnmadd132ss xmm25, xmm1, xmm23, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x58,0x9d,0xcf]
+ vfnmadd132ss xmm25, xmm1, xmm23, {ru-sae}
+
+// CHECK: vfnmadd132ss xmm25, xmm1, xmm23, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x38,0x9d,0xcf]
+ vfnmadd132ss xmm25, xmm1, xmm23, {rd-sae}
+
+// CHECK: vfnmadd132ss xmm25, xmm1, xmm23, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x75,0x78,0x9d,0xcf]
+ vfnmadd132ss xmm25, xmm1, xmm23, {rz-sae}
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x9d,0x09]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rcx]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x75,0x08,0x9d,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x9d,0x4a,0x7f]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x9d,0x8a,0x00,0x02,0x00,0x00]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x9d,0x4a,0x80]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd132ss xmm25, xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x9d,0x8a,0xfc,0xfd,0xff,0xff]
+ vfnmadd132ss xmm25, xmm1, dword ptr [rdx - 516]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0x40,0xac,0xc9]
+ vfnmadd213pd zmm17, zmm16, zmm9
+
+// CHECK: vfnmadd213pd zmm17 {k4}, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0x44,0xac,0xc9]
+ vfnmadd213pd zmm17 {k4}, zmm16, zmm9
+
+// CHECK: vfnmadd213pd zmm17 {k4} {z}, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0xc4,0xac,0xc9]
+ vfnmadd213pd zmm17 {k4} {z}, zmm16, zmm9
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xfd,0x10,0xac,0xc9]
+ vfnmadd213pd zmm17, zmm16, zmm9, {rn-sae}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xfd,0x50,0xac,0xc9]
+ vfnmadd213pd zmm17, zmm16, zmm9, {ru-sae}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xfd,0x30,0xac,0xc9]
+ vfnmadd213pd zmm17, zmm16, zmm9, {rd-sae}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xfd,0x70,0xac,0xc9]
+ vfnmadd213pd zmm17, zmm16, zmm9, {rz-sae}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xac,0x09]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rcx]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0xac,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xac,0x09]
+ vfnmadd213pd zmm17, zmm16, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xac,0x4a,0x7f]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xac,0x8a,0x00,0x20,0x00,0x00]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xac,0x4a,0x80]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0xac,0x8a,0xc0,0xdf,0xff,0xff]
+ vfnmadd213pd zmm17, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd213pd zmm17, zmm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xac,0x4a,0x7f]
+ vfnmadd213pd zmm17, zmm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xac,0x8a,0x00,0x04,0x00,0x00]
+ vfnmadd213pd zmm17, zmm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xac,0x4a,0x80]
+ vfnmadd213pd zmm17, zmm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd213pd zmm17, zmm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0xac,0x8a,0xf8,0xfb,0xff,0xff]
+ vfnmadd213pd zmm17, zmm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmm6
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0xd6]
+ vfnmadd213ps zmm26, zmm10, zmm6
+
+// CHECK: vfnmadd213ps zmm26 {k6}, zmm10, zmm6
+// CHECK: encoding: [0x62,0x62,0x2d,0x4e,0xac,0xd6]
+ vfnmadd213ps zmm26 {k6}, zmm10, zmm6
+
+// CHECK: vfnmadd213ps zmm26 {k6} {z}, zmm10, zmm6
+// CHECK: encoding: [0x62,0x62,0x2d,0xce,0xac,0xd6]
+ vfnmadd213ps zmm26 {k6} {z}, zmm10, zmm6
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0x62,0x2d,0x18,0xac,0xd6]
+ vfnmadd213ps zmm26, zmm10, zmm6, {rn-sae}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0xd6]
+ vfnmadd213ps zmm26, zmm10, zmm6, {ru-sae}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0x62,0x2d,0x38,0xac,0xd6]
+ vfnmadd213ps zmm26, zmm10, zmm6, {rd-sae}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0x62,0x2d,0x78,0xac,0xd6]
+ vfnmadd213ps zmm26, zmm10, zmm6, {rz-sae}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0x11]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rcx]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x2d,0x48,0xac,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0x11]
+ vfnmadd213ps zmm26, zmm10, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0x52,0x7f]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0x92,0x00,0x20,0x00,0x00]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0x52,0x80]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0xac,0x92,0xc0,0xdf,0xff,0xff]
+ vfnmadd213ps zmm26, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd213ps zmm26, zmm10, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0x52,0x7f]
+ vfnmadd213ps zmm26, zmm10, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0x92,0x00,0x02,0x00,0x00]
+ vfnmadd213ps zmm26, zmm10, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0x52,0x80]
+ vfnmadd213ps zmm26, zmm10, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd213ps zmm26, zmm10, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0xac,0x92,0xfc,0xfd,0xff,0xff]
+ vfnmadd213ps zmm26, zmm10, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd213sd xmm13, xmm27, xmm2
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0xea]
+ vfnmadd213sd xmm13, xmm27, xmm2
+
+// CHECK: vfnmadd213sd xmm13 {k7}, xmm27, xmm2
+// CHECK: encoding: [0x62,0x72,0xa5,0x07,0xad,0xea]
+ vfnmadd213sd xmm13 {k7}, xmm27, xmm2
+
+// CHECK: vfnmadd213sd xmm13 {k7} {z}, xmm27, xmm2
+// CHECK: encoding: [0x62,0x72,0xa5,0x87,0xad,0xea]
+ vfnmadd213sd xmm13 {k7} {z}, xmm27, xmm2
+
+// CHECK: vfnmadd213sd xmm13, xmm27, xmm2, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0xa5,0x10,0xad,0xea]
+ vfnmadd213sd xmm13, xmm27, xmm2, {rn-sae}
+
+// CHECK: vfnmadd213sd xmm13, xmm27, xmm2, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0xa5,0x50,0xad,0xea]
+ vfnmadd213sd xmm13, xmm27, xmm2, {ru-sae}
+
+// CHECK: vfnmadd213sd xmm13, xmm27, xmm2, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0xa5,0x30,0xad,0xea]
+ vfnmadd213sd xmm13, xmm27, xmm2, {rd-sae}
+
+// CHECK: vfnmadd213sd xmm13, xmm27, xmm2, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0xa5,0x70,0xad,0xea]
+ vfnmadd213sd xmm13, xmm27, xmm2, {rz-sae}
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0x29]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rcx]
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xa5,0x00,0xad,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0x6a,0x7f]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0xaa,0x00,0x04,0x00,0x00]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0x6a,0x80]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd213sd xmm13, xmm27, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0xa5,0x00,0xad,0xaa,0xf8,0xfb,0xff,0xff]
+ vfnmadd213sd xmm13, xmm27, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, xmm28
+// CHECK: encoding: [0x62,0x02,0x45,0x08,0xad,0xec]
+ vfnmadd213ss xmm29, xmm7, xmm28
+
+// CHECK: vfnmadd213ss xmm29 {k2}, xmm7, xmm28
+// CHECK: encoding: [0x62,0x02,0x45,0x0a,0xad,0xec]
+ vfnmadd213ss xmm29 {k2}, xmm7, xmm28
+
+// CHECK: vfnmadd213ss xmm29 {k2} {z}, xmm7, xmm28
+// CHECK: encoding: [0x62,0x02,0x45,0x8a,0xad,0xec]
+ vfnmadd213ss xmm29 {k2} {z}, xmm7, xmm28
+
+// CHECK: vfnmadd213ss xmm29, xmm7, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x45,0x18,0xad,0xec]
+ vfnmadd213ss xmm29, xmm7, xmm28, {rn-sae}
+
+// CHECK: vfnmadd213ss xmm29, xmm7, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x45,0x58,0xad,0xec]
+ vfnmadd213ss xmm29, xmm7, xmm28, {ru-sae}
+
+// CHECK: vfnmadd213ss xmm29, xmm7, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x45,0x38,0xad,0xec]
+ vfnmadd213ss xmm29, xmm7, xmm28, {rd-sae}
+
+// CHECK: vfnmadd213ss xmm29, xmm7, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x45,0x78,0xad,0xec]
+ vfnmadd213ss xmm29, xmm7, xmm28, {rz-sae}
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x45,0x08,0xad,0x29]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rcx]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x45,0x08,0xad,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x45,0x08,0xad,0x6a,0x7f]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x45,0x08,0xad,0xaa,0x00,0x02,0x00,0x00]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x45,0x08,0xad,0x6a,0x80]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd213ss xmm29, xmm7, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x45,0x08,0xad,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmadd213ss xmm29, xmm7, dword ptr [rdx - 516]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmm16
+// CHECK: encoding: [0x62,0x32,0xa5,0x48,0xbc,0xe0]
+ vfnmadd231pd zmm12, zmm11, zmm16
+
+// CHECK: vfnmadd231pd zmm12 {k6}, zmm11, zmm16
+// CHECK: encoding: [0x62,0x32,0xa5,0x4e,0xbc,0xe0]
+ vfnmadd231pd zmm12 {k6}, zmm11, zmm16
+
+// CHECK: vfnmadd231pd zmm12 {k6} {z}, zmm11, zmm16
+// CHECK: encoding: [0x62,0x32,0xa5,0xce,0xbc,0xe0]
+ vfnmadd231pd zmm12 {k6} {z}, zmm11, zmm16
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmm16, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0xa5,0x18,0xbc,0xe0]
+ vfnmadd231pd zmm12, zmm11, zmm16, {rn-sae}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmm16, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0xa5,0x58,0xbc,0xe0]
+ vfnmadd231pd zmm12, zmm11, zmm16, {ru-sae}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmm16, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0xa5,0x38,0xbc,0xe0]
+ vfnmadd231pd zmm12, zmm11, zmm16, {rd-sae}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmm16, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0xa5,0x78,0xbc,0xe0]
+ vfnmadd231pd zmm12, zmm11, zmm16, {rz-sae}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xa5,0x48,0xbc,0x21]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rcx]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xa5,0x48,0xbc,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x58,0xbc,0x21]
+ vfnmadd231pd zmm12, zmm11, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xa5,0x48,0xbc,0x62,0x7f]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xa5,0x48,0xbc,0xa2,0x00,0x20,0x00,0x00]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xa5,0x48,0xbc,0x62,0x80]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xa5,0x48,0xbc,0xa2,0xc0,0xdf,0xff,0xff]
+ vfnmadd231pd zmm12, zmm11, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd231pd zmm12, zmm11, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x58,0xbc,0x62,0x7f]
+ vfnmadd231pd zmm12, zmm11, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x58,0xbc,0xa2,0x00,0x04,0x00,0x00]
+ vfnmadd231pd zmm12, zmm11, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x58,0xbc,0x62,0x80]
+ vfnmadd231pd zmm12, zmm11, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd231pd zmm12, zmm11, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xa5,0x58,0xbc,0xa2,0xf8,0xfb,0xff,0xff]
+ vfnmadd231pd zmm12, zmm11, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmm24
+// CHECK: encoding: [0x62,0x12,0x45,0x48,0xbc,0xf0]
+ vfnmadd231ps zmm14, zmm7, zmm24
+
+// CHECK: vfnmadd231ps zmm14 {k5}, zmm7, zmm24
+// CHECK: encoding: [0x62,0x12,0x45,0x4d,0xbc,0xf0]
+ vfnmadd231ps zmm14 {k5}, zmm7, zmm24
+
+// CHECK: vfnmadd231ps zmm14 {k5} {z}, zmm7, zmm24
+// CHECK: encoding: [0x62,0x12,0x45,0xcd,0xbc,0xf0]
+ vfnmadd231ps zmm14 {k5} {z}, zmm7, zmm24
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x12,0x45,0x18,0xbc,0xf0]
+ vfnmadd231ps zmm14, zmm7, zmm24, {rn-sae}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x12,0x45,0x58,0xbc,0xf0]
+ vfnmadd231ps zmm14, zmm7, zmm24, {ru-sae}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x12,0x45,0x38,0xbc,0xf0]
+ vfnmadd231ps zmm14, zmm7, zmm24, {rd-sae}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x12,0x45,0x78,0xbc,0xf0]
+ vfnmadd231ps zmm14, zmm7, zmm24, {rz-sae}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x45,0x48,0xbc,0x31]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rcx]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x45,0x48,0xbc,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x45,0x58,0xbc,0x31]
+ vfnmadd231ps zmm14, zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x45,0x48,0xbc,0x72,0x7f]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x45,0x48,0xbc,0xb2,0x00,0x20,0x00,0x00]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x45,0x48,0xbc,0x72,0x80]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x45,0x48,0xbc,0xb2,0xc0,0xdf,0xff,0xff]
+ vfnmadd231ps zmm14, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd231ps zmm14, zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x45,0x58,0xbc,0x72,0x7f]
+ vfnmadd231ps zmm14, zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x45,0x58,0xbc,0xb2,0x00,0x02,0x00,0x00]
+ vfnmadd231ps zmm14, zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x45,0x58,0xbc,0x72,0x80]
+ vfnmadd231ps zmm14, zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd231ps zmm14, zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x45,0x58,0xbc,0xb2,0xfc,0xfd,0xff,0xff]
+ vfnmadd231ps zmm14, zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd231sd xmm6, xmm11, xmm18
+// CHECK: encoding: [0x62,0xb2,0xa5,0x08,0xbd,0xf2]
+ vfnmadd231sd xmm6, xmm11, xmm18
+
+// CHECK: vfnmadd231sd xmm6 {k3}, xmm11, xmm18
+// CHECK: encoding: [0x62,0xb2,0xa5,0x0b,0xbd,0xf2]
+ vfnmadd231sd xmm6 {k3}, xmm11, xmm18
+
+// CHECK: vfnmadd231sd xmm6 {k3} {z}, xmm11, xmm18
+// CHECK: encoding: [0x62,0xb2,0xa5,0x8b,0xbd,0xf2]
+ vfnmadd231sd xmm6 {k3} {z}, xmm11, xmm18
+
+// CHECK: vfnmadd231sd xmm6, xmm11, xmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0xa5,0x18,0xbd,0xf2]
+ vfnmadd231sd xmm6, xmm11, xmm18, {rn-sae}
+
+// CHECK: vfnmadd231sd xmm6, xmm11, xmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0xa5,0x58,0xbd,0xf2]
+ vfnmadd231sd xmm6, xmm11, xmm18, {ru-sae}
+
+// CHECK: vfnmadd231sd xmm6, xmm11, xmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0xa5,0x38,0xbd,0xf2]
+ vfnmadd231sd xmm6, xmm11, xmm18, {rd-sae}
+
+// CHECK: vfnmadd231sd xmm6, xmm11, xmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0xa5,0x78,0xbd,0xf2]
+ vfnmadd231sd xmm6, xmm11, xmm18, {rz-sae}
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbd,0x31]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rcx]
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa2,0xa1,0xbd,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbd,0xb2,0xf8,0x03,0x00,0x00]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbd,0xb2,0x00,0x04,0x00,0x00]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbd,0xb2,0x00,0xfc,0xff,0xff]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd231sd xmm6, xmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xa1,0xbd,0xb2,0xf8,0xfb,0xff,0xff]
+ vfnmadd231sd xmm6, xmm11, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, xmm17
+// CHECK: encoding: [0x62,0x22,0x6d,0x08,0xbd,0xd9]
+ vfnmadd231ss xmm27, xmm2, xmm17
+
+// CHECK: vfnmadd231ss xmm27 {k1}, xmm2, xmm17
+// CHECK: encoding: [0x62,0x22,0x6d,0x09,0xbd,0xd9]
+ vfnmadd231ss xmm27 {k1}, xmm2, xmm17
+
+// CHECK: vfnmadd231ss xmm27 {k1} {z}, xmm2, xmm17
+// CHECK: encoding: [0x62,0x22,0x6d,0x89,0xbd,0xd9]
+ vfnmadd231ss xmm27 {k1} {z}, xmm2, xmm17
+
+// CHECK: vfnmadd231ss xmm27, xmm2, xmm17, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x6d,0x18,0xbd,0xd9]
+ vfnmadd231ss xmm27, xmm2, xmm17, {rn-sae}
+
+// CHECK: vfnmadd231ss xmm27, xmm2, xmm17, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x6d,0x58,0xbd,0xd9]
+ vfnmadd231ss xmm27, xmm2, xmm17, {ru-sae}
+
+// CHECK: vfnmadd231ss xmm27, xmm2, xmm17, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x6d,0x38,0xbd,0xd9]
+ vfnmadd231ss xmm27, xmm2, xmm17, {rd-sae}
+
+// CHECK: vfnmadd231ss xmm27, xmm2, xmm17, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x6d,0x78,0xbd,0xd9]
+ vfnmadd231ss xmm27, xmm2, xmm17, {rz-sae}
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x6d,0x08,0xbd,0x19]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rcx]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x6d,0x08,0xbd,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x6d,0x08,0xbd,0x5a,0x7f]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x6d,0x08,0xbd,0x9a,0x00,0x02,0x00,0x00]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x6d,0x08,0xbd,0x5a,0x80]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd231ss xmm27, xmm2, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x6d,0x08,0xbd,0x9a,0xfc,0xfd,0xff,0xff]
+ vfnmadd231ss xmm27, xmm2, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmm6
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0xe6]
+ vfnmsub132pd zmm28, zmm5, zmm6
+
+// CHECK: vfnmsub132pd zmm28 {k2}, zmm5, zmm6
+// CHECK: encoding: [0x62,0x62,0xd5,0x4a,0x9e,0xe6]
+ vfnmsub132pd zmm28 {k2}, zmm5, zmm6
+
+// CHECK: vfnmsub132pd zmm28 {k2} {z}, zmm5, zmm6
+// CHECK: encoding: [0x62,0x62,0xd5,0xca,0x9e,0xe6]
+ vfnmsub132pd zmm28 {k2} {z}, zmm5, zmm6
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0x62,0xd5,0x18,0x9e,0xe6]
+ vfnmsub132pd zmm28, zmm5, zmm6, {rn-sae}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0xe6]
+ vfnmsub132pd zmm28, zmm5, zmm6, {ru-sae}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0x62,0xd5,0x38,0x9e,0xe6]
+ vfnmsub132pd zmm28, zmm5, zmm6, {rd-sae}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0x62,0xd5,0x78,0x9e,0xe6]
+ vfnmsub132pd zmm28, zmm5, zmm6, {rz-sae}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0x21]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rcx]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xd5,0x48,0x9e,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0x21]
+ vfnmsub132pd zmm28, zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0x62,0x7f]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0xa2,0x00,0x20,0x00,0x00]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0x62,0x80]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xd5,0x48,0x9e,0xa2,0xc0,0xdf,0xff,0xff]
+ vfnmsub132pd zmm28, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub132pd zmm28, zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0x62,0x7f]
+ vfnmsub132pd zmm28, zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0xa2,0x00,0x04,0x00,0x00]
+ vfnmsub132pd zmm28, zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0x62,0x80]
+ vfnmsub132pd zmm28, zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub132pd zmm28, zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xd5,0x58,0x9e,0xa2,0xf8,0xfb,0xff,0xff]
+ vfnmsub132pd zmm28, zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmm6
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0xe6]
+ vfnmsub132ps zmm4, zmm18, zmm6
+
+// CHECK: vfnmsub132ps zmm4 {k2}, zmm18, zmm6
+// CHECK: encoding: [0x62,0xf2,0x6d,0x42,0x9e,0xe6]
+ vfnmsub132ps zmm4 {k2}, zmm18, zmm6
+
+// CHECK: vfnmsub132ps zmm4 {k2} {z}, zmm18, zmm6
+// CHECK: encoding: [0x62,0xf2,0x6d,0xc2,0x9e,0xe6]
+ vfnmsub132ps zmm4 {k2} {z}, zmm18, zmm6
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x10,0x9e,0xe6]
+ vfnmsub132ps zmm4, zmm18, zmm6, {rn-sae}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0xe6]
+ vfnmsub132ps zmm4, zmm18, zmm6, {ru-sae}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x30,0x9e,0xe6]
+ vfnmsub132ps zmm4, zmm18, zmm6, {rd-sae}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x70,0x9e,0xe6]
+ vfnmsub132ps zmm4, zmm18, zmm6, {rz-sae}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0x21]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rcx]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x6d,0x40,0x9e,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0x21]
+ vfnmsub132ps zmm4, zmm18, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0x62,0x7f]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0xa2,0x00,0x20,0x00,0x00]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0x62,0x80]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x40,0x9e,0xa2,0xc0,0xdf,0xff,0xff]
+ vfnmsub132ps zmm4, zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub132ps zmm4, zmm18, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0x62,0x7f]
+ vfnmsub132ps zmm4, zmm18, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0xa2,0x00,0x02,0x00,0x00]
+ vfnmsub132ps zmm4, zmm18, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0x62,0x80]
+ vfnmsub132ps zmm4, zmm18, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub132ps zmm4, zmm18, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x50,0x9e,0xa2,0xfc,0xfd,0xff,0xff]
+ vfnmsub132ps zmm4, zmm18, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub132sd xmm26, xmm11, xmm13
+// CHECK: encoding: [0x62,0x42,0xa5,0x08,0x9f,0xd5]
+ vfnmsub132sd xmm26, xmm11, xmm13
+
+// CHECK: vfnmsub132sd xmm26 {k6}, xmm11, xmm13
+// CHECK: encoding: [0x62,0x42,0xa5,0x0e,0x9f,0xd5]
+ vfnmsub132sd xmm26 {k6}, xmm11, xmm13
+
+// CHECK: vfnmsub132sd xmm26 {k6} {z}, xmm11, xmm13
+// CHECK: encoding: [0x62,0x42,0xa5,0x8e,0x9f,0xd5]
+ vfnmsub132sd xmm26 {k6} {z}, xmm11, xmm13
+
+// CHECK: vfnmsub132sd xmm26, xmm11, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xa5,0x18,0x9f,0xd5]
+ vfnmsub132sd xmm26, xmm11, xmm13, {rn-sae}
+
+// CHECK: vfnmsub132sd xmm26, xmm11, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xa5,0x58,0x9f,0xd5]
+ vfnmsub132sd xmm26, xmm11, xmm13, {ru-sae}
+
+// CHECK: vfnmsub132sd xmm26, xmm11, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xa5,0x38,0x9f,0xd5]
+ vfnmsub132sd xmm26, xmm11, xmm13, {rd-sae}
+
+// CHECK: vfnmsub132sd xmm26, xmm11, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xa5,0x78,0x9f,0xd5]
+ vfnmsub132sd xmm26, xmm11, xmm13, {rz-sae}
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xa5,0x08,0x9f,0x11]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rcx]
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xa5,0x08,0x9f,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xa5,0x08,0x9f,0x52,0x7f]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xa5,0x08,0x9f,0x92,0x00,0x04,0x00,0x00]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xa5,0x08,0x9f,0x52,0x80]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub132sd xmm26, xmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xa5,0x08,0x9f,0x92,0xf8,0xfb,0xff,0xff]
+ vfnmsub132sd xmm26, xmm11, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, xmm24
+// CHECK: encoding: [0x62,0x82,0x4d,0x00,0x9f,0xf8]
+ vfnmsub132ss xmm23, xmm22, xmm24
+
+// CHECK: vfnmsub132ss xmm23 {k6}, xmm22, xmm24
+// CHECK: encoding: [0x62,0x82,0x4d,0x06,0x9f,0xf8]
+ vfnmsub132ss xmm23 {k6}, xmm22, xmm24
+
+// CHECK: vfnmsub132ss xmm23 {k6} {z}, xmm22, xmm24
+// CHECK: encoding: [0x62,0x82,0x4d,0x86,0x9f,0xf8]
+ vfnmsub132ss xmm23 {k6} {z}, xmm22, xmm24
+
+// CHECK: vfnmsub132ss xmm23, xmm22, xmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0x4d,0x10,0x9f,0xf8]
+ vfnmsub132ss xmm23, xmm22, xmm24, {rn-sae}
+
+// CHECK: vfnmsub132ss xmm23, xmm22, xmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0x4d,0x50,0x9f,0xf8]
+ vfnmsub132ss xmm23, xmm22, xmm24, {ru-sae}
+
+// CHECK: vfnmsub132ss xmm23, xmm22, xmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0x4d,0x30,0x9f,0xf8]
+ vfnmsub132ss xmm23, xmm22, xmm24, {rd-sae}
+
+// CHECK: vfnmsub132ss xmm23, xmm22, xmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0x4d,0x70,0x9f,0xf8]
+ vfnmsub132ss xmm23, xmm22, xmm24, {rz-sae}
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x9f,0x39]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rcx]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x4d,0x00,0x9f,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x9f,0x7a,0x7f]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x9f,0xba,0x00,0x02,0x00,0x00]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x9f,0x7a,0x80]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub132ss xmm23, xmm22, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x00,0x9f,0xba,0xfc,0xfd,0xff,0xff]
+ vfnmsub132ss xmm23, xmm22, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmm11
+// CHECK: encoding: [0x62,0xc2,0xed,0x40,0xae,0xfb]
+ vfnmsub213pd zmm23, zmm18, zmm11
+
+// CHECK: vfnmsub213pd zmm23 {k2}, zmm18, zmm11
+// CHECK: encoding: [0x62,0xc2,0xed,0x42,0xae,0xfb]
+ vfnmsub213pd zmm23 {k2}, zmm18, zmm11
+
+// CHECK: vfnmsub213pd zmm23 {k2} {z}, zmm18, zmm11
+// CHECK: encoding: [0x62,0xc2,0xed,0xc2,0xae,0xfb]
+ vfnmsub213pd zmm23 {k2} {z}, zmm18, zmm11
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x10,0xae,0xfb]
+ vfnmsub213pd zmm23, zmm18, zmm11, {rn-sae}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x50,0xae,0xfb]
+ vfnmsub213pd zmm23, zmm18, zmm11, {ru-sae}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x30,0xae,0xfb]
+ vfnmsub213pd zmm23, zmm18, zmm11, {rd-sae}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x70,0xae,0xfb]
+ vfnmsub213pd zmm23, zmm18, zmm11, {rz-sae}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xed,0x40,0xae,0x39]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rcx]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xed,0x40,0xae,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x50,0xae,0x39]
+ vfnmsub213pd zmm23, zmm18, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xed,0x40,0xae,0x7a,0x7f]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x40,0xae,0xba,0x00,0x20,0x00,0x00]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x40,0xae,0x7a,0x80]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xed,0x40,0xae,0xba,0xc0,0xdf,0xff,0xff]
+ vfnmsub213pd zmm23, zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub213pd zmm23, zmm18, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x50,0xae,0x7a,0x7f]
+ vfnmsub213pd zmm23, zmm18, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x50,0xae,0xba,0x00,0x04,0x00,0x00]
+ vfnmsub213pd zmm23, zmm18, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x50,0xae,0x7a,0x80]
+ vfnmsub213pd zmm23, zmm18, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub213pd zmm23, zmm18, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x50,0xae,0xba,0xf8,0xfb,0xff,0xff]
+ vfnmsub213pd zmm23, zmm18, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0xea]
+ vfnmsub213ps zmm21, zmm13, zmm2
+
+// CHECK: vfnmsub213ps zmm21 {k3}, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe2,0x15,0x4b,0xae,0xea]
+ vfnmsub213ps zmm21 {k3}, zmm13, zmm2
+
+// CHECK: vfnmsub213ps zmm21 {k3} {z}, zmm13, zmm2
+// CHECK: encoding: [0x62,0xe2,0x15,0xcb,0xae,0xea]
+ vfnmsub213ps zmm21 {k3} {z}, zmm13, zmm2
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xe2,0x15,0x18,0xae,0xea]
+ vfnmsub213ps zmm21, zmm13, zmm2, {rn-sae}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0xea]
+ vfnmsub213ps zmm21, zmm13, zmm2, {ru-sae}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xe2,0x15,0x38,0xae,0xea]
+ vfnmsub213ps zmm21, zmm13, zmm2, {rd-sae}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xe2,0x15,0x78,0xae,0xea]
+ vfnmsub213ps zmm21, zmm13, zmm2, {rz-sae}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0x29]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rcx]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x15,0x48,0xae,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0x29]
+ vfnmsub213ps zmm21, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0x6a,0x7f]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0xaa,0x00,0x20,0x00,0x00]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0x6a,0x80]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xae,0xaa,0xc0,0xdf,0xff,0xff]
+ vfnmsub213ps zmm21, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub213ps zmm21, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0x6a,0x7f]
+ vfnmsub213ps zmm21, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0xaa,0x00,0x02,0x00,0x00]
+ vfnmsub213ps zmm21, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0x6a,0x80]
+ vfnmsub213ps zmm21, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub213ps zmm21, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xae,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmsub213ps zmm21, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub213sd xmm29, xmm23, xmm28
+// CHECK: encoding: [0x62,0x02,0xc5,0x00,0xaf,0xec]
+ vfnmsub213sd xmm29, xmm23, xmm28
+
+// CHECK: vfnmsub213sd xmm29 {k3}, xmm23, xmm28
+// CHECK: encoding: [0x62,0x02,0xc5,0x03,0xaf,0xec]
+ vfnmsub213sd xmm29 {k3}, xmm23, xmm28
+
+// CHECK: vfnmsub213sd xmm29 {k3} {z}, xmm23, xmm28
+// CHECK: encoding: [0x62,0x02,0xc5,0x83,0xaf,0xec]
+ vfnmsub213sd xmm29 {k3} {z}, xmm23, xmm28
+
+// CHECK: vfnmsub213sd xmm29, xmm23, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0xc5,0x10,0xaf,0xec]
+ vfnmsub213sd xmm29, xmm23, xmm28, {rn-sae}
+
+// CHECK: vfnmsub213sd xmm29, xmm23, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0xc5,0x50,0xaf,0xec]
+ vfnmsub213sd xmm29, xmm23, xmm28, {ru-sae}
+
+// CHECK: vfnmsub213sd xmm29, xmm23, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0xc5,0x30,0xaf,0xec]
+ vfnmsub213sd xmm29, xmm23, xmm28, {rd-sae}
+
+// CHECK: vfnmsub213sd xmm29, xmm23, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0xc5,0x70,0xaf,0xec]
+ vfnmsub213sd xmm29, xmm23, xmm28, {rz-sae}
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xc5,0x00,0xaf,0x29]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rcx]
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xc5,0x00,0xaf,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xc5,0x00,0xaf,0x6a,0x7f]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xc5,0x00,0xaf,0xaa,0x00,0x04,0x00,0x00]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xc5,0x00,0xaf,0x6a,0x80]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub213sd xmm29, xmm23, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xc5,0x00,0xaf,0xaa,0xf8,0xfb,0xff,0xff]
+ vfnmsub213sd xmm29, xmm23, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, xmm12
+// CHECK: encoding: [0x62,0x52,0x1d,0x00,0xaf,0xf4]
+ vfnmsub213ss xmm14, xmm28, xmm12
+
+// CHECK: vfnmsub213ss xmm14 {k4}, xmm28, xmm12
+// CHECK: encoding: [0x62,0x52,0x1d,0x04,0xaf,0xf4]
+ vfnmsub213ss xmm14 {k4}, xmm28, xmm12
+
+// CHECK: vfnmsub213ss xmm14 {k4} {z}, xmm28, xmm12
+// CHECK: encoding: [0x62,0x52,0x1d,0x84,0xaf,0xf4]
+ vfnmsub213ss xmm14 {k4} {z}, xmm28, xmm12
+
+// CHECK: vfnmsub213ss xmm14, xmm28, xmm12, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x10,0xaf,0xf4]
+ vfnmsub213ss xmm14, xmm28, xmm12, {rn-sae}
+
+// CHECK: vfnmsub213ss xmm14, xmm28, xmm12, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x50,0xaf,0xf4]
+ vfnmsub213ss xmm14, xmm28, xmm12, {ru-sae}
+
+// CHECK: vfnmsub213ss xmm14, xmm28, xmm12, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x30,0xaf,0xf4]
+ vfnmsub213ss xmm14, xmm28, xmm12, {rd-sae}
+
+// CHECK: vfnmsub213ss xmm14, xmm28, xmm12, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x70,0xaf,0xf4]
+ vfnmsub213ss xmm14, xmm28, xmm12, {rz-sae}
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x00,0xaf,0x31]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rcx]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x1d,0x00,0xaf,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x1d,0x00,0xaf,0x72,0x7f]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x1d,0x00,0xaf,0xb2,0x00,0x02,0x00,0x00]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x1d,0x00,0xaf,0x72,0x80]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub213ss xmm14, xmm28, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x1d,0x00,0xaf,0xb2,0xfc,0xfd,0xff,0xff]
+ vfnmsub213ss xmm14, xmm28, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmm24
+// CHECK: encoding: [0x62,0x02,0xdd,0x48,0xbe,0xe8]
+ vfnmsub231pd zmm29, zmm4, zmm24
+
+// CHECK: vfnmsub231pd zmm29 {k7}, zmm4, zmm24
+// CHECK: encoding: [0x62,0x02,0xdd,0x4f,0xbe,0xe8]
+ vfnmsub231pd zmm29 {k7}, zmm4, zmm24
+
+// CHECK: vfnmsub231pd zmm29 {k7} {z}, zmm4, zmm24
+// CHECK: encoding: [0x62,0x02,0xdd,0xcf,0xbe,0xe8]
+ vfnmsub231pd zmm29 {k7} {z}, zmm4, zmm24
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0xdd,0x18,0xbe,0xe8]
+ vfnmsub231pd zmm29, zmm4, zmm24, {rn-sae}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0xdd,0x58,0xbe,0xe8]
+ vfnmsub231pd zmm29, zmm4, zmm24, {ru-sae}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0xdd,0x38,0xbe,0xe8]
+ vfnmsub231pd zmm29, zmm4, zmm24, {rd-sae}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0xdd,0x78,0xbe,0xe8]
+ vfnmsub231pd zmm29, zmm4, zmm24, {rz-sae}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0xbe,0x29]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rcx]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xdd,0x48,0xbe,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0xbe,0x29]
+ vfnmsub231pd zmm29, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0xbe,0x6a,0x7f]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0xbe,0xaa,0x00,0x20,0x00,0x00]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0xbe,0x6a,0x80]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0xbe,0xaa,0xc0,0xdf,0xff,0xff]
+ vfnmsub231pd zmm29, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub231pd zmm29, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0xbe,0x6a,0x7f]
+ vfnmsub231pd zmm29, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0xbe,0xaa,0x00,0x04,0x00,0x00]
+ vfnmsub231pd zmm29, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0xbe,0x6a,0x80]
+ vfnmsub231pd zmm29, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub231pd zmm29, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0xbe,0xaa,0xf8,0xfb,0xff,0xff]
+ vfnmsub231pd zmm29, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmm13
+// CHECK: encoding: [0x62,0x52,0x4d,0x48,0xbe,0xc5]
+ vfnmsub231ps zmm8, zmm6, zmm13
+
+// CHECK: vfnmsub231ps zmm8 {k2}, zmm6, zmm13
+// CHECK: encoding: [0x62,0x52,0x4d,0x4a,0xbe,0xc5]
+ vfnmsub231ps zmm8 {k2}, zmm6, zmm13
+
+// CHECK: vfnmsub231ps zmm8 {k2} {z}, zmm6, zmm13
+// CHECK: encoding: [0x62,0x52,0x4d,0xca,0xbe,0xc5]
+ vfnmsub231ps zmm8 {k2} {z}, zmm6, zmm13
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0x4d,0x18,0xbe,0xc5]
+ vfnmsub231ps zmm8, zmm6, zmm13, {rn-sae}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0x4d,0x58,0xbe,0xc5]
+ vfnmsub231ps zmm8, zmm6, zmm13, {ru-sae}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0x4d,0x38,0xbe,0xc5]
+ vfnmsub231ps zmm8, zmm6, zmm13, {rd-sae}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0x4d,0x78,0xbe,0xc5]
+ vfnmsub231ps zmm8, zmm6, zmm13, {rz-sae}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0xbe,0x01]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rcx]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x4d,0x48,0xbe,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0xbe,0x01]
+ vfnmsub231ps zmm8, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0xbe,0x42,0x7f]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0xbe,0x82,0x00,0x20,0x00,0x00]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0xbe,0x42,0x80]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0xbe,0x82,0xc0,0xdf,0xff,0xff]
+ vfnmsub231ps zmm8, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub231ps zmm8, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0xbe,0x42,0x7f]
+ vfnmsub231ps zmm8, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0xbe,0x82,0x00,0x02,0x00,0x00]
+ vfnmsub231ps zmm8, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0xbe,0x42,0x80]
+ vfnmsub231ps zmm8, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub231ps zmm8, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0xbe,0x82,0xfc,0xfd,0xff,0xff]
+ vfnmsub231ps zmm8, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub231sd xmm6, xmm20, xmm14
+// CHECK: encoding: [0x62,0xd2,0xdd,0x00,0xbf,0xf6]
+ vfnmsub231sd xmm6, xmm20, xmm14
+
+// CHECK: vfnmsub231sd xmm6 {k1}, xmm20, xmm14
+// CHECK: encoding: [0x62,0xd2,0xdd,0x01,0xbf,0xf6]
+ vfnmsub231sd xmm6 {k1}, xmm20, xmm14
+
+// CHECK: vfnmsub231sd xmm6 {k1} {z}, xmm20, xmm14
+// CHECK: encoding: [0x62,0xd2,0xdd,0x81,0xbf,0xf6]
+ vfnmsub231sd xmm6 {k1} {z}, xmm20, xmm14
+
+// CHECK: vfnmsub231sd xmm6, xmm20, xmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0xdd,0x10,0xbf,0xf6]
+ vfnmsub231sd xmm6, xmm20, xmm14, {rn-sae}
+
+// CHECK: vfnmsub231sd xmm6, xmm20, xmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0xdd,0x50,0xbf,0xf6]
+ vfnmsub231sd xmm6, xmm20, xmm14, {ru-sae}
+
+// CHECK: vfnmsub231sd xmm6, xmm20, xmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0xdd,0x30,0xbf,0xf6]
+ vfnmsub231sd xmm6, xmm20, xmm14, {rd-sae}
+
+// CHECK: vfnmsub231sd xmm6, xmm20, xmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0xdd,0x70,0xbf,0xf6]
+ vfnmsub231sd xmm6, xmm20, xmm14, {rz-sae}
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x00,0xbf,0x31]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rcx]
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xdd,0x00,0xbf,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x00,0xbf,0x72,0x7f]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x00,0xbf,0xb2,0x00,0x04,0x00,0x00]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x00,0xbf,0x72,0x80]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub231sd xmm6, xmm20, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x00,0xbf,0xb2,0xf8,0xfb,0xff,0xff]
+ vfnmsub231sd xmm6, xmm20, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, xmm10
+// CHECK: encoding: [0x62,0x42,0x15,0x08,0xbf,0xd2]
+ vfnmsub231ss xmm26, xmm13, xmm10
+
+// CHECK: vfnmsub231ss xmm26 {k4}, xmm13, xmm10
+// CHECK: encoding: [0x62,0x42,0x15,0x0c,0xbf,0xd2]
+ vfnmsub231ss xmm26 {k4}, xmm13, xmm10
+
+// CHECK: vfnmsub231ss xmm26 {k4} {z}, xmm13, xmm10
+// CHECK: encoding: [0x62,0x42,0x15,0x8c,0xbf,0xd2]
+ vfnmsub231ss xmm26 {k4} {z}, xmm13, xmm10
+
+// CHECK: vfnmsub231ss xmm26, xmm13, xmm10, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x15,0x18,0xbf,0xd2]
+ vfnmsub231ss xmm26, xmm13, xmm10, {rn-sae}
+
+// CHECK: vfnmsub231ss xmm26, xmm13, xmm10, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x15,0x58,0xbf,0xd2]
+ vfnmsub231ss xmm26, xmm13, xmm10, {ru-sae}
+
+// CHECK: vfnmsub231ss xmm26, xmm13, xmm10, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x15,0x38,0xbf,0xd2]
+ vfnmsub231ss xmm26, xmm13, xmm10, {rd-sae}
+
+// CHECK: vfnmsub231ss xmm26, xmm13, xmm10, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x15,0x78,0xbf,0xd2]
+ vfnmsub231ss xmm26, xmm13, xmm10, {rz-sae}
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xbf,0x11]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rcx]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x15,0x08,0xbf,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xbf,0x52,0x7f]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xbf,0x92,0x00,0x02,0x00,0x00]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xbf,0x52,0x80]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub231ss xmm26, xmm13, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x15,0x08,0xbf,0x92,0xfc,0xfd,0xff,0xff]
+ vfnmsub231ss xmm26, xmm13, dword ptr [rdx - 516]
+
+// CHECK: vgetexppd zmm14, zmm25
+// CHECK: encoding: [0x62,0x12,0xfd,0x48,0x42,0xf1]
+ vgetexppd zmm14, zmm25
+
+// CHECK: vgetexppd zmm14 {k5}, zmm25
+// CHECK: encoding: [0x62,0x12,0xfd,0x4d,0x42,0xf1]
+ vgetexppd zmm14 {k5}, zmm25
+
+// CHECK: vgetexppd zmm14 {k5} {z}, zmm25
+// CHECK: encoding: [0x62,0x12,0xfd,0xcd,0x42,0xf1]
+ vgetexppd zmm14 {k5} {z}, zmm25
+
+// CHECK: vgetexppd zmm14, zmm25, {sae}
+// CHECK: encoding: [0x62,0x12,0xfd,0x18,0x42,0xf1]
+ vgetexppd zmm14, zmm25, {sae}
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x31]
+ vgetexppd zmm14, zmmword ptr [rcx]
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x42,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vgetexppd zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vgetexppd zmm14, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x31]
+ vgetexppd zmm14, qword ptr [rcx]{1to8}
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x72,0x7f]
+ vgetexppd zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0xb2,0x00,0x20,0x00,0x00]
+ vgetexppd zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0x72,0x80]
+ vgetexppd zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vgetexppd zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x42,0xb2,0xc0,0xdf,0xff,0xff]
+ vgetexppd zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vgetexppd zmm14, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x72,0x7f]
+ vgetexppd zmm14, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vgetexppd zmm14, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0xb2,0x00,0x04,0x00,0x00]
+ vgetexppd zmm14, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vgetexppd zmm14, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0x72,0x80]
+ vgetexppd zmm14, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vgetexppd zmm14, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x42,0xb2,0xf8,0xfb,0xff,0xff]
+ vgetexppd zmm14, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vgetexpps zmm1, zmm6
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0xce]
+ vgetexpps zmm1, zmm6
+
+// CHECK: vgetexpps zmm1 {k3}, zmm6
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4b,0x42,0xce]
+ vgetexpps zmm1 {k3}, zmm6
+
+// CHECK: vgetexpps zmm1 {k3} {z}, zmm6
+// CHECK: encoding: [0x62,0xf2,0x7d,0xcb,0x42,0xce]
+ vgetexpps zmm1 {k3} {z}, zmm6
+
+// CHECK: vgetexpps zmm1, zmm6, {sae}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x18,0x42,0xce]
+ vgetexpps zmm1, zmm6, {sae}
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x09]
+ vgetexpps zmm1, zmmword ptr [rcx]
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x42,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vgetexpps zmm1, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vgetexpps zmm1, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x09]
+ vgetexpps zmm1, dword ptr [rcx]{1to16}
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x4a,0x7f]
+ vgetexpps zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x8a,0x00,0x20,0x00,0x00]
+ vgetexpps zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x4a,0x80]
+ vgetexpps zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vgetexpps zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x8a,0xc0,0xdf,0xff,0xff]
+ vgetexpps zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vgetexpps zmm1, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x4a,0x7f]
+ vgetexpps zmm1, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vgetexpps zmm1, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x8a,0x00,0x02,0x00,0x00]
+ vgetexpps zmm1, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vgetexpps zmm1, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x4a,0x80]
+ vgetexpps zmm1, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vgetexpps zmm1, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x8a,0xfc,0xfd,0xff,0xff]
+ vgetexpps zmm1, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vgetexpsd xmm2, xmm7, xmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0xd2]
+ vgetexpsd xmm2, xmm7, xmm2
+
+// CHECK: vgetexpsd xmm2 {k5}, xmm7, xmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0x0d,0x43,0xd2]
+ vgetexpsd xmm2 {k5}, xmm7, xmm2
+
+// CHECK: vgetexpsd xmm2 {k5} {z}, xmm7, xmm2
+// CHECK: encoding: [0x62,0xf2,0xc5,0x8d,0x43,0xd2]
+ vgetexpsd xmm2 {k5} {z}, xmm7, xmm2
+
+// CHECK: vgetexpsd xmm2, xmm7, xmm2, {sae}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x18,0x43,0xd2]
+ vgetexpsd xmm2, xmm7, xmm2, {sae}
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x11]
+ vgetexpsd xmm2, xmm7, qword ptr [rcx]
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xc5,0x08,0x43,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vgetexpsd xmm2, xmm7, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x52,0x7f]
+ vgetexpsd xmm2, xmm7, qword ptr [rdx + 1016]
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x92,0x00,0x04,0x00,0x00]
+ vgetexpsd xmm2, xmm7, qword ptr [rdx + 1024]
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x52,0x80]
+ vgetexpsd xmm2, xmm7, qword ptr [rdx - 1024]
+
+// CHECK: vgetexpsd xmm2, xmm7, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x08,0x43,0x92,0xf8,0xfb,0xff,0xff]
+ vgetexpsd xmm2, xmm7, qword ptr [rdx - 1032]
+
+// CHECK: vgetexpss xmm20, xmm1, xmm26
+// CHECK: encoding: [0x62,0x82,0x75,0x08,0x43,0xe2]
+ vgetexpss xmm20, xmm1, xmm26
+
+// CHECK: vgetexpss xmm20 {k7}, xmm1, xmm26
+// CHECK: encoding: [0x62,0x82,0x75,0x0f,0x43,0xe2]
+ vgetexpss xmm20 {k7}, xmm1, xmm26
+
+// CHECK: vgetexpss xmm20 {k7} {z}, xmm1, xmm26
+// CHECK: encoding: [0x62,0x82,0x75,0x8f,0x43,0xe2]
+ vgetexpss xmm20 {k7} {z}, xmm1, xmm26
+
+// CHECK: vgetexpss xmm20, xmm1, xmm26, {sae}
+// CHECK: encoding: [0x62,0x82,0x75,0x18,0x43,0xe2]
+ vgetexpss xmm20, xmm1, xmm26, {sae}
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x75,0x08,0x43,0x21]
+ vgetexpss xmm20, xmm1, dword ptr [rcx]
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x75,0x08,0x43,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vgetexpss xmm20, xmm1, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x75,0x08,0x43,0x62,0x7f]
+ vgetexpss xmm20, xmm1, dword ptr [rdx + 508]
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x75,0x08,0x43,0xa2,0x00,0x02,0x00,0x00]
+ vgetexpss xmm20, xmm1, dword ptr [rdx + 512]
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x75,0x08,0x43,0x62,0x80]
+ vgetexpss xmm20, xmm1, dword ptr [rdx - 512]
+
+// CHECK: vgetexpss xmm20, xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x75,0x08,0x43,0xa2,0xfc,0xfd,0xff,0xff]
+ vgetexpss xmm20, xmm1, dword ptr [rdx - 516]
+
+// CHECK: vgetmantpd zmm2, zmm26, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x26,0xd2,0xab]
+ vgetmantpd zmm2, zmm26, 171
+
+// CHECK: vgetmantpd zmm2 {k7}, zmm26, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0x4f,0x26,0xd2,0xab]
+ vgetmantpd zmm2 {k7}, zmm26, 171
+
+// CHECK: vgetmantpd zmm2 {k7} {z}, zmm26, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0xcf,0x26,0xd2,0xab]
+ vgetmantpd zmm2 {k7} {z}, zmm26, 171
+
+// CHECK: vgetmantpd zmm2, zmm26, {sae}, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0x18,0x26,0xd2,0xab]
+ vgetmantpd zmm2, zmm26, {sae}, 171
+
+// CHECK: vgetmantpd zmm2, zmm26, 123
+// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x26,0xd2,0x7b]
+ vgetmantpd zmm2, zmm26, 123
+
+// CHECK: vgetmantpd zmm2, zmm26, {sae}, 123
+// CHECK: encoding: [0x62,0x93,0xfd,0x18,0x26,0xd2,0x7b]
+ vgetmantpd zmm2, zmm26, {sae}, 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x26,0x11,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rcx], 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x26,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vgetmantpd zmm2, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x26,0x11,0x7b]
+ vgetmantpd zmm2, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x26,0x52,0x7f,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x26,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x26,0x52,0x80,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vgetmantpd zmm2, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x26,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vgetmantpd zmm2, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vgetmantpd zmm2, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x26,0x52,0x7f,0x7b]
+ vgetmantpd zmm2, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vgetmantpd zmm2, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x26,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vgetmantpd zmm2, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vgetmantpd zmm2, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x26,0x52,0x80,0x7b]
+ vgetmantpd zmm2, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vgetmantpd zmm2, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x26,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vgetmantpd zmm2, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vgetmantps zmm22, zmm28, 171
+// CHECK: encoding: [0x62,0x83,0x7d,0x48,0x26,0xf4,0xab]
+ vgetmantps zmm22, zmm28, 171
+
+// CHECK: vgetmantps zmm22 {k3}, zmm28, 171
+// CHECK: encoding: [0x62,0x83,0x7d,0x4b,0x26,0xf4,0xab]
+ vgetmantps zmm22 {k3}, zmm28, 171
+
+// CHECK: vgetmantps zmm22 {k3} {z}, zmm28, 171
+// CHECK: encoding: [0x62,0x83,0x7d,0xcb,0x26,0xf4,0xab]
+ vgetmantps zmm22 {k3} {z}, zmm28, 171
+
+// CHECK: vgetmantps zmm22, zmm28, {sae}, 171
+// CHECK: encoding: [0x62,0x83,0x7d,0x18,0x26,0xf4,0xab]
+ vgetmantps zmm22, zmm28, {sae}, 171
+
+// CHECK: vgetmantps zmm22, zmm28, 123
+// CHECK: encoding: [0x62,0x83,0x7d,0x48,0x26,0xf4,0x7b]
+ vgetmantps zmm22, zmm28, 123
+
+// CHECK: vgetmantps zmm22, zmm28, {sae}, 123
+// CHECK: encoding: [0x62,0x83,0x7d,0x18,0x26,0xf4,0x7b]
+ vgetmantps zmm22, zmm28, {sae}, 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x26,0x31,0x7b]
+ vgetmantps zmm22, zmmword ptr [rcx], 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xa3,0x7d,0x48,0x26,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vgetmantps zmm22, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vgetmantps zmm22, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x58,0x26,0x31,0x7b]
+ vgetmantps zmm22, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x26,0x72,0x7f,0x7b]
+ vgetmantps zmm22, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x26,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vgetmantps zmm22, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x26,0x72,0x80,0x7b]
+ vgetmantps zmm22, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vgetmantps zmm22, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x26,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vgetmantps zmm22, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vgetmantps zmm22, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x58,0x26,0x72,0x7f,0x7b]
+ vgetmantps zmm22, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vgetmantps zmm22, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x58,0x26,0xb2,0x00,0x02,0x00,0x00,0x7b]
+ vgetmantps zmm22, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vgetmantps zmm22, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x58,0x26,0x72,0x80,0x7b]
+ vgetmantps zmm22, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vgetmantps zmm22, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x58,0x26,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
+ vgetmantps zmm22, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vgetmantsd xmm3, xmm27, xmm8, 171
+// CHECK: encoding: [0x62,0xd3,0xa5,0x00,0x27,0xd8,0xab]
+ vgetmantsd xmm3, xmm27, xmm8, 171
+
+// CHECK: vgetmantsd xmm3 {k6}, xmm27, xmm8, 171
+// CHECK: encoding: [0x62,0xd3,0xa5,0x06,0x27,0xd8,0xab]
+ vgetmantsd xmm3 {k6}, xmm27, xmm8, 171
+
+// CHECK: vgetmantsd xmm3 {k6} {z}, xmm27, xmm8, 171
+// CHECK: encoding: [0x62,0xd3,0xa5,0x86,0x27,0xd8,0xab]
+ vgetmantsd xmm3 {k6} {z}, xmm27, xmm8, 171
+
+// CHECK: vgetmantsd xmm3, xmm27, xmm8, {sae}, 171
+// CHECK: encoding: [0x62,0xd3,0xa5,0x10,0x27,0xd8,0xab]
+ vgetmantsd xmm3, xmm27, xmm8, {sae}, 171
+
+// CHECK: vgetmantsd xmm3, xmm27, xmm8, 123
+// CHECK: encoding: [0x62,0xd3,0xa5,0x00,0x27,0xd8,0x7b]
+ vgetmantsd xmm3, xmm27, xmm8, 123
+
+// CHECK: vgetmantsd xmm3, xmm27, xmm8, {sae}, 123
+// CHECK: encoding: [0x62,0xd3,0xa5,0x10,0x27,0xd8,0x7b]
+ vgetmantsd xmm3, xmm27, xmm8, {sae}, 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x27,0x19,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rcx], 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xa5,0x00,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x27,0x5a,0x7f,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rdx + 1016], 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x27,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rdx + 1024], 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x27,0x5a,0x80,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rdx - 1024], 123
+
+// CHECK: vgetmantsd xmm3, xmm27, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0xf3,0xa5,0x00,0x27,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vgetmantsd xmm3, xmm27, qword ptr [rdx - 1032], 123
+
+// CHECK: vgetmantss xmm3, xmm2, xmm12, 171
+// CHECK: encoding: [0x62,0xd3,0x6d,0x08,0x27,0xdc,0xab]
+ vgetmantss xmm3, xmm2, xmm12, 171
+
+// CHECK: vgetmantss xmm3 {k7}, xmm2, xmm12, 171
+// CHECK: encoding: [0x62,0xd3,0x6d,0x0f,0x27,0xdc,0xab]
+ vgetmantss xmm3 {k7}, xmm2, xmm12, 171
+
+// CHECK: vgetmantss xmm3 {k7} {z}, xmm2, xmm12, 171
+// CHECK: encoding: [0x62,0xd3,0x6d,0x8f,0x27,0xdc,0xab]
+ vgetmantss xmm3 {k7} {z}, xmm2, xmm12, 171
+
+// CHECK: vgetmantss xmm3, xmm2, xmm12, {sae}, 171
+// CHECK: encoding: [0x62,0xd3,0x6d,0x18,0x27,0xdc,0xab]
+ vgetmantss xmm3, xmm2, xmm12, {sae}, 171
+
+// CHECK: vgetmantss xmm3, xmm2, xmm12, 123
+// CHECK: encoding: [0x62,0xd3,0x6d,0x08,0x27,0xdc,0x7b]
+ vgetmantss xmm3, xmm2, xmm12, 123
+
+// CHECK: vgetmantss xmm3, xmm2, xmm12, {sae}, 123
+// CHECK: encoding: [0x62,0xd3,0x6d,0x18,0x27,0xdc,0x7b]
+ vgetmantss xmm3, xmm2, xmm12, {sae}, 123
+
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x6d,0x08,0x27,0x19,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rcx], 123
+
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x6d,0x08,0x27,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0xf3,0x6d,0x08,0x27,0x5a,0x7f,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rdx + 508], 123
+
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0xf3,0x6d,0x08,0x27,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rdx + 512], 123
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0xf3,0x6d,0x08,0x27,0x5a,0x80,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rdx - 512], 123
+
+// CHECK: vgetmantss xmm3, xmm2, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0xf3,0x6d,0x08,0x27,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vgetmantss xmm3, xmm2, dword ptr [rdx - 516], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmm3, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0xdb,0xab]
+ vinsertf32x4 zmm11, zmm26, xmm3, 171
+
+// CHECK: vinsertf32x4 zmm11 {k1}, zmm26, xmm3, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0x41,0x18,0xdb,0xab]
+ vinsertf32x4 zmm11 {k1}, zmm26, xmm3, 171
+
+// CHECK: vinsertf32x4 zmm11 {k1} {z}, zmm26, xmm3, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0xc1,0x18,0xdb,0xab]
+ vinsertf32x4 zmm11 {k1} {z}, zmm26, xmm3, 171
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmm3, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0xdb,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmm3, 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0x19,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rcx], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x2d,0x40,0x18,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx + 2032], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0x5a,0x7f,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx + 2032], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx + 2048], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0x9a,0x00,0x08,0x00,0x00,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx + 2048], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx - 2048], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0x5a,0x80,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx - 2048], 123
+
+// CHECK: vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx - 2064], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x18,0x9a,0xf0,0xf7,0xff,0xff,0x7b]
+ vinsertf32x4 zmm11, zmm26, xmmword ptr [rdx - 2064], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymm7, 171
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0xcf,0xab]
+ vinsertf64x4 zmm1, zmm5, ymm7, 171
+
+// CHECK: vinsertf64x4 zmm1 {k1}, zmm5, ymm7, 171
+// CHECK: encoding: [0x62,0xf3,0xd5,0x49,0x1a,0xcf,0xab]
+ vinsertf64x4 zmm1 {k1}, zmm5, ymm7, 171
+
+// CHECK: vinsertf64x4 zmm1 {k1} {z}, zmm5, ymm7, 171
+// CHECK: encoding: [0x62,0xf3,0xd5,0xc9,0x1a,0xcf,0xab]
+ vinsertf64x4 zmm1 {k1} {z}, zmm5, ymm7, 171
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymm7, 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0xcf,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymm7, 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0x09,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rcx], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xd5,0x48,0x1a,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx + 4064], 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0x4a,0x7f,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx + 4064], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx + 4096], 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0x8a,0x00,0x10,0x00,0x00,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx + 4096], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx - 4096], 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0x4a,0x80,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx - 4096], 123
+
+// CHECK: vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx - 4128], 123
+// CHECK: encoding: [0x62,0xf3,0xd5,0x48,0x1a,0x8a,0xe0,0xef,0xff,0xff,0x7b]
+ vinsertf64x4 zmm1, zmm5, ymmword ptr [rdx - 4128], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmm10, 171
+// CHECK: encoding: [0x62,0xc3,0x15,0x48,0x38,0xca,0xab]
+ vinserti32x4 zmm17, zmm13, xmm10, 171
+
+// CHECK: vinserti32x4 zmm17 {k6}, zmm13, xmm10, 171
+// CHECK: encoding: [0x62,0xc3,0x15,0x4e,0x38,0xca,0xab]
+ vinserti32x4 zmm17 {k6}, zmm13, xmm10, 171
+
+// CHECK: vinserti32x4 zmm17 {k6} {z}, zmm13, xmm10, 171
+// CHECK: encoding: [0x62,0xc3,0x15,0xce,0x38,0xca,0xab]
+ vinserti32x4 zmm17 {k6} {z}, zmm13, xmm10, 171
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmm10, 123
+// CHECK: encoding: [0x62,0xc3,0x15,0x48,0x38,0xca,0x7b]
+ vinserti32x4 zmm17, zmm13, xmm10, 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0x15,0x48,0x38,0x09,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rcx], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xa3,0x15,0x48,0x38,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rdx + 2032], 123
+// CHECK: encoding: [0x62,0xe3,0x15,0x48,0x38,0x4a,0x7f,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rdx + 2032], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rdx + 2048], 123
+// CHECK: encoding: [0x62,0xe3,0x15,0x48,0x38,0x8a,0x00,0x08,0x00,0x00,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rdx + 2048], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rdx - 2048], 123
+// CHECK: encoding: [0x62,0xe3,0x15,0x48,0x38,0x4a,0x80,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rdx - 2048], 123
+
+// CHECK: vinserti32x4 zmm17, zmm13, xmmword ptr [rdx - 2064], 123
+// CHECK: encoding: [0x62,0xe3,0x15,0x48,0x38,0x8a,0xf0,0xf7,0xff,0xff,0x7b]
+ vinserti32x4 zmm17, zmm13, xmmword ptr [rdx - 2064], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymm4, 171
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0xe4,0xab]
+ vinserti64x4 zmm4, zmm25, ymm4, 171
+
+// CHECK: vinserti64x4 zmm4 {k1}, zmm25, ymm4, 171
+// CHECK: encoding: [0x62,0xf3,0xb5,0x41,0x3a,0xe4,0xab]
+ vinserti64x4 zmm4 {k1}, zmm25, ymm4, 171
+
+// CHECK: vinserti64x4 zmm4 {k1} {z}, zmm25, ymm4, 171
+// CHECK: encoding: [0x62,0xf3,0xb5,0xc1,0x3a,0xe4,0xab]
+ vinserti64x4 zmm4 {k1} {z}, zmm25, ymm4, 171
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymm4, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0xe4,0x7b]
+ vinserti64x4 zmm4, zmm25, ymm4, 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0x21,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rcx], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xb5,0x40,0x3a,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rdx + 4064], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0x62,0x7f,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rdx + 4064], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rdx + 4096], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0xa2,0x00,0x10,0x00,0x00,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rdx + 4096], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rdx - 4096], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0x62,0x80,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rdx - 4096], 123
+
+// CHECK: vinserti64x4 zmm4, zmm25, ymmword ptr [rdx - 4128], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x3a,0xa2,0xe0,0xef,0xff,0xff,0x7b]
+ vinserti64x4 zmm4, zmm25, ymmword ptr [rdx - 4128], 123
+
+// CHECK: vinsertps xmm30, xmm17, xmm5, 171
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0xf5,0xab]
+ vinsertps xmm30, xmm17, xmm5, 171
+
+// CHECK: vinsertps xmm30, xmm17, xmm5, 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0xf5,0x7b]
+ vinsertps xmm30, xmm17, xmm5, 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0x31,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rcx], 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x23,0x75,0x00,0x21,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0x72,0x7f,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rdx + 508], 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0xb2,0x00,0x02,0x00,0x00,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rdx + 512], 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0x72,0x80,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rdx - 512], 123
+
+// CHECK: vinsertps xmm30, xmm17, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x63,0x75,0x00,0x21,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
+ vinsertps xmm30, xmm17, dword ptr [rdx - 516], 123
+
+// CHECK: vmaxpd zmm30, zmm28, zmm20
+// CHECK: encoding: [0x62,0x21,0x9d,0x40,0x5f,0xf4]
+ vmaxpd zmm30, zmm28, zmm20
+
+// CHECK: vmaxpd zmm30 {k1}, zmm28, zmm20
+// CHECK: encoding: [0x62,0x21,0x9d,0x41,0x5f,0xf4]
+ vmaxpd zmm30 {k1}, zmm28, zmm20
+
+// CHECK: vmaxpd zmm30 {k1} {z}, zmm28, zmm20
+// CHECK: encoding: [0x62,0x21,0x9d,0xc1,0x5f,0xf4]
+ vmaxpd zmm30 {k1} {z}, zmm28, zmm20
+
+// CHECK: vmaxpd zmm30, zmm28, zmm20, {sae}
+// CHECK: encoding: [0x62,0x21,0x9d,0x10,0x5f,0xf4]
+ vmaxpd zmm30, zmm28, zmm20, {sae}
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x31]
+ vmaxpd zmm30, zmm28, zmmword ptr [rcx]
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x9d,0x40,0x5f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmaxpd zmm30, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmaxpd zmm30, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x31]
+ vmaxpd zmm30, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x7f]
+ vmaxpd zmm30, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0xb2,0x00,0x20,0x00,0x00]
+ vmaxpd zmm30, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x80]
+ vmaxpd zmm30, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vmaxpd zmm30, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0x5f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmaxpd zmm30, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vmaxpd zmm30, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x72,0x7f]
+ vmaxpd zmm30, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vmaxpd zmm30, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0x00,0x04,0x00,0x00]
+ vmaxpd zmm30, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vmaxpd zmm30, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0x72,0x80]
+ vmaxpd zmm30, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vmaxpd zmm30, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0x5f,0xb2,0xf8,0xfb,0xff,0xff]
+ vmaxpd zmm30, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vmaxps zmm25, zmm6, zmm20
+// CHECK: encoding: [0x62,0x21,0x4c,0x48,0x5f,0xcc]
+ vmaxps zmm25, zmm6, zmm20
+
+// CHECK: vmaxps zmm25 {k1}, zmm6, zmm20
+// CHECK: encoding: [0x62,0x21,0x4c,0x49,0x5f,0xcc]
+ vmaxps zmm25 {k1}, zmm6, zmm20
+
+// CHECK: vmaxps zmm25 {k1} {z}, zmm6, zmm20
+// CHECK: encoding: [0x62,0x21,0x4c,0xc9,0x5f,0xcc]
+ vmaxps zmm25 {k1} {z}, zmm6, zmm20
+
+// CHECK: vmaxps zmm25, zmm6, zmm20, {sae}
+// CHECK: encoding: [0x62,0x21,0x4c,0x18,0x5f,0xcc]
+ vmaxps zmm25, zmm6, zmm20, {sae}
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x09]
+ vmaxps zmm25, zmm6, zmmword ptr [rcx]
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x4c,0x48,0x5f,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmaxps zmm25, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmaxps zmm25, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x09]
+ vmaxps zmm25, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x7f]
+ vmaxps zmm25, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x8a,0x00,0x20,0x00,0x00]
+ vmaxps zmm25, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x80]
+ vmaxps zmm25, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vmaxps zmm25, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x4c,0x48,0x5f,0x8a,0xc0,0xdf,0xff,0xff]
+ vmaxps zmm25, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vmaxps zmm25, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x4a,0x7f]
+ vmaxps zmm25, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vmaxps zmm25, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0x00,0x02,0x00,0x00]
+ vmaxps zmm25, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vmaxps zmm25, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x4a,0x80]
+ vmaxps zmm25, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vmaxps zmm25, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x4c,0x58,0x5f,0x8a,0xfc,0xfd,0xff,0xff]
+ vmaxps zmm25, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vmaxsd xmm20, xmm19, xmm25
+// CHECK: encoding: [0x62,0x81,0xe7,0x00,0x5f,0xe1]
+ vmaxsd xmm20, xmm19, xmm25
+
+// CHECK: vmaxsd xmm20 {k3}, xmm19, xmm25
+// CHECK: encoding: [0x62,0x81,0xe7,0x03,0x5f,0xe1]
+ vmaxsd xmm20 {k3}, xmm19, xmm25
+
+// CHECK: vmaxsd xmm20 {k3} {z}, xmm19, xmm25
+// CHECK: encoding: [0x62,0x81,0xe7,0x83,0x5f,0xe1]
+ vmaxsd xmm20 {k3} {z}, xmm19, xmm25
+
+// CHECK: vmaxsd xmm20, xmm19, xmm25, {sae}
+// CHECK: encoding: [0x62,0x81,0xe7,0x10,0x5f,0xe1]
+ vmaxsd xmm20, xmm19, xmm25, {sae}
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xe7,0x00,0x5f,0x21]
+ vmaxsd xmm20, xmm19, qword ptr [rcx]
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xe7,0x00,0x5f,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vmaxsd xmm20, xmm19, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xe7,0x00,0x5f,0x62,0x7f]
+ vmaxsd xmm20, xmm19, qword ptr [rdx + 1016]
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xe7,0x00,0x5f,0xa2,0x00,0x04,0x00,0x00]
+ vmaxsd xmm20, xmm19, qword ptr [rdx + 1024]
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xe7,0x00,0x5f,0x62,0x80]
+ vmaxsd xmm20, xmm19, qword ptr [rdx - 1024]
+
+// CHECK: vmaxsd xmm20, xmm19, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xe7,0x00,0x5f,0xa2,0xf8,0xfb,0xff,0xff]
+ vmaxsd xmm20, xmm19, qword ptr [rdx - 1032]
+
+// CHECK: vmaxss xmm8, xmm4, xmm6
+// CHECK: encoding: [0xc5,0x5a,0x5f,0xc6]
+ vmaxss xmm8, xmm4, xmm6
+
+// CHECK: vmaxss xmm8 {k4}, xmm4, xmm6
+// CHECK: encoding: [0x62,0x71,0x5e,0x0c,0x5f,0xc6]
+ vmaxss xmm8 {k4}, xmm4, xmm6
+
+// CHECK: vmaxss xmm8 {k4} {z}, xmm4, xmm6
+// CHECK: encoding: [0x62,0x71,0x5e,0x8c,0x5f,0xc6]
+ vmaxss xmm8 {k4} {z}, xmm4, xmm6
+
+// CHECK: vmaxss xmm8, xmm4, xmm6, {sae}
+// CHECK: encoding: [0x62,0x71,0x5e,0x18,0x5f,0xc6]
+ vmaxss xmm8, xmm4, xmm6, {sae}
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0x5a,0x5f,0x01]
+ vmaxss xmm8, xmm4, dword ptr [rcx]
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x21,0x5a,0x5f,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmaxss xmm8, xmm4, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0x5a,0x5f,0x82,0xfc,0x01,0x00,0x00]
+ vmaxss xmm8, xmm4, dword ptr [rdx + 508]
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0x5a,0x5f,0x82,0x00,0x02,0x00,0x00]
+ vmaxss xmm8, xmm4, dword ptr [rdx + 512]
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0x5a,0x5f,0x82,0x00,0xfe,0xff,0xff]
+ vmaxss xmm8, xmm4, dword ptr [rdx - 512]
+
+// CHECK: vmaxss xmm8, xmm4, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0x5a,0x5f,0x82,0xfc,0xfd,0xff,0xff]
+ vmaxss xmm8, xmm4, dword ptr [rdx - 516]
+
+// CHECK: vminpd zmm6, zmm6, zmm22
+// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x5d,0xf6]
+ vminpd zmm6, zmm6, zmm22
+
+// CHECK: vminpd zmm6 {k7}, zmm6, zmm22
+// CHECK: encoding: [0x62,0xb1,0xcd,0x4f,0x5d,0xf6]
+ vminpd zmm6 {k7}, zmm6, zmm22
+
+// CHECK: vminpd zmm6 {k7} {z}, zmm6, zmm22
+// CHECK: encoding: [0x62,0xb1,0xcd,0xcf,0x5d,0xf6]
+ vminpd zmm6 {k7} {z}, zmm6, zmm22
+
+// CHECK: vminpd zmm6, zmm6, zmm22, {sae}
+// CHECK: encoding: [0x62,0xb1,0xcd,0x18,0x5d,0xf6]
+ vminpd zmm6, zmm6, zmm22, {sae}
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x31]
+ vminpd zmm6, zmm6, zmmword ptr [rcx]
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x5d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vminpd zmm6, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vminpd zmm6, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x31]
+ vminpd zmm6, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x7f]
+ vminpd zmm6, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0xb2,0x00,0x20,0x00,0x00]
+ vminpd zmm6, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x80]
+ vminpd zmm6, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vminpd zmm6, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x5d,0xb2,0xc0,0xdf,0xff,0xff]
+ vminpd zmm6, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vminpd zmm6, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x72,0x7f]
+ vminpd zmm6, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vminpd zmm6, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0x00,0x04,0x00,0x00]
+ vminpd zmm6, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vminpd zmm6, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x72,0x80]
+ vminpd zmm6, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vminpd zmm6, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x5d,0xb2,0xf8,0xfb,0xff,0xff]
+ vminpd zmm6, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vminps zmm3, zmm3, zmm7
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0xdf]
+ vminps zmm3, zmm3, zmm7
+
+// CHECK: vminps zmm3 {k3}, zmm3, zmm7
+// CHECK: encoding: [0x62,0xf1,0x64,0x4b,0x5d,0xdf]
+ vminps zmm3 {k3}, zmm3, zmm7
+
+// CHECK: vminps zmm3 {k3} {z}, zmm3, zmm7
+// CHECK: encoding: [0x62,0xf1,0x64,0xcb,0x5d,0xdf]
+ vminps zmm3 {k3} {z}, zmm3, zmm7
+
+// CHECK: vminps zmm3, zmm3, zmm7, {sae}
+// CHECK: encoding: [0x62,0xf1,0x64,0x18,0x5d,0xdf]
+ vminps zmm3, zmm3, zmm7, {sae}
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x19]
+ vminps zmm3, zmm3, zmmword ptr [rcx]
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x64,0x48,0x5d,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vminps zmm3, zmm3, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vminps zmm3, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x19]
+ vminps zmm3, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x7f]
+ vminps zmm3, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x9a,0x00,0x20,0x00,0x00]
+ vminps zmm3, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x80]
+ vminps zmm3, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vminps zmm3, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x5d,0x9a,0xc0,0xdf,0xff,0xff]
+ vminps zmm3, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vminps zmm3, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x5a,0x7f]
+ vminps zmm3, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vminps zmm3, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0x00,0x02,0x00,0x00]
+ vminps zmm3, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vminps zmm3, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x5a,0x80]
+ vminps zmm3, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vminps zmm3, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x5d,0x9a,0xfc,0xfd,0xff,0xff]
+ vminps zmm3, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vminsd xmm5, xmm25, xmm26
+// CHECK: encoding: [0x62,0x91,0xb7,0x00,0x5d,0xea]
+ vminsd xmm5, xmm25, xmm26
+
+// CHECK: vminsd xmm5 {k3}, xmm25, xmm26
+// CHECK: encoding: [0x62,0x91,0xb7,0x03,0x5d,0xea]
+ vminsd xmm5 {k3}, xmm25, xmm26
+
+// CHECK: vminsd xmm5 {k3} {z}, xmm25, xmm26
+// CHECK: encoding: [0x62,0x91,0xb7,0x83,0x5d,0xea]
+ vminsd xmm5 {k3} {z}, xmm25, xmm26
+
+// CHECK: vminsd xmm5, xmm25, xmm26, {sae}
+// CHECK: encoding: [0x62,0x91,0xb7,0x10,0x5d,0xea]
+ vminsd xmm5, xmm25, xmm26, {sae}
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xb7,0x00,0x5d,0x29]
+ vminsd xmm5, xmm25, qword ptr [rcx]
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xb7,0x00,0x5d,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vminsd xmm5, xmm25, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xb7,0x00,0x5d,0x6a,0x7f]
+ vminsd xmm5, xmm25, qword ptr [rdx + 1016]
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xb7,0x00,0x5d,0xaa,0x00,0x04,0x00,0x00]
+ vminsd xmm5, xmm25, qword ptr [rdx + 1024]
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xb7,0x00,0x5d,0x6a,0x80]
+ vminsd xmm5, xmm25, qword ptr [rdx - 1024]
+
+// CHECK: vminsd xmm5, xmm25, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xb7,0x00,0x5d,0xaa,0xf8,0xfb,0xff,0xff]
+ vminsd xmm5, xmm25, qword ptr [rdx - 1032]
+
+// CHECK: vminss xmm10, xmm17, xmm19
+// CHECK: encoding: [0x62,0x31,0x76,0x00,0x5d,0xd3]
+ vminss xmm10, xmm17, xmm19
+
+// CHECK: vminss xmm10 {k5}, xmm17, xmm19
+// CHECK: encoding: [0x62,0x31,0x76,0x05,0x5d,0xd3]
+ vminss xmm10 {k5}, xmm17, xmm19
+
+// CHECK: vminss xmm10 {k5} {z}, xmm17, xmm19
+// CHECK: encoding: [0x62,0x31,0x76,0x85,0x5d,0xd3]
+ vminss xmm10 {k5} {z}, xmm17, xmm19
+
+// CHECK: vminss xmm10, xmm17, xmm19, {sae}
+// CHECK: encoding: [0x62,0x31,0x76,0x10,0x5d,0xd3]
+ vminss xmm10, xmm17, xmm19, {sae}
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x76,0x00,0x5d,0x11]
+ vminss xmm10, xmm17, dword ptr [rcx]
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x76,0x00,0x5d,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vminss xmm10, xmm17, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x76,0x00,0x5d,0x52,0x7f]
+ vminss xmm10, xmm17, dword ptr [rdx + 508]
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x76,0x00,0x5d,0x92,0x00,0x02,0x00,0x00]
+ vminss xmm10, xmm17, dword ptr [rdx + 512]
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x76,0x00,0x5d,0x52,0x80]
+ vminss xmm10, xmm17, dword ptr [rdx - 512]
+
+// CHECK: vminss xmm10, xmm17, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x76,0x00,0x5d,0x92,0xfc,0xfd,0xff,0xff]
+ vminss xmm10, xmm17, dword ptr [rdx - 516]
+
+// CHECK: vmovapd zmm7, zmm14
+// CHECK: encoding: [0x62,0xd1,0xfd,0x48,0x28,0xfe]
+ vmovapd zmm7, zmm14
+
+// CHECK: vmovapd zmm7 {k5}, zmm14
+// CHECK: encoding: [0x62,0xd1,0xfd,0x4d,0x28,0xfe]
+ vmovapd zmm7 {k5}, zmm14
+
+// CHECK: vmovapd zmm7 {k5} {z}, zmm14
+// CHECK: encoding: [0x62,0xd1,0xfd,0xcd,0x28,0xfe]
+ vmovapd zmm7 {k5} {z}, zmm14
+
+// CHECK: vmovapd zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x28,0x39]
+ vmovapd zmm7, zmmword ptr [rcx]
+
+// CHECK: vmovapd zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xfd,0x48,0x28,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vmovapd zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovapd zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x28,0x7a,0x7f]
+ vmovapd zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovapd zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x28,0xba,0x00,0x20,0x00,0x00]
+ vmovapd zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovapd zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x28,0x7a,0x80]
+ vmovapd zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovapd zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0x28,0xba,0xc0,0xdf,0xff,0xff]
+ vmovapd zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovaps zmm5, zmm9
+// CHECK: encoding: [0x62,0xd1,0x7c,0x48,0x28,0xe9]
+ vmovaps zmm5, zmm9
+
+// CHECK: vmovaps zmm5 {k1}, zmm9
+// CHECK: encoding: [0x62,0xd1,0x7c,0x49,0x28,0xe9]
+ vmovaps zmm5 {k1}, zmm9
+
+// CHECK: vmovaps zmm5 {k1} {z}, zmm9
+// CHECK: encoding: [0x62,0xd1,0x7c,0xc9,0x28,0xe9]
+ vmovaps zmm5 {k1} {z}, zmm9
+
+// CHECK: vmovaps zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x28,0x29]
+ vmovaps zmm5, zmmword ptr [rcx]
+
+// CHECK: vmovaps zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x28,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovaps zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovaps zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x28,0x6a,0x7f]
+ vmovaps zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovaps zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x28,0xaa,0x00,0x20,0x00,0x00]
+ vmovaps zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovaps zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x28,0x6a,0x80]
+ vmovaps zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovaps zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x28,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovaps zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovd xmm26, eax
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0xd0]
+ vmovd xmm26, eax
+
+// CHECK: vmovd xmm26, ebp
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0xd5]
+ vmovd xmm26, ebp
+
+// CHECK: vmovd xmm26, r13d
+// CHECK: encoding: [0x62,0x41,0x7d,0x08,0x6e,0xd5]
+ vmovd xmm26, r13d
+
+// CHECK: vmovd xmm26, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x11]
+ vmovd xmm26, dword ptr [rcx]
+
+// CHECK: vmovd xmm26, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x7d,0x08,0x6e,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovd xmm26, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovd xmm26, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x52,0x7f]
+ vmovd xmm26, dword ptr [rdx + 508]
+
+// CHECK: vmovd xmm26, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x92,0x00,0x02,0x00,0x00]
+ vmovd xmm26, dword ptr [rdx + 512]
+
+// CHECK: vmovd xmm26, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x52,0x80]
+ vmovd xmm26, dword ptr [rdx - 512]
+
+// CHECK: vmovd xmm26, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x7d,0x08,0x6e,0x92,0xfc,0xfd,0xff,0xff]
+ vmovd xmm26, dword ptr [rdx - 516]
+
+// CHECK: vmovd dword ptr [rcx], xmm5
+// CHECK: encoding: [0xc5,0xf9,0x7e,0x29]
+ vmovd dword ptr [rcx], xmm5
+
+// CHECK: vmovd dword ptr [rax + 8*r14 + 291], xmm5
+// CHECK: encoding: [0xc4,0xa1,0x79,0x7e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovd dword ptr [rax + 8*r14 + 291], xmm5
+
+// CHECK: vmovd dword ptr [rdx + 508], xmm5
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0xfc,0x01,0x00,0x00]
+ vmovd dword ptr [rdx + 508], xmm5
+
+// CHECK: vmovd dword ptr [rdx + 512], xmm5
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0x00,0x02,0x00,0x00]
+ vmovd dword ptr [rdx + 512], xmm5
+
+// CHECK: vmovd dword ptr [rdx - 512], xmm5
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0x00,0xfe,0xff,0xff]
+ vmovd dword ptr [rdx - 512], xmm5
+
+// CHECK: vmovd dword ptr [rdx - 516], xmm5
+// CHECK: encoding: [0xc5,0xf9,0x7e,0xaa,0xfc,0xfd,0xff,0xff]
+ vmovd dword ptr [rdx - 516], xmm5
+
+// CHECK: vmovddup zmm5, zmm29
+// CHECK: encoding: [0x62,0x91,0xff,0x48,0x12,0xed]
+ vmovddup zmm5, zmm29
+
+// CHECK: vmovddup zmm5 {k4}, zmm29
+// CHECK: encoding: [0x62,0x91,0xff,0x4c,0x12,0xed]
+ vmovddup zmm5 {k4}, zmm29
+
+// CHECK: vmovddup zmm5 {k4} {z}, zmm29
+// CHECK: encoding: [0x62,0x91,0xff,0xcc,0x12,0xed]
+ vmovddup zmm5 {k4} {z}, zmm29
+
+// CHECK: vmovddup zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x29]
+ vmovddup zmm5, zmmword ptr [rcx]
+
+// CHECK: vmovddup zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xff,0x48,0x12,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovddup zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovddup zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x6a,0x7f]
+ vmovddup zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovddup zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0xaa,0x00,0x20,0x00,0x00]
+ vmovddup zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovddup zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x6a,0x80]
+ vmovddup zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovddup zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovddup zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqa32 zmm22, zmm18
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x6f,0xf2]
+ vmovdqa32 zmm22, zmm18
+
+// CHECK: vmovdqa32 zmm22 {k6}, zmm18
+// CHECK: encoding: [0x62,0xa1,0x7d,0x4e,0x6f,0xf2]
+ vmovdqa32 zmm22 {k6}, zmm18
+
+// CHECK: vmovdqa32 zmm22 {k6} {z}, zmm18
+// CHECK: encoding: [0x62,0xa1,0x7d,0xce,0x6f,0xf2]
+ vmovdqa32 zmm22 {k6} {z}, zmm18
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x31]
+ vmovdqa32 zmm22, zmmword ptr [rcx]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x6f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x7f]
+ vmovdqa32 zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0x00,0x20,0x00,0x00]
+ vmovdqa32 zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x80]
+ vmovdqa32 zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovdqa32 zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqa64 zmm22, zmm12
+// CHECK: encoding: [0x62,0xc1,0xfd,0x48,0x6f,0xf4]
+ vmovdqa64 zmm22, zmm12
+
+// CHECK: vmovdqa64 zmm22 {k5}, zmm12
+// CHECK: encoding: [0x62,0xc1,0xfd,0x4d,0x6f,0xf4]
+ vmovdqa64 zmm22 {k5}, zmm12
+
+// CHECK: vmovdqa64 zmm22 {k5} {z}, zmm12
+// CHECK: encoding: [0x62,0xc1,0xfd,0xcd,0x6f,0xf4]
+ vmovdqa64 zmm22 {k5} {z}, zmm12
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x6f,0x31]
+ vmovdqa64 zmm22, zmmword ptr [rcx]
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x6f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqa64 zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x6f,0x72,0x7f]
+ vmovdqa64 zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x6f,0xb2,0x00,0x20,0x00,0x00]
+ vmovdqa64 zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x6f,0x72,0x80]
+ vmovdqa64 zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqa64 zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x6f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovdqa64 zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqu32 zmm5, zmm24
+// CHECK: encoding: [0x62,0x91,0x7e,0x48,0x6f,0xe8]
+ vmovdqu32 zmm5, zmm24
+
+// CHECK: vmovdqu32 zmm5 {k5}, zmm24
+// CHECK: encoding: [0x62,0x91,0x7e,0x4d,0x6f,0xe8]
+ vmovdqu32 zmm5 {k5}, zmm24
+
+// CHECK: vmovdqu32 zmm5 {k5} {z}, zmm24
+// CHECK: encoding: [0x62,0x91,0x7e,0xcd,0x6f,0xe8]
+ vmovdqu32 zmm5 {k5} {z}, zmm24
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x29]
+ vmovdqu32 zmm5, zmmword ptr [rcx]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x48,0x6f,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqu32 zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x6a,0x7f]
+ vmovdqu32 zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0xaa,0x00,0x20,0x00,0x00]
+ vmovdqu32 zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x6a,0x80]
+ vmovdqu32 zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovdqu32 zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqu64 zmm6, zmm15
+// CHECK: encoding: [0x62,0xd1,0xfe,0x48,0x6f,0xf7]
+ vmovdqu64 zmm6, zmm15
+
+// CHECK: vmovdqu64 zmm6 {k3}, zmm15
+// CHECK: encoding: [0x62,0xd1,0xfe,0x4b,0x6f,0xf7]
+ vmovdqu64 zmm6 {k3}, zmm15
+
+// CHECK: vmovdqu64 zmm6 {k3} {z}, zmm15
+// CHECK: encoding: [0x62,0xd1,0xfe,0xcb,0x6f,0xf7]
+ vmovdqu64 zmm6 {k3} {z}, zmm15
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x6f,0x31]
+ vmovdqu64 zmm6, zmmword ptr [rcx]
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xfe,0x48,0x6f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqu64 zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x6f,0x72,0x7f]
+ vmovdqu64 zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x6f,0xb2,0x00,0x20,0x00,0x00]
+ vmovdqu64 zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x6f,0x72,0x80]
+ vmovdqu64 zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqu64 zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x6f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovdqu64 zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovhlps xmm18, xmm1, xmm23
+// CHECK: encoding: [0x62,0xa1,0x74,0x08,0x12,0xd7]
+ vmovhlps xmm18, xmm1, xmm23
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x16,0x19]
+ vmovhpd xmm19, xmm28, qword ptr [rcx]
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x9d,0x00,0x16,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmovhpd xmm19, xmm28, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x16,0x5a,0x7f]
+ vmovhpd xmm19, xmm28, qword ptr [rdx + 1016]
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x16,0x9a,0x00,0x04,0x00,0x00]
+ vmovhpd xmm19, xmm28, qword ptr [rdx + 1024]
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x16,0x5a,0x80]
+ vmovhpd xmm19, xmm28, qword ptr [rdx - 1024]
+
+// CHECK: vmovhpd xmm19, xmm28, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x16,0x9a,0xf8,0xfb,0xff,0xff]
+ vmovhpd xmm19, xmm28, qword ptr [rdx - 1032]
+
+// CHECK: vmovhpd qword ptr [rcx], xmm15
+// CHECK: encoding: [0xc5,0x79,0x17,0x39]
+ vmovhpd qword ptr [rcx], xmm15
+
+// CHECK: vmovhpd qword ptr [rax + 8*r14 + 291], xmm15
+// CHECK: encoding: [0xc4,0x21,0x79,0x17,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vmovhpd qword ptr [rax + 8*r14 + 291], xmm15
+
+// CHECK: vmovhpd qword ptr [rdx + 1016], xmm15
+// CHECK: encoding: [0xc5,0x79,0x17,0xba,0xf8,0x03,0x00,0x00]
+ vmovhpd qword ptr [rdx + 1016], xmm15
+
+// CHECK: vmovhpd qword ptr [rdx + 1024], xmm15
+// CHECK: encoding: [0xc5,0x79,0x17,0xba,0x00,0x04,0x00,0x00]
+ vmovhpd qword ptr [rdx + 1024], xmm15
+
+// CHECK: vmovhpd qword ptr [rdx - 1024], xmm15
+// CHECK: encoding: [0xc5,0x79,0x17,0xba,0x00,0xfc,0xff,0xff]
+ vmovhpd qword ptr [rdx - 1024], xmm15
+
+// CHECK: vmovhpd qword ptr [rdx - 1032], xmm15
+// CHECK: encoding: [0xc5,0x79,0x17,0xba,0xf8,0xfb,0xff,0xff]
+ vmovhpd qword ptr [rdx - 1032], xmm15
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x74,0x00,0x16,0x21]
+ vmovhps xmm20, xmm17, qword ptr [rcx]
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x74,0x00,0x16,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vmovhps xmm20, xmm17, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0x74,0x00,0x16,0x62,0x7f]
+ vmovhps xmm20, xmm17, qword ptr [rdx + 1016]
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0x74,0x00,0x16,0xa2,0x00,0x04,0x00,0x00]
+ vmovhps xmm20, xmm17, qword ptr [rdx + 1024]
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0x74,0x00,0x16,0x62,0x80]
+ vmovhps xmm20, xmm17, qword ptr [rdx - 1024]
+
+// CHECK: vmovhps xmm20, xmm17, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0x74,0x00,0x16,0xa2,0xf8,0xfb,0xff,0xff]
+ vmovhps xmm20, xmm17, qword ptr [rdx - 1032]
+
+// CHECK: vmovhps qword ptr [rcx], xmm18
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x17,0x11]
+ vmovhps qword ptr [rcx], xmm18
+
+// CHECK: vmovhps qword ptr [rax + 8*r14 + 291], xmm18
+// CHECK: encoding: [0x62,0xa1,0x7c,0x08,0x17,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovhps qword ptr [rax + 8*r14 + 291], xmm18
+
+// CHECK: vmovhps qword ptr [rdx + 1016], xmm18
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x17,0x52,0x7f]
+ vmovhps qword ptr [rdx + 1016], xmm18
+
+// CHECK: vmovhps qword ptr [rdx + 1024], xmm18
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x17,0x92,0x00,0x04,0x00,0x00]
+ vmovhps qword ptr [rdx + 1024], xmm18
+
+// CHECK: vmovhps qword ptr [rdx - 1024], xmm18
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x17,0x52,0x80]
+ vmovhps qword ptr [rdx - 1024], xmm18
+
+// CHECK: vmovhps qword ptr [rdx - 1032], xmm18
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x17,0x92,0xf8,0xfb,0xff,0xff]
+ vmovhps qword ptr [rdx - 1032], xmm18
+
+// CHECK: vmovlhps xmm13, xmm13, xmm28
+// CHECK: encoding: [0x62,0x11,0x14,0x08,0x16,0xec]
+ vmovlhps xmm13, xmm13, xmm28
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xcd,0x08,0x12,0x29]
+ vmovlpd xmm29, xmm6, qword ptr [rcx]
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xcd,0x08,0x12,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovlpd xmm29, xmm6, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0xcd,0x08,0x12,0x6a,0x7f]
+ vmovlpd xmm29, xmm6, qword ptr [rdx + 1016]
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0xcd,0x08,0x12,0xaa,0x00,0x04,0x00,0x00]
+ vmovlpd xmm29, xmm6, qword ptr [rdx + 1024]
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0xcd,0x08,0x12,0x6a,0x80]
+ vmovlpd xmm29, xmm6, qword ptr [rdx - 1024]
+
+// CHECK: vmovlpd xmm29, xmm6, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0xcd,0x08,0x12,0xaa,0xf8,0xfb,0xff,0xff]
+ vmovlpd xmm29, xmm6, qword ptr [rdx - 1032]
+
+// CHECK: vmovlpd qword ptr [rcx], xmm15
+// CHECK: encoding: [0xc5,0x79,0x13,0x39]
+ vmovlpd qword ptr [rcx], xmm15
+
+// CHECK: vmovlpd qword ptr [rax + 8*r14 + 291], xmm15
+// CHECK: encoding: [0xc4,0x21,0x79,0x13,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vmovlpd qword ptr [rax + 8*r14 + 291], xmm15
+
+// CHECK: vmovlpd qword ptr [rdx + 1016], xmm15
+// CHECK: encoding: [0xc5,0x79,0x13,0xba,0xf8,0x03,0x00,0x00]
+ vmovlpd qword ptr [rdx + 1016], xmm15
+
+// CHECK: vmovlpd qword ptr [rdx + 1024], xmm15
+// CHECK: encoding: [0xc5,0x79,0x13,0xba,0x00,0x04,0x00,0x00]
+ vmovlpd qword ptr [rdx + 1024], xmm15
+
+// CHECK: vmovlpd qword ptr [rdx - 1024], xmm15
+// CHECK: encoding: [0xc5,0x79,0x13,0xba,0x00,0xfc,0xff,0xff]
+ vmovlpd qword ptr [rdx - 1024], xmm15
+
+// CHECK: vmovlpd qword ptr [rdx - 1032], xmm15
+// CHECK: encoding: [0xc5,0x79,0x13,0xba,0xf8,0xfb,0xff,0xff]
+ vmovlpd qword ptr [rdx - 1032], xmm15
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x5c,0x00,0x12,0x39]
+ vmovlps xmm7, xmm20, qword ptr [rcx]
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x5c,0x00,0x12,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vmovlps xmm7, xmm20, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x5c,0x00,0x12,0x7a,0x7f]
+ vmovlps xmm7, xmm20, qword ptr [rdx + 1016]
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x5c,0x00,0x12,0xba,0x00,0x04,0x00,0x00]
+ vmovlps xmm7, xmm20, qword ptr [rdx + 1024]
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x5c,0x00,0x12,0x7a,0x80]
+ vmovlps xmm7, xmm20, qword ptr [rdx - 1024]
+
+// CHECK: vmovlps xmm7, xmm20, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x5c,0x00,0x12,0xba,0xf8,0xfb,0xff,0xff]
+ vmovlps xmm7, xmm20, qword ptr [rdx - 1032]
+
+// CHECK: vmovlps qword ptr [rcx], xmm27
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x13,0x19]
+ vmovlps qword ptr [rcx], xmm27
+
+// CHECK: vmovlps qword ptr [rax + 8*r14 + 291], xmm27
+// CHECK: encoding: [0x62,0x21,0x7c,0x08,0x13,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmovlps qword ptr [rax + 8*r14 + 291], xmm27
+
+// CHECK: vmovlps qword ptr [rdx + 1016], xmm27
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x13,0x5a,0x7f]
+ vmovlps qword ptr [rdx + 1016], xmm27
+
+// CHECK: vmovlps qword ptr [rdx + 1024], xmm27
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x13,0x9a,0x00,0x04,0x00,0x00]
+ vmovlps qword ptr [rdx + 1024], xmm27
+
+// CHECK: vmovlps qword ptr [rdx - 1024], xmm27
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x13,0x5a,0x80]
+ vmovlps qword ptr [rdx - 1024], xmm27
+
+// CHECK: vmovlps qword ptr [rdx - 1032], xmm27
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x13,0x9a,0xf8,0xfb,0xff,0xff]
+ vmovlps qword ptr [rdx - 1032], xmm27
+
+// CHECK: vmovntdq zmmword ptr [rcx], zmm24
+// CHECK: encoding: [0x62,0x61,0x7d,0x48,0xe7,0x01]
+ vmovntdq zmmword ptr [rcx], zmm24
+
+// CHECK: vmovntdq zmmword ptr [rax + 8*r14 + 291], zmm24
+// CHECK: encoding: [0x62,0x21,0x7d,0x48,0xe7,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmovntdq zmmword ptr [rax + 8*r14 + 291], zmm24
+
+// CHECK: vmovntdq zmmword ptr [rdx + 8128], zmm24
+// CHECK: encoding: [0x62,0x61,0x7d,0x48,0xe7,0x42,0x7f]
+ vmovntdq zmmword ptr [rdx + 8128], zmm24
+
+// CHECK: vmovntdq zmmword ptr [rdx + 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0x7d,0x48,0xe7,0x82,0x00,0x20,0x00,0x00]
+ vmovntdq zmmword ptr [rdx + 8192], zmm24
+
+// CHECK: vmovntdq zmmword ptr [rdx - 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0x7d,0x48,0xe7,0x42,0x80]
+ vmovntdq zmmword ptr [rdx - 8192], zmm24
+
+// CHECK: vmovntdq zmmword ptr [rdx - 8256], zmm24
+// CHECK: encoding: [0x62,0x61,0x7d,0x48,0xe7,0x82,0xc0,0xdf,0xff,0xff]
+ vmovntdq zmmword ptr [rdx - 8256], zmm24
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x2a,0x09]
+ vmovntdqa zmm17, zmmword ptr [rcx]
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x2a,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovntdqa zmm17, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x2a,0x4a,0x7f]
+ vmovntdqa zmm17, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x2a,0x8a,0x00,0x20,0x00,0x00]
+ vmovntdqa zmm17, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x2a,0x4a,0x80]
+ vmovntdqa zmm17, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovntdqa zmm17, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x2a,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovntdqa zmm17, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovntpd zmmword ptr [rcx], zmm17
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x09]
+ vmovntpd zmmword ptr [rcx], zmm17
+
+// CHECK: vmovntpd zmmword ptr [rax + 8*r14 + 291], zmm17
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x2b,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovntpd zmmword ptr [rax + 8*r14 + 291], zmm17
+
+// CHECK: vmovntpd zmmword ptr [rdx + 8128], zmm17
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x4a,0x7f]
+ vmovntpd zmmword ptr [rdx + 8128], zmm17
+
+// CHECK: vmovntpd zmmword ptr [rdx + 8192], zmm17
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x8a,0x00,0x20,0x00,0x00]
+ vmovntpd zmmword ptr [rdx + 8192], zmm17
+
+// CHECK: vmovntpd zmmword ptr [rdx - 8192], zmm17
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x4a,0x80]
+ vmovntpd zmmword ptr [rdx - 8192], zmm17
+
+// CHECK: vmovntpd zmmword ptr [rdx - 8256], zmm17
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovntpd zmmword ptr [rdx - 8256], zmm17
+
+// CHECK: vmovntps zmmword ptr [rcx], zmm5
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x2b,0x29]
+ vmovntps zmmword ptr [rcx], zmm5
+
+// CHECK: vmovntps zmmword ptr [rax + 8*r14 + 291], zmm5
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x2b,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovntps zmmword ptr [rax + 8*r14 + 291], zmm5
+
+// CHECK: vmovntps zmmword ptr [rdx + 8128], zmm5
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x2b,0x6a,0x7f]
+ vmovntps zmmword ptr [rdx + 8128], zmm5
+
+// CHECK: vmovntps zmmword ptr [rdx + 8192], zmm5
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x2b,0xaa,0x00,0x20,0x00,0x00]
+ vmovntps zmmword ptr [rdx + 8192], zmm5
+
+// CHECK: vmovntps zmmword ptr [rdx - 8192], zmm5
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x2b,0x6a,0x80]
+ vmovntps zmmword ptr [rdx - 8192], zmm5
+
+// CHECK: vmovntps zmmword ptr [rdx - 8256], zmm5
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x2b,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovntps zmmword ptr [rdx - 8256], zmm5
+
+// CHECK: vmovsd xmm25, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x09]
+ vmovsd xmm25, qword ptr [rcx]
+
+// CHECK: vmovsd xmm25 {k3}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xff,0x0b,0x10,0x09]
+ vmovsd xmm25 {k3}, qword ptr [rcx]
+
+// CHECK: vmovsd xmm25 {k3} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xff,0x8b,0x10,0x09]
+ vmovsd xmm25 {k3} {z}, qword ptr [rcx]
+
+// CHECK: vmovsd xmm25, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xff,0x08,0x10,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovsd xmm25, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovsd xmm25, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x4a,0x7f]
+ vmovsd xmm25, qword ptr [rdx + 1016]
+
+// CHECK: vmovsd xmm25, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x8a,0x00,0x04,0x00,0x00]
+ vmovsd xmm25, qword ptr [rdx + 1024]
+
+// CHECK: vmovsd xmm25, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x4a,0x80]
+ vmovsd xmm25, qword ptr [rdx - 1024]
+
+// CHECK: vmovsd xmm25, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x10,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovsd xmm25, qword ptr [rdx - 1032]
+
+// CHECK: vmovsd qword ptr [rcx], xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x11,0x09]
+ vmovsd qword ptr [rcx], xmm25
+
+// CHECK: vmovsd qword ptr [rcx] {k2}, xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x0a,0x11,0x09]
+ vmovsd qword ptr [rcx] {k2}, xmm25
+
+// CHECK: vmovsd qword ptr [rax + 8*r14 + 291], xmm25
+// CHECK: encoding: [0x62,0x21,0xff,0x08,0x11,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovsd qword ptr [rax + 8*r14 + 291], xmm25
+
+// CHECK: vmovsd qword ptr [rdx + 1016], xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x11,0x4a,0x7f]
+ vmovsd qword ptr [rdx + 1016], xmm25
+
+// CHECK: vmovsd qword ptr [rdx + 1024], xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x11,0x8a,0x00,0x04,0x00,0x00]
+ vmovsd qword ptr [rdx + 1024], xmm25
+
+// CHECK: vmovsd qword ptr [rdx - 1024], xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x11,0x4a,0x80]
+ vmovsd qword ptr [rdx - 1024], xmm25
+
+// CHECK: vmovsd qword ptr [rdx - 1032], xmm25
+// CHECK: encoding: [0x62,0x61,0xff,0x08,0x11,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovsd qword ptr [rdx - 1032], xmm25
+
+// CHECK: vmovsd xmm27, xmm3, xmm19
+// CHECK: encoding: [0x62,0x21,0xe7,0x08,0x10,0xdb]
+ vmovsd xmm27, xmm3, xmm19
+
+// CHECK: vmovsd xmm27 {k3}, xmm3, xmm19
+// CHECK: encoding: [0x62,0x21,0xe7,0x0b,0x10,0xdb]
+ vmovsd xmm27 {k3}, xmm3, xmm19
+
+// CHECK: vmovsd xmm27 {k3} {z}, xmm3, xmm19
+// CHECK: encoding: [0x62,0x21,0xe7,0x8b,0x10,0xdb]
+ vmovsd xmm27 {k3} {z}, xmm3, xmm19
+
+// CHECK: vmovshdup zmm16, zmm27
+// CHECK: encoding: [0x62,0x81,0x7e,0x48,0x16,0xc3]
+ vmovshdup zmm16, zmm27
+
+// CHECK: vmovshdup zmm16 {k4}, zmm27
+// CHECK: encoding: [0x62,0x81,0x7e,0x4c,0x16,0xc3]
+ vmovshdup zmm16 {k4}, zmm27
+
+// CHECK: vmovshdup zmm16 {k4} {z}, zmm27
+// CHECK: encoding: [0x62,0x81,0x7e,0xcc,0x16,0xc3]
+ vmovshdup zmm16 {k4} {z}, zmm27
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x01]
+ vmovshdup zmm16, zmmword ptr [rcx]
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x16,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmovshdup zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x42,0x7f]
+ vmovshdup zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x82,0x00,0x20,0x00,0x00]
+ vmovshdup zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x42,0x80]
+ vmovshdup zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovshdup zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x82,0xc0,0xdf,0xff,0xff]
+ vmovshdup zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovsldup zmm13, zmm14
+// CHECK: encoding: [0x62,0x51,0x7e,0x48,0x12,0xee]
+ vmovsldup zmm13, zmm14
+
+// CHECK: vmovsldup zmm13 {k6}, zmm14
+// CHECK: encoding: [0x62,0x51,0x7e,0x4e,0x12,0xee]
+ vmovsldup zmm13 {k6}, zmm14
+
+// CHECK: vmovsldup zmm13 {k6} {z}, zmm14
+// CHECK: encoding: [0x62,0x51,0x7e,0xce,0x12,0xee]
+ vmovsldup zmm13 {k6} {z}, zmm14
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x29]
+ vmovsldup zmm13, zmmword ptr [rcx]
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7e,0x48,0x12,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovsldup zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x6a,0x7f]
+ vmovsldup zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0xaa,0x00,0x20,0x00,0x00]
+ vmovsldup zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x6a,0x80]
+ vmovsldup zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovsldup zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovsldup zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovss xmm2, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x11]
+ vmovss xmm2, dword ptr [rcx]
+
+// CHECK: vmovss xmm2 {k4}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x0c,0x10,0x11]
+ vmovss xmm2 {k4}, dword ptr [rcx]
+
+// CHECK: vmovss xmm2 {k4} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x8c,0x10,0x11]
+ vmovss xmm2 {k4} {z}, dword ptr [rcx]
+
+// CHECK: vmovss xmm2, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa1,0x7a,0x10,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovss xmm2, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovss xmm2, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x92,0xfc,0x01,0x00,0x00]
+ vmovss xmm2, dword ptr [rdx + 508]
+
+// CHECK: vmovss xmm2, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x92,0x00,0x02,0x00,0x00]
+ vmovss xmm2, dword ptr [rdx + 512]
+
+// CHECK: vmovss xmm2, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x92,0x00,0xfe,0xff,0xff]
+ vmovss xmm2, dword ptr [rdx - 512]
+
+// CHECK: vmovss xmm2, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x92,0xfc,0xfd,0xff,0xff]
+ vmovss xmm2, dword ptr [rdx - 516]
+
+// CHECK: vmovss dword ptr [rcx], xmm5
+// CHECK: encoding: [0xc5,0xfa,0x11,0x29]
+ vmovss dword ptr [rcx], xmm5
+
+// CHECK: vmovss dword ptr [rcx] {k6}, xmm5
+// CHECK: encoding: [0x62,0xf1,0x7e,0x0e,0x11,0x29]
+ vmovss dword ptr [rcx] {k6}, xmm5
+
+// CHECK: vmovss dword ptr [rax + 8*r14 + 291], xmm5
+// CHECK: encoding: [0xc4,0xa1,0x7a,0x11,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmovss dword ptr [rax + 8*r14 + 291], xmm5
+
+// CHECK: vmovss dword ptr [rdx + 508], xmm5
+// CHECK: encoding: [0xc5,0xfa,0x11,0xaa,0xfc,0x01,0x00,0x00]
+ vmovss dword ptr [rdx + 508], xmm5
+
+// CHECK: vmovss dword ptr [rdx + 512], xmm5
+// CHECK: encoding: [0xc5,0xfa,0x11,0xaa,0x00,0x02,0x00,0x00]
+ vmovss dword ptr [rdx + 512], xmm5
+
+// CHECK: vmovss dword ptr [rdx - 512], xmm5
+// CHECK: encoding: [0xc5,0xfa,0x11,0xaa,0x00,0xfe,0xff,0xff]
+ vmovss dword ptr [rdx - 512], xmm5
+
+// CHECK: vmovss dword ptr [rdx - 516], xmm5
+// CHECK: encoding: [0xc5,0xfa,0x11,0xaa,0xfc,0xfd,0xff,0xff]
+ vmovss dword ptr [rdx - 516], xmm5
+
+// CHECK: vmovss xmm28, xmm9, xmm26
+// CHECK: encoding: [0x62,0x01,0x36,0x08,0x10,0xe2]
+ vmovss xmm28, xmm9, xmm26
+
+// CHECK: vmovss xmm28 {k4}, xmm9, xmm26
+// CHECK: encoding: [0x62,0x01,0x36,0x0c,0x10,0xe2]
+ vmovss xmm28 {k4}, xmm9, xmm26
+
+// CHECK: vmovss xmm28 {k4} {z}, xmm9, xmm26
+// CHECK: encoding: [0x62,0x01,0x36,0x8c,0x10,0xe2]
+ vmovss xmm28 {k4} {z}, xmm9, xmm26
+
+// CHECK: vmovupd zmm27, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0x48,0x10,0xd9]
+ vmovupd zmm27, zmm9
+
+// CHECK: vmovupd zmm27 {k2}, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0x4a,0x10,0xd9]
+ vmovupd zmm27 {k2}, zmm9
+
+// CHECK: vmovupd zmm27 {k2} {z}, zmm9
+// CHECK: encoding: [0x62,0x41,0xfd,0xca,0x10,0xd9]
+ vmovupd zmm27 {k2} {z}, zmm9
+
+// CHECK: vmovupd zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x10,0x19]
+ vmovupd zmm27, zmmword ptr [rcx]
+
+// CHECK: vmovupd zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xfd,0x48,0x10,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmovupd zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovupd zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x10,0x5a,0x7f]
+ vmovupd zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovupd zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x10,0x9a,0x00,0x20,0x00,0x00]
+ vmovupd zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovupd zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x10,0x5a,0x80]
+ vmovupd zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovupd zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x10,0x9a,0xc0,0xdf,0xff,0xff]
+ vmovupd zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovups zmm22, zmm22
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x10,0xf6]
+ vmovups zmm22, zmm22
+
+// CHECK: vmovups zmm22 {k3}, zmm22
+// CHECK: encoding: [0x62,0xa1,0x7c,0x4b,0x10,0xf6]
+ vmovups zmm22 {k3}, zmm22
+
+// CHECK: vmovups zmm22 {k3} {z}, zmm22
+// CHECK: encoding: [0x62,0xa1,0x7c,0xcb,0x10,0xf6]
+ vmovups zmm22 {k3} {z}, zmm22
+
+// CHECK: vmovups zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x31]
+ vmovups zmm22, zmmword ptr [rcx]
+
+// CHECK: vmovups zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x10,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmovups zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x72,0x7f]
+ vmovups zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0xb2,0x00,0x20,0x00,0x00]
+ vmovups zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x72,0x80]
+ vmovups zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovups zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulpd zmm24, zmm4, zmm23
+// CHECK: encoding: [0x62,0x21,0xdd,0x48,0x59,0xc7]
+ vmulpd zmm24, zmm4, zmm23
+
+// CHECK: vmulpd zmm24 {k6}, zmm4, zmm23
+// CHECK: encoding: [0x62,0x21,0xdd,0x4e,0x59,0xc7]
+ vmulpd zmm24 {k6}, zmm4, zmm23
+
+// CHECK: vmulpd zmm24 {k6} {z}, zmm4, zmm23
+// CHECK: encoding: [0x62,0x21,0xdd,0xce,0x59,0xc7]
+ vmulpd zmm24 {k6} {z}, zmm4, zmm23
+
+// CHECK: vmulpd zmm24, zmm4, zmm23, {rn-sae}
+// CHECK: encoding: [0x62,0x21,0xdd,0x18,0x59,0xc7]
+ vmulpd zmm24, zmm4, zmm23, {rn-sae}
+
+// CHECK: vmulpd zmm24, zmm4, zmm23, {ru-sae}
+// CHECK: encoding: [0x62,0x21,0xdd,0x58,0x59,0xc7]
+ vmulpd zmm24, zmm4, zmm23, {ru-sae}
+
+// CHECK: vmulpd zmm24, zmm4, zmm23, {rd-sae}
+// CHECK: encoding: [0x62,0x21,0xdd,0x38,0x59,0xc7]
+ vmulpd zmm24, zmm4, zmm23, {rd-sae}
+
+// CHECK: vmulpd zmm24, zmm4, zmm23, {rz-sae}
+// CHECK: encoding: [0x62,0x21,0xdd,0x78,0x59,0xc7]
+ vmulpd zmm24, zmm4, zmm23, {rz-sae}
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x01]
+ vmulpd zmm24, zmm4, zmmword ptr [rcx]
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xdd,0x48,0x59,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmulpd zmm24, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmulpd zmm24, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x01]
+ vmulpd zmm24, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x7f]
+ vmulpd zmm24, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x82,0x00,0x20,0x00,0x00]
+ vmulpd zmm24, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x80]
+ vmulpd zmm24, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vmulpd zmm24, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0x59,0x82,0xc0,0xdf,0xff,0xff]
+ vmulpd zmm24, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulpd zmm24, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x42,0x7f]
+ vmulpd zmm24, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vmulpd zmm24, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0x00,0x04,0x00,0x00]
+ vmulpd zmm24, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vmulpd zmm24, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x42,0x80]
+ vmulpd zmm24, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vmulpd zmm24, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0x59,0x82,0xf8,0xfb,0xff,0xff]
+ vmulpd zmm24, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vmulps zmm3, zmm6, zmm24
+// CHECK: encoding: [0x62,0x91,0x4c,0x48,0x59,0xd8]
+ vmulps zmm3, zmm6, zmm24
+
+// CHECK: vmulps zmm3 {k4}, zmm6, zmm24
+// CHECK: encoding: [0x62,0x91,0x4c,0x4c,0x59,0xd8]
+ vmulps zmm3 {k4}, zmm6, zmm24
+
+// CHECK: vmulps zmm3 {k4} {z}, zmm6, zmm24
+// CHECK: encoding: [0x62,0x91,0x4c,0xcc,0x59,0xd8]
+ vmulps zmm3 {k4} {z}, zmm6, zmm24
+
+// CHECK: vmulps zmm3, zmm6, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x4c,0x18,0x59,0xd8]
+ vmulps zmm3, zmm6, zmm24, {rn-sae}
+
+// CHECK: vmulps zmm3, zmm6, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x4c,0x58,0x59,0xd8]
+ vmulps zmm3, zmm6, zmm24, {ru-sae}
+
+// CHECK: vmulps zmm3, zmm6, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x4c,0x38,0x59,0xd8]
+ vmulps zmm3, zmm6, zmm24, {rd-sae}
+
+// CHECK: vmulps zmm3, zmm6, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x4c,0x78,0x59,0xd8]
+ vmulps zmm3, zmm6, zmm24, {rz-sae}
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x19]
+ vmulps zmm3, zmm6, zmmword ptr [rcx]
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x4c,0x48,0x59,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmulps zmm3, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmulps zmm3, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x19]
+ vmulps zmm3, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x7f]
+ vmulps zmm3, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x9a,0x00,0x20,0x00,0x00]
+ vmulps zmm3, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x80]
+ vmulps zmm3, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vmulps zmm3, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x59,0x9a,0xc0,0xdf,0xff,0xff]
+ vmulps zmm3, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulps zmm3, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x5a,0x7f]
+ vmulps zmm3, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vmulps zmm3, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0x00,0x02,0x00,0x00]
+ vmulps zmm3, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vmulps zmm3, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x5a,0x80]
+ vmulps zmm3, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vmulps zmm3, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x59,0x9a,0xfc,0xfd,0xff,0xff]
+ vmulps zmm3, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vmulsd xmm13, xmm4, xmm18
+// CHECK: encoding: [0x62,0x31,0xdf,0x08,0x59,0xea]
+ vmulsd xmm13, xmm4, xmm18
+
+// CHECK: vmulsd xmm13 {k2}, xmm4, xmm18
+// CHECK: encoding: [0x62,0x31,0xdf,0x0a,0x59,0xea]
+ vmulsd xmm13 {k2}, xmm4, xmm18
+
+// CHECK: vmulsd xmm13 {k2} {z}, xmm4, xmm18
+// CHECK: encoding: [0x62,0x31,0xdf,0x8a,0x59,0xea]
+ vmulsd xmm13 {k2} {z}, xmm4, xmm18
+
+// CHECK: vmulsd xmm13, xmm4, xmm18, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x18,0x59,0xea]
+ vmulsd xmm13, xmm4, xmm18, {rn-sae}
+
+// CHECK: vmulsd xmm13, xmm4, xmm18, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x58,0x59,0xea]
+ vmulsd xmm13, xmm4, xmm18, {ru-sae}
+
+// CHECK: vmulsd xmm13, xmm4, xmm18, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x38,0x59,0xea]
+ vmulsd xmm13, xmm4, xmm18, {rd-sae}
+
+// CHECK: vmulsd xmm13, xmm4, xmm18, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x78,0x59,0xea]
+ vmulsd xmm13, xmm4, xmm18, {rz-sae}
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x5b,0x59,0x29]
+ vmulsd xmm13, xmm4, qword ptr [rcx]
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x21,0x5b,0x59,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vmulsd xmm13, xmm4, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x5b,0x59,0xaa,0xf8,0x03,0x00,0x00]
+ vmulsd xmm13, xmm4, qword ptr [rdx + 1016]
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x5b,0x59,0xaa,0x00,0x04,0x00,0x00]
+ vmulsd xmm13, xmm4, qword ptr [rdx + 1024]
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x5b,0x59,0xaa,0x00,0xfc,0xff,0xff]
+ vmulsd xmm13, xmm4, qword ptr [rdx - 1024]
+
+// CHECK: vmulsd xmm13, xmm4, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x5b,0x59,0xaa,0xf8,0xfb,0xff,0xff]
+ vmulsd xmm13, xmm4, qword ptr [rdx - 1032]
+
+// CHECK: vmulss xmm22, xmm10, xmm14
+// CHECK: encoding: [0x62,0xc1,0x2e,0x08,0x59,0xf6]
+ vmulss xmm22, xmm10, xmm14
+
+// CHECK: vmulss xmm22 {k4}, xmm10, xmm14
+// CHECK: encoding: [0x62,0xc1,0x2e,0x0c,0x59,0xf6]
+ vmulss xmm22 {k4}, xmm10, xmm14
+
+// CHECK: vmulss xmm22 {k4} {z}, xmm10, xmm14
+// CHECK: encoding: [0x62,0xc1,0x2e,0x8c,0x59,0xf6]
+ vmulss xmm22 {k4} {z}, xmm10, xmm14
+
+// CHECK: vmulss xmm22, xmm10, xmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0x2e,0x18,0x59,0xf6]
+ vmulss xmm22, xmm10, xmm14, {rn-sae}
+
+// CHECK: vmulss xmm22, xmm10, xmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0x2e,0x58,0x59,0xf6]
+ vmulss xmm22, xmm10, xmm14, {ru-sae}
+
+// CHECK: vmulss xmm22, xmm10, xmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0x2e,0x38,0x59,0xf6]
+ vmulss xmm22, xmm10, xmm14, {rd-sae}
+
+// CHECK: vmulss xmm22, xmm10, xmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0x2e,0x78,0x59,0xf6]
+ vmulss xmm22, xmm10, xmm14, {rz-sae}
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x2e,0x08,0x59,0x31]
+ vmulss xmm22, xmm10, dword ptr [rcx]
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x2e,0x08,0x59,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmulss xmm22, xmm10, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x2e,0x08,0x59,0x72,0x7f]
+ vmulss xmm22, xmm10, dword ptr [rdx + 508]
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x2e,0x08,0x59,0xb2,0x00,0x02,0x00,0x00]
+ vmulss xmm22, xmm10, dword ptr [rdx + 512]
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x2e,0x08,0x59,0x72,0x80]
+ vmulss xmm22, xmm10, dword ptr [rdx - 512]
+
+// CHECK: vmulss xmm22, xmm10, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x2e,0x08,0x59,0xb2,0xfc,0xfd,0xff,0xff]
+ vmulss xmm22, xmm10, dword ptr [rdx - 516]
+
+// CHECK: vpabsd zmm15, zmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x1e,0xfe]
+ vpabsd zmm15, zmm14
+
+// CHECK: vpabsd zmm15 {k6}, zmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x4e,0x1e,0xfe]
+ vpabsd zmm15 {k6}, zmm14
+
+// CHECK: vpabsd zmm15 {k6} {z}, zmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0xce,0x1e,0xfe]
+ vpabsd zmm15 {k6} {z}, zmm14
+
+// CHECK: vpabsd zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x39]
+ vpabsd zmm15, zmmword ptr [rcx]
+
+// CHECK: vpabsd zmm15, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x1e,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpabsd zmm15, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpabsd zmm15, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x39]
+ vpabsd zmm15, dword ptr [rcx]{1to16}
+
+// CHECK: vpabsd zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x7a,0x7f]
+ vpabsd zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vpabsd zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0xba,0x00,0x20,0x00,0x00]
+ vpabsd zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vpabsd zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0x7a,0x80]
+ vpabsd zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vpabsd zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1e,0xba,0xc0,0xdf,0xff,0xff]
+ vpabsd zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vpabsd zmm15, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x7a,0x7f]
+ vpabsd zmm15, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpabsd zmm15, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0xba,0x00,0x02,0x00,0x00]
+ vpabsd zmm15, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpabsd zmm15, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0x7a,0x80]
+ vpabsd zmm15, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpabsd zmm15, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x1e,0xba,0xfc,0xfd,0xff,0xff]
+ vpabsd zmm15, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpabsq zmm5, zmm24
+// CHECK: encoding: [0x62,0x92,0xfd,0x48,0x1f,0xe8]
+ vpabsq zmm5, zmm24
+
+// CHECK: vpabsq zmm5 {k6}, zmm24
+// CHECK: encoding: [0x62,0x92,0xfd,0x4e,0x1f,0xe8]
+ vpabsq zmm5 {k6}, zmm24
+
+// CHECK: vpabsq zmm5 {k6} {z}, zmm24
+// CHECK: encoding: [0x62,0x92,0xfd,0xce,0x1f,0xe8]
+ vpabsq zmm5 {k6} {z}, zmm24
+
+// CHECK: vpabsq zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x29]
+ vpabsq zmm5, zmmword ptr [rcx]
+
+// CHECK: vpabsq zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xfd,0x48,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpabsq zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpabsq zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x29]
+ vpabsq zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vpabsq zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x6a,0x7f]
+ vpabsq zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpabsq zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0xaa,0x00,0x20,0x00,0x00]
+ vpabsq zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpabsq zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0x6a,0x80]
+ vpabsq zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpabsq zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x1f,0xaa,0xc0,0xdf,0xff,0xff]
+ vpabsq zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpabsq zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x6a,0x7f]
+ vpabsq zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpabsq zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0xaa,0x00,0x04,0x00,0x00]
+ vpabsq zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpabsq zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0x6a,0x80]
+ vpabsq zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpabsq zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x1f,0xaa,0xf8,0xfb,0xff,0xff]
+ vpabsq zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpaddd zmm26, zmm5, zmm20
+// CHECK: encoding: [0x62,0x21,0x55,0x48,0xfe,0xd4]
+ vpaddd zmm26, zmm5, zmm20
+
+// CHECK: vpaddd zmm26 {k1}, zmm5, zmm20
+// CHECK: encoding: [0x62,0x21,0x55,0x49,0xfe,0xd4]
+ vpaddd zmm26 {k1}, zmm5, zmm20
+
+// CHECK: vpaddd zmm26 {k1} {z}, zmm5, zmm20
+// CHECK: encoding: [0x62,0x21,0x55,0xc9,0xfe,0xd4]
+ vpaddd zmm26 {k1} {z}, zmm5, zmm20
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x11]
+ vpaddd zmm26, zmm5, zmmword ptr [rcx]
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x55,0x48,0xfe,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpaddd zmm26, zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpaddd zmm26, zmm5, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x11]
+ vpaddd zmm26, zmm5, dword ptr [rcx]{1to16}
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x52,0x7f]
+ vpaddd zmm26, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x92,0x00,0x20,0x00,0x00]
+ vpaddd zmm26, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x52,0x80]
+ vpaddd zmm26, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpaddd zmm26, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x55,0x48,0xfe,0x92,0xc0,0xdf,0xff,0xff]
+ vpaddd zmm26, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpaddd zmm26, zmm5, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x52,0x7f]
+ vpaddd zmm26, zmm5, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpaddd zmm26, zmm5, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x92,0x00,0x02,0x00,0x00]
+ vpaddd zmm26, zmm5, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpaddd zmm26, zmm5, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x52,0x80]
+ vpaddd zmm26, zmm5, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpaddd zmm26, zmm5, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x55,0x58,0xfe,0x92,0xfc,0xfd,0xff,0xff]
+ vpaddd zmm26, zmm5, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpaddq zmm8, zmm25, zmm14
+// CHECK: encoding: [0x62,0x51,0xb5,0x40,0xd4,0xc6]
+ vpaddq zmm8, zmm25, zmm14
+
+// CHECK: vpaddq zmm8 {k3}, zmm25, zmm14
+// CHECK: encoding: [0x62,0x51,0xb5,0x43,0xd4,0xc6]
+ vpaddq zmm8 {k3}, zmm25, zmm14
+
+// CHECK: vpaddq zmm8 {k3} {z}, zmm25, zmm14
+// CHECK: encoding: [0x62,0x51,0xb5,0xc3,0xd4,0xc6]
+ vpaddq zmm8 {k3} {z}, zmm25, zmm14
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x01]
+ vpaddq zmm8, zmm25, zmmword ptr [rcx]
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xb5,0x40,0xd4,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpaddq zmm8, zmm25, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpaddq zmm8, zmm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x01]
+ vpaddq zmm8, zmm25, qword ptr [rcx]{1to8}
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x42,0x7f]
+ vpaddq zmm8, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x82,0x00,0x20,0x00,0x00]
+ vpaddq zmm8, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x42,0x80]
+ vpaddq zmm8, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vpaddq zmm8, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0xd4,0x82,0xc0,0xdf,0xff,0xff]
+ vpaddq zmm8, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vpaddq zmm8, zmm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x42,0x7f]
+ vpaddq zmm8, zmm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpaddq zmm8, zmm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x82,0x00,0x04,0x00,0x00]
+ vpaddq zmm8, zmm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpaddq zmm8, zmm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x42,0x80]
+ vpaddq zmm8, zmm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpaddq zmm8, zmm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0xd4,0x82,0xf8,0xfb,0xff,0xff]
+ vpaddq zmm8, zmm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpandd zmm19, zmm22, zmm25
+// CHECK: encoding: [0x62,0x81,0x4d,0x40,0xdb,0xd9]
+ vpandd zmm19, zmm22, zmm25
+
+// CHECK: vpandd zmm19 {k1}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x81,0x4d,0x41,0xdb,0xd9]
+ vpandd zmm19 {k1}, zmm22, zmm25
+
+// CHECK: vpandd zmm19 {k1} {z}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x81,0x4d,0xc1,0xdb,0xd9]
+ vpandd zmm19 {k1} {z}, zmm22, zmm25
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x19]
+ vpandd zmm19, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x4d,0x40,0xdb,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpandd zmm19, zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpandd zmm19, zmm22, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x19]
+ vpandd zmm19, zmm22, dword ptr [rcx]{1to16}
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x5a,0x7f]
+ vpandd zmm19, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x9a,0x00,0x20,0x00,0x00]
+ vpandd zmm19, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x5a,0x80]
+ vpandd zmm19, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandd zmm19, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x40,0xdb,0x9a,0xc0,0xdf,0xff,0xff]
+ vpandd zmm19, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandd zmm19, zmm22, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x5a,0x7f]
+ vpandd zmm19, zmm22, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpandd zmm19, zmm22, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x9a,0x00,0x02,0x00,0x00]
+ vpandd zmm19, zmm22, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpandd zmm19, zmm22, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x5a,0x80]
+ vpandd zmm19, zmm22, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpandd zmm19, zmm22, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x4d,0x50,0xdb,0x9a,0xfc,0xfd,0xff,0xff]
+ vpandd zmm19, zmm22, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpandnd zmm30, zmm28, zmm15
+// CHECK: encoding: [0x62,0x41,0x1d,0x40,0xdf,0xf7]
+ vpandnd zmm30, zmm28, zmm15
+
+// CHECK: vpandnd zmm30 {k3}, zmm28, zmm15
+// CHECK: encoding: [0x62,0x41,0x1d,0x43,0xdf,0xf7]
+ vpandnd zmm30 {k3}, zmm28, zmm15
+
+// CHECK: vpandnd zmm30 {k3} {z}, zmm28, zmm15
+// CHECK: encoding: [0x62,0x41,0x1d,0xc3,0xdf,0xf7]
+ vpandnd zmm30 {k3} {z}, zmm28, zmm15
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x31]
+ vpandnd zmm30, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x1d,0x40,0xdf,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpandnd zmm30, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpandnd zmm30, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x31]
+ vpandnd zmm30, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x72,0x7f]
+ vpandnd zmm30, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0xb2,0x00,0x20,0x00,0x00]
+ vpandnd zmm30, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0x72,0x80]
+ vpandnd zmm30, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandnd zmm30, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x1d,0x40,0xdf,0xb2,0xc0,0xdf,0xff,0xff]
+ vpandnd zmm30, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandnd zmm30, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x72,0x7f]
+ vpandnd zmm30, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpandnd zmm30, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0xb2,0x00,0x02,0x00,0x00]
+ vpandnd zmm30, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpandnd zmm30, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0x72,0x80]
+ vpandnd zmm30, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpandnd zmm30, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x1d,0x50,0xdf,0xb2,0xfc,0xfd,0xff,0xff]
+ vpandnd zmm30, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpandnq zmm20, zmm7, zmm19
+// CHECK: encoding: [0x62,0xa1,0xc5,0x48,0xdf,0xe3]
+ vpandnq zmm20, zmm7, zmm19
+
+// CHECK: vpandnq zmm20 {k5}, zmm7, zmm19
+// CHECK: encoding: [0x62,0xa1,0xc5,0x4d,0xdf,0xe3]
+ vpandnq zmm20 {k5}, zmm7, zmm19
+
+// CHECK: vpandnq zmm20 {k5} {z}, zmm7, zmm19
+// CHECK: encoding: [0x62,0xa1,0xc5,0xcd,0xdf,0xe3]
+ vpandnq zmm20 {k5} {z}, zmm7, zmm19
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x21]
+ vpandnq zmm20, zmm7, zmmword ptr [rcx]
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xc5,0x48,0xdf,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpandnq zmm20, zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpandnq zmm20, zmm7, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x21]
+ vpandnq zmm20, zmm7, qword ptr [rcx]{1to8}
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x62,0x7f]
+ vpandnq zmm20, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0xa2,0x00,0x20,0x00,0x00]
+ vpandnq zmm20, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0x62,0x80]
+ vpandnq zmm20, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandnq zmm20, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x48,0xdf,0xa2,0xc0,0xdf,0xff,0xff]
+ vpandnq zmm20, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandnq zmm20, zmm7, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x62,0x7f]
+ vpandnq zmm20, zmm7, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpandnq zmm20, zmm7, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0xa2,0x00,0x04,0x00,0x00]
+ vpandnq zmm20, zmm7, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpandnq zmm20, zmm7, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0x62,0x80]
+ vpandnq zmm20, zmm7, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpandnq zmm20, zmm7, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xc5,0x58,0xdf,0xa2,0xf8,0xfb,0xff,0xff]
+ vpandnq zmm20, zmm7, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpandq zmm17, zmm4, zmm26
+// CHECK: encoding: [0x62,0x81,0xdd,0x48,0xdb,0xca]
+ vpandq zmm17, zmm4, zmm26
+
+// CHECK: vpandq zmm17 {k7}, zmm4, zmm26
+// CHECK: encoding: [0x62,0x81,0xdd,0x4f,0xdb,0xca]
+ vpandq zmm17 {k7}, zmm4, zmm26
+
+// CHECK: vpandq zmm17 {k7} {z}, zmm4, zmm26
+// CHECK: encoding: [0x62,0x81,0xdd,0xcf,0xdb,0xca]
+ vpandq zmm17 {k7} {z}, zmm4, zmm26
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x09]
+ vpandq zmm17, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xdd,0x48,0xdb,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpandq zmm17, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpandq zmm17, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x09]
+ vpandq zmm17, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x4a,0x7f]
+ vpandq zmm17, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x8a,0x00,0x20,0x00,0x00]
+ vpandq zmm17, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x4a,0x80]
+ vpandq zmm17, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandq zmm17, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0xdb,0x8a,0xc0,0xdf,0xff,0xff]
+ vpandq zmm17, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandq zmm17, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x4a,0x7f]
+ vpandq zmm17, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpandq zmm17, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x8a,0x00,0x04,0x00,0x00]
+ vpandq zmm17, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpandq zmm17, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x4a,0x80]
+ vpandq zmm17, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpandq zmm17, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0xdb,0x8a,0xf8,0xfb,0xff,0xff]
+ vpandq zmm17, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpblendmd zmm5, zmm25, zmm11
+// CHECK: encoding: [0x62,0xd2,0x35,0x40,0x64,0xeb]
+ vpblendmd zmm5, zmm25, zmm11
+
+// CHECK: vpblendmd zmm5 {k3}, zmm25, zmm11
+// CHECK: encoding: [0x62,0xd2,0x35,0x43,0x64,0xeb]
+ vpblendmd zmm5 {k3}, zmm25, zmm11
+
+// CHECK: vpblendmd zmm5 {k3} {z}, zmm25, zmm11
+// CHECK: encoding: [0x62,0xd2,0x35,0xc3,0x64,0xeb]
+ vpblendmd zmm5 {k3} {z}, zmm25, zmm11
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x35,0x40,0x64,0x29]
+ vpblendmd zmm5, zmm25, zmmword ptr [rcx]
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x35,0x40,0x64,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpblendmd zmm5, zmm25, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpblendmd zmm5, zmm25, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x35,0x50,0x64,0x29]
+ vpblendmd zmm5, zmm25, dword ptr [rcx]{1to16}
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x35,0x40,0x64,0x6a,0x7f]
+ vpblendmd zmm5, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x35,0x40,0x64,0xaa,0x00,0x20,0x00,0x00]
+ vpblendmd zmm5, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x35,0x40,0x64,0x6a,0x80]
+ vpblendmd zmm5, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vpblendmd zmm5, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x35,0x40,0x64,0xaa,0xc0,0xdf,0xff,0xff]
+ vpblendmd zmm5, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vpblendmd zmm5, zmm25, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x35,0x50,0x64,0x6a,0x7f]
+ vpblendmd zmm5, zmm25, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpblendmd zmm5, zmm25, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x35,0x50,0x64,0xaa,0x00,0x02,0x00,0x00]
+ vpblendmd zmm5, zmm25, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpblendmd zmm5, zmm25, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x35,0x50,0x64,0x6a,0x80]
+ vpblendmd zmm5, zmm25, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpblendmd zmm5, zmm25, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x35,0x50,0x64,0xaa,0xfc,0xfd,0xff,0xff]
+ vpblendmd zmm5, zmm25, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x58,0x11]
+ vpbroadcastd zmm26, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm26 {k2}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x4a,0x58,0x11]
+ vpbroadcastd zmm26 {k2}, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm26 {k2} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0xca,0x58,0x11]
+ vpbroadcastd zmm26 {k2} {z}, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x58,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpbroadcastd zmm26, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x58,0x52,0x7f]
+ vpbroadcastd zmm26, dword ptr [rdx + 508]
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x58,0x92,0x00,0x02,0x00,0x00]
+ vpbroadcastd zmm26, dword ptr [rdx + 512]
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x58,0x52,0x80]
+ vpbroadcastd zmm26, dword ptr [rdx - 512]
+
+// CHECK: vpbroadcastd zmm26, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x58,0x92,0xfc,0xfd,0xff,0xff]
+ vpbroadcastd zmm26, dword ptr [rdx - 516]
+
+// CHECK: vpbroadcastd zmm10, xmm22
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x58,0xd6]
+ vpbroadcastd zmm10, xmm22
+
+// CHECK: vpbroadcastd zmm10 {k7}, xmm22
+// CHECK: encoding: [0x62,0x32,0x7d,0x4f,0x58,0xd6]
+ vpbroadcastd zmm10 {k7}, xmm22
+
+// CHECK: vpbroadcastd zmm10 {k7} {z}, xmm22
+// CHECK: encoding: [0x62,0x32,0x7d,0xcf,0x58,0xd6]
+ vpbroadcastd zmm10 {k7} {z}, xmm22
+
+// CHECK: vpbroadcastd zmm11, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x7c,0xd8]
+ vpbroadcastd zmm11, eax
+
+// CHECK: vpbroadcastd zmm11 {k6}, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0x4e,0x7c,0xd8]
+ vpbroadcastd zmm11 {k6}, eax
+
+// CHECK: vpbroadcastd zmm11 {k6} {z}, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0xce,0x7c,0xd8]
+ vpbroadcastd zmm11 {k6} {z}, eax
+
+// CHECK: vpbroadcastd zmm11, ebp
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x7c,0xdd]
+ vpbroadcastd zmm11, ebp
+
+// CHECK: vpbroadcastd zmm11, r13d
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x7c,0xdd]
+ vpbroadcastd zmm11, r13d
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x59,0x09]
+ vpbroadcastq zmm25, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm25 {k2}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4a,0x59,0x09]
+ vpbroadcastq zmm25 {k2}, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm25 {k2} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xca,0x59,0x09]
+ vpbroadcastq zmm25 {k2} {z}, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x59,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpbroadcastq zmm25, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x59,0x4a,0x7f]
+ vpbroadcastq zmm25, qword ptr [rdx + 1016]
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x59,0x8a,0x00,0x04,0x00,0x00]
+ vpbroadcastq zmm25, qword ptr [rdx + 1024]
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x59,0x4a,0x80]
+ vpbroadcastq zmm25, qword ptr [rdx - 1024]
+
+// CHECK: vpbroadcastq zmm25, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x59,0x8a,0xf8,0xfb,0xff,0xff]
+ vpbroadcastq zmm25, qword ptr [rdx - 1032]
+
+// CHECK: vpbroadcastq zmm3, xmm5
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x59,0xdd]
+ vpbroadcastq zmm3, xmm5
+
+// CHECK: vpbroadcastq zmm3 {k5}, xmm5
+// CHECK: encoding: [0x62,0xf2,0xfd,0x4d,0x59,0xdd]
+ vpbroadcastq zmm3 {k5}, xmm5
+
+// CHECK: vpbroadcastq zmm3 {k5} {z}, xmm5
+// CHECK: encoding: [0x62,0xf2,0xfd,0xcd,0x59,0xdd]
+ vpbroadcastq zmm3 {k5} {z}, xmm5
+
+// CHECK: vpbroadcastq zmm1, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x7c,0xc8]
+ vpbroadcastq zmm1, rax
+
+// CHECK: vpbroadcastq zmm1 {k6}, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0x4e,0x7c,0xc8]
+ vpbroadcastq zmm1 {k6}, rax
+
+// CHECK: vpbroadcastq zmm1 {k6} {z}, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0xce,0x7c,0xc8]
+ vpbroadcastq zmm1 {k6} {z}, rax
+
+// CHECK: vpbroadcastq zmm1, r8
+// CHECK: encoding: [0x62,0xd2,0xfd,0x48,0x7c,0xc8]
+ vpbroadcastq zmm1, r8
+
+// CHECK: vpcmpd k5, zmm25, zmm10, 171
+// CHECK: encoding: [0x62,0xd3,0x35,0x40,0x1f,0xea,0xab]
+ vpcmpd k5, zmm25, zmm10, 171
+
+// CHECK: vpcmpd k5 {k3}, zmm25, zmm10, 171
+// CHECK: encoding: [0x62,0xd3,0x35,0x43,0x1f,0xea,0xab]
+ vpcmpd k5 {k3}, zmm25, zmm10, 171
+
+// CHECK: vpcmpd k5, zmm25, zmm10, 123
+// CHECK: encoding: [0x62,0xd3,0x35,0x40,0x1f,0xea,0x7b]
+ vpcmpd k5, zmm25, zmm10, 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x29,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpcmpd k5, zmm25, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x29,0x7b]
+ vpcmpd k5, zmm25, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x6a,0x7f,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x6a,0x80,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpd k5, zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpd k5, zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpd k5, zmm25, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x6a,0x7f,0x7b]
+ vpcmpd k5, zmm25, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpcmpd k5, zmm25, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0xaa,0x00,0x02,0x00,0x00,0x7b]
+ vpcmpd k5, zmm25, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpcmpd k5, zmm25, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x6a,0x80,0x7b]
+ vpcmpd k5, zmm25, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpcmpd k5, zmm25, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
+ vpcmpd k5, zmm25, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpcmpeqd k5, zmm2, zmm10
+// CHECK: encoding: [0x62,0xd1,0x6d,0x48,0x76,0xea]
+ vpcmpeqd k5, zmm2, zmm10
+
+// CHECK: vpcmpeqd k5 {k7}, zmm2, zmm10
+// CHECK: encoding: [0x62,0xd1,0x6d,0x4f,0x76,0xea]
+ vpcmpeqd k5 {k7}, zmm2, zmm10
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x6d,0x48,0x76,0x29]
+ vpcmpeqd k5, zmm2, zmmword ptr [rcx]
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x6d,0x48,0x76,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpcmpeqd k5, zmm2, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpcmpeqd k5, zmm2, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x6d,0x58,0x76,0x29]
+ vpcmpeqd k5, zmm2, dword ptr [rcx]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x6d,0x48,0x76,0x6a,0x7f]
+ vpcmpeqd k5, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x6d,0x48,0x76,0xaa,0x00,0x20,0x00,0x00]
+ vpcmpeqd k5, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x6d,0x48,0x76,0x6a,0x80]
+ vpcmpeqd k5, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpeqd k5, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x6d,0x48,0x76,0xaa,0xc0,0xdf,0xff,0xff]
+ vpcmpeqd k5, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpeqd k5, zmm2, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x6d,0x58,0x76,0x6a,0x7f]
+ vpcmpeqd k5, zmm2, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm2, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x6d,0x58,0x76,0xaa,0x00,0x02,0x00,0x00]
+ vpcmpeqd k5, zmm2, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm2, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x6d,0x58,0x76,0x6a,0x80]
+ vpcmpeqd k5, zmm2, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm2, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x6d,0x58,0x76,0xaa,0xfc,0xfd,0xff,0xff]
+ vpcmpeqd k5, zmm2, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpcmpeqq k3, zmm22, zmm2
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0xda]
+ vpcmpeqq k3, zmm22, zmm2
+
+// CHECK: vpcmpeqq k3 {k6}, zmm22, zmm2
+// CHECK: encoding: [0x62,0xf2,0xcd,0x46,0x29,0xda]
+ vpcmpeqq k3 {k6}, zmm22, zmm2
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0x19]
+ vpcmpeqq k3, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xcd,0x40,0x29,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpcmpeqq k3, zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpcmpeqq k3, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x29,0x19]
+ vpcmpeqq k3, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0x5a,0x7f]
+ vpcmpeqq k3, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0x9a,0x00,0x20,0x00,0x00]
+ vpcmpeqq k3, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0x5a,0x80]
+ vpcmpeqq k3, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpeqq k3, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x29,0x9a,0xc0,0xdf,0xff,0xff]
+ vpcmpeqq k3, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpeqq k3, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x29,0x5a,0x7f]
+ vpcmpeqq k3, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpcmpeqq k3, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x29,0x9a,0x00,0x04,0x00,0x00]
+ vpcmpeqq k3, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpcmpeqq k3, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x29,0x5a,0x80]
+ vpcmpeqq k3, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpcmpeqq k3, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x29,0x9a,0xf8,0xfb,0xff,0xff]
+ vpcmpeqq k3, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcmpgtd k5, zmm21, zmm8
+// CHECK: encoding: [0x62,0xd1,0x55,0x40,0x66,0xe8]
+ vpcmpgtd k5, zmm21, zmm8
+
+// CHECK: vpcmpgtd k5 {k5}, zmm21, zmm8
+// CHECK: encoding: [0x62,0xd1,0x55,0x45,0x66,0xe8]
+ vpcmpgtd k5 {k5}, zmm21, zmm8
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x55,0x40,0x66,0x29]
+ vpcmpgtd k5, zmm21, zmmword ptr [rcx]
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x55,0x40,0x66,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpcmpgtd k5, zmm21, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpcmpgtd k5, zmm21, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x55,0x50,0x66,0x29]
+ vpcmpgtd k5, zmm21, dword ptr [rcx]{1to16}
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x55,0x40,0x66,0x6a,0x7f]
+ vpcmpgtd k5, zmm21, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x55,0x40,0x66,0xaa,0x00,0x20,0x00,0x00]
+ vpcmpgtd k5, zmm21, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x55,0x40,0x66,0x6a,0x80]
+ vpcmpgtd k5, zmm21, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpgtd k5, zmm21, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x55,0x40,0x66,0xaa,0xc0,0xdf,0xff,0xff]
+ vpcmpgtd k5, zmm21, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpgtd k5, zmm21, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x55,0x50,0x66,0x6a,0x7f]
+ vpcmpgtd k5, zmm21, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpcmpgtd k5, zmm21, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x55,0x50,0x66,0xaa,0x00,0x02,0x00,0x00]
+ vpcmpgtd k5, zmm21, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpcmpgtd k5, zmm21, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x55,0x50,0x66,0x6a,0x80]
+ vpcmpgtd k5, zmm21, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpcmpgtd k5, zmm21, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x55,0x50,0x66,0xaa,0xfc,0xfd,0xff,0xff]
+ vpcmpgtd k5, zmm21, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpcmpgtq k2, zmm20, zmm17
+// CHECK: encoding: [0x62,0xb2,0xdd,0x40,0x37,0xd1]
+ vpcmpgtq k2, zmm20, zmm17
+
+// CHECK: vpcmpgtq k2 {k3}, zmm20, zmm17
+// CHECK: encoding: [0x62,0xb2,0xdd,0x43,0x37,0xd1]
+ vpcmpgtq k2 {k3}, zmm20, zmm17
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x40,0x37,0x11]
+ vpcmpgtq k2, zmm20, zmmword ptr [rcx]
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xdd,0x40,0x37,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpcmpgtq k2, zmm20, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpcmpgtq k2, zmm20, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x11]
+ vpcmpgtq k2, zmm20, qword ptr [rcx]{1to8}
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x40,0x37,0x52,0x7f]
+ vpcmpgtq k2, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x40,0x37,0x92,0x00,0x20,0x00,0x00]
+ vpcmpgtq k2, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x40,0x37,0x52,0x80]
+ vpcmpgtq k2, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpgtq k2, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x40,0x37,0x92,0xc0,0xdf,0xff,0xff]
+ vpcmpgtq k2, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpgtq k2, zmm20, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x52,0x7f]
+ vpcmpgtq k2, zmm20, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpcmpgtq k2, zmm20, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x92,0x00,0x04,0x00,0x00]
+ vpcmpgtq k2, zmm20, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpcmpgtq k2, zmm20, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x52,0x80]
+ vpcmpgtq k2, zmm20, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpcmpgtq k2, zmm20, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x50,0x37,0x92,0xf8,0xfb,0xff,0xff]
+ vpcmpgtq k2, zmm20, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcmpq k5, zmm28, zmm28, 171
+// CHECK: encoding: [0x62,0x93,0x9d,0x40,0x1f,0xec,0xab]
+ vpcmpq k5, zmm28, zmm28, 171
+
+// CHECK: vpcmpq k5 {k3}, zmm28, zmm28, 171
+// CHECK: encoding: [0x62,0x93,0x9d,0x43,0x1f,0xec,0xab]
+ vpcmpq k5 {k3}, zmm28, zmm28, 171
+
+// CHECK: vpcmpq k5, zmm28, zmm28, 123
+// CHECK: encoding: [0x62,0x93,0x9d,0x40,0x1f,0xec,0x7b]
+ vpcmpq k5, zmm28, zmm28, 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x29,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x9d,0x40,0x1f,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpcmpq k5, zmm28, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x29,0x7b]
+ vpcmpq k5, zmm28, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x6a,0x7f,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0x6a,0x80,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpq k5, zmm28, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x40,0x1f,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpq k5, zmm28, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpq k5, zmm28, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x6a,0x7f,0x7b]
+ vpcmpq k5, zmm28, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpcmpq k5, zmm28, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0xaa,0x00,0x04,0x00,0x00,0x7b]
+ vpcmpq k5, zmm28, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpcmpq k5, zmm28, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0x6a,0x80,0x7b]
+ vpcmpq k5, zmm28, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpcmpq k5, zmm28, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x50,0x1f,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
+ vpcmpq k5, zmm28, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpcmpud k2, zmm25, zmm7, 171
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0xd7,0xab]
+ vpcmpud k2, zmm25, zmm7, 171
+
+// CHECK: vpcmpud k2 {k1}, zmm25, zmm7, 171
+// CHECK: encoding: [0x62,0xf3,0x35,0x41,0x1e,0xd7,0xab]
+ vpcmpud k2 {k1}, zmm25, zmm7, 171
+
+// CHECK: vpcmpud k2, zmm25, zmm7, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0xd7,0x7b]
+ vpcmpud k2, zmm25, zmm7, 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x11,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1e,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpcmpud k2, zmm25, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x11,0x7b]
+ vpcmpud k2, zmm25, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x52,0x7f,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x52,0x80,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpud k2, zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1e,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpud k2, zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpud k2, zmm25, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x52,0x7f,0x7b]
+ vpcmpud k2, zmm25, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpcmpud k2, zmm25, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpcmpud k2, zmm25, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpcmpud k2, zmm25, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x52,0x80,0x7b]
+ vpcmpud k2, zmm25, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpcmpud k2, zmm25, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1e,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpcmpud k2, zmm25, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpcmpuq k3, zmm14, zmm8, 171
+// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd8,0xab]
+ vpcmpuq k3, zmm14, zmm8, 171
+
+// CHECK: vpcmpuq k3 {k2}, zmm14, zmm8, 171
+// CHECK: encoding: [0x62,0xd3,0x8d,0x4a,0x1e,0xd8,0xab]
+ vpcmpuq k3 {k2}, zmm14, zmm8, 171
+
+// CHECK: vpcmpuq k3, zmm14, zmm8, 123
+// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd8,0x7b]
+ vpcmpuq k3, zmm14, zmm8, 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x19,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x8d,0x48,0x1e,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpcmpuq k3, zmm14, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x19,0x7b]
+ vpcmpuq k3, zmm14, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x5a,0x7f,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x5a,0x80,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpuq k3, zmm14, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpuq k3, zmm14, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpuq k3, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x5a,0x7f,0x7b]
+ vpcmpuq k3, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpcmpuq k3, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vpcmpuq k3, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpcmpuq k3, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x5a,0x80,0x7b]
+ vpcmpuq k3, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpcmpuq k3, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vpcmpuq k3, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpblendmq zmm27, zmm14, zmm17
+// CHECK: encoding: [0x62,0x22,0x8d,0x48,0x64,0xd9]
+ vpblendmq zmm27, zmm14, zmm17
+
+// CHECK: vpblendmq zmm27 {k5}, zmm14, zmm17
+// CHECK: encoding: [0x62,0x22,0x8d,0x4d,0x64,0xd9]
+ vpblendmq zmm27 {k5}, zmm14, zmm17
+
+// CHECK: vpblendmq zmm27 {k5} {z}, zmm14, zmm17
+// CHECK: encoding: [0x62,0x22,0x8d,0xcd,0x64,0xd9]
+ vpblendmq zmm27 {k5} {z}, zmm14, zmm17
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x8d,0x48,0x64,0x19]
+ vpblendmq zmm27, zmm14, zmmword ptr [rcx]
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x8d,0x48,0x64,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpblendmq zmm27, zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpblendmq zmm27, zmm14, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0x8d,0x58,0x64,0x19]
+ vpblendmq zmm27, zmm14, qword ptr [rcx]{1to8}
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x8d,0x48,0x64,0x5a,0x7f]
+ vpblendmq zmm27, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x8d,0x48,0x64,0x9a,0x00,0x20,0x00,0x00]
+ vpblendmq zmm27, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x8d,0x48,0x64,0x5a,0x80]
+ vpblendmq zmm27, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vpblendmq zmm27, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x8d,0x48,0x64,0x9a,0xc0,0xdf,0xff,0xff]
+ vpblendmq zmm27, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vpblendmq zmm27, zmm14, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0x8d,0x58,0x64,0x5a,0x7f]
+ vpblendmq zmm27, zmm14, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpblendmq zmm27, zmm14, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x8d,0x58,0x64,0x9a,0x00,0x04,0x00,0x00]
+ vpblendmq zmm27, zmm14, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpblendmq zmm27, zmm14, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x8d,0x58,0x64,0x5a,0x80]
+ vpblendmq zmm27, zmm14, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpblendmq zmm27, zmm14, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0x8d,0x58,0x64,0x9a,0xf8,0xfb,0xff,0xff]
+ vpblendmq zmm27, zmm14, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcompressd zmmword ptr [rcx], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x39]
+ vpcompressd zmmword ptr [rcx], zmm23
+
+// CHECK: vpcompressd zmmword ptr [rcx] {k7}, zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x4f,0x8b,0x39]
+ vpcompressd zmmword ptr [rcx] {k7}, zmm23
+
+// CHECK: vpcompressd zmmword ptr [rax + 8*r14 + 291], zmm23
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x8b,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpcompressd zmmword ptr [rax + 8*r14 + 291], zmm23
+
+// CHECK: vpcompressd zmmword ptr [rdx + 508], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x7a,0x7f]
+ vpcompressd zmmword ptr [rdx + 508], zmm23
+
+// CHECK: vpcompressd zmmword ptr [rdx + 512], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0xba,0x00,0x02,0x00,0x00]
+ vpcompressd zmmword ptr [rdx + 512], zmm23
+
+// CHECK: vpcompressd zmmword ptr [rdx - 512], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x7a,0x80]
+ vpcompressd zmmword ptr [rdx - 512], zmm23
+
+// CHECK: vpcompressd zmmword ptr [rdx - 516], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0xba,0xfc,0xfd,0xff,0xff]
+ vpcompressd zmmword ptr [rdx - 516], zmm23
+
+// CHECK: vpcompressd zmm16, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x8b,0xd0]
+ vpcompressd zmm16, zmm18
+
+// CHECK: vpcompressd zmm16 {k2}, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x4a,0x8b,0xd0]
+ vpcompressd zmm16 {k2}, zmm18
+
+// CHECK: vpcompressd zmm16 {k2} {z}, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0xca,0x8b,0xd0]
+ vpcompressd zmm16 {k2} {z}, zmm18
+
+// CHECK: vpermd zmm22, zmm28, zmm9
+// CHECK: encoding: [0x62,0xc2,0x1d,0x40,0x36,0xf1]
+ vpermd zmm22, zmm28, zmm9
+
+// CHECK: vpermd zmm22 {k1}, zmm28, zmm9
+// CHECK: encoding: [0x62,0xc2,0x1d,0x41,0x36,0xf1]
+ vpermd zmm22 {k1}, zmm28, zmm9
+
+// CHECK: vpermd zmm22 {k1} {z}, zmm28, zmm9
+// CHECK: encoding: [0x62,0xc2,0x1d,0xc1,0x36,0xf1]
+ vpermd zmm22 {k1} {z}, zmm28, zmm9
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x31]
+ vpermd zmm22, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x1d,0x40,0x36,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpermd zmm22, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermd zmm22, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x31]
+ vpermd zmm22, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x72,0x7f]
+ vpermd zmm22, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0xb2,0x00,0x20,0x00,0x00]
+ vpermd zmm22, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0x72,0x80]
+ vpermd zmm22, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermd zmm22, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x40,0x36,0xb2,0xc0,0xdf,0xff,0xff]
+ vpermd zmm22, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermd zmm22, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x72,0x7f]
+ vpermd zmm22, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermd zmm22, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0xb2,0x00,0x02,0x00,0x00]
+ vpermd zmm22, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermd zmm22, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0x72,0x80]
+ vpermd zmm22, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermd zmm22, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x50,0x36,0xb2,0xfc,0xfd,0xff,0xff]
+ vpermd zmm22, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermilpd zmm19, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0xdc,0xab]
+ vpermilpd zmm19, zmm4, 171
+
+// CHECK: vpermilpd zmm19 {k1}, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x49,0x05,0xdc,0xab]
+ vpermilpd zmm19 {k1}, zmm4, 171
+
+// CHECK: vpermilpd zmm19 {k1} {z}, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0xc9,0x05,0xdc,0xab]
+ vpermilpd zmm19 {k1} {z}, zmm4, 171
+
+// CHECK: vpermilpd zmm19, zmm4, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0xdc,0x7b]
+ vpermilpd zmm19, zmm4, 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0x19,0x7b]
+ vpermilpd zmm19, zmmword ptr [rcx], 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xa3,0xfd,0x48,0x05,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpermilpd zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpermilpd zmm19, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x05,0x19,0x7b]
+ vpermilpd zmm19, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0x5a,0x7f,0x7b]
+ vpermilpd zmm19, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpermilpd zmm19, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0x5a,0x80,0x7b]
+ vpermilpd zmm19, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermilpd zmm19, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x05,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermilpd zmm19, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermilpd zmm19, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x05,0x5a,0x7f,0x7b]
+ vpermilpd zmm19, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermilpd zmm19, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x05,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vpermilpd zmm19, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermilpd zmm19, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x05,0x5a,0x80,0x7b]
+ vpermilpd zmm19, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermilpd zmm19, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x05,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermilpd zmm19, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermilpd zmm1, zmm26, zmm21
+// CHECK: encoding: [0x62,0xb2,0xad,0x40,0x0d,0xcd]
+ vpermilpd zmm1, zmm26, zmm21
+
+// CHECK: vpermilpd zmm1 {k2}, zmm26, zmm21
+// CHECK: encoding: [0x62,0xb2,0xad,0x42,0x0d,0xcd]
+ vpermilpd zmm1 {k2}, zmm26, zmm21
+
+// CHECK: vpermilpd zmm1 {k2} {z}, zmm26, zmm21
+// CHECK: encoding: [0x62,0xb2,0xad,0xc2,0x0d,0xcd]
+ vpermilpd zmm1 {k2} {z}, zmm26, zmm21
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xad,0x40,0x0d,0x09]
+ vpermilpd zmm1, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xad,0x40,0x0d,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpermilpd zmm1, zmm26, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermilpd zmm1, zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x50,0x0d,0x09]
+ vpermilpd zmm1, zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xad,0x40,0x0d,0x4a,0x7f]
+ vpermilpd zmm1, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x40,0x0d,0x8a,0x00,0x20,0x00,0x00]
+ vpermilpd zmm1, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x40,0x0d,0x4a,0x80]
+ vpermilpd zmm1, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermilpd zmm1, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xad,0x40,0x0d,0x8a,0xc0,0xdf,0xff,0xff]
+ vpermilpd zmm1, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermilpd zmm1, zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x50,0x0d,0x4a,0x7f]
+ vpermilpd zmm1, zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermilpd zmm1, zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x50,0x0d,0x8a,0x00,0x04,0x00,0x00]
+ vpermilpd zmm1, zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermilpd zmm1, zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x50,0x0d,0x4a,0x80]
+ vpermilpd zmm1, zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermilpd zmm1, zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x50,0x0d,0x8a,0xf8,0xfb,0xff,0xff]
+ vpermilpd zmm1, zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermilps zmm2, zmm22, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x04,0xd6,0xab]
+ vpermilps zmm2, zmm22, 171
+
+// CHECK: vpermilps zmm2 {k2}, zmm22, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0x4a,0x04,0xd6,0xab]
+ vpermilps zmm2 {k2}, zmm22, 171
+
+// CHECK: vpermilps zmm2 {k2} {z}, zmm22, 171
+// CHECK: encoding: [0x62,0xb3,0x7d,0xca,0x04,0xd6,0xab]
+ vpermilps zmm2 {k2} {z}, zmm22, 171
+
+// CHECK: vpermilps zmm2, zmm22, 123
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x04,0xd6,0x7b]
+ vpermilps zmm2, zmm22, 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x04,0x11,0x7b]
+ vpermilps zmm2, zmmword ptr [rcx], 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x04,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpermilps zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpermilps zmm2, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x04,0x11,0x7b]
+ vpermilps zmm2, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x04,0x52,0x7f,0x7b]
+ vpermilps zmm2, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x04,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpermilps zmm2, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x04,0x52,0x80,0x7b]
+ vpermilps zmm2, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermilps zmm2, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x04,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermilps zmm2, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermilps zmm2, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x04,0x52,0x7f,0x7b]
+ vpermilps zmm2, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpermilps zmm2, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x04,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpermilps zmm2, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpermilps zmm2, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x04,0x52,0x80,0x7b]
+ vpermilps zmm2, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpermilps zmm2, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x58,0x04,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpermilps zmm2, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpermilps zmm13, zmm20, zmm2
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0xea]
+ vpermilps zmm13, zmm20, zmm2
+
+// CHECK: vpermilps zmm13 {k1}, zmm20, zmm2
+// CHECK: encoding: [0x62,0x72,0x5d,0x41,0x0c,0xea]
+ vpermilps zmm13 {k1}, zmm20, zmm2
+
+// CHECK: vpermilps zmm13 {k1} {z}, zmm20, zmm2
+// CHECK: encoding: [0x62,0x72,0x5d,0xc1,0x0c,0xea]
+ vpermilps zmm13 {k1} {z}, zmm20, zmm2
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0x29]
+ vpermilps zmm13, zmm20, zmmword ptr [rcx]
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x5d,0x40,0x0c,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpermilps zmm13, zmm20, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermilps zmm13, zmm20, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x0c,0x29]
+ vpermilps zmm13, zmm20, dword ptr [rcx]{1to16}
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0x6a,0x7f]
+ vpermilps zmm13, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0xaa,0x00,0x20,0x00,0x00]
+ vpermilps zmm13, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0x6a,0x80]
+ vpermilps zmm13, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermilps zmm13, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x0c,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermilps zmm13, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermilps zmm13, zmm20, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x0c,0x6a,0x7f]
+ vpermilps zmm13, zmm20, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermilps zmm13, zmm20, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x0c,0xaa,0x00,0x02,0x00,0x00]
+ vpermilps zmm13, zmm20, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermilps zmm13, zmm20, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x0c,0x6a,0x80]
+ vpermilps zmm13, zmm20, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermilps zmm13, zmm20, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x0c,0xaa,0xfc,0xfd,0xff,0xff]
+ vpermilps zmm13, zmm20, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermpd zmm3, zmm27, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x01,0xdb,0xab]
+ vpermpd zmm3, zmm27, 171
+
+// CHECK: vpermpd zmm3 {k2}, zmm27, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0x4a,0x01,0xdb,0xab]
+ vpermpd zmm3 {k2}, zmm27, 171
+
+// CHECK: vpermpd zmm3 {k2} {z}, zmm27, 171
+// CHECK: encoding: [0x62,0x93,0xfd,0xca,0x01,0xdb,0xab]
+ vpermpd zmm3 {k2} {z}, zmm27, 171
+
+// CHECK: vpermpd zmm3, zmm27, 123
+// CHECK: encoding: [0x62,0x93,0xfd,0x48,0x01,0xdb,0x7b]
+ vpermpd zmm3, zmm27, 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x19,0x7b]
+ vpermpd zmm3, zmmword ptr [rcx], 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x01,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpermpd zmm3, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpermpd zmm3, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x19,0x7b]
+ vpermpd zmm3, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x5a,0x7f,0x7b]
+ vpermpd zmm3, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpermpd zmm3, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x5a,0x80,0x7b]
+ vpermpd zmm3, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermpd zmm3, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x01,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermpd zmm3, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermpd zmm3, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x5a,0x7f,0x7b]
+ vpermpd zmm3, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermpd zmm3, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vpermpd zmm3, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermpd zmm3, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x5a,0x80,0x7b]
+ vpermpd zmm3, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermpd zmm3, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x58,0x01,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermpd zmm3, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermps zmm4, zmm2, zmm24
+// CHECK: encoding: [0x62,0x92,0x6d,0x48,0x16,0xe0]
+ vpermps zmm4, zmm2, zmm24
+
+// CHECK: vpermps zmm4 {k4}, zmm2, zmm24
+// CHECK: encoding: [0x62,0x92,0x6d,0x4c,0x16,0xe0]
+ vpermps zmm4 {k4}, zmm2, zmm24
+
+// CHECK: vpermps zmm4 {k4} {z}, zmm2, zmm24
+// CHECK: encoding: [0x62,0x92,0x6d,0xcc,0x16,0xe0]
+ vpermps zmm4 {k4} {z}, zmm2, zmm24
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x21]
+ vpermps zmm4, zmm2, zmmword ptr [rcx]
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x6d,0x48,0x16,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpermps zmm4, zmm2, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermps zmm4, zmm2, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x21]
+ vpermps zmm4, zmm2, dword ptr [rcx]{1to16}
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x62,0x7f]
+ vpermps zmm4, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0xa2,0x00,0x20,0x00,0x00]
+ vpermps zmm4, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0x62,0x80]
+ vpermps zmm4, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermps zmm4, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x6d,0x48,0x16,0xa2,0xc0,0xdf,0xff,0xff]
+ vpermps zmm4, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermps zmm4, zmm2, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x62,0x7f]
+ vpermps zmm4, zmm2, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermps zmm4, zmm2, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0xa2,0x00,0x02,0x00,0x00]
+ vpermps zmm4, zmm2, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermps zmm4, zmm2, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0x62,0x80]
+ vpermps zmm4, zmm2, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermps zmm4, zmm2, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x6d,0x58,0x16,0xa2,0xfc,0xfd,0xff,0xff]
+ vpermps zmm4, zmm2, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermq zmm25, zmm4, 171
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0xcc,0xab]
+ vpermq zmm25, zmm4, 171
+
+// CHECK: vpermq zmm25 {k6}, zmm4, 171
+// CHECK: encoding: [0x62,0x63,0xfd,0x4e,0x00,0xcc,0xab]
+ vpermq zmm25 {k6}, zmm4, 171
+
+// CHECK: vpermq zmm25 {k6} {z}, zmm4, 171
+// CHECK: encoding: [0x62,0x63,0xfd,0xce,0x00,0xcc,0xab]
+ vpermq zmm25 {k6} {z}, zmm4, 171
+
+// CHECK: vpermq zmm25, zmm4, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0xcc,0x7b]
+ vpermq zmm25, zmm4, 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x09,0x7b]
+ vpermq zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x00,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpermq zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpermq zmm25, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x09,0x7b]
+ vpermq zmm25, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x4a,0x7f,0x7b]
+ vpermq zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vpermq zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x4a,0x80,0x7b]
+ vpermq zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermq zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermq zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermq zmm25, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x4a,0x7f,0x7b]
+ vpermq zmm25, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermq zmm25, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vpermq zmm25, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermq zmm25, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x4a,0x80,0x7b]
+ vpermq zmm25, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermq zmm25, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermq zmm25, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x89,0x09]
+ vpexpandd zmm1, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm1 {k7}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4f,0x89,0x09]
+ vpexpandd zmm1 {k7}, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm1 {k7} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xcf,0x89,0x09]
+ vpexpandd zmm1 {k7} {z}, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x89,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpexpandd zmm1, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x89,0x4a,0x7f]
+ vpexpandd zmm1, zmmword ptr [rdx + 508]
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x89,0x8a,0x00,0x02,0x00,0x00]
+ vpexpandd zmm1, zmmword ptr [rdx + 512]
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x89,0x4a,0x80]
+ vpexpandd zmm1, zmmword ptr [rdx - 512]
+
+// CHECK: vpexpandd zmm1, zmmword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x89,0x8a,0xfc,0xfd,0xff,0xff]
+ vpexpandd zmm1, zmmword ptr [rdx - 516]
+
+// CHECK: vpexpandd zmm19, zmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0x48,0x89,0xd9]
+ vpexpandd zmm19, zmm25
+
+// CHECK: vpexpandd zmm19 {k5}, zmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0x4d,0x89,0xd9]
+ vpexpandd zmm19 {k5}, zmm25
+
+// CHECK: vpexpandd zmm19 {k5} {z}, zmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0xcd,0x89,0xd9]
+ vpexpandd zmm19 {k5} {z}, zmm25
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x89,0x01]
+ vpexpandq zmm24, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm24 {k7}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4f,0x89,0x01]
+ vpexpandq zmm24 {k7}, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm24 {k7} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xcf,0x89,0x01]
+ vpexpandq zmm24 {k7} {z}, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x89,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpexpandq zmm24, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x89,0x42,0x7f]
+ vpexpandq zmm24, zmmword ptr [rdx + 1016]
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x89,0x82,0x00,0x04,0x00,0x00]
+ vpexpandq zmm24, zmmword ptr [rdx + 1024]
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x89,0x42,0x80]
+ vpexpandq zmm24, zmmword ptr [rdx - 1024]
+
+// CHECK: vpexpandq zmm24, zmmword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x89,0x82,0xf8,0xfb,0xff,0xff]
+ vpexpandq zmm24, zmmword ptr [rdx - 1032]
+
+// CHECK: vpexpandq zmm15, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0x48,0x89,0xf8]
+ vpexpandq zmm15, zmm8
+
+// CHECK: vpexpandq zmm15 {k7}, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0x4f,0x89,0xf8]
+ vpexpandq zmm15 {k7}, zmm8
+
+// CHECK: vpexpandq zmm15 {k7} {z}, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0xcf,0x89,0xf8]
+ vpexpandq zmm15 {k7} {z}, zmm8
+
+// CHECK: vpmaxsd zmm6, zmm8, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x3d,0xf0]
+ vpmaxsd zmm6, zmm8, zmm16
+
+// CHECK: vpmaxsd zmm6 {k3}, zmm8, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0x4b,0x3d,0xf0]
+ vpmaxsd zmm6 {k3}, zmm8, zmm16
+
+// CHECK: vpmaxsd zmm6 {k3} {z}, zmm8, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0xcb,0x3d,0xf0]
+ vpmaxsd zmm6 {k3} {z}, zmm8, zmm16
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x31]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x3d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmaxsd zmm6, zmm8, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x31]
+ vpmaxsd zmm6, zmm8, dword ptr [rcx]{1to16}
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x72,0x7f]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0xb2,0x00,0x20,0x00,0x00]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0x72,0x80]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxsd zmm6, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x3d,0xb2,0xc0,0xdf,0xff,0xff]
+ vpmaxsd zmm6, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxsd zmm6, zmm8, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x72,0x7f]
+ vpmaxsd zmm6, zmm8, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmaxsd zmm6, zmm8, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0xb2,0x00,0x02,0x00,0x00]
+ vpmaxsd zmm6, zmm8, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmaxsd zmm6, zmm8, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0x72,0x80]
+ vpmaxsd zmm6, zmm8, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmaxsd zmm6, zmm8, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x3d,0xb2,0xfc,0xfd,0xff,0xff]
+ vpmaxsd zmm6, zmm8, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmaxsq zmm6, zmm6, zmm1
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xf1]
+ vpmaxsq zmm6, zmm6, zmm1
+
+// CHECK: vpmaxsq zmm6 {k7}, zmm6, zmm1
+// CHECK: encoding: [0x62,0xf2,0xcd,0x4f,0x3d,0xf1]
+ vpmaxsq zmm6 {k7}, zmm6, zmm1
+
+// CHECK: vpmaxsq zmm6 {k7} {z}, zmm6, zmm1
+// CHECK: encoding: [0x62,0xf2,0xcd,0xcf,0x3d,0xf1]
+ vpmaxsq zmm6 {k7} {z}, zmm6, zmm1
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x31]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rcx]
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xcd,0x48,0x3d,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmaxsq zmm6, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x31]
+ vpmaxsq zmm6, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x72,0x7f]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xb2,0x00,0x20,0x00,0x00]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0x72,0x80]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxsq zmm6, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x3d,0xb2,0xc0,0xdf,0xff,0xff]
+ vpmaxsq zmm6, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxsq zmm6, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x72,0x7f]
+ vpmaxsq zmm6, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmaxsq zmm6, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0xb2,0x00,0x04,0x00,0x00]
+ vpmaxsq zmm6, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmaxsq zmm6, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0x72,0x80]
+ vpmaxsq zmm6, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmaxsq zmm6, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x3d,0xb2,0xf8,0xfb,0xff,0xff]
+ vpmaxsq zmm6, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmaxud zmm17, zmm7, zmm25
+// CHECK: encoding: [0x62,0x82,0x45,0x48,0x3f,0xc9]
+ vpmaxud zmm17, zmm7, zmm25
+
+// CHECK: vpmaxud zmm17 {k5}, zmm7, zmm25
+// CHECK: encoding: [0x62,0x82,0x45,0x4d,0x3f,0xc9]
+ vpmaxud zmm17 {k5}, zmm7, zmm25
+
+// CHECK: vpmaxud zmm17 {k5} {z}, zmm7, zmm25
+// CHECK: encoding: [0x62,0x82,0x45,0xcd,0x3f,0xc9]
+ vpmaxud zmm17 {k5} {z}, zmm7, zmm25
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x09]
+ vpmaxud zmm17, zmm7, zmmword ptr [rcx]
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x45,0x48,0x3f,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpmaxud zmm17, zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmaxud zmm17, zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x09]
+ vpmaxud zmm17, zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x4a,0x7f]
+ vpmaxud zmm17, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x8a,0x00,0x20,0x00,0x00]
+ vpmaxud zmm17, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x4a,0x80]
+ vpmaxud zmm17, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxud zmm17, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x45,0x48,0x3f,0x8a,0xc0,0xdf,0xff,0xff]
+ vpmaxud zmm17, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxud zmm17, zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x4a,0x7f]
+ vpmaxud zmm17, zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmaxud zmm17, zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x8a,0x00,0x02,0x00,0x00]
+ vpmaxud zmm17, zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmaxud zmm17, zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x4a,0x80]
+ vpmaxud zmm17, zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmaxud zmm17, zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x45,0x58,0x3f,0x8a,0xfc,0xfd,0xff,0xff]
+ vpmaxud zmm17, zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmaxuq zmm30, zmm22, zmm25
+// CHECK: encoding: [0x62,0x02,0xcd,0x40,0x3f,0xf1]
+ vpmaxuq zmm30, zmm22, zmm25
+
+// CHECK: vpmaxuq zmm30 {k1}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x02,0xcd,0x41,0x3f,0xf1]
+ vpmaxuq zmm30 {k1}, zmm22, zmm25
+
+// CHECK: vpmaxuq zmm30 {k1} {z}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x02,0xcd,0xc1,0x3f,0xf1]
+ vpmaxuq zmm30 {k1} {z}, zmm22, zmm25
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x31]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xcd,0x40,0x3f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmaxuq zmm30, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x31]
+ vpmaxuq zmm30, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x72,0x7f]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0xb2,0x00,0x20,0x00,0x00]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0x72,0x80]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxuq zmm30, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xcd,0x40,0x3f,0xb2,0xc0,0xdf,0xff,0xff]
+ vpmaxuq zmm30, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxuq zmm30, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x72,0x7f]
+ vpmaxuq zmm30, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmaxuq zmm30, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0xb2,0x00,0x04,0x00,0x00]
+ vpmaxuq zmm30, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmaxuq zmm30, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0x72,0x80]
+ vpmaxuq zmm30, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmaxuq zmm30, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xcd,0x50,0x3f,0xb2,0xf8,0xfb,0xff,0xff]
+ vpmaxuq zmm30, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpminsd zmm2, zmm16, zmm24
+// CHECK: encoding: [0x62,0x92,0x7d,0x40,0x39,0xd0]
+ vpminsd zmm2, zmm16, zmm24
+
+// CHECK: vpminsd zmm2 {k3}, zmm16, zmm24
+// CHECK: encoding: [0x62,0x92,0x7d,0x43,0x39,0xd0]
+ vpminsd zmm2 {k3}, zmm16, zmm24
+
+// CHECK: vpminsd zmm2 {k3} {z}, zmm16, zmm24
+// CHECK: encoding: [0x62,0x92,0x7d,0xc3,0x39,0xd0]
+ vpminsd zmm2 {k3} {z}, zmm16, zmm24
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x11]
+ vpminsd zmm2, zmm16, zmmword ptr [rcx]
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x40,0x39,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpminsd zmm2, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpminsd zmm2, zmm16, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x11]
+ vpminsd zmm2, zmm16, dword ptr [rcx]{1to16}
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x52,0x7f]
+ vpminsd zmm2, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x92,0x00,0x20,0x00,0x00]
+ vpminsd zmm2, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x52,0x80]
+ vpminsd zmm2, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminsd zmm2, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x40,0x39,0x92,0xc0,0xdf,0xff,0xff]
+ vpminsd zmm2, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminsd zmm2, zmm16, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x52,0x7f]
+ vpminsd zmm2, zmm16, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpminsd zmm2, zmm16, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x92,0x00,0x02,0x00,0x00]
+ vpminsd zmm2, zmm16, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpminsd zmm2, zmm16, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x52,0x80]
+ vpminsd zmm2, zmm16, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpminsd zmm2, zmm16, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x50,0x39,0x92,0xfc,0xfd,0xff,0xff]
+ vpminsd zmm2, zmm16, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpminsq zmm20, zmm16, zmm17
+// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0x39,0xe1]
+ vpminsq zmm20, zmm16, zmm17
+
+// CHECK: vpminsq zmm20 {k6}, zmm16, zmm17
+// CHECK: encoding: [0x62,0xa2,0xfd,0x46,0x39,0xe1]
+ vpminsq zmm20 {k6}, zmm16, zmm17
+
+// CHECK: vpminsq zmm20 {k6} {z}, zmm16, zmm17
+// CHECK: encoding: [0x62,0xa2,0xfd,0xc6,0x39,0xe1]
+ vpminsq zmm20 {k6} {z}, zmm16, zmm17
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x21]
+ vpminsq zmm20, zmm16, zmmword ptr [rcx]
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x40,0x39,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpminsq zmm20, zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpminsq zmm20, zmm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x21]
+ vpminsq zmm20, zmm16, qword ptr [rcx]{1to8}
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x62,0x7f]
+ vpminsq zmm20, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0xa2,0x00,0x20,0x00,0x00]
+ vpminsq zmm20, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0x62,0x80]
+ vpminsq zmm20, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminsq zmm20, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x40,0x39,0xa2,0xc0,0xdf,0xff,0xff]
+ vpminsq zmm20, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminsq zmm20, zmm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x62,0x7f]
+ vpminsq zmm20, zmm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpminsq zmm20, zmm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0xa2,0x00,0x04,0x00,0x00]
+ vpminsq zmm20, zmm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpminsq zmm20, zmm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0x62,0x80]
+ vpminsq zmm20, zmm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpminsq zmm20, zmm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x50,0x39,0xa2,0xf8,0xfb,0xff,0xff]
+ vpminsq zmm20, zmm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpminud zmm3, zmm23, zmm20
+// CHECK: encoding: [0x62,0xb2,0x45,0x40,0x3b,0xdc]
+ vpminud zmm3, zmm23, zmm20
+
+// CHECK: vpminud zmm3 {k3}, zmm23, zmm20
+// CHECK: encoding: [0x62,0xb2,0x45,0x43,0x3b,0xdc]
+ vpminud zmm3 {k3}, zmm23, zmm20
+
+// CHECK: vpminud zmm3 {k3} {z}, zmm23, zmm20
+// CHECK: encoding: [0x62,0xb2,0x45,0xc3,0x3b,0xdc]
+ vpminud zmm3 {k3} {z}, zmm23, zmm20
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x19]
+ vpminud zmm3, zmm23, zmmword ptr [rcx]
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x45,0x40,0x3b,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpminud zmm3, zmm23, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpminud zmm3, zmm23, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x19]
+ vpminud zmm3, zmm23, dword ptr [rcx]{1to16}
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x5a,0x7f]
+ vpminud zmm3, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x9a,0x00,0x20,0x00,0x00]
+ vpminud zmm3, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x5a,0x80]
+ vpminud zmm3, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminud zmm3, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x45,0x40,0x3b,0x9a,0xc0,0xdf,0xff,0xff]
+ vpminud zmm3, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminud zmm3, zmm23, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x5a,0x7f]
+ vpminud zmm3, zmm23, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpminud zmm3, zmm23, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x9a,0x00,0x02,0x00,0x00]
+ vpminud zmm3, zmm23, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpminud zmm3, zmm23, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x5a,0x80]
+ vpminud zmm3, zmm23, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpminud zmm3, zmm23, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x45,0x50,0x3b,0x9a,0xfc,0xfd,0xff,0xff]
+ vpminud zmm3, zmm23, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpminuq zmm11, zmm26, zmm7
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0xdf]
+ vpminuq zmm11, zmm26, zmm7
+
+// CHECK: vpminuq zmm11 {k5}, zmm26, zmm7
+// CHECK: encoding: [0x62,0x72,0xad,0x45,0x3b,0xdf]
+ vpminuq zmm11 {k5}, zmm26, zmm7
+
+// CHECK: vpminuq zmm11 {k5} {z}, zmm26, zmm7
+// CHECK: encoding: [0x62,0x72,0xad,0xc5,0x3b,0xdf]
+ vpminuq zmm11 {k5} {z}, zmm26, zmm7
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x19]
+ vpminuq zmm11, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xad,0x40,0x3b,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpminuq zmm11, zmm26, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpminuq zmm11, zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x19]
+ vpminuq zmm11, zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x5a,0x7f]
+ vpminuq zmm11, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x9a,0x00,0x20,0x00,0x00]
+ vpminuq zmm11, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x5a,0x80]
+ vpminuq zmm11, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminuq zmm11, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xad,0x40,0x3b,0x9a,0xc0,0xdf,0xff,0xff]
+ vpminuq zmm11, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminuq zmm11, zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x5a,0x7f]
+ vpminuq zmm11, zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpminuq zmm11, zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x9a,0x00,0x04,0x00,0x00]
+ vpminuq zmm11, zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpminuq zmm11, zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x5a,0x80]
+ vpminuq zmm11, zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpminuq zmm11, zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xad,0x50,0x3b,0x9a,0xf8,0xfb,0xff,0xff]
+ vpminuq zmm11, zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmovsxbd zmm27, xmm7
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0xdf]
+ vpmovsxbd zmm27, xmm7
+
+// CHECK: vpmovsxbd zmm27 {k5}, xmm7
+// CHECK: encoding: [0x62,0x62,0x7d,0x4d,0x21,0xdf]
+ vpmovsxbd zmm27 {k5}, xmm7
+
+// CHECK: vpmovsxbd zmm27 {k5} {z}, xmm7
+// CHECK: encoding: [0x62,0x62,0x7d,0xcd,0x21,0xdf]
+ vpmovsxbd zmm27 {k5} {z}, xmm7
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x19]
+ vpmovsxbd zmm27, xmmword ptr [rcx]
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x21,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsxbd zmm27, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x5a,0x7f]
+ vpmovsxbd zmm27, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x9a,0x00,0x08,0x00,0x00]
+ vpmovsxbd zmm27, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x5a,0x80]
+ vpmovsxbd zmm27, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovsxbd zmm27, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x9a,0xf0,0xf7,0xff,0xff]
+ vpmovsxbd zmm27, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovsxbq zmm11, xmm11
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x22,0xdb]
+ vpmovsxbq zmm11, xmm11
+
+// CHECK: vpmovsxbq zmm11 {k5}, xmm11
+// CHECK: encoding: [0x62,0x52,0x7d,0x4d,0x22,0xdb]
+ vpmovsxbq zmm11 {k5}, xmm11
+
+// CHECK: vpmovsxbq zmm11 {k5} {z}, xmm11
+// CHECK: encoding: [0x62,0x52,0x7d,0xcd,0x22,0xdb]
+ vpmovsxbq zmm11 {k5} {z}, xmm11
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x19]
+ vpmovsxbq zmm11, qword ptr [rcx]
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x22,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsxbq zmm11, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x5a,0x7f]
+ vpmovsxbq zmm11, qword ptr [rdx + 1016]
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x9a,0x00,0x04,0x00,0x00]
+ vpmovsxbq zmm11, qword ptr [rdx + 1024]
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x5a,0x80]
+ vpmovsxbq zmm11, qword ptr [rdx - 1024]
+
+// CHECK: vpmovsxbq zmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x9a,0xf8,0xfb,0xff,0xff]
+ vpmovsxbq zmm11, qword ptr [rdx - 1032]
+
+// CHECK: vpmovsxdq zmm26, ymm29
+// CHECK: encoding: [0x62,0x02,0x7d,0x48,0x25,0xd5]
+ vpmovsxdq zmm26, ymm29
+
+// CHECK: vpmovsxdq zmm26 {k1}, ymm29
+// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x25,0xd5]
+ vpmovsxdq zmm26 {k1}, ymm29
+
+// CHECK: vpmovsxdq zmm26 {k1} {z}, ymm29
+// CHECK: encoding: [0x62,0x02,0x7d,0xc9,0x25,0xd5]
+ vpmovsxdq zmm26 {k1} {z}, ymm29
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x11]
+ vpmovsxdq zmm26, ymmword ptr [rcx]
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x25,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsxdq zmm26, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x52,0x7f]
+ vpmovsxdq zmm26, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x92,0x00,0x10,0x00,0x00]
+ vpmovsxdq zmm26, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x52,0x80]
+ vpmovsxdq zmm26, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovsxdq zmm26, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x25,0x92,0xe0,0xef,0xff,0xff]
+ vpmovsxdq zmm26, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovsxwd zmm23, ymm11
+// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x23,0xfb]
+ vpmovsxwd zmm23, ymm11
+
+// CHECK: vpmovsxwd zmm23 {k2}, ymm11
+// CHECK: encoding: [0x62,0xc2,0x7d,0x4a,0x23,0xfb]
+ vpmovsxwd zmm23 {k2}, ymm11
+
+// CHECK: vpmovsxwd zmm23 {k2} {z}, ymm11
+// CHECK: encoding: [0x62,0xc2,0x7d,0xca,0x23,0xfb]
+ vpmovsxwd zmm23 {k2} {z}, ymm11
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x39]
+ vpmovsxwd zmm23, ymmword ptr [rcx]
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x23,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsxwd zmm23, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x7a,0x7f]
+ vpmovsxwd zmm23, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0xba,0x00,0x10,0x00,0x00]
+ vpmovsxwd zmm23, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0x7a,0x80]
+ vpmovsxwd zmm23, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovsxwd zmm23, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x23,0xba,0xe0,0xef,0xff,0xff]
+ vpmovsxwd zmm23, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovsxwq zmm25, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x48,0x24,0xc9]
+ vpmovsxwq zmm25, xmm25
+
+// CHECK: vpmovsxwq zmm25 {k4}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x4c,0x24,0xc9]
+ vpmovsxwq zmm25 {k4}, xmm25
+
+// CHECK: vpmovsxwq zmm25 {k4} {z}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0xcc,0x24,0xc9]
+ vpmovsxwq zmm25 {k4} {z}, xmm25
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x09]
+ vpmovsxwq zmm25, xmmword ptr [rcx]
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x24,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsxwq zmm25, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x4a,0x7f]
+ vpmovsxwq zmm25, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x8a,0x00,0x08,0x00,0x00]
+ vpmovsxwq zmm25, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x4a,0x80]
+ vpmovsxwq zmm25, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovsxwq zmm25, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x24,0x8a,0xf0,0xf7,0xff,0xff]
+ vpmovsxwq zmm25, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovzxbd zmm18, xmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0x48,0x31,0xd1]
+ vpmovzxbd zmm18, xmm25
+
+// CHECK: vpmovzxbd zmm18 {k7}, xmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0x4f,0x31,0xd1]
+ vpmovzxbd zmm18 {k7}, xmm25
+
+// CHECK: vpmovzxbd zmm18 {k7} {z}, xmm25
+// CHECK: encoding: [0x62,0x82,0x7d,0xcf,0x31,0xd1]
+ vpmovzxbd zmm18 {k7} {z}, xmm25
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x11]
+ vpmovzxbd zmm18, xmmword ptr [rcx]
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x31,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpmovzxbd zmm18, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x52,0x7f]
+ vpmovzxbd zmm18, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x92,0x00,0x08,0x00,0x00]
+ vpmovzxbd zmm18, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x52,0x80]
+ vpmovzxbd zmm18, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovzxbd zmm18, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x31,0x92,0xf0,0xf7,0xff,0xff]
+ vpmovzxbd zmm18, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovzxbq zmm5, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0x48,0x32,0xef]
+ vpmovzxbq zmm5, xmm15
+
+// CHECK: vpmovzxbq zmm5 {k1}, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0x49,0x32,0xef]
+ vpmovzxbq zmm5 {k1}, xmm15
+
+// CHECK: vpmovzxbq zmm5 {k1} {z}, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0xc9,0x32,0xef]
+ vpmovzxbq zmm5 {k1} {z}, xmm15
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x29]
+ vpmovzxbq zmm5, qword ptr [rcx]
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x32,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpmovzxbq zmm5, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x6a,0x7f]
+ vpmovzxbq zmm5, qword ptr [rdx + 1016]
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0xaa,0x00,0x04,0x00,0x00]
+ vpmovzxbq zmm5, qword ptr [rdx + 1024]
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0x6a,0x80]
+ vpmovzxbq zmm5, qword ptr [rdx - 1024]
+
+// CHECK: vpmovzxbq zmm5, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x32,0xaa,0xf8,0xfb,0xff,0xff]
+ vpmovzxbq zmm5, qword ptr [rdx - 1032]
+
+// CHECK: vpmovzxdq zmm20, ymm4
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xe4]
+ vpmovzxdq zmm20, ymm4
+
+// CHECK: vpmovzxdq zmm20 {k3}, ymm4
+// CHECK: encoding: [0x62,0xe2,0x7d,0x4b,0x35,0xe4]
+ vpmovzxdq zmm20 {k3}, ymm4
+
+// CHECK: vpmovzxdq zmm20 {k3} {z}, ymm4
+// CHECK: encoding: [0x62,0xe2,0x7d,0xcb,0x35,0xe4]
+ vpmovzxdq zmm20 {k3} {z}, ymm4
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x21]
+ vpmovzxdq zmm20, ymmword ptr [rcx]
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x35,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovzxdq zmm20, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x62,0x7f]
+ vpmovzxdq zmm20, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xa2,0x00,0x10,0x00,0x00]
+ vpmovzxdq zmm20, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0x62,0x80]
+ vpmovzxdq zmm20, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovzxdq zmm20, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x35,0xa2,0xe0,0xef,0xff,0xff]
+ vpmovzxdq zmm20, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovzxwd zmm8, ymm6
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0xc6]
+ vpmovzxwd zmm8, ymm6
+
+// CHECK: vpmovzxwd zmm8 {k7}, ymm6
+// CHECK: encoding: [0x62,0x72,0x7d,0x4f,0x33,0xc6]
+ vpmovzxwd zmm8 {k7}, ymm6
+
+// CHECK: vpmovzxwd zmm8 {k7} {z}, ymm6
+// CHECK: encoding: [0x62,0x72,0x7d,0xcf,0x33,0xc6]
+ vpmovzxwd zmm8 {k7} {z}, ymm6
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x01]
+ vpmovzxwd zmm8, ymmword ptr [rcx]
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x33,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpmovzxwd zmm8, ymmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x42,0x7f]
+ vpmovzxwd zmm8, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x82,0x00,0x10,0x00,0x00]
+ vpmovzxwd zmm8, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x42,0x80]
+ vpmovzxwd zmm8, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovzxwd zmm8, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x33,0x82,0xe0,0xef,0xff,0xff]
+ vpmovzxwd zmm8, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovzxwq zmm5, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0x48,0x34,0xef]
+ vpmovzxwq zmm5, xmm15
+
+// CHECK: vpmovzxwq zmm5 {k7}, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0x4f,0x34,0xef]
+ vpmovzxwq zmm5 {k7}, xmm15
+
+// CHECK: vpmovzxwq zmm5 {k7} {z}, xmm15
+// CHECK: encoding: [0x62,0xd2,0x7d,0xcf,0x34,0xef]
+ vpmovzxwq zmm5 {k7} {z}, xmm15
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x29]
+ vpmovzxwq zmm5, xmmword ptr [rcx]
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x34,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpmovzxwq zmm5, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x6a,0x7f]
+ vpmovzxwq zmm5, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0xaa,0x00,0x08,0x00,0x00]
+ vpmovzxwq zmm5, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0x6a,0x80]
+ vpmovzxwq zmm5, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovzxwq zmm5, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x34,0xaa,0xf0,0xf7,0xff,0xff]
+ vpmovzxwq zmm5, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmuldq zmm29, zmm9, zmm9
+// CHECK: encoding: [0x62,0x42,0xb5,0x48,0x28,0xe9]
+ vpmuldq zmm29, zmm9, zmm9
+
+// CHECK: vpmuldq zmm29 {k5}, zmm9, zmm9
+// CHECK: encoding: [0x62,0x42,0xb5,0x4d,0x28,0xe9]
+ vpmuldq zmm29 {k5}, zmm9, zmm9
+
+// CHECK: vpmuldq zmm29 {k5} {z}, zmm9, zmm9
+// CHECK: encoding: [0x62,0x42,0xb5,0xcd,0x28,0xe9]
+ vpmuldq zmm29 {k5} {z}, zmm9, zmm9
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x29]
+ vpmuldq zmm29, zmm9, zmmword ptr [rcx]
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xb5,0x48,0x28,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpmuldq zmm29, zmm9, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmuldq zmm29, zmm9, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x29]
+ vpmuldq zmm29, zmm9, qword ptr [rcx]{1to8}
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x6a,0x7f]
+ vpmuldq zmm29, zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0xaa,0x00,0x20,0x00,0x00]
+ vpmuldq zmm29, zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0x6a,0x80]
+ vpmuldq zmm29, zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmuldq zmm29, zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xb5,0x48,0x28,0xaa,0xc0,0xdf,0xff,0xff]
+ vpmuldq zmm29, zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmuldq zmm29, zmm9, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x6a,0x7f]
+ vpmuldq zmm29, zmm9, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmuldq zmm29, zmm9, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0xaa,0x00,0x04,0x00,0x00]
+ vpmuldq zmm29, zmm9, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmuldq zmm29, zmm9, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0x6a,0x80]
+ vpmuldq zmm29, zmm9, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmuldq zmm29, zmm9, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xb5,0x58,0x28,0xaa,0xf8,0xfb,0xff,0xff]
+ vpmuldq zmm29, zmm9, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmulld zmm12, zmm3, zmm2
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xe2]
+ vpmulld zmm12, zmm3, zmm2
+
+// CHECK: vpmulld zmm12 {k6}, zmm3, zmm2
+// CHECK: encoding: [0x62,0x72,0x65,0x4e,0x40,0xe2]
+ vpmulld zmm12 {k6}, zmm3, zmm2
+
+// CHECK: vpmulld zmm12 {k6} {z}, zmm3, zmm2
+// CHECK: encoding: [0x62,0x72,0x65,0xce,0x40,0xe2]
+ vpmulld zmm12 {k6} {z}, zmm3, zmm2
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x21]
+ vpmulld zmm12, zmm3, zmmword ptr [rcx]
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x65,0x48,0x40,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpmulld zmm12, zmm3, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmulld zmm12, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x21]
+ vpmulld zmm12, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x62,0x7f]
+ vpmulld zmm12, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xa2,0x00,0x20,0x00,0x00]
+ vpmulld zmm12, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0x62,0x80]
+ vpmulld zmm12, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmulld zmm12, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x40,0xa2,0xc0,0xdf,0xff,0xff]
+ vpmulld zmm12, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmulld zmm12, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x62,0x7f]
+ vpmulld zmm12, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmulld zmm12, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0xa2,0x00,0x02,0x00,0x00]
+ vpmulld zmm12, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmulld zmm12, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0x62,0x80]
+ vpmulld zmm12, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmulld zmm12, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x40,0xa2,0xfc,0xfd,0xff,0xff]
+ vpmulld zmm12, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmuludq zmm23, zmm5, zmm9
+// CHECK: encoding: [0x62,0xc1,0xd5,0x48,0xf4,0xf9]
+ vpmuludq zmm23, zmm5, zmm9
+
+// CHECK: vpmuludq zmm23 {k4}, zmm5, zmm9
+// CHECK: encoding: [0x62,0xc1,0xd5,0x4c,0xf4,0xf9]
+ vpmuludq zmm23 {k4}, zmm5, zmm9
+
+// CHECK: vpmuludq zmm23 {k4} {z}, zmm5, zmm9
+// CHECK: encoding: [0x62,0xc1,0xd5,0xcc,0xf4,0xf9]
+ vpmuludq zmm23 {k4} {z}, zmm5, zmm9
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x39]
+ vpmuludq zmm23, zmm5, zmmword ptr [rcx]
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xd5,0x48,0xf4,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpmuludq zmm23, zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpmuludq zmm23, zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x39]
+ vpmuludq zmm23, zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x7a,0x7f]
+ vpmuludq zmm23, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0xba,0x00,0x20,0x00,0x00]
+ vpmuludq zmm23, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0x7a,0x80]
+ vpmuludq zmm23, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmuludq zmm23, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xd5,0x48,0xf4,0xba,0xc0,0xdf,0xff,0xff]
+ vpmuludq zmm23, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmuludq zmm23, zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x7a,0x7f]
+ vpmuludq zmm23, zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmuludq zmm23, zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0xba,0x00,0x04,0x00,0x00]
+ vpmuludq zmm23, zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmuludq zmm23, zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0x7a,0x80]
+ vpmuludq zmm23, zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmuludq zmm23, zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xd5,0x58,0xf4,0xba,0xf8,0xfb,0xff,0xff]
+ vpmuludq zmm23, zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpord zmm23, zmm2, zmm20
+// CHECK: encoding: [0x62,0xa1,0x6d,0x48,0xeb,0xfc]
+ vpord zmm23, zmm2, zmm20
+
+// CHECK: vpord zmm23 {k2}, zmm2, zmm20
+// CHECK: encoding: [0x62,0xa1,0x6d,0x4a,0xeb,0xfc]
+ vpord zmm23 {k2}, zmm2, zmm20
+
+// CHECK: vpord zmm23 {k2} {z}, zmm2, zmm20
+// CHECK: encoding: [0x62,0xa1,0x6d,0xca,0xeb,0xfc]
+ vpord zmm23 {k2} {z}, zmm2, zmm20
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x39]
+ vpord zmm23, zmm2, zmmword ptr [rcx]
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x6d,0x48,0xeb,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpord zmm23, zmm2, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpord zmm23, zmm2, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x39]
+ vpord zmm23, zmm2, dword ptr [rcx]{1to16}
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x7a,0x7f]
+ vpord zmm23, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0xba,0x00,0x20,0x00,0x00]
+ vpord zmm23, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0x7a,0x80]
+ vpord zmm23, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vpord zmm23, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x48,0xeb,0xba,0xc0,0xdf,0xff,0xff]
+ vpord zmm23, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vpord zmm23, zmm2, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x7a,0x7f]
+ vpord zmm23, zmm2, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpord zmm23, zmm2, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0xba,0x00,0x02,0x00,0x00]
+ vpord zmm23, zmm2, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpord zmm23, zmm2, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0x7a,0x80]
+ vpord zmm23, zmm2, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpord zmm23, zmm2, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x58,0xeb,0xba,0xfc,0xfd,0xff,0xff]
+ vpord zmm23, zmm2, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vporq zmm1, zmm10, zmm6
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0xce]
+ vporq zmm1, zmm10, zmm6
+
+// CHECK: vporq zmm1 {k2}, zmm10, zmm6
+// CHECK: encoding: [0x62,0xf1,0xad,0x4a,0xeb,0xce]
+ vporq zmm1 {k2}, zmm10, zmm6
+
+// CHECK: vporq zmm1 {k2} {z}, zmm10, zmm6
+// CHECK: encoding: [0x62,0xf1,0xad,0xca,0xeb,0xce]
+ vporq zmm1 {k2} {z}, zmm10, zmm6
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x09]
+ vporq zmm1, zmm10, zmmword ptr [rcx]
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xad,0x48,0xeb,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vporq zmm1, zmm10, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vporq zmm1, zmm10, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x09]
+ vporq zmm1, zmm10, qword ptr [rcx]{1to8}
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x4a,0x7f]
+ vporq zmm1, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x8a,0x00,0x20,0x00,0x00]
+ vporq zmm1, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x4a,0x80]
+ vporq zmm1, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vporq zmm1, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xeb,0x8a,0xc0,0xdf,0xff,0xff]
+ vporq zmm1, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vporq zmm1, zmm10, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x4a,0x7f]
+ vporq zmm1, zmm10, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vporq zmm1, zmm10, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x8a,0x00,0x04,0x00,0x00]
+ vporq zmm1, zmm10, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vporq zmm1, zmm10, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x4a,0x80]
+ vporq zmm1, zmm10, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vporq zmm1, zmm10, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xeb,0x8a,0xf8,0xfb,0xff,0xff]
+ vporq zmm1, zmm10, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpshufd zmm19, zmm25, 171
+// CHECK: encoding: [0x62,0x81,0x7d,0x48,0x70,0xd9,0xab]
+ vpshufd zmm19, zmm25, 171
+
+// CHECK: vpshufd zmm19 {k6}, zmm25, 171
+// CHECK: encoding: [0x62,0x81,0x7d,0x4e,0x70,0xd9,0xab]
+ vpshufd zmm19 {k6}, zmm25, 171
+
+// CHECK: vpshufd zmm19 {k6} {z}, zmm25, 171
+// CHECK: encoding: [0x62,0x81,0x7d,0xce,0x70,0xd9,0xab]
+ vpshufd zmm19 {k6} {z}, zmm25, 171
+
+// CHECK: vpshufd zmm19, zmm25, 123
+// CHECK: encoding: [0x62,0x81,0x7d,0x48,0x70,0xd9,0x7b]
+ vpshufd zmm19, zmm25, 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x19,0x7b]
+ vpshufd zmm19, zmmword ptr [rcx], 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x70,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpshufd zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpshufd zmm19, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x19,0x7b]
+ vpshufd zmm19, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x5a,0x7f,0x7b]
+ vpshufd zmm19, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpshufd zmm19, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x5a,0x80,0x7b]
+ vpshufd zmm19, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpshufd zmm19, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x70,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpshufd zmm19, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpshufd zmm19, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x5a,0x7f,0x7b]
+ vpshufd zmm19, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpshufd zmm19, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vpshufd zmm19, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpshufd zmm19, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x5a,0x80,0x7b]
+ vpshufd zmm19, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpshufd zmm19, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x70,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vpshufd zmm19, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpslld zmm17, zmm6, xmm3
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0xcb]
+ vpslld zmm17, zmm6, xmm3
+
+// CHECK: vpslld zmm17 {k3}, zmm6, xmm3
+// CHECK: encoding: [0x62,0xe1,0x4d,0x4b,0xf2,0xcb]
+ vpslld zmm17 {k3}, zmm6, xmm3
+
+// CHECK: vpslld zmm17 {k3} {z}, zmm6, xmm3
+// CHECK: encoding: [0x62,0xe1,0x4d,0xcb,0xf2,0xcb]
+ vpslld zmm17 {k3} {z}, zmm6, xmm3
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0x09]
+ vpslld zmm17, zmm6, xmmword ptr [rcx]
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x4d,0x48,0xf2,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpslld zmm17, zmm6, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0x4a,0x7f]
+ vpslld zmm17, zmm6, xmmword ptr [rdx + 2032]
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0x8a,0x00,0x08,0x00,0x00]
+ vpslld zmm17, zmm6, xmmword ptr [rdx + 2048]
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0x4a,0x80]
+ vpslld zmm17, zmm6, xmmword ptr [rdx - 2048]
+
+// CHECK: vpslld zmm17, zmm6, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x48,0xf2,0x8a,0xf0,0xf7,0xff,0xff]
+ vpslld zmm17, zmm6, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsllq zmm26, zmm17, xmm23
+// CHECK: encoding: [0x62,0x21,0xf5,0x40,0xf3,0xd7]
+ vpsllq zmm26, zmm17, xmm23
+
+// CHECK: vpsllq zmm26 {k6}, zmm17, xmm23
+// CHECK: encoding: [0x62,0x21,0xf5,0x46,0xf3,0xd7]
+ vpsllq zmm26 {k6}, zmm17, xmm23
+
+// CHECK: vpsllq zmm26 {k6} {z}, zmm17, xmm23
+// CHECK: encoding: [0x62,0x21,0xf5,0xc6,0xf3,0xd7]
+ vpsllq zmm26 {k6} {z}, zmm17, xmm23
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xf5,0x40,0xf3,0x11]
+ vpsllq zmm26, zmm17, xmmword ptr [rcx]
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xf5,0x40,0xf3,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpsllq zmm26, zmm17, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x61,0xf5,0x40,0xf3,0x52,0x7f]
+ vpsllq zmm26, zmm17, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x61,0xf5,0x40,0xf3,0x92,0x00,0x08,0x00,0x00]
+ vpsllq zmm26, zmm17, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x61,0xf5,0x40,0xf3,0x52,0x80]
+ vpsllq zmm26, zmm17, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsllq zmm26, zmm17, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x61,0xf5,0x40,0xf3,0x92,0xf0,0xf7,0xff,0xff]
+ vpsllq zmm26, zmm17, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsllvd zmm10, zmm12, zmm22
+// CHECK: encoding: [0x62,0x32,0x1d,0x48,0x47,0xd6]
+ vpsllvd zmm10, zmm12, zmm22
+
+// CHECK: vpsllvd zmm10 {k6}, zmm12, zmm22
+// CHECK: encoding: [0x62,0x32,0x1d,0x4e,0x47,0xd6]
+ vpsllvd zmm10 {k6}, zmm12, zmm22
+
+// CHECK: vpsllvd zmm10 {k6} {z}, zmm12, zmm22
+// CHECK: encoding: [0x62,0x32,0x1d,0xce,0x47,0xd6]
+ vpsllvd zmm10 {k6} {z}, zmm12, zmm22
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x48,0x47,0x11]
+ vpsllvd zmm10, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x1d,0x48,0x47,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpsllvd zmm10, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsllvd zmm10, zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x58,0x47,0x11]
+ vpsllvd zmm10, zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x1d,0x48,0x47,0x52,0x7f]
+ vpsllvd zmm10, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x48,0x47,0x92,0x00,0x20,0x00,0x00]
+ vpsllvd zmm10, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x48,0x47,0x52,0x80]
+ vpsllvd zmm10, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsllvd zmm10, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x1d,0x48,0x47,0x92,0xc0,0xdf,0xff,0xff]
+ vpsllvd zmm10, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsllvd zmm10, zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x58,0x47,0x52,0x7f]
+ vpsllvd zmm10, zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsllvd zmm10, zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x58,0x47,0x92,0x00,0x02,0x00,0x00]
+ vpsllvd zmm10, zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsllvd zmm10, zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x58,0x47,0x52,0x80]
+ vpsllvd zmm10, zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsllvd zmm10, zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x58,0x47,0x92,0xfc,0xfd,0xff,0xff]
+ vpsllvd zmm10, zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsllvq zmm16, zmm5, zmm26
+// CHECK: encoding: [0x62,0x82,0xd5,0x48,0x47,0xc2]
+ vpsllvq zmm16, zmm5, zmm26
+
+// CHECK: vpsllvq zmm16 {k5}, zmm5, zmm26
+// CHECK: encoding: [0x62,0x82,0xd5,0x4d,0x47,0xc2]
+ vpsllvq zmm16 {k5}, zmm5, zmm26
+
+// CHECK: vpsllvq zmm16 {k5} {z}, zmm5, zmm26
+// CHECK: encoding: [0x62,0x82,0xd5,0xcd,0x47,0xc2]
+ vpsllvq zmm16 {k5} {z}, zmm5, zmm26
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x47,0x01]
+ vpsllvq zmm16, zmm5, zmmword ptr [rcx]
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xd5,0x48,0x47,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpsllvq zmm16, zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsllvq zmm16, zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x47,0x01]
+ vpsllvq zmm16, zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x47,0x42,0x7f]
+ vpsllvq zmm16, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x47,0x82,0x00,0x20,0x00,0x00]
+ vpsllvq zmm16, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x47,0x42,0x80]
+ vpsllvq zmm16, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsllvq zmm16, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x47,0x82,0xc0,0xdf,0xff,0xff]
+ vpsllvq zmm16, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsllvq zmm16, zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x47,0x42,0x7f]
+ vpsllvq zmm16, zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsllvq zmm16, zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x47,0x82,0x00,0x04,0x00,0x00]
+ vpsllvq zmm16, zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsllvq zmm16, zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x47,0x42,0x80]
+ vpsllvq zmm16, zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsllvq zmm16, zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x47,0x82,0xf8,0xfb,0xff,0xff]
+ vpsllvq zmm16, zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrad zmm18, zmm14, xmm6
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0xd6]
+ vpsrad zmm18, zmm14, xmm6
+
+// CHECK: vpsrad zmm18 {k1}, zmm14, xmm6
+// CHECK: encoding: [0x62,0xe1,0x0d,0x49,0xe2,0xd6]
+ vpsrad zmm18 {k1}, zmm14, xmm6
+
+// CHECK: vpsrad zmm18 {k1} {z}, zmm14, xmm6
+// CHECK: encoding: [0x62,0xe1,0x0d,0xc9,0xe2,0xd6]
+ vpsrad zmm18 {k1} {z}, zmm14, xmm6
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0x11]
+ vpsrad zmm18, zmm14, xmmword ptr [rcx]
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x0d,0x48,0xe2,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpsrad zmm18, zmm14, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0x52,0x7f]
+ vpsrad zmm18, zmm14, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0x92,0x00,0x08,0x00,0x00]
+ vpsrad zmm18, zmm14, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0x52,0x80]
+ vpsrad zmm18, zmm14, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrad zmm18, zmm14, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0x0d,0x48,0xe2,0x92,0xf0,0xf7,0xff,0xff]
+ vpsrad zmm18, zmm14, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsraq zmm21, zmm17, xmm22
+// CHECK: encoding: [0x62,0xa1,0xf5,0x40,0xe2,0xee]
+ vpsraq zmm21, zmm17, xmm22
+
+// CHECK: vpsraq zmm21 {k3}, zmm17, xmm22
+// CHECK: encoding: [0x62,0xa1,0xf5,0x43,0xe2,0xee]
+ vpsraq zmm21 {k3}, zmm17, xmm22
+
+// CHECK: vpsraq zmm21 {k3} {z}, zmm17, xmm22
+// CHECK: encoding: [0x62,0xa1,0xf5,0xc3,0xe2,0xee]
+ vpsraq zmm21 {k3} {z}, zmm17, xmm22
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xf5,0x40,0xe2,0x29]
+ vpsraq zmm21, zmm17, xmmword ptr [rcx]
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xf5,0x40,0xe2,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpsraq zmm21, zmm17, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0xf5,0x40,0xe2,0x6a,0x7f]
+ vpsraq zmm21, zmm17, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0xf5,0x40,0xe2,0xaa,0x00,0x08,0x00,0x00]
+ vpsraq zmm21, zmm17, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0xf5,0x40,0xe2,0x6a,0x80]
+ vpsraq zmm21, zmm17, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsraq zmm21, zmm17, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0xf5,0x40,0xe2,0xaa,0xf0,0xf7,0xff,0xff]
+ vpsraq zmm21, zmm17, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsravd zmm29, zmm29, zmm17
+// CHECK: encoding: [0x62,0x22,0x15,0x40,0x46,0xe9]
+ vpsravd zmm29, zmm29, zmm17
+
+// CHECK: vpsravd zmm29 {k2}, zmm29, zmm17
+// CHECK: encoding: [0x62,0x22,0x15,0x42,0x46,0xe9]
+ vpsravd zmm29 {k2}, zmm29, zmm17
+
+// CHECK: vpsravd zmm29 {k2} {z}, zmm29, zmm17
+// CHECK: encoding: [0x62,0x22,0x15,0xc2,0x46,0xe9]
+ vpsravd zmm29 {k2} {z}, zmm29, zmm17
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x15,0x40,0x46,0x29]
+ vpsravd zmm29, zmm29, zmmword ptr [rcx]
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x15,0x40,0x46,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpsravd zmm29, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsravd zmm29, zmm29, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x50,0x46,0x29]
+ vpsravd zmm29, zmm29, dword ptr [rcx]{1to16}
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x15,0x40,0x46,0x6a,0x7f]
+ vpsravd zmm29, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x15,0x40,0x46,0xaa,0x00,0x20,0x00,0x00]
+ vpsravd zmm29, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x15,0x40,0x46,0x6a,0x80]
+ vpsravd zmm29, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsravd zmm29, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x15,0x40,0x46,0xaa,0xc0,0xdf,0xff,0xff]
+ vpsravd zmm29, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsravd zmm29, zmm29, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x50,0x46,0x6a,0x7f]
+ vpsravd zmm29, zmm29, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsravd zmm29, zmm29, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x50,0x46,0xaa,0x00,0x02,0x00,0x00]
+ vpsravd zmm29, zmm29, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsravd zmm29, zmm29, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x50,0x46,0x6a,0x80]
+ vpsravd zmm29, zmm29, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsravd zmm29, zmm29, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x50,0x46,0xaa,0xfc,0xfd,0xff,0xff]
+ vpsravd zmm29, zmm29, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsravq zmm22, zmm20, zmm2
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0xf2]
+ vpsravq zmm22, zmm20, zmm2
+
+// CHECK: vpsravq zmm22 {k2}, zmm20, zmm2
+// CHECK: encoding: [0x62,0xe2,0xdd,0x42,0x46,0xf2]
+ vpsravq zmm22 {k2}, zmm20, zmm2
+
+// CHECK: vpsravq zmm22 {k2} {z}, zmm20, zmm2
+// CHECK: encoding: [0x62,0xe2,0xdd,0xc2,0x46,0xf2]
+ vpsravq zmm22 {k2} {z}, zmm20, zmm2
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0x31]
+ vpsravq zmm22, zmm20, zmmword ptr [rcx]
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xdd,0x40,0x46,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpsravq zmm22, zmm20, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsravq zmm22, zmm20, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x50,0x46,0x31]
+ vpsravq zmm22, zmm20, qword ptr [rcx]{1to8}
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0x72,0x7f]
+ vpsravq zmm22, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0xb2,0x00,0x20,0x00,0x00]
+ vpsravq zmm22, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0x72,0x80]
+ vpsravq zmm22, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsravq zmm22, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x40,0x46,0xb2,0xc0,0xdf,0xff,0xff]
+ vpsravq zmm22, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsravq zmm22, zmm20, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x50,0x46,0x72,0x7f]
+ vpsravq zmm22, zmm20, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsravq zmm22, zmm20, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x50,0x46,0xb2,0x00,0x04,0x00,0x00]
+ vpsravq zmm22, zmm20, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsravq zmm22, zmm20, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x50,0x46,0x72,0x80]
+ vpsravq zmm22, zmm20, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsravq zmm22, zmm20, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x50,0x46,0xb2,0xf8,0xfb,0xff,0xff]
+ vpsravq zmm22, zmm20, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrld zmm1, zmm17, xmm25
+// CHECK: encoding: [0x62,0x91,0x75,0x40,0xd2,0xc9]
+ vpsrld zmm1, zmm17, xmm25
+
+// CHECK: vpsrld zmm1 {k4}, zmm17, xmm25
+// CHECK: encoding: [0x62,0x91,0x75,0x44,0xd2,0xc9]
+ vpsrld zmm1 {k4}, zmm17, xmm25
+
+// CHECK: vpsrld zmm1 {k4} {z}, zmm17, xmm25
+// CHECK: encoding: [0x62,0x91,0x75,0xc4,0xd2,0xc9]
+ vpsrld zmm1 {k4} {z}, zmm17, xmm25
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x75,0x40,0xd2,0x09]
+ vpsrld zmm1, zmm17, xmmword ptr [rcx]
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x75,0x40,0xd2,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpsrld zmm1, zmm17, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xf1,0x75,0x40,0xd2,0x4a,0x7f]
+ vpsrld zmm1, zmm17, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xf1,0x75,0x40,0xd2,0x8a,0x00,0x08,0x00,0x00]
+ vpsrld zmm1, zmm17, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xf1,0x75,0x40,0xd2,0x4a,0x80]
+ vpsrld zmm1, zmm17, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrld zmm1, zmm17, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xf1,0x75,0x40,0xd2,0x8a,0xf0,0xf7,0xff,0xff]
+ vpsrld zmm1, zmm17, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsrlq zmm9, zmm11, xmm3
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0xcb]
+ vpsrlq zmm9, zmm11, xmm3
+
+// CHECK: vpsrlq zmm9 {k5}, zmm11, xmm3
+// CHECK: encoding: [0x62,0x71,0xa5,0x4d,0xd3,0xcb]
+ vpsrlq zmm9 {k5}, zmm11, xmm3
+
+// CHECK: vpsrlq zmm9 {k5} {z}, zmm11, xmm3
+// CHECK: encoding: [0x62,0x71,0xa5,0xcd,0xd3,0xcb]
+ vpsrlq zmm9 {k5} {z}, zmm11, xmm3
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0x09]
+ vpsrlq zmm9, zmm11, xmmword ptr [rcx]
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xa5,0x48,0xd3,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpsrlq zmm9, zmm11, xmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0x4a,0x7f]
+ vpsrlq zmm9, zmm11, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0x8a,0x00,0x08,0x00,0x00]
+ vpsrlq zmm9, zmm11, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0x4a,0x80]
+ vpsrlq zmm9, zmm11, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrlq zmm9, zmm11, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x71,0xa5,0x48,0xd3,0x8a,0xf0,0xf7,0xff,0xff]
+ vpsrlq zmm9, zmm11, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsrlvd zmm8, zmm14, zmm28
+// CHECK: encoding: [0x62,0x12,0x0d,0x48,0x45,0xc4]
+ vpsrlvd zmm8, zmm14, zmm28
+
+// CHECK: vpsrlvd zmm8 {k4}, zmm14, zmm28
+// CHECK: encoding: [0x62,0x12,0x0d,0x4c,0x45,0xc4]
+ vpsrlvd zmm8 {k4}, zmm14, zmm28
+
+// CHECK: vpsrlvd zmm8 {k4} {z}, zmm14, zmm28
+// CHECK: encoding: [0x62,0x12,0x0d,0xcc,0x45,0xc4]
+ vpsrlvd zmm8 {k4} {z}, zmm14, zmm28
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x0d,0x48,0x45,0x01]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rcx]
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x0d,0x48,0x45,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsrlvd zmm8, zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x0d,0x58,0x45,0x01]
+ vpsrlvd zmm8, zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x0d,0x48,0x45,0x42,0x7f]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x0d,0x48,0x45,0x82,0x00,0x20,0x00,0x00]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x0d,0x48,0x45,0x42,0x80]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsrlvd zmm8, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x0d,0x48,0x45,0x82,0xc0,0xdf,0xff,0xff]
+ vpsrlvd zmm8, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsrlvd zmm8, zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x0d,0x58,0x45,0x42,0x7f]
+ vpsrlvd zmm8, zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsrlvd zmm8, zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x0d,0x58,0x45,0x82,0x00,0x02,0x00,0x00]
+ vpsrlvd zmm8, zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsrlvd zmm8, zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x0d,0x58,0x45,0x42,0x80]
+ vpsrlvd zmm8, zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsrlvd zmm8, zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x0d,0x58,0x45,0x82,0xfc,0xfd,0xff,0xff]
+ vpsrlvd zmm8, zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsrlvq zmm20, zmm7, zmm26
+// CHECK: encoding: [0x62,0x82,0xc5,0x48,0x45,0xe2]
+ vpsrlvq zmm20, zmm7, zmm26
+
+// CHECK: vpsrlvq zmm20 {k5}, zmm7, zmm26
+// CHECK: encoding: [0x62,0x82,0xc5,0x4d,0x45,0xe2]
+ vpsrlvq zmm20 {k5}, zmm7, zmm26
+
+// CHECK: vpsrlvq zmm20 {k5} {z}, zmm7, zmm26
+// CHECK: encoding: [0x62,0x82,0xc5,0xcd,0x45,0xe2]
+ vpsrlvq zmm20 {k5} {z}, zmm7, zmm26
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x48,0x45,0x21]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rcx]
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xc5,0x48,0x45,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsrlvq zmm20, zmm7, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x58,0x45,0x21]
+ vpsrlvq zmm20, zmm7, qword ptr [rcx]{1to8}
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x48,0x45,0x62,0x7f]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x48,0x45,0xa2,0x00,0x20,0x00,0x00]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x48,0x45,0x62,0x80]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsrlvq zmm20, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x48,0x45,0xa2,0xc0,0xdf,0xff,0xff]
+ vpsrlvq zmm20, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsrlvq zmm20, zmm7, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x58,0x45,0x62,0x7f]
+ vpsrlvq zmm20, zmm7, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsrlvq zmm20, zmm7, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x58,0x45,0xa2,0x00,0x04,0x00,0x00]
+ vpsrlvq zmm20, zmm7, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsrlvq zmm20, zmm7, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x58,0x45,0x62,0x80]
+ vpsrlvq zmm20, zmm7, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsrlvq zmm20, zmm7, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x58,0x45,0xa2,0xf8,0xfb,0xff,0xff]
+ vpsrlvq zmm20, zmm7, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrld zmm3, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0xd5,0xab]
+ vpsrld zmm3, zmm5, 171
+
+// CHECK: vpsrld zmm3 {k4}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x65,0x4c,0x72,0xd5,0xab]
+ vpsrld zmm3 {k4}, zmm5, 171
+
+// CHECK: vpsrld zmm3 {k4} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x65,0xcc,0x72,0xd5,0xab]
+ vpsrld zmm3 {k4} {z}, zmm5, 171
+
+// CHECK: vpsrld zmm3, zmm5, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0xd5,0x7b]
+ vpsrld zmm3, zmm5, 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0x11,0x7b]
+ vpsrld zmm3, zmmword ptr [rcx], 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x65,0x48,0x72,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpsrld zmm3, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpsrld zmm3, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0x72,0x11,0x7b]
+ vpsrld zmm3, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0x52,0x7f,0x7b]
+ vpsrld zmm3, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpsrld zmm3, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0x52,0x80,0x7b]
+ vpsrld zmm3, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrld zmm3, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0x72,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrld zmm3, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrld zmm3, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0x72,0x52,0x7f,0x7b]
+ vpsrld zmm3, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpsrld zmm3, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0x72,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpsrld zmm3, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpsrld zmm3, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0x72,0x52,0x80,0x7b]
+ vpsrld zmm3, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpsrld zmm3, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0x72,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpsrld zmm3, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsrlq zmm18, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xed,0x40,0x73,0xd1,0xab]
+ vpsrlq zmm18, zmm25, 171
+
+// CHECK: vpsrlq zmm18 {k1}, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xed,0x41,0x73,0xd1,0xab]
+ vpsrlq zmm18 {k1}, zmm25, 171
+
+// CHECK: vpsrlq zmm18 {k1} {z}, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xed,0xc1,0x73,0xd1,0xab]
+ vpsrlq zmm18 {k1} {z}, zmm25, 171
+
+// CHECK: vpsrlq zmm18, zmm25, 123
+// CHECK: encoding: [0x62,0x91,0xed,0x40,0x73,0xd1,0x7b]
+ vpsrlq zmm18, zmm25, 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x40,0x73,0x11,0x7b]
+ vpsrlq zmm18, zmmword ptr [rcx], 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0xed,0x40,0x73,0x94,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpsrlq zmm18, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpsrlq zmm18, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x50,0x73,0x11,0x7b]
+ vpsrlq zmm18, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x40,0x73,0x52,0x7f,0x7b]
+ vpsrlq zmm18, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x40,0x73,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpsrlq zmm18, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x40,0x73,0x52,0x80,0x7b]
+ vpsrlq zmm18, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrlq zmm18, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x40,0x73,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrlq zmm18, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrlq zmm18, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x50,0x73,0x52,0x7f,0x7b]
+ vpsrlq zmm18, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsrlq zmm18, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x50,0x73,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vpsrlq zmm18, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsrlq zmm18, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x50,0x73,0x52,0x80,0x7b]
+ vpsrlq zmm18, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsrlq zmm18, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xed,0x50,0x73,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsrlq zmm18, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpsubd zmm7, zmm28, zmm7
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xff]
+ vpsubd zmm7, zmm28, zmm7
+
+// CHECK: vpsubd zmm7 {k3}, zmm28, zmm7
+// CHECK: encoding: [0x62,0xf1,0x1d,0x43,0xfa,0xff]
+ vpsubd zmm7 {k3}, zmm28, zmm7
+
+// CHECK: vpsubd zmm7 {k3} {z}, zmm28, zmm7
+// CHECK: encoding: [0x62,0xf1,0x1d,0xc3,0xfa,0xff]
+ vpsubd zmm7 {k3} {z}, zmm28, zmm7
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x39]
+ vpsubd zmm7, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x1d,0x40,0xfa,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpsubd zmm7, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsubd zmm7, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x39]
+ vpsubd zmm7, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x7a,0x7f]
+ vpsubd zmm7, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xba,0x00,0x20,0x00,0x00]
+ vpsubd zmm7, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0x7a,0x80]
+ vpsubd zmm7, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsubd zmm7, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x1d,0x40,0xfa,0xba,0xc0,0xdf,0xff,0xff]
+ vpsubd zmm7, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsubd zmm7, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x7a,0x7f]
+ vpsubd zmm7, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsubd zmm7, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0xba,0x00,0x02,0x00,0x00]
+ vpsubd zmm7, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsubd zmm7, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0x7a,0x80]
+ vpsubd zmm7, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsubd zmm7, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x1d,0x50,0xfa,0xba,0xfc,0xfd,0xff,0xff]
+ vpsubd zmm7, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsubq zmm29, zmm28, zmm17
+// CHECK: encoding: [0x62,0x21,0x9d,0x40,0xfb,0xe9]
+ vpsubq zmm29, zmm28, zmm17
+
+// CHECK: vpsubq zmm29 {k2}, zmm28, zmm17
+// CHECK: encoding: [0x62,0x21,0x9d,0x42,0xfb,0xe9]
+ vpsubq zmm29 {k2}, zmm28, zmm17
+
+// CHECK: vpsubq zmm29 {k2} {z}, zmm28, zmm17
+// CHECK: encoding: [0x62,0x21,0x9d,0xc2,0xfb,0xe9]
+ vpsubq zmm29 {k2} {z}, zmm28, zmm17
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x29]
+ vpsubq zmm29, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x9d,0x40,0xfb,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpsubq zmm29, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpsubq zmm29, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x29]
+ vpsubq zmm29, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x6a,0x7f]
+ vpsubq zmm29, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0xaa,0x00,0x20,0x00,0x00]
+ vpsubq zmm29, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0x6a,0x80]
+ vpsubq zmm29, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsubq zmm29, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x9d,0x40,0xfb,0xaa,0xc0,0xdf,0xff,0xff]
+ vpsubq zmm29, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsubq zmm29, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x6a,0x7f]
+ vpsubq zmm29, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsubq zmm29, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0xaa,0x00,0x04,0x00,0x00]
+ vpsubq zmm29, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsubq zmm29, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0x6a,0x80]
+ vpsubq zmm29, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsubq zmm29, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x50,0xfb,0xaa,0xf8,0xfb,0xff,0xff]
+ vpsubq zmm29, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vptestmd k2, zmm12, zmm16
+// CHECK: encoding: [0x62,0xb2,0x1d,0x48,0x27,0xd0]
+ vptestmd k2, zmm12, zmm16
+
+// CHECK: vptestmd k2 {k1}, zmm12, zmm16
+// CHECK: encoding: [0x62,0xb2,0x1d,0x49,0x27,0xd0]
+ vptestmd k2 {k1}, zmm12, zmm16
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x1d,0x48,0x27,0x11]
+ vptestmd k2, zmm12, zmmword ptr [rcx]
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x1d,0x48,0x27,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vptestmd k2, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vptestmd k2, zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x1d,0x58,0x27,0x11]
+ vptestmd k2, zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x1d,0x48,0x27,0x52,0x7f]
+ vptestmd k2, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x1d,0x48,0x27,0x92,0x00,0x20,0x00,0x00]
+ vptestmd k2, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x1d,0x48,0x27,0x52,0x80]
+ vptestmd k2, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vptestmd k2, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x1d,0x48,0x27,0x92,0xc0,0xdf,0xff,0xff]
+ vptestmd k2, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vptestmd k2, zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x1d,0x58,0x27,0x52,0x7f]
+ vptestmd k2, zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vptestmd k2, zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x1d,0x58,0x27,0x92,0x00,0x02,0x00,0x00]
+ vptestmd k2, zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vptestmd k2, zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x1d,0x58,0x27,0x52,0x80]
+ vptestmd k2, zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vptestmd k2, zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x1d,0x58,0x27,0x92,0xfc,0xfd,0xff,0xff]
+ vptestmd k2, zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vptestmq k5, zmm6, zmm21
+// CHECK: encoding: [0x62,0xb2,0xcd,0x48,0x27,0xed]
+ vptestmq k5, zmm6, zmm21
+
+// CHECK: vptestmq k5 {k5}, zmm6, zmm21
+// CHECK: encoding: [0x62,0xb2,0xcd,0x4d,0x27,0xed]
+ vptestmq k5 {k5}, zmm6, zmm21
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x27,0x29]
+ vptestmq k5, zmm6, zmmword ptr [rcx]
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xcd,0x48,0x27,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vptestmq k5, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vptestmq k5, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x27,0x29]
+ vptestmq k5, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x27,0x6a,0x7f]
+ vptestmq k5, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x27,0xaa,0x00,0x20,0x00,0x00]
+ vptestmq k5, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x27,0x6a,0x80]
+ vptestmq k5, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vptestmq k5, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x48,0x27,0xaa,0xc0,0xdf,0xff,0xff]
+ vptestmq k5, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vptestmq k5, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x27,0x6a,0x7f]
+ vptestmq k5, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vptestmq k5, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x27,0xaa,0x00,0x04,0x00,0x00]
+ vptestmq k5, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vptestmq k5, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x27,0x6a,0x80]
+ vptestmq k5, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vptestmq k5, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x58,0x27,0xaa,0xf8,0xfb,0xff,0xff]
+ vptestmq k5, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmm13
+// CHECK: encoding: [0x62,0xd1,0x5d,0x48,0x6a,0xf5]
+ vpunpckhdq zmm6, zmm4, zmm13
+
+// CHECK: vpunpckhdq zmm6 {k5}, zmm4, zmm13
+// CHECK: encoding: [0x62,0xd1,0x5d,0x4d,0x6a,0xf5]
+ vpunpckhdq zmm6 {k5}, zmm4, zmm13
+
+// CHECK: vpunpckhdq zmm6 {k5} {z}, zmm4, zmm13
+// CHECK: encoding: [0x62,0xd1,0x5d,0xcd,0x6a,0xf5]
+ vpunpckhdq zmm6 {k5} {z}, zmm4, zmm13
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x5d,0x48,0x6a,0x31]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x5d,0x48,0x6a,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpunpckhdq zmm6, zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x5d,0x58,0x6a,0x31]
+ vpunpckhdq zmm6, zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x5d,0x48,0x6a,0x72,0x7f]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x5d,0x48,0x6a,0xb2,0x00,0x20,0x00,0x00]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x5d,0x48,0x6a,0x72,0x80]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckhdq zmm6, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x5d,0x48,0x6a,0xb2,0xc0,0xdf,0xff,0xff]
+ vpunpckhdq zmm6, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckhdq zmm6, zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x5d,0x58,0x6a,0x72,0x7f]
+ vpunpckhdq zmm6, zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpunpckhdq zmm6, zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x5d,0x58,0x6a,0xb2,0x00,0x02,0x00,0x00]
+ vpunpckhdq zmm6, zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpunpckhdq zmm6, zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x5d,0x58,0x6a,0x72,0x80]
+ vpunpckhdq zmm6, zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpunpckhdq zmm6, zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x5d,0x58,0x6a,0xb2,0xfc,0xfd,0xff,0xff]
+ vpunpckhdq zmm6, zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmm16
+// CHECK: encoding: [0x62,0x21,0x85,0x48,0x6d,0xd8]
+ vpunpckhqdq zmm27, zmm15, zmm16
+
+// CHECK: vpunpckhqdq zmm27 {k3}, zmm15, zmm16
+// CHECK: encoding: [0x62,0x21,0x85,0x4b,0x6d,0xd8]
+ vpunpckhqdq zmm27 {k3}, zmm15, zmm16
+
+// CHECK: vpunpckhqdq zmm27 {k3} {z}, zmm15, zmm16
+// CHECK: encoding: [0x62,0x21,0x85,0xcb,0x6d,0xd8]
+ vpunpckhqdq zmm27 {k3} {z}, zmm15, zmm16
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x85,0x48,0x6d,0x19]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rcx]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x85,0x48,0x6d,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0x85,0x58,0x6d,0x19]
+ vpunpckhqdq zmm27, zmm15, qword ptr [rcx]{1to8}
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x85,0x48,0x6d,0x5a,0x7f]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x85,0x48,0x6d,0x9a,0x00,0x20,0x00,0x00]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x85,0x48,0x6d,0x5a,0x80]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x85,0x48,0x6d,0x9a,0xc0,0xdf,0xff,0xff]
+ vpunpckhqdq zmm27, zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckhqdq zmm27, zmm15, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0x85,0x58,0x6d,0x5a,0x7f]
+ vpunpckhqdq zmm27, zmm15, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpunpckhqdq zmm27, zmm15, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x85,0x58,0x6d,0x9a,0x00,0x04,0x00,0x00]
+ vpunpckhqdq zmm27, zmm15, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpunpckhqdq zmm27, zmm15, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x85,0x58,0x6d,0x5a,0x80]
+ vpunpckhqdq zmm27, zmm15, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpunpckhqdq zmm27, zmm15, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0x85,0x58,0x6d,0x9a,0xf8,0xfb,0xff,0xff]
+ vpunpckhqdq zmm27, zmm15, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpunpckldq zmm24, zmm3, zmm17
+// CHECK: encoding: [0x62,0x21,0x65,0x48,0x62,0xc1]
+ vpunpckldq zmm24, zmm3, zmm17
+
+// CHECK: vpunpckldq zmm24 {k3}, zmm3, zmm17
+// CHECK: encoding: [0x62,0x21,0x65,0x4b,0x62,0xc1]
+ vpunpckldq zmm24 {k3}, zmm3, zmm17
+
+// CHECK: vpunpckldq zmm24 {k3} {z}, zmm3, zmm17
+// CHECK: encoding: [0x62,0x21,0x65,0xcb,0x62,0xc1]
+ vpunpckldq zmm24 {k3} {z}, zmm3, zmm17
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x65,0x48,0x62,0x01]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rcx]
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x65,0x48,0x62,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpunpckldq zmm24, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x65,0x58,0x62,0x01]
+ vpunpckldq zmm24, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x65,0x48,0x62,0x42,0x7f]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x65,0x48,0x62,0x82,0x00,0x20,0x00,0x00]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x65,0x48,0x62,0x42,0x80]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckldq zmm24, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x65,0x48,0x62,0x82,0xc0,0xdf,0xff,0xff]
+ vpunpckldq zmm24, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckldq zmm24, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x65,0x58,0x62,0x42,0x7f]
+ vpunpckldq zmm24, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpunpckldq zmm24, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x65,0x58,0x62,0x82,0x00,0x02,0x00,0x00]
+ vpunpckldq zmm24, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpunpckldq zmm24, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x65,0x58,0x62,0x42,0x80]
+ vpunpckldq zmm24, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpunpckldq zmm24, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x65,0x58,0x62,0x82,0xfc,0xfd,0xff,0xff]
+ vpunpckldq zmm24, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmm17
+// CHECK: encoding: [0x62,0xb1,0xdd,0x48,0x6c,0xd9]
+ vpunpcklqdq zmm3, zmm4, zmm17
+
+// CHECK: vpunpcklqdq zmm3 {k1}, zmm4, zmm17
+// CHECK: encoding: [0x62,0xb1,0xdd,0x49,0x6c,0xd9]
+ vpunpcklqdq zmm3 {k1}, zmm4, zmm17
+
+// CHECK: vpunpcklqdq zmm3 {k1} {z}, zmm4, zmm17
+// CHECK: encoding: [0x62,0xb1,0xdd,0xc9,0x6c,0xd9]
+ vpunpcklqdq zmm3 {k1} {z}, zmm4, zmm17
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x6c,0x19]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xdd,0x48,0x6c,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x6c,0x19]
+ vpunpcklqdq zmm3, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x6c,0x5a,0x7f]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x6c,0x9a,0x00,0x20,0x00,0x00]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x6c,0x5a,0x80]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x6c,0x9a,0xc0,0xdf,0xff,0xff]
+ vpunpcklqdq zmm3, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpcklqdq zmm3, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x6c,0x5a,0x7f]
+ vpunpcklqdq zmm3, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpunpcklqdq zmm3, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x6c,0x9a,0x00,0x04,0x00,0x00]
+ vpunpcklqdq zmm3, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpunpcklqdq zmm3, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x6c,0x5a,0x80]
+ vpunpcklqdq zmm3, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpunpcklqdq zmm3, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x6c,0x9a,0xf8,0xfb,0xff,0xff]
+ vpunpcklqdq zmm3, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpxord zmm8, zmm12, zmm24
+// CHECK: encoding: [0x62,0x11,0x1d,0x48,0xef,0xc0]
+ vpxord zmm8, zmm12, zmm24
+
+// CHECK: vpxord zmm8 {k6}, zmm12, zmm24
+// CHECK: encoding: [0x62,0x11,0x1d,0x4e,0xef,0xc0]
+ vpxord zmm8 {k6}, zmm12, zmm24
+
+// CHECK: vpxord zmm8 {k6} {z}, zmm12, zmm24
+// CHECK: encoding: [0x62,0x11,0x1d,0xce,0xef,0xc0]
+ vpxord zmm8 {k6} {z}, zmm12, zmm24
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x01]
+ vpxord zmm8, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x1d,0x48,0xef,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpxord zmm8, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpxord zmm8, zmm12, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x01]
+ vpxord zmm8, zmm12, dword ptr [rcx]{1to16}
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x42,0x7f]
+ vpxord zmm8, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x82,0x00,0x20,0x00,0x00]
+ vpxord zmm8, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x42,0x80]
+ vpxord zmm8, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpxord zmm8, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x1d,0x48,0xef,0x82,0xc0,0xdf,0xff,0xff]
+ vpxord zmm8, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpxord zmm8, zmm12, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x42,0x7f]
+ vpxord zmm8, zmm12, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpxord zmm8, zmm12, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x82,0x00,0x02,0x00,0x00]
+ vpxord zmm8, zmm12, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpxord zmm8, zmm12, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x42,0x80]
+ vpxord zmm8, zmm12, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpxord zmm8, zmm12, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x1d,0x58,0xef,0x82,0xfc,0xfd,0xff,0xff]
+ vpxord zmm8, zmm12, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpxorq zmm7, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd1,0xcd,0x40,0xef,0xfa]
+ vpxorq zmm7, zmm22, zmm10
+
+// CHECK: vpxorq zmm7 {k6}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd1,0xcd,0x46,0xef,0xfa]
+ vpxorq zmm7 {k6}, zmm22, zmm10
+
+// CHECK: vpxorq zmm7 {k6} {z}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd1,0xcd,0xc6,0xef,0xfa]
+ vpxorq zmm7 {k6} {z}, zmm22, zmm10
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x39]
+ vpxorq zmm7, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xcd,0x40,0xef,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpxorq zmm7, zmm22, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpxorq zmm7, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x39]
+ vpxorq zmm7, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x7a,0x7f]
+ vpxorq zmm7, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0xba,0x00,0x20,0x00,0x00]
+ vpxorq zmm7, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0x7a,0x80]
+ vpxorq zmm7, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpxorq zmm7, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xcd,0x40,0xef,0xba,0xc0,0xdf,0xff,0xff]
+ vpxorq zmm7, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpxorq zmm7, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x7a,0x7f]
+ vpxorq zmm7, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpxorq zmm7, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0xba,0x00,0x04,0x00,0x00]
+ vpxorq zmm7, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpxorq zmm7, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0x7a,0x80]
+ vpxorq zmm7, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpxorq zmm7, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xcd,0x50,0xef,0xba,0xf8,0xfb,0xff,0xff]
+ vpxorq zmm7, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrcp14pd zmm13, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0xec]
+ vrcp14pd zmm13, zmm4
+
+// CHECK: vrcp14pd zmm13 {k5}, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x4d,0x4c,0xec]
+ vrcp14pd zmm13 {k5}, zmm4
+
+// CHECK: vrcp14pd zmm13 {k5} {z}, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0xcd,0x4c,0xec]
+ vrcp14pd zmm13 {k5} {z}, zmm4
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0x29]
+ vrcp14pd zmm13, zmmword ptr [rcx]
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x4c,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vrcp14pd zmm13, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrcp14pd zmm13, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4c,0x29]
+ vrcp14pd zmm13, qword ptr [rcx]{1to8}
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0x6a,0x7f]
+ vrcp14pd zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0xaa,0x00,0x20,0x00,0x00]
+ vrcp14pd zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0x6a,0x80]
+ vrcp14pd zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vrcp14pd zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4c,0xaa,0xc0,0xdf,0xff,0xff]
+ vrcp14pd zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vrcp14pd zmm13, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4c,0x6a,0x7f]
+ vrcp14pd zmm13, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vrcp14pd zmm13, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4c,0xaa,0x00,0x04,0x00,0x00]
+ vrcp14pd zmm13, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vrcp14pd zmm13, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4c,0x6a,0x80]
+ vrcp14pd zmm13, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vrcp14pd zmm13, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4c,0xaa,0xf8,0xfb,0xff,0xff]
+ vrcp14pd zmm13, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrcp14ps zmm10, zmm25
+// CHECK: encoding: [0x62,0x12,0x7d,0x48,0x4c,0xd1]
+ vrcp14ps zmm10, zmm25
+
+// CHECK: vrcp14ps zmm10 {k1}, zmm25
+// CHECK: encoding: [0x62,0x12,0x7d,0x49,0x4c,0xd1]
+ vrcp14ps zmm10 {k1}, zmm25
+
+// CHECK: vrcp14ps zmm10 {k1} {z}, zmm25
+// CHECK: encoding: [0x62,0x12,0x7d,0xc9,0x4c,0xd1]
+ vrcp14ps zmm10 {k1} {z}, zmm25
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x4c,0x11]
+ vrcp14ps zmm10, zmmword ptr [rcx]
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x4c,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vrcp14ps zmm10, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrcp14ps zmm10, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x4c,0x11]
+ vrcp14ps zmm10, dword ptr [rcx]{1to16}
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x4c,0x52,0x7f]
+ vrcp14ps zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x4c,0x92,0x00,0x20,0x00,0x00]
+ vrcp14ps zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x4c,0x52,0x80]
+ vrcp14ps zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vrcp14ps zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x4c,0x92,0xc0,0xdf,0xff,0xff]
+ vrcp14ps zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vrcp14ps zmm10, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x4c,0x52,0x7f]
+ vrcp14ps zmm10, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vrcp14ps zmm10, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x4c,0x92,0x00,0x02,0x00,0x00]
+ vrcp14ps zmm10, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vrcp14ps zmm10, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x4c,0x52,0x80]
+ vrcp14ps zmm10, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vrcp14ps zmm10, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x58,0x4c,0x92,0xfc,0xfd,0xff,0xff]
+ vrcp14ps zmm10, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vrcp14sd xmm12, xmm22, xmm14
+// CHECK: encoding: [0x62,0x52,0xcd,0x00,0x4d,0xe6]
+ vrcp14sd xmm12, xmm22, xmm14
+
+// CHECK: vrcp14sd xmm12 {k2}, xmm22, xmm14
+// CHECK: encoding: [0x62,0x52,0xcd,0x02,0x4d,0xe6]
+ vrcp14sd xmm12 {k2}, xmm22, xmm14
+
+// CHECK: vrcp14sd xmm12 {k2} {z}, xmm22, xmm14
+// CHECK: encoding: [0x62,0x52,0xcd,0x82,0x4d,0xe6]
+ vrcp14sd xmm12 {k2} {z}, xmm22, xmm14
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xcd,0x00,0x4d,0x21]
+ vrcp14sd xmm12, xmm22, qword ptr [rcx]
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xcd,0x00,0x4d,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vrcp14sd xmm12, xmm22, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0xcd,0x00,0x4d,0x62,0x7f]
+ vrcp14sd xmm12, xmm22, qword ptr [rdx + 1016]
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0xcd,0x00,0x4d,0xa2,0x00,0x04,0x00,0x00]
+ vrcp14sd xmm12, xmm22, qword ptr [rdx + 1024]
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0xcd,0x00,0x4d,0x62,0x80]
+ vrcp14sd xmm12, xmm22, qword ptr [rdx - 1024]
+
+// CHECK: vrcp14sd xmm12, xmm22, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0xcd,0x00,0x4d,0xa2,0xf8,0xfb,0xff,0xff]
+ vrcp14sd xmm12, xmm22, qword ptr [rdx - 1032]
+
+// CHECK: vrcp14ss xmm8, xmm8, xmm3
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0xc3]
+ vrcp14ss xmm8, xmm8, xmm3
+
+// CHECK: vrcp14ss xmm8 {k7}, xmm8, xmm3
+// CHECK: encoding: [0x62,0x72,0x3d,0x0f,0x4d,0xc3]
+ vrcp14ss xmm8 {k7}, xmm8, xmm3
+
+// CHECK: vrcp14ss xmm8 {k7} {z}, xmm8, xmm3
+// CHECK: encoding: [0x62,0x72,0x3d,0x8f,0x4d,0xc3]
+ vrcp14ss xmm8 {k7} {z}, xmm8, xmm3
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0x01]
+ vrcp14ss xmm8, xmm8, dword ptr [rcx]
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x3d,0x08,0x4d,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vrcp14ss xmm8, xmm8, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0x42,0x7f]
+ vrcp14ss xmm8, xmm8, dword ptr [rdx + 508]
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0x82,0x00,0x02,0x00,0x00]
+ vrcp14ss xmm8, xmm8, dword ptr [rdx + 512]
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0x42,0x80]
+ vrcp14ss xmm8, xmm8, dword ptr [rdx - 512]
+
+// CHECK: vrcp14ss xmm8, xmm8, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x3d,0x08,0x4d,0x82,0xfc,0xfd,0xff,0xff]
+ vrcp14ss xmm8, xmm8, dword ptr [rdx - 516]
+
+// CHECK: vrsqrt14pd zmm19, zmm14
+// CHECK: encoding: [0x62,0xc2,0xfd,0x48,0x4e,0xde]
+ vrsqrt14pd zmm19, zmm14
+
+// CHECK: vrsqrt14pd zmm19 {k1}, zmm14
+// CHECK: encoding: [0x62,0xc2,0xfd,0x49,0x4e,0xde]
+ vrsqrt14pd zmm19 {k1}, zmm14
+
+// CHECK: vrsqrt14pd zmm19 {k1} {z}, zmm14
+// CHECK: encoding: [0x62,0xc2,0xfd,0xc9,0x4e,0xde]
+ vrsqrt14pd zmm19 {k1} {z}, zmm14
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x4e,0x19]
+ vrsqrt14pd zmm19, zmmword ptr [rcx]
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x4e,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vrsqrt14pd zmm19, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrsqrt14pd zmm19, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x4e,0x19]
+ vrsqrt14pd zmm19, qword ptr [rcx]{1to8}
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x4e,0x5a,0x7f]
+ vrsqrt14pd zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x4e,0x9a,0x00,0x20,0x00,0x00]
+ vrsqrt14pd zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x4e,0x5a,0x80]
+ vrsqrt14pd zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vrsqrt14pd zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x4e,0x9a,0xc0,0xdf,0xff,0xff]
+ vrsqrt14pd zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vrsqrt14pd zmm19, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x4e,0x5a,0x7f]
+ vrsqrt14pd zmm19, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vrsqrt14pd zmm19, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x4e,0x9a,0x00,0x04,0x00,0x00]
+ vrsqrt14pd zmm19, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vrsqrt14pd zmm19, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x4e,0x5a,0x80]
+ vrsqrt14pd zmm19, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vrsqrt14pd zmm19, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x4e,0x9a,0xf8,0xfb,0xff,0xff]
+ vrsqrt14pd zmm19, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrsqrt14ps zmm16, zmm9
+// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x4e,0xc1]
+ vrsqrt14ps zmm16, zmm9
+
+// CHECK: vrsqrt14ps zmm16 {k5}, zmm9
+// CHECK: encoding: [0x62,0xc2,0x7d,0x4d,0x4e,0xc1]
+ vrsqrt14ps zmm16 {k5}, zmm9
+
+// CHECK: vrsqrt14ps zmm16 {k5} {z}, zmm9
+// CHECK: encoding: [0x62,0xc2,0x7d,0xcd,0x4e,0xc1]
+ vrsqrt14ps zmm16 {k5} {z}, zmm9
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x4e,0x01]
+ vrsqrt14ps zmm16, zmmword ptr [rcx]
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x4e,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vrsqrt14ps zmm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrsqrt14ps zmm16, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x58,0x4e,0x01]
+ vrsqrt14ps zmm16, dword ptr [rcx]{1to16}
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x4e,0x42,0x7f]
+ vrsqrt14ps zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x4e,0x82,0x00,0x20,0x00,0x00]
+ vrsqrt14ps zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x4e,0x42,0x80]
+ vrsqrt14ps zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vrsqrt14ps zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x4e,0x82,0xc0,0xdf,0xff,0xff]
+ vrsqrt14ps zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vrsqrt14ps zmm16, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x58,0x4e,0x42,0x7f]
+ vrsqrt14ps zmm16, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vrsqrt14ps zmm16, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x58,0x4e,0x82,0x00,0x02,0x00,0x00]
+ vrsqrt14ps zmm16, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vrsqrt14ps zmm16, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x58,0x4e,0x42,0x80]
+ vrsqrt14ps zmm16, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vrsqrt14ps zmm16, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x7d,0x58,0x4e,0x82,0xfc,0xfd,0xff,0xff]
+ vrsqrt14ps zmm16, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vrsqrt14sd xmm26, xmm6, xmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0x08,0x4f,0xd2]
+ vrsqrt14sd xmm26, xmm6, xmm10
+
+// CHECK: vrsqrt14sd xmm26 {k5}, xmm6, xmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0x0d,0x4f,0xd2]
+ vrsqrt14sd xmm26 {k5}, xmm6, xmm10
+
+// CHECK: vrsqrt14sd xmm26 {k5} {z}, xmm6, xmm10
+// CHECK: encoding: [0x62,0x42,0xcd,0x8d,0x4f,0xd2]
+ vrsqrt14sd xmm26 {k5} {z}, xmm6, xmm10
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xcd,0x08,0x4f,0x11]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rcx]
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xcd,0x08,0x4f,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xcd,0x08,0x4f,0x52,0x7f]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rdx + 1016]
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xcd,0x08,0x4f,0x92,0x00,0x04,0x00,0x00]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rdx + 1024]
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xcd,0x08,0x4f,0x52,0x80]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rdx - 1024]
+
+// CHECK: vrsqrt14sd xmm26, xmm6, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xcd,0x08,0x4f,0x92,0xf8,0xfb,0xff,0xff]
+ vrsqrt14sd xmm26, xmm6, qword ptr [rdx - 1032]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, xmm9
+// CHECK: encoding: [0x62,0x52,0x0d,0x08,0x4f,0xf1]
+ vrsqrt14ss xmm14, xmm14, xmm9
+
+// CHECK: vrsqrt14ss xmm14 {k1}, xmm14, xmm9
+// CHECK: encoding: [0x62,0x52,0x0d,0x09,0x4f,0xf1]
+ vrsqrt14ss xmm14 {k1}, xmm14, xmm9
+
+// CHECK: vrsqrt14ss xmm14 {k1} {z}, xmm14, xmm9
+// CHECK: encoding: [0x62,0x52,0x0d,0x89,0x4f,0xf1]
+ vrsqrt14ss xmm14 {k1} {z}, xmm14, xmm9
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x0d,0x08,0x4f,0x31]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rcx]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x0d,0x08,0x4f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x0d,0x08,0x4f,0x72,0x7f]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rdx + 508]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x0d,0x08,0x4f,0xb2,0x00,0x02,0x00,0x00]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rdx + 512]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x0d,0x08,0x4f,0x72,0x80]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rdx - 512]
+
+// CHECK: vrsqrt14ss xmm14, xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x0d,0x08,0x4f,0xb2,0xfc,0xfd,0xff,0xff]
+ vrsqrt14ss xmm14, xmm14, dword ptr [rdx - 516]
+
+// CHECK: vshufpd zmm28, zmm8, zmm22, 171
+// CHECK: encoding: [0x62,0x21,0xbd,0x48,0xc6,0xe6,0xab]
+ vshufpd zmm28, zmm8, zmm22, 171
+
+// CHECK: vshufpd zmm28 {k2}, zmm8, zmm22, 171
+// CHECK: encoding: [0x62,0x21,0xbd,0x4a,0xc6,0xe6,0xab]
+ vshufpd zmm28 {k2}, zmm8, zmm22, 171
+
+// CHECK: vshufpd zmm28 {k2} {z}, zmm8, zmm22, 171
+// CHECK: encoding: [0x62,0x21,0xbd,0xca,0xc6,0xe6,0xab]
+ vshufpd zmm28 {k2} {z}, zmm8, zmm22, 171
+
+// CHECK: vshufpd zmm28, zmm8, zmm22, 123
+// CHECK: encoding: [0x62,0x21,0xbd,0x48,0xc6,0xe6,0x7b]
+ vshufpd zmm28, zmm8, zmm22, 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x48,0xc6,0x21,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rcx], 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x21,0xbd,0x48,0xc6,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshufpd zmm28, zmm8, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x58,0xc6,0x21,0x7b]
+ vshufpd zmm28, zmm8, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x48,0xc6,0x62,0x7f,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x48,0xc6,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x48,0xc6,0x62,0x80,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufpd zmm28, zmm8, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x48,0xc6,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufpd zmm28, zmm8, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufpd zmm28, zmm8, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x58,0xc6,0x62,0x7f,0x7b]
+ vshufpd zmm28, zmm8, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshufpd zmm28, zmm8, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x58,0xc6,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vshufpd zmm28, zmm8, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshufpd zmm28, zmm8, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x58,0xc6,0x62,0x80,0x7b]
+ vshufpd zmm28, zmm8, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshufpd zmm28, zmm8, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x61,0xbd,0x58,0xc6,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vshufpd zmm28, zmm8, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vshufps zmm5, zmm6, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x4c,0x48,0xc6,0xe9,0xab]
+ vshufps zmm5, zmm6, zmm9, 171
+
+// CHECK: vshufps zmm5 {k6}, zmm6, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x4c,0x4e,0xc6,0xe9,0xab]
+ vshufps zmm5 {k6}, zmm6, zmm9, 171
+
+// CHECK: vshufps zmm5 {k6} {z}, zmm6, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x4c,0xce,0xc6,0xe9,0xab]
+ vshufps zmm5 {k6} {z}, zmm6, zmm9, 171
+
+// CHECK: vshufps zmm5, zmm6, zmm9, 123
+// CHECK: encoding: [0x62,0xd1,0x4c,0x48,0xc6,0xe9,0x7b]
+ vshufps zmm5, zmm6, zmm9, 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0xc6,0x29,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rcx], 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x4c,0x48,0xc6,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshufps zmm5, zmm6, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0xc6,0x29,0x7b]
+ vshufps zmm5, zmm6, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0xc6,0x6a,0x7f,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0xc6,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0xc6,0x6a,0x80,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufps zmm5, zmm6, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0xc6,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufps zmm5, zmm6, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufps zmm5, zmm6, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0xc6,0x6a,0x7f,0x7b]
+ vshufps zmm5, zmm6, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshufps zmm5, zmm6, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0xc6,0xaa,0x00,0x02,0x00,0x00,0x7b]
+ vshufps zmm5, zmm6, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshufps zmm5, zmm6, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0xc6,0x6a,0x80,0x7b]
+ vshufps zmm5, zmm6, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshufps zmm5, zmm6, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0xc6,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
+ vshufps zmm5, zmm6, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vsqrtpd zmm19, zmm19
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x51,0xdb]
+ vsqrtpd zmm19, zmm19
+
+// CHECK: vsqrtpd zmm19 {k5}, zmm19
+// CHECK: encoding: [0x62,0xa1,0xfd,0x4d,0x51,0xdb]
+ vsqrtpd zmm19 {k5}, zmm19
+
+// CHECK: vsqrtpd zmm19 {k5} {z}, zmm19
+// CHECK: encoding: [0x62,0xa1,0xfd,0xcd,0x51,0xdb]
+ vsqrtpd zmm19 {k5} {z}, zmm19
+
+// CHECK: vsqrtpd zmm19, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x18,0x51,0xdb]
+ vsqrtpd zmm19, zmm19, {rn-sae}
+
+// CHECK: vsqrtpd zmm19, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x58,0x51,0xdb]
+ vsqrtpd zmm19, zmm19, {ru-sae}
+
+// CHECK: vsqrtpd zmm19, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x38,0x51,0xdb]
+ vsqrtpd zmm19, zmm19, {rd-sae}
+
+// CHECK: vsqrtpd zmm19, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x78,0x51,0xdb]
+ vsqrtpd zmm19, zmm19, {rz-sae}
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x51,0x19]
+ vsqrtpd zmm19, zmmword ptr [rcx]
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x51,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vsqrtpd zmm19, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsqrtpd zmm19, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x51,0x19]
+ vsqrtpd zmm19, qword ptr [rcx]{1to8}
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x51,0x5a,0x7f]
+ vsqrtpd zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x51,0x9a,0x00,0x20,0x00,0x00]
+ vsqrtpd zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x51,0x5a,0x80]
+ vsqrtpd zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vsqrtpd zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x51,0x9a,0xc0,0xdf,0xff,0xff]
+ vsqrtpd zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vsqrtpd zmm19, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x51,0x5a,0x7f]
+ vsqrtpd zmm19, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vsqrtpd zmm19, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x51,0x9a,0x00,0x04,0x00,0x00]
+ vsqrtpd zmm19, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vsqrtpd zmm19, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x51,0x5a,0x80]
+ vsqrtpd zmm19, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vsqrtpd zmm19, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x51,0x9a,0xf8,0xfb,0xff,0xff]
+ vsqrtpd zmm19, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vsqrtps zmm28, zmm29
+// CHECK: encoding: [0x62,0x01,0x7c,0x48,0x51,0xe5]
+ vsqrtps zmm28, zmm29
+
+// CHECK: vsqrtps zmm28 {k3}, zmm29
+// CHECK: encoding: [0x62,0x01,0x7c,0x4b,0x51,0xe5]
+ vsqrtps zmm28 {k3}, zmm29
+
+// CHECK: vsqrtps zmm28 {k3} {z}, zmm29
+// CHECK: encoding: [0x62,0x01,0x7c,0xcb,0x51,0xe5]
+ vsqrtps zmm28 {k3} {z}, zmm29
+
+// CHECK: vsqrtps zmm28, zmm29, {rn-sae}
+// CHECK: encoding: [0x62,0x01,0x7c,0x18,0x51,0xe5]
+ vsqrtps zmm28, zmm29, {rn-sae}
+
+// CHECK: vsqrtps zmm28, zmm29, {ru-sae}
+// CHECK: encoding: [0x62,0x01,0x7c,0x58,0x51,0xe5]
+ vsqrtps zmm28, zmm29, {ru-sae}
+
+// CHECK: vsqrtps zmm28, zmm29, {rd-sae}
+// CHECK: encoding: [0x62,0x01,0x7c,0x38,0x51,0xe5]
+ vsqrtps zmm28, zmm29, {rd-sae}
+
+// CHECK: vsqrtps zmm28, zmm29, {rz-sae}
+// CHECK: encoding: [0x62,0x01,0x7c,0x78,0x51,0xe5]
+ vsqrtps zmm28, zmm29, {rz-sae}
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x51,0x21]
+ vsqrtps zmm28, zmmword ptr [rcx]
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0x7c,0x48,0x51,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vsqrtps zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsqrtps zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0x21]
+ vsqrtps zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x51,0x62,0x7f]
+ vsqrtps zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x51,0xa2,0x00,0x20,0x00,0x00]
+ vsqrtps zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x51,0x62,0x80]
+ vsqrtps zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vsqrtps zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x51,0xa2,0xc0,0xdf,0xff,0xff]
+ vsqrtps zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vsqrtps zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0x62,0x7f]
+ vsqrtps zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vsqrtps zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0xa2,0x00,0x02,0x00,0x00]
+ vsqrtps zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vsqrtps zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0x62,0x80]
+ vsqrtps zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vsqrtps zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x7c,0x58,0x51,0xa2,0xfc,0xfd,0xff,0xff]
+ vsqrtps zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vsqrtsd xmm6, xmm2, xmm12
+// CHECK: encoding: [0xc4,0xc1,0x6b,0x51,0xf4]
+ vsqrtsd xmm6, xmm2, xmm12
+
+// CHECK: vsqrtsd xmm6 {k7}, xmm2, xmm12
+// CHECK: encoding: [0x62,0xd1,0xef,0x0f,0x51,0xf4]
+ vsqrtsd xmm6 {k7}, xmm2, xmm12
+
+// CHECK: vsqrtsd xmm6 {k7} {z}, xmm2, xmm12
+// CHECK: encoding: [0x62,0xd1,0xef,0x8f,0x51,0xf4]
+ vsqrtsd xmm6 {k7} {z}, xmm2, xmm12
+
+// CHECK: vsqrtsd xmm6, xmm2, xmm12, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0xef,0x18,0x51,0xf4]
+ vsqrtsd xmm6, xmm2, xmm12, {rn-sae}
+
+// CHECK: vsqrtsd xmm6, xmm2, xmm12, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0xef,0x58,0x51,0xf4]
+ vsqrtsd xmm6, xmm2, xmm12, {ru-sae}
+
+// CHECK: vsqrtsd xmm6, xmm2, xmm12, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0xef,0x38,0x51,0xf4]
+ vsqrtsd xmm6, xmm2, xmm12, {rd-sae}
+
+// CHECK: vsqrtsd xmm6, xmm2, xmm12, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0xef,0x78,0x51,0xf4]
+ vsqrtsd xmm6, xmm2, xmm12, {rz-sae}
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0xeb,0x51,0x31]
+ vsqrtsd xmm6, xmm2, qword ptr [rcx]
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa1,0x6b,0x51,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vsqrtsd xmm6, xmm2, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0xeb,0x51,0xb2,0xf8,0x03,0x00,0x00]
+ vsqrtsd xmm6, xmm2, qword ptr [rdx + 1016]
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0xeb,0x51,0xb2,0x00,0x04,0x00,0x00]
+ vsqrtsd xmm6, xmm2, qword ptr [rdx + 1024]
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0xeb,0x51,0xb2,0x00,0xfc,0xff,0xff]
+ vsqrtsd xmm6, xmm2, qword ptr [rdx - 1024]
+
+// CHECK: vsqrtsd xmm6, xmm2, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0xeb,0x51,0xb2,0xf8,0xfb,0xff,0xff]
+ vsqrtsd xmm6, xmm2, qword ptr [rdx - 1032]
+
+// CHECK: vsqrtss xmm22, xmm19, xmm8
+// CHECK: encoding: [0x62,0xc1,0x66,0x00,0x51,0xf0]
+ vsqrtss xmm22, xmm19, xmm8
+
+// CHECK: vsqrtss xmm22 {k1}, xmm19, xmm8
+// CHECK: encoding: [0x62,0xc1,0x66,0x01,0x51,0xf0]
+ vsqrtss xmm22 {k1}, xmm19, xmm8
+
+// CHECK: vsqrtss xmm22 {k1} {z}, xmm19, xmm8
+// CHECK: encoding: [0x62,0xc1,0x66,0x81,0x51,0xf0]
+ vsqrtss xmm22 {k1} {z}, xmm19, xmm8
+
+// CHECK: vsqrtss xmm22, xmm19, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0x66,0x10,0x51,0xf0]
+ vsqrtss xmm22, xmm19, xmm8, {rn-sae}
+
+// CHECK: vsqrtss xmm22, xmm19, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0x66,0x50,0x51,0xf0]
+ vsqrtss xmm22, xmm19, xmm8, {ru-sae}
+
+// CHECK: vsqrtss xmm22, xmm19, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0x66,0x30,0x51,0xf0]
+ vsqrtss xmm22, xmm19, xmm8, {rd-sae}
+
+// CHECK: vsqrtss xmm22, xmm19, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0x66,0x70,0x51,0xf0]
+ vsqrtss xmm22, xmm19, xmm8, {rz-sae}
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x66,0x00,0x51,0x31]
+ vsqrtss xmm22, xmm19, dword ptr [rcx]
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x66,0x00,0x51,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vsqrtss xmm22, xmm19, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x66,0x00,0x51,0x72,0x7f]
+ vsqrtss xmm22, xmm19, dword ptr [rdx + 508]
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x66,0x00,0x51,0xb2,0x00,0x02,0x00,0x00]
+ vsqrtss xmm22, xmm19, dword ptr [rdx + 512]
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x66,0x00,0x51,0x72,0x80]
+ vsqrtss xmm22, xmm19, dword ptr [rdx - 512]
+
+// CHECK: vsqrtss xmm22, xmm19, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x66,0x00,0x51,0xb2,0xfc,0xfd,0xff,0xff]
+ vsqrtss xmm22, xmm19, dword ptr [rdx - 516]
+
+// CHECK: vsubpd zmm9, zmm12, zmm9
+// CHECK: encoding: [0x62,0x51,0x9d,0x48,0x5c,0xc9]
+ vsubpd zmm9, zmm12, zmm9
+
+// CHECK: vsubpd zmm9 {k7}, zmm12, zmm9
+// CHECK: encoding: [0x62,0x51,0x9d,0x4f,0x5c,0xc9]
+ vsubpd zmm9 {k7}, zmm12, zmm9
+
+// CHECK: vsubpd zmm9 {k7} {z}, zmm12, zmm9
+// CHECK: encoding: [0x62,0x51,0x9d,0xcf,0x5c,0xc9]
+ vsubpd zmm9 {k7} {z}, zmm12, zmm9
+
+// CHECK: vsubpd zmm9, zmm12, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0x51,0x9d,0x18,0x5c,0xc9]
+ vsubpd zmm9, zmm12, zmm9, {rn-sae}
+
+// CHECK: vsubpd zmm9, zmm12, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0x51,0x9d,0x58,0x5c,0xc9]
+ vsubpd zmm9, zmm12, zmm9, {ru-sae}
+
+// CHECK: vsubpd zmm9, zmm12, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0x51,0x9d,0x38,0x5c,0xc9]
+ vsubpd zmm9, zmm12, zmm9, {rd-sae}
+
+// CHECK: vsubpd zmm9, zmm12, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0x51,0x9d,0x78,0x5c,0xc9]
+ vsubpd zmm9, zmm12, zmm9, {rz-sae}
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x09]
+ vsubpd zmm9, zmm12, zmmword ptr [rcx]
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x9d,0x48,0x5c,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vsubpd zmm9, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsubpd zmm9, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x09]
+ vsubpd zmm9, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x7f]
+ vsubpd zmm9, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x8a,0x00,0x20,0x00,0x00]
+ vsubpd zmm9, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x80]
+ vsubpd zmm9, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vsubpd zmm9, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5c,0x8a,0xc0,0xdf,0xff,0xff]
+ vsubpd zmm9, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vsubpd zmm9, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x4a,0x7f]
+ vsubpd zmm9, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vsubpd zmm9, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0x00,0x04,0x00,0x00]
+ vsubpd zmm9, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vsubpd zmm9, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x4a,0x80]
+ vsubpd zmm9, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vsubpd zmm9, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5c,0x8a,0xf8,0xfb,0xff,0xff]
+ vsubpd zmm9, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vsubps zmm14, zmm27, zmm21
+// CHECK: encoding: [0x62,0x31,0x24,0x40,0x5c,0xf5]
+ vsubps zmm14, zmm27, zmm21
+
+// CHECK: vsubps zmm14 {k5}, zmm27, zmm21
+// CHECK: encoding: [0x62,0x31,0x24,0x45,0x5c,0xf5]
+ vsubps zmm14 {k5}, zmm27, zmm21
+
+// CHECK: vsubps zmm14 {k5} {z}, zmm27, zmm21
+// CHECK: encoding: [0x62,0x31,0x24,0xc5,0x5c,0xf5]
+ vsubps zmm14 {k5} {z}, zmm27, zmm21
+
+// CHECK: vsubps zmm14, zmm27, zmm21, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0x24,0x10,0x5c,0xf5]
+ vsubps zmm14, zmm27, zmm21, {rn-sae}
+
+// CHECK: vsubps zmm14, zmm27, zmm21, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0x24,0x50,0x5c,0xf5]
+ vsubps zmm14, zmm27, zmm21, {ru-sae}
+
+// CHECK: vsubps zmm14, zmm27, zmm21, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0x24,0x30,0x5c,0xf5]
+ vsubps zmm14, zmm27, zmm21, {rd-sae}
+
+// CHECK: vsubps zmm14, zmm27, zmm21, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0x24,0x70,0x5c,0xf5]
+ vsubps zmm14, zmm27, zmm21, {rz-sae}
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x31]
+ vsubps zmm14, zmm27, zmmword ptr [rcx]
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x24,0x40,0x5c,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vsubps zmm14, zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsubps zmm14, zmm27, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x31]
+ vsubps zmm14, zmm27, dword ptr [rcx]{1to16}
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x7f]
+ vsubps zmm14, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0xb2,0x00,0x20,0x00,0x00]
+ vsubps zmm14, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x80]
+ vsubps zmm14, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vsubps zmm14, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x24,0x40,0x5c,0xb2,0xc0,0xdf,0xff,0xff]
+ vsubps zmm14, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vsubps zmm14, zmm27, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x72,0x7f]
+ vsubps zmm14, zmm27, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vsubps zmm14, zmm27, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0xb2,0x00,0x02,0x00,0x00]
+ vsubps zmm14, zmm27, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vsubps zmm14, zmm27, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0x72,0x80]
+ vsubps zmm14, zmm27, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vsubps zmm14, zmm27, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x24,0x50,0x5c,0xb2,0xfc,0xfd,0xff,0xff]
+ vsubps zmm14, zmm27, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vsubsd xmm20, xmm27, xmm15
+// CHECK: encoding: [0x62,0xc1,0xa7,0x00,0x5c,0xe7]
+ vsubsd xmm20, xmm27, xmm15
+
+// CHECK: vsubsd xmm20 {k5}, xmm27, xmm15
+// CHECK: encoding: [0x62,0xc1,0xa7,0x05,0x5c,0xe7]
+ vsubsd xmm20 {k5}, xmm27, xmm15
+
+// CHECK: vsubsd xmm20 {k5} {z}, xmm27, xmm15
+// CHECK: encoding: [0x62,0xc1,0xa7,0x85,0x5c,0xe7]
+ vsubsd xmm20 {k5} {z}, xmm27, xmm15
+
+// CHECK: vsubsd xmm20, xmm27, xmm15, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0xa7,0x10,0x5c,0xe7]
+ vsubsd xmm20, xmm27, xmm15, {rn-sae}
+
+// CHECK: vsubsd xmm20, xmm27, xmm15, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0xa7,0x50,0x5c,0xe7]
+ vsubsd xmm20, xmm27, xmm15, {ru-sae}
+
+// CHECK: vsubsd xmm20, xmm27, xmm15, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0xa7,0x30,0x5c,0xe7]
+ vsubsd xmm20, xmm27, xmm15, {rd-sae}
+
+// CHECK: vsubsd xmm20, xmm27, xmm15, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0xa7,0x70,0x5c,0xe7]
+ vsubsd xmm20, xmm27, xmm15, {rz-sae}
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xa7,0x00,0x5c,0x21]
+ vsubsd xmm20, xmm27, qword ptr [rcx]
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xa7,0x00,0x5c,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vsubsd xmm20, xmm27, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xa7,0x00,0x5c,0x62,0x7f]
+ vsubsd xmm20, xmm27, qword ptr [rdx + 1016]
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xa7,0x00,0x5c,0xa2,0x00,0x04,0x00,0x00]
+ vsubsd xmm20, xmm27, qword ptr [rdx + 1024]
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xa7,0x00,0x5c,0x62,0x80]
+ vsubsd xmm20, xmm27, qword ptr [rdx - 1024]
+
+// CHECK: vsubsd xmm20, xmm27, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xa7,0x00,0x5c,0xa2,0xf8,0xfb,0xff,0xff]
+ vsubsd xmm20, xmm27, qword ptr [rdx - 1032]
+
+// CHECK: vsubss xmm5, xmm25, xmm9
+// CHECK: encoding: [0x62,0xd1,0x36,0x00,0x5c,0xe9]
+ vsubss xmm5, xmm25, xmm9
+
+// CHECK: vsubss xmm5 {k3}, xmm25, xmm9
+// CHECK: encoding: [0x62,0xd1,0x36,0x03,0x5c,0xe9]
+ vsubss xmm5 {k3}, xmm25, xmm9
+
+// CHECK: vsubss xmm5 {k3} {z}, xmm25, xmm9
+// CHECK: encoding: [0x62,0xd1,0x36,0x83,0x5c,0xe9]
+ vsubss xmm5 {k3} {z}, xmm25, xmm9
+
+// CHECK: vsubss xmm5, xmm25, xmm9, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0x36,0x10,0x5c,0xe9]
+ vsubss xmm5, xmm25, xmm9, {rn-sae}
+
+// CHECK: vsubss xmm5, xmm25, xmm9, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0x36,0x50,0x5c,0xe9]
+ vsubss xmm5, xmm25, xmm9, {ru-sae}
+
+// CHECK: vsubss xmm5, xmm25, xmm9, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0x36,0x30,0x5c,0xe9]
+ vsubss xmm5, xmm25, xmm9, {rd-sae}
+
+// CHECK: vsubss xmm5, xmm25, xmm9, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0x36,0x70,0x5c,0xe9]
+ vsubss xmm5, xmm25, xmm9, {rz-sae}
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x5c,0x29]
+ vsubss xmm5, xmm25, dword ptr [rcx]
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x36,0x00,0x5c,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vsubss xmm5, xmm25, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x5c,0x6a,0x7f]
+ vsubss xmm5, xmm25, dword ptr [rdx + 508]
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x5c,0xaa,0x00,0x02,0x00,0x00]
+ vsubss xmm5, xmm25, dword ptr [rdx + 512]
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x5c,0x6a,0x80]
+ vsubss xmm5, xmm25, dword ptr [rdx - 512]
+
+// CHECK: vsubss xmm5, xmm25, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x36,0x00,0x5c,0xaa,0xfc,0xfd,0xff,0xff]
+ vsubss xmm5, xmm25, dword ptr [rdx - 516]
+
+// CHECK: vucomisd xmm11, xmm10
+// CHECK: encoding: [0xc4,0x41,0x79,0x2e,0xda]
+ vucomisd xmm11, xmm10
+
+// CHECK: vucomisd xmm11, xmm10, {sae}
+// CHECK: encoding: [0x62,0x51,0xfd,0x18,0x2e,0xda]
+ vucomisd xmm11, xmm10, {sae}
+
+// CHECK: vucomisd xmm11, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x79,0x2e,0x19]
+ vucomisd xmm11, qword ptr [rcx]
+
+// CHECK: vucomisd xmm11, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0x21,0x79,0x2e,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vucomisd xmm11, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vucomisd xmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x79,0x2e,0x9a,0xf8,0x03,0x00,0x00]
+ vucomisd xmm11, qword ptr [rdx + 1016]
+
+// CHECK: vucomisd xmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x79,0x2e,0x9a,0x00,0x04,0x00,0x00]
+ vucomisd xmm11, qword ptr [rdx + 1024]
+
+// CHECK: vucomisd xmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x79,0x2e,0x9a,0x00,0xfc,0xff,0xff]
+ vucomisd xmm11, qword ptr [rdx - 1024]
+
+// CHECK: vucomisd xmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x79,0x2e,0x9a,0xf8,0xfb,0xff,0xff]
+ vucomisd xmm11, qword ptr [rdx - 1032]
+
+// CHECK: vucomiss xmm22, xmm11
+// CHECK: encoding: [0x62,0xc1,0x7c,0x08,0x2e,0xf3]
+ vucomiss xmm22, xmm11
+
+// CHECK: vucomiss xmm22, xmm11, {sae}
+// CHECK: encoding: [0x62,0xc1,0x7c,0x18,0x2e,0xf3]
+ vucomiss xmm22, xmm11, {sae}
+
+// CHECK: vucomiss xmm22, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x2e,0x31]
+ vucomiss xmm22, dword ptr [rcx]
+
+// CHECK: vucomiss xmm22, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x7c,0x08,0x2e,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vucomiss xmm22, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vucomiss xmm22, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x2e,0x72,0x7f]
+ vucomiss xmm22, dword ptr [rdx + 508]
+
+// CHECK: vucomiss xmm22, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x2e,0xb2,0x00,0x02,0x00,0x00]
+ vucomiss xmm22, dword ptr [rdx + 512]
+
+// CHECK: vucomiss xmm22, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x2e,0x72,0x80]
+ vucomiss xmm22, dword ptr [rdx - 512]
+
+// CHECK: vucomiss xmm22, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x2e,0xb2,0xfc,0xfd,0xff,0xff]
+ vucomiss xmm22, dword ptr [rdx - 516]
+
+// CHECK: vunpckhpd zmm25, zmm19, zmm26
+// CHECK: encoding: [0x62,0x01,0xe5,0x40,0x15,0xca]
+ vunpckhpd zmm25, zmm19, zmm26
+
+// CHECK: vunpckhpd zmm25 {k5}, zmm19, zmm26
+// CHECK: encoding: [0x62,0x01,0xe5,0x45,0x15,0xca]
+ vunpckhpd zmm25 {k5}, zmm19, zmm26
+
+// CHECK: vunpckhpd zmm25 {k5} {z}, zmm19, zmm26
+// CHECK: encoding: [0x62,0x01,0xe5,0xc5,0x15,0xca]
+ vunpckhpd zmm25 {k5} {z}, zmm19, zmm26
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xe5,0x40,0x15,0x09]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rcx]
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x21,0xe5,0x40,0x15,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vunpckhpd zmm25, zmm19, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xe5,0x50,0x15,0x09]
+ vunpckhpd zmm25, zmm19, qword ptr [rcx]{1to8}
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xe5,0x40,0x15,0x4a,0x7f]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xe5,0x40,0x15,0x8a,0x00,0x20,0x00,0x00]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xe5,0x40,0x15,0x4a,0x80]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpckhpd zmm25, zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xe5,0x40,0x15,0x8a,0xc0,0xdf,0xff,0xff]
+ vunpckhpd zmm25, zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpckhpd zmm25, zmm19, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xe5,0x50,0x15,0x4a,0x7f]
+ vunpckhpd zmm25, zmm19, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vunpckhpd zmm25, zmm19, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xe5,0x50,0x15,0x8a,0x00,0x04,0x00,0x00]
+ vunpckhpd zmm25, zmm19, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vunpckhpd zmm25, zmm19, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xe5,0x50,0x15,0x4a,0x80]
+ vunpckhpd zmm25, zmm19, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vunpckhpd zmm25, zmm19, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xe5,0x50,0x15,0x8a,0xf8,0xfb,0xff,0xff]
+ vunpckhpd zmm25, zmm19, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vunpckhps zmm5, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0x48,0x15,0xe8]
+ vunpckhps zmm5, zmm14, zmm16
+
+// CHECK: vunpckhps zmm5 {k6}, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0x4e,0x15,0xe8]
+ vunpckhps zmm5 {k6}, zmm14, zmm16
+
+// CHECK: vunpckhps zmm5 {k6} {z}, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0xce,0x15,0xe8]
+ vunpckhps zmm5 {k6} {z}, zmm14, zmm16
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x15,0x29]
+ vunpckhps zmm5, zmm14, zmmword ptr [rcx]
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x0c,0x48,0x15,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vunpckhps zmm5, zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vunpckhps zmm5, zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x15,0x29]
+ vunpckhps zmm5, zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x15,0x6a,0x7f]
+ vunpckhps zmm5, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x15,0xaa,0x00,0x20,0x00,0x00]
+ vunpckhps zmm5, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x15,0x6a,0x80]
+ vunpckhps zmm5, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpckhps zmm5, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x15,0xaa,0xc0,0xdf,0xff,0xff]
+ vunpckhps zmm5, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpckhps zmm5, zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x15,0x6a,0x7f]
+ vunpckhps zmm5, zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vunpckhps zmm5, zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x15,0xaa,0x00,0x02,0x00,0x00]
+ vunpckhps zmm5, zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vunpckhps zmm5, zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x15,0x6a,0x80]
+ vunpckhps zmm5, zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vunpckhps zmm5, zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x15,0xaa,0xfc,0xfd,0xff,0xff]
+ vunpckhps zmm5, zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vunpcklpd zmm18, zmm29, zmm21
+// CHECK: encoding: [0x62,0xa1,0x95,0x40,0x14,0xd5]
+ vunpcklpd zmm18, zmm29, zmm21
+
+// CHECK: vunpcklpd zmm18 {k6}, zmm29, zmm21
+// CHECK: encoding: [0x62,0xa1,0x95,0x46,0x14,0xd5]
+ vunpcklpd zmm18 {k6}, zmm29, zmm21
+
+// CHECK: vunpcklpd zmm18 {k6} {z}, zmm29, zmm21
+// CHECK: encoding: [0x62,0xa1,0x95,0xc6,0x14,0xd5]
+ vunpcklpd zmm18 {k6} {z}, zmm29, zmm21
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x14,0x11]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rcx]
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x95,0x40,0x14,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vunpcklpd zmm18, zmm29, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x95,0x50,0x14,0x11]
+ vunpcklpd zmm18, zmm29, qword ptr [rcx]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x14,0x52,0x7f]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x14,0x92,0x00,0x20,0x00,0x00]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x14,0x52,0x80]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpcklpd zmm18, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x14,0x92,0xc0,0xdf,0xff,0xff]
+ vunpcklpd zmm18, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpcklpd zmm18, zmm29, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x95,0x50,0x14,0x52,0x7f]
+ vunpcklpd zmm18, zmm29, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm29, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x95,0x50,0x14,0x92,0x00,0x04,0x00,0x00]
+ vunpcklpd zmm18, zmm29, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm29, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x95,0x50,0x14,0x52,0x80]
+ vunpcklpd zmm18, zmm29, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm29, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x95,0x50,0x14,0x92,0xf8,0xfb,0xff,0xff]
+ vunpcklpd zmm18, zmm29, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vunpcklps zmm1, zmm3, zmm2
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0xca]
+ vunpcklps zmm1, zmm3, zmm2
+
+// CHECK: vunpcklps zmm1 {k3}, zmm3, zmm2
+// CHECK: encoding: [0x62,0xf1,0x64,0x4b,0x14,0xca]
+ vunpcklps zmm1 {k3}, zmm3, zmm2
+
+// CHECK: vunpcklps zmm1 {k3} {z}, zmm3, zmm2
+// CHECK: encoding: [0x62,0xf1,0x64,0xcb,0x14,0xca]
+ vunpcklps zmm1 {k3} {z}, zmm3, zmm2
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0x09]
+ vunpcklps zmm1, zmm3, zmmword ptr [rcx]
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x64,0x48,0x14,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vunpcklps zmm1, zmm3, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vunpcklps zmm1, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x14,0x09]
+ vunpcklps zmm1, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0x4a,0x7f]
+ vunpcklps zmm1, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0x8a,0x00,0x20,0x00,0x00]
+ vunpcklps zmm1, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0x4a,0x80]
+ vunpcklps zmm1, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpcklps zmm1, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0x14,0x8a,0xc0,0xdf,0xff,0xff]
+ vunpcklps zmm1, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpcklps zmm1, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x14,0x4a,0x7f]
+ vunpcklps zmm1, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vunpcklps zmm1, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x14,0x8a,0x00,0x02,0x00,0x00]
+ vunpcklps zmm1, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vunpcklps zmm1, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x14,0x4a,0x80]
+ vunpcklps zmm1, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vunpcklps zmm1, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0x14,0x8a,0xfc,0xfd,0xff,0xff]
+ vunpcklps zmm1, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpternlogd zmm12, zmm14, zmm20, 171
+// CHECK: encoding: [0x62,0x33,0x0d,0x48,0x25,0xe4,0xab]
+ vpternlogd zmm12, zmm14, zmm20, 171
+
+// CHECK: vpternlogd zmm12 {k7}, zmm14, zmm20, 171
+// CHECK: encoding: [0x62,0x33,0x0d,0x4f,0x25,0xe4,0xab]
+ vpternlogd zmm12 {k7}, zmm14, zmm20, 171
+
+// CHECK: vpternlogd zmm12 {k7} {z}, zmm14, zmm20, 171
+// CHECK: encoding: [0x62,0x33,0x0d,0xcf,0x25,0xe4,0xab]
+ vpternlogd zmm12 {k7} {z}, zmm14, zmm20, 171
+
+// CHECK: vpternlogd zmm12, zmm14, zmm20, 123
+// CHECK: encoding: [0x62,0x33,0x0d,0x48,0x25,0xe4,0x7b]
+ vpternlogd zmm12, zmm14, zmm20, 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x48,0x25,0x21,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rcx], 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x0d,0x48,0x25,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpternlogd zmm12, zmm14, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x58,0x25,0x21,0x7b]
+ vpternlogd zmm12, zmm14, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x48,0x25,0x62,0x7f,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x48,0x25,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x48,0x25,0x62,0x80,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpternlogd zmm12, zmm14, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x48,0x25,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpternlogd zmm12, zmm14, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpternlogd zmm12, zmm14, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x58,0x25,0x62,0x7f,0x7b]
+ vpternlogd zmm12, zmm14, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpternlogd zmm12, zmm14, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x58,0x25,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vpternlogd zmm12, zmm14, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpternlogd zmm12, zmm14, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x58,0x25,0x62,0x80,0x7b]
+ vpternlogd zmm12, zmm14, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpternlogd zmm12, zmm14, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x0d,0x58,0x25,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vpternlogd zmm12, zmm14, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmm21, 171
+// CHECK: encoding: [0x62,0x33,0xed,0x48,0x25,0xfd,0xab]
+ vpternlogq zmm15, zmm2, zmm21, 171
+
+// CHECK: vpternlogq zmm15 {k3}, zmm2, zmm21, 171
+// CHECK: encoding: [0x62,0x33,0xed,0x4b,0x25,0xfd,0xab]
+ vpternlogq zmm15 {k3}, zmm2, zmm21, 171
+
+// CHECK: vpternlogq zmm15 {k3} {z}, zmm2, zmm21, 171
+// CHECK: encoding: [0x62,0x33,0xed,0xcb,0x25,0xfd,0xab]
+ vpternlogq zmm15 {k3} {z}, zmm2, zmm21, 171
+
+// CHECK: vpternlogq zmm15, zmm2, zmm21, 123
+// CHECK: encoding: [0x62,0x33,0xed,0x48,0x25,0xfd,0x7b]
+ vpternlogq zmm15, zmm2, zmm21, 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xed,0x48,0x25,0x39,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rcx], 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0xed,0x48,0x25,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpternlogq zmm15, zmm2, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xed,0x58,0x25,0x39,0x7b]
+ vpternlogq zmm15, zmm2, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xed,0x48,0x25,0x7a,0x7f,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xed,0x48,0x25,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xed,0x48,0x25,0x7a,0x80,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpternlogq zmm15, zmm2, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xed,0x48,0x25,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vpternlogq zmm15, zmm2, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpternlogq zmm15, zmm2, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xed,0x58,0x25,0x7a,0x7f,0x7b]
+ vpternlogq zmm15, zmm2, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpternlogq zmm15, zmm2, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xed,0x58,0x25,0xba,0x00,0x04,0x00,0x00,0x7b]
+ vpternlogq zmm15, zmm2, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpternlogq zmm15, zmm2, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xed,0x58,0x25,0x7a,0x80,0x7b]
+ vpternlogq zmm15, zmm2, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpternlogq zmm15, zmm2, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xed,0x58,0x25,0xba,0xf8,0xfb,0xff,0xff,0x7b]
+ vpternlogq zmm15, zmm2, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpmovqb xmm3, zmm2
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0xd3]
+ vpmovqb xmm3, zmm2
+
+// CHECK: vpmovqb xmm3 {k1}, zmm2
+// CHECK: encoding: [0x62,0xf2,0x7e,0x49,0x32,0xd3]
+ vpmovqb xmm3 {k1}, zmm2
+
+// CHECK: vpmovqb xmm3 {k1} {z}, zmm2
+// CHECK: encoding: [0x62,0xf2,0x7e,0xc9,0x32,0xd3]
+ vpmovqb xmm3 {k1} {z}, zmm2
+
+// CHECK: vpmovsqb xmm30, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x22,0xee]
+ vpmovsqb xmm30, zmm29
+
+// CHECK: vpmovsqb xmm30 {k5}, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0x4d,0x22,0xee]
+ vpmovsqb xmm30 {k5}, zmm29
+
+// CHECK: vpmovsqb xmm30 {k5} {z}, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0xcd,0x22,0xee]
+ vpmovsqb xmm30 {k5} {z}, zmm29
+
+// CHECK: vpmovusqb xmm24, zmm28
+// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x12,0xe0]
+ vpmovusqb xmm24, zmm28
+
+// CHECK: vpmovusqb xmm24 {k7}, zmm28
+// CHECK: encoding: [0x62,0x02,0x7e,0x4f,0x12,0xe0]
+ vpmovusqb xmm24 {k7}, zmm28
+
+// CHECK: vpmovusqb xmm24 {k7} {z}, zmm28
+// CHECK: encoding: [0x62,0x02,0x7e,0xcf,0x12,0xe0]
+ vpmovusqb xmm24 {k7} {z}, zmm28
+
+// CHECK: vpmovqw xmm6, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0xd6]
+ vpmovqw xmm6, zmm18
+
+// CHECK: vpmovqw xmm6 {k1}, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x49,0x34,0xd6]
+ vpmovqw xmm6 {k1}, zmm18
+
+// CHECK: vpmovqw xmm6 {k1} {z}, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0xc9,0x34,0xd6]
+ vpmovqw xmm6 {k1} {z}, zmm18
+
+// CHECK: vpmovsqw xmm27, zmm19
+// CHECK: encoding: [0x62,0x82,0x7e,0x48,0x24,0xdb]
+ vpmovsqw xmm27, zmm19
+
+// CHECK: vpmovsqw xmm27 {k6}, zmm19
+// CHECK: encoding: [0x62,0x82,0x7e,0x4e,0x24,0xdb]
+ vpmovsqw xmm27 {k6}, zmm19
+
+// CHECK: vpmovsqw xmm27 {k6} {z}, zmm19
+// CHECK: encoding: [0x62,0x82,0x7e,0xce,0x24,0xdb]
+ vpmovsqw xmm27 {k6} {z}, zmm19
+
+// CHECK: vpmovusqw xmm28, zmm10
+// CHECK: encoding: [0x62,0x12,0x7e,0x48,0x14,0xd4]
+ vpmovusqw xmm28, zmm10
+
+// CHECK: vpmovusqw xmm28 {k7}, zmm10
+// CHECK: encoding: [0x62,0x12,0x7e,0x4f,0x14,0xd4]
+ vpmovusqw xmm28 {k7}, zmm10
+
+// CHECK: vpmovusqw xmm28 {k7} {z}, zmm10
+// CHECK: encoding: [0x62,0x12,0x7e,0xcf,0x14,0xd4]
+ vpmovusqw xmm28 {k7} {z}, zmm10
+
+// CHECK: vpmovqd ymm6, zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xce]
+ vpmovqd ymm6, zmm25
+
+// CHECK: vpmovqd ymm6 {k5}, zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x4d,0x35,0xce]
+ vpmovqd ymm6 {k5}, zmm25
+
+// CHECK: vpmovqd ymm6 {k5} {z}, zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0xcd,0x35,0xce]
+ vpmovqd ymm6 {k5} {z}, zmm25
+
+// CHECK: vpmovsqd ymm15, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x25,0xd7]
+ vpmovsqd ymm15, zmm2
+
+// CHECK: vpmovsqd ymm15 {k2}, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0x4a,0x25,0xd7]
+ vpmovsqd ymm15 {k2}, zmm2
+
+// CHECK: vpmovsqd ymm15 {k2} {z}, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0xca,0x25,0xd7]
+ vpmovsqd ymm15 {k2} {z}, zmm2
+
+// CHECK: vpmovusqd ymm8, zmm4
+// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x15,0xe0]
+ vpmovusqd ymm8, zmm4
+
+// CHECK: vpmovusqd ymm8 {k4}, zmm4
+// CHECK: encoding: [0x62,0xd2,0x7e,0x4c,0x15,0xe0]
+ vpmovusqd ymm8 {k4}, zmm4
+
+// CHECK: vpmovusqd ymm8 {k4} {z}, zmm4
+// CHECK: encoding: [0x62,0xd2,0x7e,0xcc,0x15,0xe0]
+ vpmovusqd ymm8 {k4} {z}, zmm4
+
+// CHECK: vpmovdb xmm2, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x31,0xea]
+ vpmovdb xmm2, zmm5
+
+// CHECK: vpmovdb xmm2 {k5}, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4d,0x31,0xea]
+ vpmovdb xmm2 {k5}, zmm5
+
+// CHECK: vpmovdb xmm2 {k5} {z}, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0xcd,0x31,0xea]
+ vpmovdb xmm2 {k5} {z}, zmm5
+
+// CHECK: vpmovsdb xmm21, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x21,0xd5]
+ vpmovsdb xmm21, zmm2
+
+// CHECK: vpmovsdb xmm21 {k4}, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0x4c,0x21,0xd5]
+ vpmovsdb xmm21 {k4}, zmm2
+
+// CHECK: vpmovsdb xmm21 {k4} {z}, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0xcc,0x21,0xd5]
+ vpmovsdb xmm21 {k4} {z}, zmm2
+
+// CHECK: vpmovusdb xmm20, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x11,0xd4]
+ vpmovusdb xmm20, zmm2
+
+// CHECK: vpmovusdb xmm20 {k3}, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0x4b,0x11,0xd4]
+ vpmovusdb xmm20 {k3}, zmm2
+
+// CHECK: vpmovusdb xmm20 {k3} {z}, zmm2
+// CHECK: encoding: [0x62,0xb2,0x7e,0xcb,0x11,0xd4]
+ vpmovusdb xmm20 {k3} {z}, zmm2
+
+// CHECK: vpmovdw ymm22, zmm29
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x33,0xee]
+ vpmovdw ymm22, zmm29
+
+// CHECK: vpmovdw ymm22 {k5}, zmm29
+// CHECK: encoding: [0x62,0x22,0x7e,0x4d,0x33,0xee]
+ vpmovdw ymm22 {k5}, zmm29
+
+// CHECK: vpmovdw ymm22 {k5} {z}, zmm29
+// CHECK: encoding: [0x62,0x22,0x7e,0xcd,0x33,0xee]
+ vpmovdw ymm22 {k5} {z}, zmm29
+
+// CHECK: vpmovsdw ymm25, zmm14
+// CHECK: encoding: [0x62,0x12,0x7e,0x48,0x23,0xf1]
+ vpmovsdw ymm25, zmm14
+
+// CHECK: vpmovsdw ymm25 {k4}, zmm14
+// CHECK: encoding: [0x62,0x12,0x7e,0x4c,0x23,0xf1]
+ vpmovsdw ymm25 {k4}, zmm14
+
+// CHECK: vpmovsdw ymm25 {k4} {z}, zmm14
+// CHECK: encoding: [0x62,0x12,0x7e,0xcc,0x23,0xf1]
+ vpmovsdw ymm25 {k4} {z}, zmm14
+
+// CHECK: vpmovusdw ymm8, zmm7
+// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x13,0xf8]
+ vpmovusdw ymm8, zmm7
+
+// CHECK: vpmovusdw ymm8 {k1}, zmm7
+// CHECK: encoding: [0x62,0xd2,0x7e,0x49,0x13,0xf8]
+ vpmovusdw ymm8 {k1}, zmm7
+
+// CHECK: vpmovusdw ymm8 {k1} {z}, zmm7
+// CHECK: encoding: [0x62,0xd2,0x7e,0xc9,0x13,0xf8]
+ vpmovusdw ymm8 {k1} {z}, zmm7
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmm3, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xf3,0xab]
+ vshuff32x4 zmm6, zmm24, zmm3, 171
+
+// CHECK: vshuff32x4 zmm6 {k2}, zmm24, zmm3, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x42,0x23,0xf3,0xab]
+ vshuff32x4 zmm6 {k2}, zmm24, zmm3, 171
+
+// CHECK: vshuff32x4 zmm6 {k2} {z}, zmm24, zmm3, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0xc2,0x23,0xf3,0xab]
+ vshuff32x4 zmm6 {k2} {z}, zmm24, zmm3, 171
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmm3, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xf3,0x7b]
+ vshuff32x4 zmm6, zmm24, zmm3, 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x31,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rcx], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x3d,0x40,0x23,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x31,0x7b]
+ vshuff32x4 zmm6, zmm24, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x72,0x7f,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0x72,0x80,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x23,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vshuff32x4 zmm6, zmm24, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x72,0x7f,0x7b]
+ vshuff32x4 zmm6, zmm24, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0xb2,0x00,0x02,0x00,0x00,0x7b]
+ vshuff32x4 zmm6, zmm24, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0x72,0x80,0x7b]
+ vshuff32x4 zmm6, zmm24, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm6, zmm24, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x23,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
+ vshuff32x4 zmm6, zmm24, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmm11, 171
+// CHECK: encoding: [0x62,0x53,0xb5,0x40,0x23,0xfb,0xab]
+ vshuff64x2 zmm15, zmm25, zmm11, 171
+
+// CHECK: vshuff64x2 zmm15 {k2}, zmm25, zmm11, 171
+// CHECK: encoding: [0x62,0x53,0xb5,0x42,0x23,0xfb,0xab]
+ vshuff64x2 zmm15 {k2}, zmm25, zmm11, 171
+
+// CHECK: vshuff64x2 zmm15 {k2} {z}, zmm25, zmm11, 171
+// CHECK: encoding: [0x62,0x53,0xb5,0xc2,0x23,0xfb,0xab]
+ vshuff64x2 zmm15 {k2} {z}, zmm25, zmm11, 171
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmm11, 123
+// CHECK: encoding: [0x62,0x53,0xb5,0x40,0x23,0xfb,0x7b]
+ vshuff64x2 zmm15, zmm25, zmm11, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x39,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0xb5,0x40,0x23,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x39,0x7b]
+ vshuff64x2 zmm15, zmm25, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x7a,0x7f,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0x7a,0x80,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x40,0x23,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vshuff64x2 zmm15, zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x7a,0x7f,0x7b]
+ vshuff64x2 zmm15, zmm25, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0xba,0x00,0x04,0x00,0x00,0x7b]
+ vshuff64x2 zmm15, zmm25, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0x7a,0x80,0x7b]
+ vshuff64x2 zmm15, zmm25, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm15, zmm25, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xb5,0x50,0x23,0xba,0xf8,0xfb,0xff,0xff,0x7b]
+ vshuff64x2 zmm15, zmm25, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmm25, 171
+// CHECK: encoding: [0x62,0x93,0x1d,0x40,0x43,0xc9,0xab]
+ vshufi32x4 zmm1, zmm28, zmm25, 171
+
+// CHECK: vshufi32x4 zmm1 {k4}, zmm28, zmm25, 171
+// CHECK: encoding: [0x62,0x93,0x1d,0x44,0x43,0xc9,0xab]
+ vshufi32x4 zmm1 {k4}, zmm28, zmm25, 171
+
+// CHECK: vshufi32x4 zmm1 {k4} {z}, zmm28, zmm25, 171
+// CHECK: encoding: [0x62,0x93,0x1d,0xc4,0x43,0xc9,0xab]
+ vshufi32x4 zmm1 {k4} {z}, zmm28, zmm25, 171
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmm25, 123
+// CHECK: encoding: [0x62,0x93,0x1d,0x40,0x43,0xc9,0x7b]
+ vshufi32x4 zmm1, zmm28, zmm25, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x09,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rcx], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0x1d,0x40,0x43,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x09,0x7b]
+ vshufi32x4 zmm1, zmm28, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x4a,0x7f,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x4a,0x80,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x40,0x43,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufi32x4 zmm1, zmm28, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x4a,0x7f,0x7b]
+ vshufi32x4 zmm1, zmm28, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vshufi32x4 zmm1, zmm28, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x4a,0x80,0x7b]
+ vshufi32x4 zmm1, zmm28, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm1, zmm28, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x1d,0x50,0x43,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vshufi32x4 zmm1, zmm28, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmm19, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0xdb,0xab]
+ vshufi64x2 zmm3, zmm16, zmm19, 171
+
+// CHECK: vshufi64x2 zmm3 {k7}, zmm16, zmm19, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0x47,0x43,0xdb,0xab]
+ vshufi64x2 zmm3 {k7}, zmm16, zmm19, 171
+
+// CHECK: vshufi64x2 zmm3 {k7} {z}, zmm16, zmm19, 171
+// CHECK: encoding: [0x62,0xb3,0xfd,0xc7,0x43,0xdb,0xab]
+ vshufi64x2 zmm3 {k7} {z}, zmm16, zmm19, 171
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmm19, 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0xdb,0x7b]
+ vshufi64x2 zmm3, zmm16, zmm19, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x19,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rcx], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x40,0x43,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x19,0x7b]
+ vshufi64x2 zmm3, zmm16, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x5a,0x7f,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x5a,0x80,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x40,0x43,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufi64x2 zmm3, zmm16, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x5a,0x7f,0x7b]
+ vshufi64x2 zmm3, zmm16, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vshufi64x2 zmm3, zmm16, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x5a,0x80,0x7b]
+ vshufi64x2 zmm3, zmm16, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm3, zmm16, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x50,0x43,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vshufi64x2 zmm3, zmm16, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermq zmm21, zmm23, zmm22
+// CHECK: encoding: [0x62,0xa2,0xc5,0x40,0x36,0xee]
+ vpermq zmm21, zmm23, zmm22
+
+// CHECK: vpermq zmm21 {k1}, zmm23, zmm22
+// CHECK: encoding: [0x62,0xa2,0xc5,0x41,0x36,0xee]
+ vpermq zmm21 {k1}, zmm23, zmm22
+
+// CHECK: vpermq zmm21 {k1} {z}, zmm23, zmm22
+// CHECK: encoding: [0x62,0xa2,0xc5,0xc1,0x36,0xee]
+ vpermq zmm21 {k1} {z}, zmm23, zmm22
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x29]
+ vpermq zmm21, zmm23, zmmword ptr [rcx]
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xc5,0x40,0x36,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpermq zmm21, zmm23, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermq zmm21, zmm23, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x29]
+ vpermq zmm21, zmm23, qword ptr [rcx]{1to8}
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x6a,0x7f]
+ vpermq zmm21, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0xaa,0x00,0x20,0x00,0x00]
+ vpermq zmm21, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0x6a,0x80]
+ vpermq zmm21, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermq zmm21, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x36,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermq zmm21, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermq zmm21, zmm23, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x6a,0x7f]
+ vpermq zmm21, zmm23, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermq zmm21, zmm23, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0xaa,0x00,0x04,0x00,0x00]
+ vpermq zmm21, zmm23, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermq zmm21, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0x6a,0x80]
+ vpermq zmm21, zmm23, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermq zmm21, zmm23, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x36,0xaa,0xf8,0xfb,0xff,0xff]
+ vpermq zmm21, zmm23, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermpd zmm26, zmm29, zmm18
+// CHECK: encoding: [0x62,0x22,0x95,0x40,0x16,0xd2]
+ vpermpd zmm26, zmm29, zmm18
+
+// CHECK: vpermpd zmm26 {k6}, zmm29, zmm18
+// CHECK: encoding: [0x62,0x22,0x95,0x46,0x16,0xd2]
+ vpermpd zmm26 {k6}, zmm29, zmm18
+
+// CHECK: vpermpd zmm26 {k6} {z}, zmm29, zmm18
+// CHECK: encoding: [0x62,0x22,0x95,0xc6,0x16,0xd2]
+ vpermpd zmm26 {k6} {z}, zmm29, zmm18
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x11]
+ vpermpd zmm26, zmm29, zmmword ptr [rcx]
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x95,0x40,0x16,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpermpd zmm26, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermpd zmm26, zmm29, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x11]
+ vpermpd zmm26, zmm29, qword ptr [rcx]{1to8}
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x52,0x7f]
+ vpermpd zmm26, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x92,0x00,0x20,0x00,0x00]
+ vpermpd zmm26, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x52,0x80]
+ vpermpd zmm26, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermpd zmm26, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x16,0x92,0xc0,0xdf,0xff,0xff]
+ vpermpd zmm26, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermpd zmm26, zmm29, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x52,0x7f]
+ vpermpd zmm26, zmm29, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermpd zmm26, zmm29, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x92,0x00,0x04,0x00,0x00]
+ vpermpd zmm26, zmm29, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermpd zmm26, zmm29, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x52,0x80]
+ vpermpd zmm26, zmm29, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermpd zmm26, zmm29, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x16,0x92,0xf8,0xfb,0xff,0xff]
+ vpermpd zmm26, zmm29, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermt2d zmm13, zmm6, zmm6
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0xee]
+ vpermt2d zmm13, zmm6, zmm6
+
+// CHECK: vpermt2d zmm13 {k6}, zmm6, zmm6
+// CHECK: encoding: [0x62,0x72,0x4d,0x4e,0x7e,0xee]
+ vpermt2d zmm13 {k6}, zmm6, zmm6
+
+// CHECK: vpermt2d zmm13 {k6} {z}, zmm6, zmm6
+// CHECK: encoding: [0x62,0x72,0x4d,0xce,0x7e,0xee]
+ vpermt2d zmm13 {k6} {z}, zmm6, zmm6
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0x29]
+ vpermt2d zmm13, zmm6, zmmword ptr [rcx]
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x4d,0x48,0x7e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpermt2d zmm13, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermt2d zmm13, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0x7e,0x29]
+ vpermt2d zmm13, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0x6a,0x7f]
+ vpermt2d zmm13, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0xaa,0x00,0x20,0x00,0x00]
+ vpermt2d zmm13, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0x6a,0x80]
+ vpermt2d zmm13, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2d zmm13, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x4d,0x48,0x7e,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermt2d zmm13, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2d zmm13, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0x7e,0x6a,0x7f]
+ vpermt2d zmm13, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermt2d zmm13, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0x7e,0xaa,0x00,0x02,0x00,0x00]
+ vpermt2d zmm13, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermt2d zmm13, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0x7e,0x6a,0x80]
+ vpermt2d zmm13, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermt2d zmm13, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x4d,0x58,0x7e,0xaa,0xfc,0xfd,0xff,0xff]
+ vpermt2d zmm13, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermt2q zmm21, zmm12, zmm16
+// CHECK: encoding: [0x62,0xa2,0x9d,0x48,0x7e,0xe8]
+ vpermt2q zmm21, zmm12, zmm16
+
+// CHECK: vpermt2q zmm21 {k2}, zmm12, zmm16
+// CHECK: encoding: [0x62,0xa2,0x9d,0x4a,0x7e,0xe8]
+ vpermt2q zmm21 {k2}, zmm12, zmm16
+
+// CHECK: vpermt2q zmm21 {k2} {z}, zmm12, zmm16
+// CHECK: encoding: [0x62,0xa2,0x9d,0xca,0x7e,0xe8]
+ vpermt2q zmm21 {k2} {z}, zmm12, zmm16
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x7e,0x29]
+ vpermt2q zmm21, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x9d,0x48,0x7e,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpermt2q zmm21, zmm12, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermt2q zmm21, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x7e,0x29]
+ vpermt2q zmm21, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x7e,0x6a,0x7f]
+ vpermt2q zmm21, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x7e,0xaa,0x00,0x20,0x00,0x00]
+ vpermt2q zmm21, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x7e,0x6a,0x80]
+ vpermt2q zmm21, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2q zmm21, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x48,0x7e,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermt2q zmm21, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2q zmm21, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x7e,0x6a,0x7f]
+ vpermt2q zmm21, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermt2q zmm21, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x7e,0xaa,0x00,0x04,0x00,0x00]
+ vpermt2q zmm21, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermt2q zmm21, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x7e,0x6a,0x80]
+ vpermt2q zmm21, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermt2q zmm21, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x58,0x7e,0xaa,0xf8,0xfb,0xff,0xff]
+ vpermt2q zmm21, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermt2ps zmm11, zmm28, zmm2
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0xda]
+ vpermt2ps zmm11, zmm28, zmm2
+
+// CHECK: vpermt2ps zmm11 {k1}, zmm28, zmm2
+// CHECK: encoding: [0x62,0x72,0x1d,0x41,0x7f,0xda]
+ vpermt2ps zmm11 {k1}, zmm28, zmm2
+
+// CHECK: vpermt2ps zmm11 {k1} {z}, zmm28, zmm2
+// CHECK: encoding: [0x62,0x72,0x1d,0xc1,0x7f,0xda]
+ vpermt2ps zmm11 {k1} {z}, zmm28, zmm2
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0x19]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x1d,0x40,0x7f,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermt2ps zmm11, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x7f,0x19]
+ vpermt2ps zmm11, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0x5a,0x7f]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0x9a,0x00,0x20,0x00,0x00]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0x5a,0x80]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2ps zmm11, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x7f,0x9a,0xc0,0xdf,0xff,0xff]
+ vpermt2ps zmm11, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2ps zmm11, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x7f,0x5a,0x7f]
+ vpermt2ps zmm11, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermt2ps zmm11, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x7f,0x9a,0x00,0x02,0x00,0x00]
+ vpermt2ps zmm11, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermt2ps zmm11, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x7f,0x5a,0x80]
+ vpermt2ps zmm11, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermt2ps zmm11, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x7f,0x9a,0xfc,0xfd,0xff,0xff]
+ vpermt2ps zmm11, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermt2pd zmm3, zmm27, zmm11
+// CHECK: encoding: [0x62,0xd2,0xa5,0x40,0x7f,0xdb]
+ vpermt2pd zmm3, zmm27, zmm11
+
+// CHECK: vpermt2pd zmm3 {k2}, zmm27, zmm11
+// CHECK: encoding: [0x62,0xd2,0xa5,0x42,0x7f,0xdb]
+ vpermt2pd zmm3 {k2}, zmm27, zmm11
+
+// CHECK: vpermt2pd zmm3 {k2} {z}, zmm27, zmm11
+// CHECK: encoding: [0x62,0xd2,0xa5,0xc2,0x7f,0xdb]
+ vpermt2pd zmm3 {k2} {z}, zmm27, zmm11
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xa5,0x40,0x7f,0x19]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rcx]
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0xa5,0x40,0x7f,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermt2pd zmm3, zmm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x50,0x7f,0x19]
+ vpermt2pd zmm3, zmm27, qword ptr [rcx]{1to8}
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xa5,0x40,0x7f,0x5a,0x7f]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xa5,0x40,0x7f,0x9a,0x00,0x20,0x00,0x00]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xa5,0x40,0x7f,0x5a,0x80]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2pd zmm3, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xa5,0x40,0x7f,0x9a,0xc0,0xdf,0xff,0xff]
+ vpermt2pd zmm3, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2pd zmm3, zmm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x50,0x7f,0x5a,0x7f]
+ vpermt2pd zmm3, zmm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermt2pd zmm3, zmm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x50,0x7f,0x9a,0x00,0x04,0x00,0x00]
+ vpermt2pd zmm3, zmm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermt2pd zmm3, zmm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x50,0x7f,0x5a,0x80]
+ vpermt2pd zmm3, zmm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermt2pd zmm3, zmm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xa5,0x50,0x7f,0x9a,0xf8,0xfb,0xff,0xff]
+ vpermt2pd zmm3, zmm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: valignq zmm28, zmm4, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xe7,0xab]
+ valignq zmm28, zmm4, zmm23, 171
+
+// CHECK: valignq zmm28 {k3}, zmm4, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xdd,0x4b,0x03,0xe7,0xab]
+ valignq zmm28 {k3}, zmm4, zmm23, 171
+
+// CHECK: valignq zmm28 {k3} {z}, zmm4, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xdd,0xcb,0x03,0xe7,0xab]
+ valignq zmm28 {k3} {z}, zmm4, zmm23, 171
+
+// CHECK: valignq zmm28, zmm4, zmm23, 123
+// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xe7,0x7b]
+ valignq zmm28, zmm4, zmm23, 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x21,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rcx], 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x23,0xdd,0x48,0x03,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: valignq zmm28, zmm4, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x21,0x7b]
+ valignq zmm28, zmm4, qword ptr [rcx]{1to8}, 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x62,0x7f,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rdx + 8128], 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rdx + 8192], 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0x62,0x80,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rdx - 8192], 123
+
+// CHECK: valignq zmm28, zmm4, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x48,0x03,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ valignq zmm28, zmm4, zmmword ptr [rdx - 8256], 123
+
+// CHECK: valignq zmm28, zmm4, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x62,0x7f,0x7b]
+ valignq zmm28, zmm4, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: valignq zmm28, zmm4, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ valignq zmm28, zmm4, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: valignq zmm28, zmm4, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0x62,0x80,0x7b]
+ valignq zmm28, zmm4, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: valignq zmm28, zmm4, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xdd,0x58,0x03,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ valignq zmm28, zmm4, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vcvtsd2usi eax, xmm30
+// CHECK: encoding: [0x62,0x91,0x7f,0x08,0x79,0xc6]
+ vcvtsd2usi eax, xmm30
+
+// CHECK: vcvtsd2usi eax, xmm30, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x18,0x79,0xc6]
+ vcvtsd2usi eax, xmm30, {rn-sae}
+
+// CHECK: vcvtsd2usi eax, xmm30, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x58,0x79,0xc6]
+ vcvtsd2usi eax, xmm30, {ru-sae}
+
+// CHECK: vcvtsd2usi eax, xmm30, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x38,0x79,0xc6]
+ vcvtsd2usi eax, xmm30, {rd-sae}
+
+// CHECK: vcvtsd2usi eax, xmm30, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x78,0x79,0xc6]
+ vcvtsd2usi eax, xmm30, {rz-sae}
+
+// CHECK: vcvtsd2usi eax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x01]
+ vcvtsd2usi eax, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2usi eax, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi eax, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi eax, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x42,0x80]
+ vcvtsd2usi eax, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi eax, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi ebp, xmm30
+// CHECK: encoding: [0x62,0x91,0x7f,0x08,0x79,0xee]
+ vcvtsd2usi ebp, xmm30
+
+// CHECK: vcvtsd2usi ebp, xmm30, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x18,0x79,0xee]
+ vcvtsd2usi ebp, xmm30, {rn-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm30, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x58,0x79,0xee]
+ vcvtsd2usi ebp, xmm30, {ru-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm30, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x38,0x79,0xee]
+ vcvtsd2usi ebp, xmm30, {rd-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm30, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x78,0x79,0xee]
+ vcvtsd2usi ebp, xmm30, {rz-sae}
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x29]
+ vcvtsd2usi ebp, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x79,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2usi ebp, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x6a,0x7f]
+ vcvtsd2usi ebp, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0xaa,0x00,0x04,0x00,0x00]
+ vcvtsd2usi ebp, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x6a,0x80]
+ vcvtsd2usi ebp, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi ebp, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi r13d, xmm30
+// CHECK: encoding: [0x62,0x11,0x7f,0x08,0x79,0xee]
+ vcvtsd2usi r13d, xmm30
+
+// CHECK: vcvtsd2usi r13d, xmm30, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0x7f,0x18,0x79,0xee]
+ vcvtsd2usi r13d, xmm30, {rn-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm30, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0x7f,0x58,0x79,0xee]
+ vcvtsd2usi r13d, xmm30, {ru-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm30, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0x7f,0x38,0x79,0xee]
+ vcvtsd2usi r13d, xmm30, {rd-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm30, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0x7f,0x78,0x79,0xee]
+ vcvtsd2usi r13d, xmm30, {rz-sae}
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x29]
+ vcvtsd2usi r13d, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x79,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2usi r13d, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x6a,0x7f]
+ vcvtsd2usi r13d, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0xaa,0x00,0x04,0x00,0x00]
+ vcvtsd2usi r13d, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x6a,0x80]
+ vcvtsd2usi r13d, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi r13d, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi rax, xmm18
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x79,0xc2]
+ vcvtsd2usi rax, xmm18
+
+// CHECK: vcvtsd2usi rax, xmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0xff,0x18,0x79,0xc2]
+ vcvtsd2usi rax, xmm18, {rn-sae}
+
+// CHECK: vcvtsd2usi rax, xmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0xff,0x58,0x79,0xc2]
+ vcvtsd2usi rax, xmm18, {ru-sae}
+
+// CHECK: vcvtsd2usi rax, xmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0xff,0x38,0x79,0xc2]
+ vcvtsd2usi rax, xmm18, {rd-sae}
+
+// CHECK: vcvtsd2usi rax, xmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0xff,0x78,0x79,0xc2]
+ vcvtsd2usi rax, xmm18, {rz-sae}
+
+// CHECK: vcvtsd2usi rax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x01]
+ vcvtsd2usi rax, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2usi rax, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi rax, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi rax, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x42,0x80]
+ vcvtsd2usi rax, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi rax, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi r8, xmm18
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x79,0xc2]
+ vcvtsd2usi r8, xmm18
+
+// CHECK: vcvtsd2usi r8, xmm18, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0xff,0x18,0x79,0xc2]
+ vcvtsd2usi r8, xmm18, {rn-sae}
+
+// CHECK: vcvtsd2usi r8, xmm18, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0xff,0x58,0x79,0xc2]
+ vcvtsd2usi r8, xmm18, {ru-sae}
+
+// CHECK: vcvtsd2usi r8, xmm18, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0xff,0x38,0x79,0xc2]
+ vcvtsd2usi r8, xmm18, {rd-sae}
+
+// CHECK: vcvtsd2usi r8, xmm18, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0xff,0x78,0x79,0xc2]
+ vcvtsd2usi r8, xmm18, {rz-sae}
+
+// CHECK: vcvtsd2usi r8, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x01]
+ vcvtsd2usi r8, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtsd2usi r8, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi r8, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi r8, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x42,0x80]
+ vcvtsd2usi r8, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi r8, qword ptr [rdx - 1032]
+
+// CHECK: vcvtss2usi eax, xmm28
+// CHECK: encoding: [0x62,0x91,0x7e,0x08,0x79,0xc4]
+ vcvtss2usi eax, xmm28
+
+// CHECK: vcvtss2usi eax, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x18,0x79,0xc4]
+ vcvtss2usi eax, xmm28, {rn-sae}
+
+// CHECK: vcvtss2usi eax, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x58,0x79,0xc4]
+ vcvtss2usi eax, xmm28, {ru-sae}
+
+// CHECK: vcvtss2usi eax, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x38,0x79,0xc4]
+ vcvtss2usi eax, xmm28, {rd-sae}
+
+// CHECK: vcvtss2usi eax, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x78,0x79,0xc4]
+ vcvtss2usi eax, xmm28, {rz-sae}
+
+// CHECK: vcvtss2usi eax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x01]
+ vcvtss2usi eax, dword ptr [rcx]
+
+// CHECK: vcvtss2usi eax, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2usi eax, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x42,0x7f]
+ vcvtss2usi eax, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi eax, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x42,0x80]
+ vcvtss2usi eax, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi eax, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi ebp, xmm28
+// CHECK: encoding: [0x62,0x91,0x7e,0x08,0x79,0xec]
+ vcvtss2usi ebp, xmm28
+
+// CHECK: vcvtss2usi ebp, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x18,0x79,0xec]
+ vcvtss2usi ebp, xmm28, {rn-sae}
+
+// CHECK: vcvtss2usi ebp, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x58,0x79,0xec]
+ vcvtss2usi ebp, xmm28, {ru-sae}
+
+// CHECK: vcvtss2usi ebp, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x38,0x79,0xec]
+ vcvtss2usi ebp, xmm28, {rd-sae}
+
+// CHECK: vcvtss2usi ebp, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7e,0x78,0x79,0xec]
+ vcvtss2usi ebp, xmm28, {rz-sae}
+
+// CHECK: vcvtss2usi ebp, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x29]
+ vcvtss2usi ebp, dword ptr [rcx]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x79,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2usi ebp, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x6a,0x7f]
+ vcvtss2usi ebp, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xaa,0x00,0x02,0x00,0x00]
+ vcvtss2usi ebp, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x6a,0x80]
+ vcvtss2usi ebp, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi ebp, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi r13d, xmm28
+// CHECK: encoding: [0x62,0x11,0x7e,0x08,0x79,0xec]
+ vcvtss2usi r13d, xmm28
+
+// CHECK: vcvtss2usi r13d, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0x7e,0x18,0x79,0xec]
+ vcvtss2usi r13d, xmm28, {rn-sae}
+
+// CHECK: vcvtss2usi r13d, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0x7e,0x58,0x79,0xec]
+ vcvtss2usi r13d, xmm28, {ru-sae}
+
+// CHECK: vcvtss2usi r13d, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0x7e,0x38,0x79,0xec]
+ vcvtss2usi r13d, xmm28, {rd-sae}
+
+// CHECK: vcvtss2usi r13d, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0x7e,0x78,0x79,0xec]
+ vcvtss2usi r13d, xmm28, {rz-sae}
+
+// CHECK: vcvtss2usi r13d, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x29]
+ vcvtss2usi r13d, dword ptr [rcx]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x79,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2usi r13d, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x6a,0x7f]
+ vcvtss2usi r13d, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0xaa,0x00,0x02,0x00,0x00]
+ vcvtss2usi r13d, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x6a,0x80]
+ vcvtss2usi r13d, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi r13d, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi rax, xmm23
+// CHECK: encoding: [0x62,0xb1,0xfe,0x08,0x79,0xc7]
+ vcvtss2usi rax, xmm23
+
+// CHECK: vcvtss2usi rax, xmm23, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0xfe,0x18,0x79,0xc7]
+ vcvtss2usi rax, xmm23, {rn-sae}
+
+// CHECK: vcvtss2usi rax, xmm23, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0xfe,0x58,0x79,0xc7]
+ vcvtss2usi rax, xmm23, {ru-sae}
+
+// CHECK: vcvtss2usi rax, xmm23, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0xfe,0x38,0x79,0xc7]
+ vcvtss2usi rax, xmm23, {rd-sae}
+
+// CHECK: vcvtss2usi rax, xmm23, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0xfe,0x78,0x79,0xc7]
+ vcvtss2usi rax, xmm23, {rz-sae}
+
+// CHECK: vcvtss2usi rax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x01]
+ vcvtss2usi rax, dword ptr [rcx]
+
+// CHECK: vcvtss2usi rax, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xfe,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2usi rax, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x42,0x7f]
+ vcvtss2usi rax, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi rax, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x42,0x80]
+ vcvtss2usi rax, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi rax, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi r8, xmm23
+// CHECK: encoding: [0x62,0x31,0xfe,0x08,0x79,0xc7]
+ vcvtss2usi r8, xmm23
+
+// CHECK: vcvtss2usi r8, xmm23, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0xfe,0x18,0x79,0xc7]
+ vcvtss2usi r8, xmm23, {rn-sae}
+
+// CHECK: vcvtss2usi r8, xmm23, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0xfe,0x58,0x79,0xc7]
+ vcvtss2usi r8, xmm23, {ru-sae}
+
+// CHECK: vcvtss2usi r8, xmm23, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0xfe,0x38,0x79,0xc7]
+ vcvtss2usi r8, xmm23, {rd-sae}
+
+// CHECK: vcvtss2usi r8, xmm23, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0xfe,0x78,0x79,0xc7]
+ vcvtss2usi r8, xmm23, {rz-sae}
+
+// CHECK: vcvtss2usi r8, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x01]
+ vcvtss2usi r8, dword ptr [rcx]
+
+// CHECK: vcvtss2usi r8, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xfe,0x08,0x79,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvtss2usi r8, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x42,0x7f]
+ vcvtss2usi r8, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi r8, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x42,0x80]
+ vcvtss2usi r8, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi r8, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, eax
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0xd8]
+ vcvtusi2sd xmm19, xmm1, eax
+
+// CHECK: vcvtusi2sd xmm19, xmm1, ebp
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0xdd]
+ vcvtusi2sd xmm19, xmm1, ebp
+
+// CHECK: vcvtusi2sd xmm19, xmm1, r13d
+// CHECK: encoding: [0x62,0xc1,0x77,0x08,0x7b,0xdd]
+ vcvtusi2sd xmm19, xmm1, r13d
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0x19]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rcx]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0x77,0x08,0x7b,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0x5a,0x7f]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rdx + 508]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0x9a,0x00,0x02,0x00,0x00]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rdx + 512]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0x5a,0x80]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rdx - 512]
+
+// CHECK: vcvtusi2sd xmm19, xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x77,0x08,0x7b,0x9a,0xfc,0xfd,0xff,0xff]
+ vcvtusi2sd xmm19, xmm1, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, rax
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, rax
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rn-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xaf,0x10,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rn-sae}, rax
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {ru-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xaf,0x50,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {ru-sae}, rax
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rd-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xaf,0x30,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rd-sae}, rax
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rz-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xaf,0x70,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rz-sae}, rax
+
+// CHECK: vcvtusi2sd xmm14, xmm26, r8
+// CHECK: encoding: [0x62,0x51,0xaf,0x00,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, r8
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rn-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xaf,0x10,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rn-sae}, r8
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {ru-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xaf,0x50,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {ru-sae}, r8
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rd-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xaf,0x30,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rd-sae}, r8
+
+// CHECK: vcvtusi2sd xmm14, xmm26, {rz-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xaf,0x70,0x7b,0xf0]
+ vcvtusi2sd xmm14, xmm26, {rz-sae}, r8
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0x31]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rcx]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xaf,0x00,0x7b,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0x72,0x7f]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rdx + 1016]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0xb2,0x00,0x04,0x00,0x00]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rdx + 1024]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0x72,0x80]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rdx - 1024]
+
+// CHECK: vcvtusi2sd xmm14, xmm26, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xaf,0x00,0x7b,0xb2,0xf8,0xfb,0xff,0xff]
+ vcvtusi2sd xmm14, xmm26, qword ptr [rdx - 1032]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, eax
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0xe8]
+ vcvtusi2ss xmm5, xmm26, eax
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rn-sae}, eax
+// CHECK: encoding: [0x62,0xf1,0x2e,0x10,0x7b,0xe8]
+ vcvtusi2ss xmm5, xmm26, {rn-sae}, eax
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {ru-sae}, eax
+// CHECK: encoding: [0x62,0xf1,0x2e,0x50,0x7b,0xe8]
+ vcvtusi2ss xmm5, xmm26, {ru-sae}, eax
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rd-sae}, eax
+// CHECK: encoding: [0x62,0xf1,0x2e,0x30,0x7b,0xe8]
+ vcvtusi2ss xmm5, xmm26, {rd-sae}, eax
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rz-sae}, eax
+// CHECK: encoding: [0x62,0xf1,0x2e,0x70,0x7b,0xe8]
+ vcvtusi2ss xmm5, xmm26, {rz-sae}, eax
+
+// CHECK: vcvtusi2ss xmm5, xmm26, ebp
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, ebp
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rn-sae}, ebp
+// CHECK: encoding: [0x62,0xf1,0x2e,0x10,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rn-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {ru-sae}, ebp
+// CHECK: encoding: [0x62,0xf1,0x2e,0x50,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {ru-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rd-sae}, ebp
+// CHECK: encoding: [0x62,0xf1,0x2e,0x30,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rd-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rz-sae}, ebp
+// CHECK: encoding: [0x62,0xf1,0x2e,0x70,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rz-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm5, xmm26, r13d
+// CHECK: encoding: [0x62,0xd1,0x2e,0x00,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, r13d
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rn-sae}, r13d
+// CHECK: encoding: [0x62,0xd1,0x2e,0x10,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rn-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {ru-sae}, r13d
+// CHECK: encoding: [0x62,0xd1,0x2e,0x50,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {ru-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rd-sae}, r13d
+// CHECK: encoding: [0x62,0xd1,0x2e,0x30,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rd-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm5, xmm26, {rz-sae}, r13d
+// CHECK: encoding: [0x62,0xd1,0x2e,0x70,0x7b,0xed]
+ vcvtusi2ss xmm5, xmm26, {rz-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0x29]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rcx]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x2e,0x00,0x7b,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0x6a,0x7f]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rdx + 508]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0xaa,0x00,0x02,0x00,0x00]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rdx + 512]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0x6a,0x80]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rdx - 512]
+
+// CHECK: vcvtusi2ss xmm5, xmm26, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x2e,0x00,0x7b,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtusi2ss xmm5, xmm26, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, rax
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, rax
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rn-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xce,0x10,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rn-sae}, rax
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {ru-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xce,0x50,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {ru-sae}, rax
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rd-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xce,0x30,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rd-sae}, rax
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rz-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xce,0x70,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rz-sae}, rax
+
+// CHECK: vcvtusi2ss xmm14, xmm22, r8
+// CHECK: encoding: [0x62,0x51,0xce,0x00,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, r8
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rn-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xce,0x10,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rn-sae}, r8
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {ru-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xce,0x50,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {ru-sae}, r8
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rd-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xce,0x30,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rd-sae}, r8
+
+// CHECK: vcvtusi2ss xmm14, xmm22, {rz-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xce,0x70,0x7b,0xf0]
+ vcvtusi2ss xmm14, xmm22, {rz-sae}, r8
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0x31]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rcx]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xce,0x00,0x7b,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0x72,0x7f]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rdx + 1016]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0xb2,0x00,0x04,0x00,0x00]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rdx + 1024]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0x72,0x80]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rdx - 1024]
+
+// CHECK: vcvtusi2ss xmm14, xmm22, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xce,0x00,0x7b,0xb2,0xf8,0xfb,0xff,0xff]
+ vcvtusi2ss xmm14, xmm22, qword ptr [rdx - 1032]
+
+// CHECK: vscalefpd zmm26, zmm26, zmm28
+// CHECK: encoding: [0x62,0x02,0xad,0x40,0x2c,0xd4]
+ vscalefpd zmm26, zmm26, zmm28
+
+// CHECK: vscalefpd zmm26 {k5}, zmm26, zmm28
+// CHECK: encoding: [0x62,0x02,0xad,0x45,0x2c,0xd4]
+ vscalefpd zmm26 {k5}, zmm26, zmm28
+
+// CHECK: vscalefpd zmm26 {k5} {z}, zmm26, zmm28
+// CHECK: encoding: [0x62,0x02,0xad,0xc5,0x2c,0xd4]
+ vscalefpd zmm26 {k5} {z}, zmm26, zmm28
+
+// CHECK: vscalefpd zmm26, zmm26, zmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0xad,0x10,0x2c,0xd4]
+ vscalefpd zmm26, zmm26, zmm28, {rn-sae}
+
+// CHECK: vscalefpd zmm26, zmm26, zmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0xad,0x50,0x2c,0xd4]
+ vscalefpd zmm26, zmm26, zmm28, {ru-sae}
+
+// CHECK: vscalefpd zmm26, zmm26, zmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0xad,0x30,0x2c,0xd4]
+ vscalefpd zmm26, zmm26, zmm28, {rd-sae}
+
+// CHECK: vscalefpd zmm26, zmm26, zmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0xad,0x70,0x2c,0xd4]
+ vscalefpd zmm26, zmm26, zmm28, {rz-sae}
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x2c,0x11]
+ vscalefpd zmm26, zmm26, zmmword ptr [rcx]
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xad,0x40,0x2c,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vscalefpd zmm26, zmm26, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vscalefpd zmm26, zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x2c,0x11]
+ vscalefpd zmm26, zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x2c,0x52,0x7f]
+ vscalefpd zmm26, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x2c,0x92,0x00,0x20,0x00,0x00]
+ vscalefpd zmm26, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x2c,0x52,0x80]
+ vscalefpd zmm26, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vscalefpd zmm26, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x2c,0x92,0xc0,0xdf,0xff,0xff]
+ vscalefpd zmm26, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vscalefpd zmm26, zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x2c,0x52,0x7f]
+ vscalefpd zmm26, zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vscalefpd zmm26, zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x2c,0x92,0x00,0x04,0x00,0x00]
+ vscalefpd zmm26, zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vscalefpd zmm26, zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x2c,0x52,0x80]
+ vscalefpd zmm26, zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vscalefpd zmm26, zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x2c,0x92,0xf8,0xfb,0xff,0xff]
+ vscalefpd zmm26, zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vscalefps zmm19, zmm6, zmm18
+// CHECK: encoding: [0x62,0xa2,0x4d,0x48,0x2c,0xda]
+ vscalefps zmm19, zmm6, zmm18
+
+// CHECK: vscalefps zmm19 {k6}, zmm6, zmm18
+// CHECK: encoding: [0x62,0xa2,0x4d,0x4e,0x2c,0xda]
+ vscalefps zmm19 {k6}, zmm6, zmm18
+
+// CHECK: vscalefps zmm19 {k6} {z}, zmm6, zmm18
+// CHECK: encoding: [0x62,0xa2,0x4d,0xce,0x2c,0xda]
+ vscalefps zmm19 {k6} {z}, zmm6, zmm18
+
+// CHECK: vscalefps zmm19, zmm6, zmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x18,0x2c,0xda]
+ vscalefps zmm19, zmm6, zmm18, {rn-sae}
+
+// CHECK: vscalefps zmm19, zmm6, zmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x58,0x2c,0xda]
+ vscalefps zmm19, zmm6, zmm18, {ru-sae}
+
+// CHECK: vscalefps zmm19, zmm6, zmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x38,0x2c,0xda]
+ vscalefps zmm19, zmm6, zmm18, {rd-sae}
+
+// CHECK: vscalefps zmm19, zmm6, zmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0x4d,0x78,0x2c,0xda]
+ vscalefps zmm19, zmm6, zmm18, {rz-sae}
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x2c,0x19]
+ vscalefps zmm19, zmm6, zmmword ptr [rcx]
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x4d,0x48,0x2c,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vscalefps zmm19, zmm6, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vscalefps zmm19, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x2c,0x19]
+ vscalefps zmm19, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x2c,0x5a,0x7f]
+ vscalefps zmm19, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x2c,0x9a,0x00,0x20,0x00,0x00]
+ vscalefps zmm19, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x2c,0x5a,0x80]
+ vscalefps zmm19, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vscalefps zmm19, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x2c,0x9a,0xc0,0xdf,0xff,0xff]
+ vscalefps zmm19, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vscalefps zmm19, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x2c,0x5a,0x7f]
+ vscalefps zmm19, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vscalefps zmm19, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x2c,0x9a,0x00,0x02,0x00,0x00]
+ vscalefps zmm19, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vscalefps zmm19, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x2c,0x5a,0x80]
+ vscalefps zmm19, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vscalefps zmm19, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x2c,0x9a,0xfc,0xfd,0xff,0xff]
+ vscalefps zmm19, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vscalefsd xmm21, xmm22, xmm21
+// CHECK: encoding: [0x62,0xa2,0xcd,0x00,0x2d,0xed]
+ vscalefsd xmm21, xmm22, xmm21
+
+// CHECK: vscalefsd xmm21 {k2}, xmm22, xmm21
+// CHECK: encoding: [0x62,0xa2,0xcd,0x02,0x2d,0xed]
+ vscalefsd xmm21 {k2}, xmm22, xmm21
+
+// CHECK: vscalefsd xmm21 {k2} {z}, xmm22, xmm21
+// CHECK: encoding: [0x62,0xa2,0xcd,0x82,0x2d,0xed]
+ vscalefsd xmm21 {k2} {z}, xmm22, xmm21
+
+// CHECK: vscalefsd xmm21, xmm22, xmm21, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0xcd,0x10,0x2d,0xed]
+ vscalefsd xmm21, xmm22, xmm21, {rn-sae}
+
+// CHECK: vscalefsd xmm21, xmm22, xmm21, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0xcd,0x50,0x2d,0xed]
+ vscalefsd xmm21, xmm22, xmm21, {ru-sae}
+
+// CHECK: vscalefsd xmm21, xmm22, xmm21, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0xcd,0x30,0x2d,0xed]
+ vscalefsd xmm21, xmm22, xmm21, {rd-sae}
+
+// CHECK: vscalefsd xmm21, xmm22, xmm21, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0xcd,0x70,0x2d,0xed]
+ vscalefsd xmm21, xmm22, xmm21, {rz-sae}
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x2d,0x29]
+ vscalefsd xmm21, xmm22, qword ptr [rcx]
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x00,0x2d,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vscalefsd xmm21, xmm22, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x2d,0x6a,0x7f]
+ vscalefsd xmm21, xmm22, qword ptr [rdx + 1016]
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x2d,0xaa,0x00,0x04,0x00,0x00]
+ vscalefsd xmm21, xmm22, qword ptr [rdx + 1024]
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x2d,0x6a,0x80]
+ vscalefsd xmm21, xmm22, qword ptr [rdx - 1024]
+
+// CHECK: vscalefsd xmm21, xmm22, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x2d,0xaa,0xf8,0xfb,0xff,0xff]
+ vscalefsd xmm21, xmm22, qword ptr [rdx - 1032]
+
+// CHECK: vscalefss xmm13, xmm15, xmm23
+// CHECK: encoding: [0x62,0x32,0x05,0x08,0x2d,0xef]
+ vscalefss xmm13, xmm15, xmm23
+
+// CHECK: vscalefss xmm13 {k3}, xmm15, xmm23
+// CHECK: encoding: [0x62,0x32,0x05,0x0b,0x2d,0xef]
+ vscalefss xmm13 {k3}, xmm15, xmm23
+
+// CHECK: vscalefss xmm13 {k3} {z}, xmm15, xmm23
+// CHECK: encoding: [0x62,0x32,0x05,0x8b,0x2d,0xef]
+ vscalefss xmm13 {k3} {z}, xmm15, xmm23
+
+// CHECK: vscalefss xmm13, xmm15, xmm23, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0x05,0x18,0x2d,0xef]
+ vscalefss xmm13, xmm15, xmm23, {rn-sae}
+
+// CHECK: vscalefss xmm13, xmm15, xmm23, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0x05,0x58,0x2d,0xef]
+ vscalefss xmm13, xmm15, xmm23, {ru-sae}
+
+// CHECK: vscalefss xmm13, xmm15, xmm23, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0x05,0x38,0x2d,0xef]
+ vscalefss xmm13, xmm15, xmm23, {rd-sae}
+
+// CHECK: vscalefss xmm13, xmm15, xmm23, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0x05,0x78,0x2d,0xef]
+ vscalefss xmm13, xmm15, xmm23, {rz-sae}
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x05,0x08,0x2d,0x29]
+ vscalefss xmm13, xmm15, dword ptr [rcx]
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x05,0x08,0x2d,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vscalefss xmm13, xmm15, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x05,0x08,0x2d,0x6a,0x7f]
+ vscalefss xmm13, xmm15, dword ptr [rdx + 508]
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x05,0x08,0x2d,0xaa,0x00,0x02,0x00,0x00]
+ vscalefss xmm13, xmm15, dword ptr [rdx + 512]
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x05,0x08,0x2d,0x6a,0x80]
+ vscalefss xmm13, xmm15, dword ptr [rdx - 512]
+
+// CHECK: vscalefss xmm13, xmm15, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x05,0x08,0x2d,0xaa,0xfc,0xfd,0xff,0xff]
+ vscalefss xmm13, xmm15, dword ptr [rdx - 516]
+
+// CHECK: vfixupimmps zmm15, zmm26, zmm2, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0xab]
+ vfixupimmps zmm15, zmm26, zmm2, 171
+
+// CHECK: vfixupimmps zmm15 {k4}, zmm26, zmm2, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0x44,0x54,0xfa,0xab]
+ vfixupimmps zmm15 {k4}, zmm26, zmm2, 171
+
+// CHECK: vfixupimmps zmm15 {k4} {z}, zmm26, zmm2, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0xc4,0x54,0xfa,0xab]
+ vfixupimmps zmm15 {k4} {z}, zmm26, zmm2, 171
+
+// CHECK: vfixupimmps zmm15, zmm26, zmm2, {sae}, 171
+// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0xab]
+ vfixupimmps zmm15, zmm26, zmm2, {sae}, 171
+
+// CHECK: vfixupimmps zmm15, zmm26, zmm2, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xfa,0x7b]
+ vfixupimmps zmm15, zmm26, zmm2, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmm2, {sae}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x10,0x54,0xfa,0x7b]
+ vfixupimmps zmm15, zmm26, zmm2, {sae}, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x39,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rcx], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x2d,0x40,0x54,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x39,0x7b]
+ vfixupimmps zmm15, zmm26, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x7f,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0x7a,0x80,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x40,0x54,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vfixupimmps zmm15, zmm26, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vfixupimmps zmm15, zmm26, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x7f,0x7b]
+ vfixupimmps zmm15, zmm26, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0x00,0x02,0x00,0x00,0x7b]
+ vfixupimmps zmm15, zmm26, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0x7a,0x80,0x7b]
+ vfixupimmps zmm15, zmm26, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vfixupimmps zmm15, zmm26, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x2d,0x50,0x54,0xba,0xfc,0xfd,0xff,0xff,0x7b]
+ vfixupimmps zmm15, zmm26, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmm19, 171
+// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0xab]
+ vfixupimmpd zmm9, zmm21, zmm19, 171
+
+// CHECK: vfixupimmpd zmm9 {k2}, zmm21, zmm19, 171
+// CHECK: encoding: [0x62,0x33,0xd5,0x42,0x54,0xcb,0xab]
+ vfixupimmpd zmm9 {k2}, zmm21, zmm19, 171
+
+// CHECK: vfixupimmpd zmm9 {k2} {z}, zmm21, zmm19, 171
+// CHECK: encoding: [0x62,0x33,0xd5,0xc2,0x54,0xcb,0xab]
+ vfixupimmpd zmm9 {k2} {z}, zmm21, zmm19, 171
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmm19, {sae}, 171
+// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0xab]
+ vfixupimmpd zmm9, zmm21, zmm19, {sae}, 171
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmm19, 123
+// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0xcb,0x7b]
+ vfixupimmpd zmm9, zmm21, zmm19, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmm19, {sae}, 123
+// CHECK: encoding: [0x62,0x33,0xd5,0x10,0x54,0xcb,0x7b]
+ vfixupimmpd zmm9, zmm21, zmm19, {sae}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x09,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rcx], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0xd5,0x40,0x54,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x09,0x7b]
+ vfixupimmpd zmm9, zmm21, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x7f,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x4a,0x80,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x40,0x54,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vfixupimmpd zmm9, zmm21, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x7f,0x7b]
+ vfixupimmpd zmm9, zmm21, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vfixupimmpd zmm9, zmm21, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x4a,0x80,0x7b]
+ vfixupimmpd zmm9, zmm21, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm9, zmm21, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x50,0x54,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vfixupimmpd zmm9, zmm21, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vfixupimmss xmm15, xmm18, xmm28, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0xab]
+ vfixupimmss xmm15, xmm18, xmm28, 171
+
+// CHECK: vfixupimmss xmm15 {k5}, xmm18, xmm28, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x05,0x55,0xfc,0xab]
+ vfixupimmss xmm15 {k5}, xmm18, xmm28, 171
+
+// CHECK: vfixupimmss xmm15 {k5} {z}, xmm18, xmm28, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x85,0x55,0xfc,0xab]
+ vfixupimmss xmm15 {k5} {z}, xmm18, xmm28, 171
+
+// CHECK: vfixupimmss xmm15, xmm18, xmm28, {sae}, 171
+// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0xab]
+ vfixupimmss xmm15, xmm18, xmm28, {sae}, 171
+
+// CHECK: vfixupimmss xmm15, xmm18, xmm28, 123
+// CHECK: encoding: [0x62,0x13,0x6d,0x00,0x55,0xfc,0x7b]
+ vfixupimmss xmm15, xmm18, xmm28, 123
+
+// CHECK: vfixupimmss xmm15, xmm18, xmm28, {sae}, 123
+// CHECK: encoding: [0x62,0x13,0x6d,0x10,0x55,0xfc,0x7b]
+ vfixupimmss xmm15, xmm18, xmm28, {sae}, 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x39,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rcx], 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x6d,0x00,0x55,0xbc,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x7f,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rdx + 508], 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0x00,0x02,0x00,0x00,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rdx + 512], 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0x7a,0x80,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rdx - 512], 123
+
+// CHECK: vfixupimmss xmm15, xmm18, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x73,0x6d,0x00,0x55,0xba,0xfc,0xfd,0xff,0xff,0x7b]
+ vfixupimmss xmm15, xmm18, dword ptr [rdx - 516], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, xmm5, 171
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0xab]
+ vfixupimmsd xmm13, xmm26, xmm5, 171
+
+// CHECK: vfixupimmsd xmm13 {k6}, xmm26, xmm5, 171
+// CHECK: encoding: [0x62,0x73,0xad,0x06,0x55,0xed,0xab]
+ vfixupimmsd xmm13 {k6}, xmm26, xmm5, 171
+
+// CHECK: vfixupimmsd xmm13 {k6} {z}, xmm26, xmm5, 171
+// CHECK: encoding: [0x62,0x73,0xad,0x86,0x55,0xed,0xab]
+ vfixupimmsd xmm13 {k6} {z}, xmm26, xmm5, 171
+
+// CHECK: vfixupimmsd xmm13, xmm26, xmm5, {sae}, 171
+// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0xab]
+ vfixupimmsd xmm13, xmm26, xmm5, {sae}, 171
+
+// CHECK: vfixupimmsd xmm13, xmm26, xmm5, 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xed,0x7b]
+ vfixupimmsd xmm13, xmm26, xmm5, 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, xmm5, {sae}, 123
+// CHECK: encoding: [0x62,0x73,0xad,0x10,0x55,0xed,0x7b]
+ vfixupimmsd xmm13, xmm26, xmm5, {sae}, 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x29,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rcx], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0xad,0x00,0x55,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x7f,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rdx + 1016], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0x00,0x04,0x00,0x00,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rdx + 1024], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0x6a,0x80,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rdx - 1024], 123
+
+// CHECK: vfixupimmsd xmm13, xmm26, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0x73,0xad,0x00,0x55,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
+ vfixupimmsd xmm13, xmm26, qword ptr [rdx - 1032], 123
+
+// CHECK: vpslld zmm29, zmm24, 171
+// CHECK: encoding: [0x62,0x91,0x15,0x40,0x72,0xf0,0xab]
+ vpslld zmm29, zmm24, 171
+
+// CHECK: vpslld zmm29 {k6}, zmm24, 171
+// CHECK: encoding: [0x62,0x91,0x15,0x46,0x72,0xf0,0xab]
+ vpslld zmm29 {k6}, zmm24, 171
+
+// CHECK: vpslld zmm29 {k6} {z}, zmm24, 171
+// CHECK: encoding: [0x62,0x91,0x15,0xc6,0x72,0xf0,0xab]
+ vpslld zmm29 {k6} {z}, zmm24, 171
+
+// CHECK: vpslld zmm29, zmm24, 123
+// CHECK: encoding: [0x62,0x91,0x15,0x40,0x72,0xf0,0x7b]
+ vpslld zmm29, zmm24, 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0x72,0x31,0x7b]
+ vpslld zmm29, zmmword ptr [rcx], 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x15,0x40,0x72,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpslld zmm29, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpslld zmm29, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0x72,0x31,0x7b]
+ vpslld zmm29, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0x72,0x72,0x7f,0x7b]
+ vpslld zmm29, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0x72,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vpslld zmm29, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0x72,0x72,0x80,0x7b]
+ vpslld zmm29, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpslld zmm29, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0x72,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpslld zmm29, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpslld zmm29, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0x72,0x72,0x7f,0x7b]
+ vpslld zmm29, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpslld zmm29, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0x72,0xb2,0x00,0x02,0x00,0x00,0x7b]
+ vpslld zmm29, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpslld zmm29, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0x72,0x72,0x80,0x7b]
+ vpslld zmm29, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpslld zmm29, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0x72,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
+ vpslld zmm29, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsllq zmm6, zmm11, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0x48,0x73,0xf3,0xab]
+ vpsllq zmm6, zmm11, 171
+
+// CHECK: vpsllq zmm6 {k2}, zmm11, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0x4a,0x73,0xf3,0xab]
+ vpsllq zmm6 {k2}, zmm11, 171
+
+// CHECK: vpsllq zmm6 {k2} {z}, zmm11, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0xca,0x73,0xf3,0xab]
+ vpsllq zmm6 {k2} {z}, zmm11, 171
+
+// CHECK: vpsllq zmm6, zmm11, 123
+// CHECK: encoding: [0x62,0xd1,0xcd,0x48,0x73,0xf3,0x7b]
+ vpsllq zmm6, zmm11, 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x31,0x7b]
+ vpsllq zmm6, zmmword ptr [rcx], 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x73,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpsllq zmm6, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpsllq zmm6, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x31,0x7b]
+ vpsllq zmm6, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x72,0x7f,0x7b]
+ vpsllq zmm6, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vpsllq zmm6, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x72,0x80,0x7b]
+ vpsllq zmm6, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsllq zmm6, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsllq zmm6, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsllq zmm6, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x72,0x7f,0x7b]
+ vpsllq zmm6, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsllq zmm6, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0xb2,0x00,0x04,0x00,0x00,0x7b]
+ vpsllq zmm6, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsllq zmm6, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x72,0x80,0x7b]
+ vpsllq zmm6, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsllq zmm6, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0xb2,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsllq zmm6, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpsrad zmm27, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xe5,0xab]
+ vpsrad zmm27, zmm5, 171
+
+// CHECK: vpsrad zmm27 {k5}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0x45,0x72,0xe5,0xab]
+ vpsrad zmm27 {k5}, zmm5, 171
+
+// CHECK: vpsrad zmm27 {k5} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0xc5,0x72,0xe5,0xab]
+ vpsrad zmm27 {k5} {z}, zmm5, 171
+
+// CHECK: vpsrad zmm27, zmm5, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xe5,0x7b]
+ vpsrad zmm27, zmm5, 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x21,0x7b]
+ vpsrad zmm27, zmmword ptr [rcx], 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x25,0x40,0x72,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpsrad zmm27, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpsrad zmm27, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x21,0x7b]
+ vpsrad zmm27, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x62,0x7f,0x7b]
+ vpsrad zmm27, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpsrad zmm27, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x62,0x80,0x7b]
+ vpsrad zmm27, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrad zmm27, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrad zmm27, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrad zmm27, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x62,0x7f,0x7b]
+ vpsrad zmm27, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpsrad zmm27, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vpsrad zmm27, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpsrad zmm27, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x62,0x80,0x7b]
+ vpsrad zmm27, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpsrad zmm27, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vpsrad zmm27, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsraq zmm29, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0xe5,0xab]
+ vpsraq zmm29, zmm5, 171
+
+// CHECK: vpsraq zmm29 {k4}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x95,0x44,0x72,0xe5,0xab]
+ vpsraq zmm29 {k4}, zmm5, 171
+
+// CHECK: vpsraq zmm29 {k4} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x95,0xc4,0x72,0xe5,0xab]
+ vpsraq zmm29 {k4} {z}, zmm5, 171
+
+// CHECK: vpsraq zmm29, zmm5, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0xe5,0x7b]
+ vpsraq zmm29, zmm5, 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0x21,0x7b]
+ vpsraq zmm29, zmmword ptr [rcx], 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x95,0x40,0x72,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vpsraq zmm29, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vpsraq zmm29, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0x21,0x7b]
+ vpsraq zmm29, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0x62,0x7f,0x7b]
+ vpsraq zmm29, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpsraq zmm29, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0x62,0x80,0x7b]
+ vpsraq zmm29, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsraq zmm29, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x40,0x72,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsraq zmm29, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsraq zmm29, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0x62,0x7f,0x7b]
+ vpsraq zmm29, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsraq zmm29, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vpsraq zmm29, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsraq zmm29, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0x62,0x80,0x7b]
+ vpsraq zmm29, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsraq zmm29, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x95,0x50,0x72,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsraq zmm29, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vprolvd zmm6, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0x40,0x15,0xf0]
+ vprolvd zmm6, zmm29, zmm16
+
+// CHECK: vprolvd zmm6 {k2}, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0x42,0x15,0xf0]
+ vprolvd zmm6 {k2}, zmm29, zmm16
+
+// CHECK: vprolvd zmm6 {k2} {z}, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb2,0x15,0xc2,0x15,0xf0]
+ vprolvd zmm6 {k2} {z}, zmm29, zmm16
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x15,0x40,0x15,0x31]
+ vprolvd zmm6, zmm29, zmmword ptr [rcx]
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb2,0x15,0x40,0x15,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vprolvd zmm6, zmm29, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vprolvd zmm6, zmm29, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x50,0x15,0x31]
+ vprolvd zmm6, zmm29, dword ptr [rcx]{1to16}
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x15,0x40,0x15,0x72,0x7f]
+ vprolvd zmm6, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x40,0x15,0xb2,0x00,0x20,0x00,0x00]
+ vprolvd zmm6, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x15,0x40,0x15,0x72,0x80]
+ vprolvd zmm6, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vprolvd zmm6, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x15,0x40,0x15,0xb2,0xc0,0xdf,0xff,0xff]
+ vprolvd zmm6, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vprolvd zmm6, zmm29, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x50,0x15,0x72,0x7f]
+ vprolvd zmm6, zmm29, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vprolvd zmm6, zmm29, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x50,0x15,0xb2,0x00,0x02,0x00,0x00]
+ vprolvd zmm6, zmm29, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vprolvd zmm6, zmm29, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x50,0x15,0x72,0x80]
+ vprolvd zmm6, zmm29, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vprolvd zmm6, zmm29, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x15,0x50,0x15,0xb2,0xfc,0xfd,0xff,0xff]
+ vprolvd zmm6, zmm29, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vprold zmm10, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0xcd,0xab]
+ vprold zmm10, zmm5, 171
+
+// CHECK: vprold zmm10 {k7}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x2d,0x4f,0x72,0xcd,0xab]
+ vprold zmm10 {k7}, zmm5, 171
+
+// CHECK: vprold zmm10 {k7} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x2d,0xcf,0x72,0xcd,0xab]
+ vprold zmm10 {k7} {z}, zmm5, 171
+
+// CHECK: vprold zmm10, zmm5, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0xcd,0x7b]
+ vprold zmm10, zmm5, 123
+
+// CHECK: vprold zmm10, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0x09,0x7b]
+ vprold zmm10, zmmword ptr [rcx], 123
+
+// CHECK: vprold zmm10, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x2d,0x48,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vprold zmm10, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vprold zmm10, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x58,0x72,0x09,0x7b]
+ vprold zmm10, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vprold zmm10, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0x4a,0x7f,0x7b]
+ vprold zmm10, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprold zmm10, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vprold zmm10, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprold zmm10, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0x4a,0x80,0x7b]
+ vprold zmm10, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprold zmm10, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x48,0x72,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vprold zmm10, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprold zmm10, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x58,0x72,0x4a,0x7f,0x7b]
+ vprold zmm10, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vprold zmm10, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x58,0x72,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vprold zmm10, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vprold zmm10, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x58,0x72,0x4a,0x80,0x7b]
+ vprold zmm10, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vprold zmm10, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x2d,0x58,0x72,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vprold zmm10, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vprolvq zmm27, zmm4, zmm6
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0xde]
+ vprolvq zmm27, zmm4, zmm6
+
+// CHECK: vprolvq zmm27 {k5}, zmm4, zmm6
+// CHECK: encoding: [0x62,0x62,0xdd,0x4d,0x15,0xde]
+ vprolvq zmm27 {k5}, zmm4, zmm6
+
+// CHECK: vprolvq zmm27 {k5} {z}, zmm4, zmm6
+// CHECK: encoding: [0x62,0x62,0xdd,0xcd,0x15,0xde]
+ vprolvq zmm27 {k5} {z}, zmm4, zmm6
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0x19]
+ vprolvq zmm27, zmm4, zmmword ptr [rcx]
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0xdd,0x48,0x15,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vprolvq zmm27, zmm4, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vprolvq zmm27, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0x15,0x19]
+ vprolvq zmm27, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0x5a,0x7f]
+ vprolvq zmm27, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0x9a,0x00,0x20,0x00,0x00]
+ vprolvq zmm27, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0x5a,0x80]
+ vprolvq zmm27, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vprolvq zmm27, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xdd,0x48,0x15,0x9a,0xc0,0xdf,0xff,0xff]
+ vprolvq zmm27, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vprolvq zmm27, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0x15,0x5a,0x7f]
+ vprolvq zmm27, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vprolvq zmm27, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0x15,0x9a,0x00,0x04,0x00,0x00]
+ vprolvq zmm27, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vprolvq zmm27, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0x15,0x5a,0x80]
+ vprolvq zmm27, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vprolvq zmm27, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x58,0x15,0x9a,0xf8,0xfb,0xff,0xff]
+ vprolvq zmm27, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vprolq zmm19, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0x40,0x72,0xca,0xab]
+ vprolq zmm19, zmm18, 171
+
+// CHECK: vprolq zmm19 {k3}, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0x43,0x72,0xca,0xab]
+ vprolq zmm19 {k3}, zmm18, 171
+
+// CHECK: vprolq zmm19 {k3} {z}, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0xc3,0x72,0xca,0xab]
+ vprolq zmm19 {k3} {z}, zmm18, 171
+
+// CHECK: vprolq zmm19, zmm18, 123
+// CHECK: encoding: [0x62,0xb1,0xe5,0x40,0x72,0xca,0x7b]
+ vprolq zmm19, zmm18, 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x40,0x72,0x09,0x7b]
+ vprolq zmm19, zmmword ptr [rcx], 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0xe5,0x40,0x72,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vprolq zmm19, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vprolq zmm19, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x50,0x72,0x09,0x7b]
+ vprolq zmm19, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x40,0x72,0x4a,0x7f,0x7b]
+ vprolq zmm19, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x40,0x72,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vprolq zmm19, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x40,0x72,0x4a,0x80,0x7b]
+ vprolq zmm19, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprolq zmm19, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x40,0x72,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vprolq zmm19, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprolq zmm19, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x50,0x72,0x4a,0x7f,0x7b]
+ vprolq zmm19, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vprolq zmm19, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x50,0x72,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vprolq zmm19, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vprolq zmm19, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x50,0x72,0x4a,0x80,0x7b]
+ vprolq zmm19, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vprolq zmm19, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x50,0x72,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vprolq zmm19, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vprorvd zmm11, zmm20, zmm28
+// CHECK: encoding: [0x62,0x12,0x5d,0x40,0x14,0xdc]
+ vprorvd zmm11, zmm20, zmm28
+
+// CHECK: vprorvd zmm11 {k2}, zmm20, zmm28
+// CHECK: encoding: [0x62,0x12,0x5d,0x42,0x14,0xdc]
+ vprorvd zmm11 {k2}, zmm20, zmm28
+
+// CHECK: vprorvd zmm11 {k2} {z}, zmm20, zmm28
+// CHECK: encoding: [0x62,0x12,0x5d,0xc2,0x14,0xdc]
+ vprorvd zmm11 {k2} {z}, zmm20, zmm28
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x14,0x19]
+ vprorvd zmm11, zmm20, zmmword ptr [rcx]
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x5d,0x40,0x14,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vprorvd zmm11, zmm20, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vprorvd zmm11, zmm20, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x14,0x19]
+ vprorvd zmm11, zmm20, dword ptr [rcx]{1to16}
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x14,0x5a,0x7f]
+ vprorvd zmm11, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x14,0x9a,0x00,0x20,0x00,0x00]
+ vprorvd zmm11, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x14,0x5a,0x80]
+ vprorvd zmm11, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vprorvd zmm11, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x5d,0x40,0x14,0x9a,0xc0,0xdf,0xff,0xff]
+ vprorvd zmm11, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vprorvd zmm11, zmm20, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x14,0x5a,0x7f]
+ vprorvd zmm11, zmm20, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vprorvd zmm11, zmm20, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x14,0x9a,0x00,0x02,0x00,0x00]
+ vprorvd zmm11, zmm20, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vprorvd zmm11, zmm20, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x14,0x5a,0x80]
+ vprorvd zmm11, zmm20, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vprorvd zmm11, zmm20, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x50,0x14,0x9a,0xfc,0xfd,0xff,0xff]
+ vprorvd zmm11, zmm20, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vprord zmm9, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0x35,0x48,0x72,0xc2,0xab]
+ vprord zmm9, zmm10, 171
+
+// CHECK: vprord zmm9 {k7}, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0x35,0x4f,0x72,0xc2,0xab]
+ vprord zmm9 {k7}, zmm10, 171
+
+// CHECK: vprord zmm9 {k7} {z}, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0x35,0xcf,0x72,0xc2,0xab]
+ vprord zmm9 {k7} {z}, zmm10, 171
+
+// CHECK: vprord zmm9, zmm10, 123
+// CHECK: encoding: [0x62,0xd1,0x35,0x48,0x72,0xc2,0x7b]
+ vprord zmm9, zmm10, 123
+
+// CHECK: vprord zmm9, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x48,0x72,0x01,0x7b]
+ vprord zmm9, zmmword ptr [rcx], 123
+
+// CHECK: vprord zmm9, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0x35,0x48,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vprord zmm9, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vprord zmm9, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x58,0x72,0x01,0x7b]
+ vprord zmm9, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vprord zmm9, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x48,0x72,0x42,0x7f,0x7b]
+ vprord zmm9, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprord zmm9, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x48,0x72,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vprord zmm9, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprord zmm9, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x48,0x72,0x42,0x80,0x7b]
+ vprord zmm9, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprord zmm9, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x48,0x72,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vprord zmm9, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprord zmm9, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x58,0x72,0x42,0x7f,0x7b]
+ vprord zmm9, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vprord zmm9, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x58,0x72,0x82,0x00,0x02,0x00,0x00,0x7b]
+ vprord zmm9, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vprord zmm9, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x58,0x72,0x42,0x80,0x7b]
+ vprord zmm9, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vprord zmm9, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x35,0x58,0x72,0x82,0xfc,0xfd,0xff,0xff,0x7b]
+ vprord zmm9, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vprorvq zmm14, zmm24, zmm1
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0xf1]
+ vprorvq zmm14, zmm24, zmm1
+
+// CHECK: vprorvq zmm14 {k7}, zmm24, zmm1
+// CHECK: encoding: [0x62,0x72,0xbd,0x47,0x14,0xf1]
+ vprorvq zmm14 {k7}, zmm24, zmm1
+
+// CHECK: vprorvq zmm14 {k7} {z}, zmm24, zmm1
+// CHECK: encoding: [0x62,0x72,0xbd,0xc7,0x14,0xf1]
+ vprorvq zmm14 {k7} {z}, zmm24, zmm1
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0x31]
+ vprorvq zmm14, zmm24, zmmword ptr [rcx]
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0xbd,0x40,0x14,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vprorvq zmm14, zmm24, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vprorvq zmm14, zmm24, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xbd,0x50,0x14,0x31]
+ vprorvq zmm14, zmm24, qword ptr [rcx]{1to8}
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0x72,0x7f]
+ vprorvq zmm14, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0xb2,0x00,0x20,0x00,0x00]
+ vprorvq zmm14, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0x72,0x80]
+ vprorvq zmm14, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vprorvq zmm14, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xbd,0x40,0x14,0xb2,0xc0,0xdf,0xff,0xff]
+ vprorvq zmm14, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vprorvq zmm14, zmm24, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xbd,0x50,0x14,0x72,0x7f]
+ vprorvq zmm14, zmm24, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vprorvq zmm14, zmm24, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xbd,0x50,0x14,0xb2,0x00,0x04,0x00,0x00]
+ vprorvq zmm14, zmm24, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vprorvq zmm14, zmm24, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xbd,0x50,0x14,0x72,0x80]
+ vprorvq zmm14, zmm24, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vprorvq zmm14, zmm24, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xbd,0x50,0x14,0xb2,0xf8,0xfb,0xff,0xff]
+ vprorvq zmm14, zmm24, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vprorq zmm21, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xd5,0x40,0x72,0xc1,0xab]
+ vprorq zmm21, zmm25, 171
+
+// CHECK: vprorq zmm21 {k6}, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xd5,0x46,0x72,0xc1,0xab]
+ vprorq zmm21 {k6}, zmm25, 171
+
+// CHECK: vprorq zmm21 {k6} {z}, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xd5,0xc6,0x72,0xc1,0xab]
+ vprorq zmm21 {k6} {z}, zmm25, 171
+
+// CHECK: vprorq zmm21, zmm25, 123
+// CHECK: encoding: [0x62,0x91,0xd5,0x40,0x72,0xc1,0x7b]
+ vprorq zmm21, zmm25, 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x40,0x72,0x01,0x7b]
+ vprorq zmm21, zmmword ptr [rcx], 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xb1,0xd5,0x40,0x72,0x84,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vprorq zmm21, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vprorq zmm21, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x50,0x72,0x01,0x7b]
+ vprorq zmm21, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x40,0x72,0x42,0x7f,0x7b]
+ vprorq zmm21, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x40,0x72,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vprorq zmm21, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x40,0x72,0x42,0x80,0x7b]
+ vprorq zmm21, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprorq zmm21, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x40,0x72,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vprorq zmm21, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprorq zmm21, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x50,0x72,0x42,0x7f,0x7b]
+ vprorq zmm21, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vprorq zmm21, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x50,0x72,0x82,0x00,0x04,0x00,0x00,0x7b]
+ vprorq zmm21, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vprorq zmm21, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x50,0x72,0x42,0x80,0x7b]
+ vprorq zmm21, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vprorq zmm21, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xd5,0x50,0x72,0x82,0xf8,0xfb,0xff,0xff,0x7b]
+ vprorq zmm21, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vrndscalepd zmm22, zmm7, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0xf7,0xab]
+ vrndscalepd zmm22, zmm7, 171
+
+// CHECK: vrndscalepd zmm22 {k1}, zmm7, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x49,0x09,0xf7,0xab]
+ vrndscalepd zmm22 {k1}, zmm7, 171
+
+// CHECK: vrndscalepd zmm22 {k1} {z}, zmm7, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0xc9,0x09,0xf7,0xab]
+ vrndscalepd zmm22 {k1} {z}, zmm7, 171
+
+// CHECK: vrndscalepd zmm22, zmm7, {sae}, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x18,0x09,0xf7,0xab]
+ vrndscalepd zmm22, zmm7, {sae}, 171
+
+// CHECK: vrndscalepd zmm22, zmm7, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0xf7,0x7b]
+ vrndscalepd zmm22, zmm7, 123
+
+// CHECK: vrndscalepd zmm22, zmm7, {sae}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x18,0x09,0xf7,0x7b]
+ vrndscalepd zmm22, zmm7, {sae}, 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0x31,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rcx], 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0xa3,0xfd,0x48,0x09,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vrndscalepd zmm22, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x09,0x31,0x7b]
+ vrndscalepd zmm22, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0x72,0x7f,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0x72,0x80,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vrndscalepd zmm22, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x09,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vrndscalepd zmm22, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vrndscalepd zmm22, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x09,0x72,0x7f,0x7b]
+ vrndscalepd zmm22, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vrndscalepd zmm22, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x09,0xb2,0x00,0x04,0x00,0x00,0x7b]
+ vrndscalepd zmm22, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vrndscalepd zmm22, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x09,0x72,0x80,0x7b]
+ vrndscalepd zmm22, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vrndscalepd zmm22, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x58,0x09,0xb2,0xf8,0xfb,0xff,0xff,0x7b]
+ vrndscalepd zmm22, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vrndscaleps zmm13, zmm7, 171
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0xef,0xab]
+ vrndscaleps zmm13, zmm7, 171
+
+// CHECK: vrndscaleps zmm13 {k1}, zmm7, 171
+// CHECK: encoding: [0x62,0x73,0x7d,0x49,0x08,0xef,0xab]
+ vrndscaleps zmm13 {k1}, zmm7, 171
+
+// CHECK: vrndscaleps zmm13 {k1} {z}, zmm7, 171
+// CHECK: encoding: [0x62,0x73,0x7d,0xc9,0x08,0xef,0xab]
+ vrndscaleps zmm13 {k1} {z}, zmm7, 171
+
+// CHECK: vrndscaleps zmm13, zmm7, {sae}, 171
+// CHECK: encoding: [0x62,0x73,0x7d,0x18,0x08,0xef,0xab]
+ vrndscaleps zmm13, zmm7, {sae}, 171
+
+// CHECK: vrndscaleps zmm13, zmm7, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0xef,0x7b]
+ vrndscaleps zmm13, zmm7, 123
+
+// CHECK: vrndscaleps zmm13, zmm7, {sae}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x18,0x08,0xef,0x7b]
+ vrndscaleps zmm13, zmm7, {sae}, 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0x29,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rcx], 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x7d,0x48,0x08,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vrndscaleps zmm13, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x58,0x08,0x29,0x7b]
+ vrndscaleps zmm13, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0x6a,0x7f,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0x6a,0x80,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vrndscaleps zmm13, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x48,0x08,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vrndscaleps zmm13, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vrndscaleps zmm13, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x58,0x08,0x6a,0x7f,0x7b]
+ vrndscaleps zmm13, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vrndscaleps zmm13, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x58,0x08,0xaa,0x00,0x02,0x00,0x00,0x7b]
+ vrndscaleps zmm13, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vrndscaleps zmm13, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x58,0x08,0x6a,0x80,0x7b]
+ vrndscaleps zmm13, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vrndscaleps zmm13, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x58,0x08,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
+ vrndscaleps zmm13, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vrndscalesd xmm25, xmm12, xmm15, 171
+// CHECK: encoding: [0x62,0x43,0x9d,0x08,0x0b,0xcf,0xab]
+ vrndscalesd xmm25, xmm12, xmm15, 171
+
+// CHECK: vrndscalesd xmm25 {k6}, xmm12, xmm15, 171
+// CHECK: encoding: [0x62,0x43,0x9d,0x0e,0x0b,0xcf,0xab]
+ vrndscalesd xmm25 {k6}, xmm12, xmm15, 171
+
+// CHECK: vrndscalesd xmm25 {k6} {z}, xmm12, xmm15, 171
+// CHECK: encoding: [0x62,0x43,0x9d,0x8e,0x0b,0xcf,0xab]
+ vrndscalesd xmm25 {k6} {z}, xmm12, xmm15, 171
+
+// CHECK: vrndscalesd xmm25, xmm12, xmm15, {sae}, 171
+// CHECK: encoding: [0x62,0x43,0x9d,0x18,0x0b,0xcf,0xab]
+ vrndscalesd xmm25, xmm12, xmm15, {sae}, 171
+
+// CHECK: vrndscalesd xmm25, xmm12, xmm15, 123
+// CHECK: encoding: [0x62,0x43,0x9d,0x08,0x0b,0xcf,0x7b]
+ vrndscalesd xmm25, xmm12, xmm15, 123
+
+// CHECK: vrndscalesd xmm25, xmm12, xmm15, {sae}, 123
+// CHECK: encoding: [0x62,0x43,0x9d,0x18,0x0b,0xcf,0x7b]
+ vrndscalesd xmm25, xmm12, xmm15, {sae}, 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x0b,0x09,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rcx], 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x23,0x9d,0x08,0x0b,0x8c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x0b,0x4a,0x7f,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rdx + 1016], 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x0b,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rdx + 1024], 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x0b,0x4a,0x80,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rdx - 1024], 123
+
+// CHECK: vrndscalesd xmm25, xmm12, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x0b,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vrndscalesd xmm25, xmm12, qword ptr [rdx - 1032], 123
+
+// CHECK: vrndscaless xmm11, xmm11, xmm17, 171
+// CHECK: encoding: [0x62,0x33,0x25,0x08,0x0a,0xd9,0xab]
+ vrndscaless xmm11, xmm11, xmm17, 171
+
+// CHECK: vrndscaless xmm11 {k3}, xmm11, xmm17, 171
+// CHECK: encoding: [0x62,0x33,0x25,0x0b,0x0a,0xd9,0xab]
+ vrndscaless xmm11 {k3}, xmm11, xmm17, 171
+
+// CHECK: vrndscaless xmm11 {k3} {z}, xmm11, xmm17, 171
+// CHECK: encoding: [0x62,0x33,0x25,0x8b,0x0a,0xd9,0xab]
+ vrndscaless xmm11 {k3} {z}, xmm11, xmm17, 171
+
+// CHECK: vrndscaless xmm11, xmm11, xmm17, {sae}, 171
+// CHECK: encoding: [0x62,0x33,0x25,0x18,0x0a,0xd9,0xab]
+ vrndscaless xmm11, xmm11, xmm17, {sae}, 171
+
+// CHECK: vrndscaless xmm11, xmm11, xmm17, 123
+// CHECK: encoding: [0x62,0x33,0x25,0x08,0x0a,0xd9,0x7b]
+ vrndscaless xmm11, xmm11, xmm17, 123
+
+// CHECK: vrndscaless xmm11, xmm11, xmm17, {sae}, 123
+// CHECK: encoding: [0x62,0x33,0x25,0x18,0x0a,0xd9,0x7b]
+ vrndscaless xmm11, xmm11, xmm17, {sae}, 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x25,0x08,0x0a,0x19,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rcx], 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rax + 8*r14 + 291], 123
+// CHECK: encoding: [0x62,0x33,0x25,0x08,0x0a,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rax + 8*r14 + 291], 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x73,0x25,0x08,0x0a,0x5a,0x7f,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rdx + 508], 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x73,0x25,0x08,0x0a,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rdx + 512], 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x73,0x25,0x08,0x0a,0x5a,0x80,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rdx - 512], 123
+
+// CHECK: vrndscaless xmm11, xmm11, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x73,0x25,0x08,0x0a,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vrndscaless xmm11, xmm11, dword ptr [rdx - 516], 123
+
+// CHECK: vpcompressq zmmword ptr [rcx], zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8b,0x19]
+ vpcompressq zmmword ptr [rcx], zmm11
+
+// CHECK: vpcompressq zmmword ptr [rcx] {k7}, zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x4f,0x8b,0x19]
+ vpcompressq zmmword ptr [rcx] {k7}, zmm11
+
+// CHECK: vpcompressq zmmword ptr [rax + 8*r14 + 291], zmm11
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x8b,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpcompressq zmmword ptr [rax + 8*r14 + 291], zmm11
+
+// CHECK: vpcompressq zmmword ptr [rdx + 1016], zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8b,0x5a,0x7f]
+ vpcompressq zmmword ptr [rdx + 1016], zmm11
+
+// CHECK: vpcompressq zmmword ptr [rdx + 1024], zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8b,0x9a,0x00,0x04,0x00,0x00]
+ vpcompressq zmmword ptr [rdx + 1024], zmm11
+
+// CHECK: vpcompressq zmmword ptr [rdx - 1024], zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8b,0x5a,0x80]
+ vpcompressq zmmword ptr [rdx - 1024], zmm11
+
+// CHECK: vpcompressq zmmword ptr [rdx - 1032], zmm11
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x8b,0x9a,0xf8,0xfb,0xff,0xff]
+ vpcompressq zmmword ptr [rdx - 1032], zmm11
+
+// CHECK: vpcompressq zmm17, zmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x8b,0xd9]
+ vpcompressq zmm17, zmm19
+
+// CHECK: vpcompressq zmm17 {k2}, zmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x4a,0x8b,0xd9]
+ vpcompressq zmm17 {k2}, zmm19
+
+// CHECK: vpcompressq zmm17 {k2} {z}, zmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0xca,0x8b,0xd9]
+ vpcompressq zmm17 {k2} {z}, zmm19
+
+// CHECK: kandw k2, k5, k6
+// CHECK: encoding: [0xc5,0xd4,0x41,0xd6]
+ kandw k2, k5, k6
+
+// CHECK: kandnw k4, k6, k7
+// CHECK: encoding: [0xc5,0xcc,0x42,0xe7]
+ kandnw k4, k6, k7
+
+// CHECK: korw k4, k6, k7
+// CHECK: encoding: [0xc5,0xcc,0x45,0xe7]
+ korw k4, k6, k7
+
+// CHECK: kxnorw k3, k5, k5
+// CHECK: encoding: [0xc5,0xd4,0x46,0xdd]
+ kxnorw k3, k5, k5
+
+// CHECK: kxorw k2, k6, k7
+// CHECK: encoding: [0xc5,0xcc,0x47,0xd7]
+ kxorw k2, k6, k7
+
+// CHECK: knotw k3, k6
+// CHECK: encoding: [0xc5,0xf8,0x44,0xde]
+ knotw k3, k6
+
+// CHECK: kortestw k2, k6
+// CHECK: encoding: [0xc5,0xf8,0x98,0xd6]
+ kortestw k2, k6
+
+// CHECK: kshiftrw k4, k4, 171
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x30,0xe4,0xab]
+ kshiftrw k4, k4, 171
+
+// CHECK: kshiftrw k4, k4, 123
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x30,0xe4,0x7b]
+ kshiftrw k4, k4, 123
+
+// CHECK: kshiftlw k2, k5, 171
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x32,0xd5,0xab]
+ kshiftlw k2, k5, 171
+
+// CHECK: kshiftlw k2, k5, 123
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x32,0xd5,0x7b]
+ kshiftlw k2, k5, 123
+
+// CHECK: kmovw k4, k5
+// CHECK: encoding: [0xc5,0xf8,0x90,0xe5]
+ kmovw k4, k5
+
+// CHECK: kmovw k4, word ptr [rcx]
+// CHECK: encoding: [0xc5,0xf8,0x90,0x21]
+ kmovw k4, word ptr [rcx]
+
+// CHECK: kmovw k4, word ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0xc4,0xa1,0x78,0x90,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ kmovw k4, word ptr [rax + 8*r14 + 291]
+
+// CHECK: kmovw word ptr [rcx], k4
+// CHECK: encoding: [0xc5,0xf8,0x91,0x21]
+ kmovw word ptr [rcx], k4
+
+// CHECK: kmovw word ptr [rax + 8*r14 + 291], k4
+// CHECK: encoding: [0xc4,0xa1,0x78,0x91,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ kmovw word ptr [rax + 8*r14 + 291], k4
+
+// CHECK: kmovw k3, eax
+// CHECK: encoding: [0xc5,0xf8,0x92,0xd8]
+ kmovw k3, eax
+
+// CHECK: kmovw k3, ebp
+// CHECK: encoding: [0xc5,0xf8,0x92,0xdd]
+ kmovw k3, ebp
+
+// CHECK: kmovw k3, r13d
+// CHECK: encoding: [0xc4,0xc1,0x78,0x92,0xdd]
+ kmovw k3, r13d
+
+// CHECK: kmovw eax, k2
+// CHECK: encoding: [0xc5,0xf8,0x93,0xc2]
+ kmovw eax, k2
+
+// CHECK: kmovw ebp, k2
+// CHECK: encoding: [0xc5,0xf8,0x93,0xea]
+ kmovw ebp, k2
+
+// CHECK: kmovw r13d, k2
+// CHECK: encoding: [0xc5,0x78,0x93,0xea]
+ kmovw r13d, k2
+
+// CHECK: kunpckbw k5, k5, k6
+// CHECK: encoding: [0xc5,0xd5,0x4b,0xee]
+ kunpckbw k5, k5, k6
+
+// CHECK: vcvtps2ph ymmword ptr [rcx], zmm19, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x19,0xab]
+ vcvtps2ph ymmword ptr [rcx], zmm19, 171
+
+// CHECK: vcvtps2ph ymmword ptr [rcx] {k6}, zmm19, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x4e,0x1d,0x19,0xab]
+ vcvtps2ph ymmword ptr [rcx] {k6}, zmm19, 171
+
+// CHECK: vcvtps2ph ymmword ptr [rcx], zmm19, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x19,0x7b]
+ vcvtps2ph ymmword ptr [rcx], zmm19, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rax + 8*r14 + 291], zmm19, 123
+// CHECK: encoding: [0x62,0xa3,0x7d,0x48,0x1d,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vcvtps2ph ymmword ptr [rax + 8*r14 + 291], zmm19, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx + 4064], zmm19, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x5a,0x7f,0x7b]
+ vcvtps2ph ymmword ptr [rdx + 4064], zmm19, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx + 4096], zmm19, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x9a,0x00,0x10,0x00,0x00,0x7b]
+ vcvtps2ph ymmword ptr [rdx + 4096], zmm19, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx - 4096], zmm19, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x5a,0x80,0x7b]
+ vcvtps2ph ymmword ptr [rdx - 4096], zmm19, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx - 4128], zmm19, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x1d,0x9a,0xe0,0xef,0xff,0xff,0x7b]
+ vcvtps2ph ymmword ptr [rdx - 4128], zmm19, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rcx], zmm20, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x21,0xab]
+ vextractf32x4 xmmword ptr [rcx], zmm20, 171
+
+// CHECK: vextractf32x4 xmmword ptr [rcx] {k7}, zmm20, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x4f,0x19,0x21,0xab]
+ vextractf32x4 xmmword ptr [rcx] {k7}, zmm20, 171
+
+// CHECK: vextractf32x4 xmmword ptr [rcx], zmm20, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x21,0x7b]
+ vextractf32x4 xmmword ptr [rcx], zmm20, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rax + 8*r14 + 291], zmm20, 123
+// CHECK: encoding: [0x62,0xa3,0x7d,0x48,0x19,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vextractf32x4 xmmword ptr [rax + 8*r14 + 291], zmm20, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx + 2032], zmm20, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x62,0x7f,0x7b]
+ vextractf32x4 xmmword ptr [rdx + 2032], zmm20, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx + 2048], zmm20, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0xa2,0x00,0x08,0x00,0x00,0x7b]
+ vextractf32x4 xmmword ptr [rdx + 2048], zmm20, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx - 2048], zmm20, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x62,0x80,0x7b]
+ vextractf32x4 xmmword ptr [rdx - 2048], zmm20, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx - 2064], zmm20, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0xa2,0xf0,0xf7,0xff,0xff,0x7b]
+ vextractf32x4 xmmword ptr [rdx - 2064], zmm20, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rcx], zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0x29,0xab]
+ vextractf64x4 ymmword ptr [rcx], zmm5, 171
+
+// CHECK: vextractf64x4 ymmword ptr [rcx] {k4}, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0xfd,0x4c,0x1b,0x29,0xab]
+ vextractf64x4 ymmword ptr [rcx] {k4}, zmm5, 171
+
+// CHECK: vextractf64x4 ymmword ptr [rcx], zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0x29,0x7b]
+ vextractf64x4 ymmword ptr [rcx], zmm5, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rax + 8*r14 + 291], zmm5, 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x1b,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vextractf64x4 ymmword ptr [rax + 8*r14 + 291], zmm5, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx + 4064], zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0x6a,0x7f,0x7b]
+ vextractf64x4 ymmword ptr [rdx + 4064], zmm5, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx + 4096], zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0xaa,0x00,0x10,0x00,0x00,0x7b]
+ vextractf64x4 ymmword ptr [rdx + 4096], zmm5, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx - 4096], zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0x6a,0x80,0x7b]
+ vextractf64x4 ymmword ptr [rdx - 4096], zmm5, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx - 4128], zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x1b,0xaa,0xe0,0xef,0xff,0xff,0x7b]
+ vextractf64x4 ymmword ptr [rdx - 4128], zmm5, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rcx], zmm29, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0x29,0xab]
+ vextracti32x4 xmmword ptr [rcx], zmm29, 171
+
+// CHECK: vextracti32x4 xmmword ptr [rcx] {k2}, zmm29, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x4a,0x39,0x29,0xab]
+ vextracti32x4 xmmword ptr [rcx] {k2}, zmm29, 171
+
+// CHECK: vextracti32x4 xmmword ptr [rcx], zmm29, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0x29,0x7b]
+ vextracti32x4 xmmword ptr [rcx], zmm29, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rax + 8*r14 + 291], zmm29, 123
+// CHECK: encoding: [0x62,0x23,0x7d,0x48,0x39,0xac,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vextracti32x4 xmmword ptr [rax + 8*r14 + 291], zmm29, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx + 2032], zmm29, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0x6a,0x7f,0x7b]
+ vextracti32x4 xmmword ptr [rdx + 2032], zmm29, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx + 2048], zmm29, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0xaa,0x00,0x08,0x00,0x00,0x7b]
+ vextracti32x4 xmmword ptr [rdx + 2048], zmm29, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx - 2048], zmm29, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0x6a,0x80,0x7b]
+ vextracti32x4 xmmword ptr [rdx - 2048], zmm29, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx - 2064], zmm29, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x39,0xaa,0xf0,0xf7,0xff,0xff,0x7b]
+ vextracti32x4 xmmword ptr [rdx - 2064], zmm29, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rcx], zmm30, 171
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0x31,0xab]
+ vextracti64x4 ymmword ptr [rcx], zmm30, 171
+
+// CHECK: vextracti64x4 ymmword ptr [rcx] {k4}, zmm30, 171
+// CHECK: encoding: [0x62,0x63,0xfd,0x4c,0x3b,0x31,0xab]
+ vextracti64x4 ymmword ptr [rcx] {k4}, zmm30, 171
+
+// CHECK: vextracti64x4 ymmword ptr [rcx], zmm30, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0x31,0x7b]
+ vextracti64x4 ymmword ptr [rcx], zmm30, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rax + 8*r14 + 291], zmm30, 123
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x3b,0xb4,0xf0,0x23,0x01,0x00,0x00,0x7b]
+ vextracti64x4 ymmword ptr [rax + 8*r14 + 291], zmm30, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx + 4064], zmm30, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0x72,0x7f,0x7b]
+ vextracti64x4 ymmword ptr [rdx + 4064], zmm30, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx + 4096], zmm30, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0xb2,0x00,0x10,0x00,0x00,0x7b]
+ vextracti64x4 ymmword ptr [rdx + 4096], zmm30, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx - 4096], zmm30, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0x72,0x80,0x7b]
+ vextracti64x4 ymmword ptr [rdx - 4096], zmm30, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx - 4128], zmm30, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x3b,0xb2,0xe0,0xef,0xff,0xff,0x7b]
+ vextracti64x4 ymmword ptr [rdx - 4128], zmm30, 123
+
+// CHECK: vmovapd zmmword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x29,0x11]
+ vmovapd zmmword ptr [rcx], zmm18
+
+// CHECK: vmovapd zmmword ptr [rcx] {k6}, zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x4e,0x29,0x11]
+ vmovapd zmmword ptr [rcx] {k6}, zmm18
+
+// CHECK: vmovapd zmmword ptr [rax + 8*r14 + 291], zmm18
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x29,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovapd zmmword ptr [rax + 8*r14 + 291], zmm18
+
+// CHECK: vmovapd zmmword ptr [rdx + 8128], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x29,0x52,0x7f]
+ vmovapd zmmword ptr [rdx + 8128], zmm18
+
+// CHECK: vmovapd zmmword ptr [rdx + 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x29,0x92,0x00,0x20,0x00,0x00]
+ vmovapd zmmword ptr [rdx + 8192], zmm18
+
+// CHECK: vmovapd zmmword ptr [rdx - 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x29,0x52,0x80]
+ vmovapd zmmword ptr [rdx - 8192], zmm18
+
+// CHECK: vmovapd zmmword ptr [rdx - 8256], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x29,0x92,0xc0,0xdf,0xff,0xff]
+ vmovapd zmmword ptr [rdx - 8256], zmm18
+
+// CHECK: vmovaps zmmword ptr [rcx], zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x29,0x09]
+ vmovaps zmmword ptr [rcx], zmm9
+
+// CHECK: vmovaps zmmword ptr [rcx] {k3}, zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x4b,0x29,0x09]
+ vmovaps zmmword ptr [rcx] {k3}, zmm9
+
+// CHECK: vmovaps zmmword ptr [rax + 8*r14 + 291], zmm9
+// CHECK: encoding: [0x62,0x31,0x7c,0x48,0x29,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vmovaps zmmword ptr [rax + 8*r14 + 291], zmm9
+
+// CHECK: vmovaps zmmword ptr [rdx + 8128], zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x29,0x4a,0x7f]
+ vmovaps zmmword ptr [rdx + 8128], zmm9
+
+// CHECK: vmovaps zmmword ptr [rdx + 8192], zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x29,0x8a,0x00,0x20,0x00,0x00]
+ vmovaps zmmword ptr [rdx + 8192], zmm9
+
+// CHECK: vmovaps zmmword ptr [rdx - 8192], zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x29,0x4a,0x80]
+ vmovaps zmmword ptr [rdx - 8192], zmm9
+
+// CHECK: vmovaps zmmword ptr [rdx - 8256], zmm9
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x29,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovaps zmmword ptr [rdx - 8256], zmm9
+
+// CHECK: vmovdqa32 zmmword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x7f,0x11]
+ vmovdqa32 zmmword ptr [rcx], zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rcx] {k4}, zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x4c,0x7f,0x11]
+ vmovdqa32 zmmword ptr [rcx] {k4}, zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rax + 8*r14 + 291], zmm18
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x7f,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqa32 zmmword ptr [rax + 8*r14 + 291], zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rdx + 8128], zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x7f,0x52,0x7f]
+ vmovdqa32 zmmword ptr [rdx + 8128], zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rdx + 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x7f,0x92,0x00,0x20,0x00,0x00]
+ vmovdqa32 zmmword ptr [rdx + 8192], zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rdx - 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x7f,0x52,0x80]
+ vmovdqa32 zmmword ptr [rdx - 8192], zmm18
+
+// CHECK: vmovdqa32 zmmword ptr [rdx - 8256], zmm18
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x7f,0x92,0xc0,0xdf,0xff,0xff]
+ vmovdqa32 zmmword ptr [rdx - 8256], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rcx], zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x19]
+ vmovdqa64 zmmword ptr [rcx], zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rcx] {k5}, zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x4d,0x7f,0x19]
+ vmovdqa64 zmmword ptr [rcx] {k5}, zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rax + 8*r14 + 291], zmm19
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x7f,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqa64 zmmword ptr [rax + 8*r14 + 291], zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rdx + 8128], zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x5a,0x7f]
+ vmovdqa64 zmmword ptr [rdx + 8128], zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rdx + 8192], zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x9a,0x00,0x20,0x00,0x00]
+ vmovdqa64 zmmword ptr [rdx + 8192], zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rdx - 8192], zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x5a,0x80]
+ vmovdqa64 zmmword ptr [rdx - 8192], zmm19
+
+// CHECK: vmovdqa64 zmmword ptr [rdx - 8256], zmm19
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x9a,0xc0,0xdf,0xff,0xff]
+ vmovdqa64 zmmword ptr [rdx - 8256], zmm19
+
+// CHECK: vmovdqu32 zmmword ptr [rcx], zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7f,0x31]
+ vmovdqu32 zmmword ptr [rcx], zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rcx] {k1}, zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x49,0x7f,0x31]
+ vmovdqu32 zmmword ptr [rcx] {k1}, zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rax + 8*r14 + 291], zmm22
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x7f,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqu32 zmmword ptr [rax + 8*r14 + 291], zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rdx + 8128], zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7f,0x72,0x7f]
+ vmovdqu32 zmmword ptr [rdx + 8128], zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rdx + 8192], zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7f,0xb2,0x00,0x20,0x00,0x00]
+ vmovdqu32 zmmword ptr [rdx + 8192], zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rdx - 8192], zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7f,0x72,0x80]
+ vmovdqu32 zmmword ptr [rdx - 8192], zmm22
+
+// CHECK: vmovdqu32 zmmword ptr [rdx - 8256], zmm22
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovdqu32 zmmword ptr [rdx - 8256], zmm22
+
+// CHECK: vmovdqu64 zmmword ptr [rcx], zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x7f,0x01]
+ vmovdqu64 zmmword ptr [rcx], zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rcx] {k5}, zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x4d,0x7f,0x01]
+ vmovdqu64 zmmword ptr [rcx] {k5}, zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rax + 8*r14 + 291], zmm24
+// CHECK: encoding: [0x62,0x21,0xfe,0x48,0x7f,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmovdqu64 zmmword ptr [rax + 8*r14 + 291], zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rdx + 8128], zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x7f,0x42,0x7f]
+ vmovdqu64 zmmword ptr [rdx + 8128], zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rdx + 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x7f,0x82,0x00,0x20,0x00,0x00]
+ vmovdqu64 zmmword ptr [rdx + 8192], zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rdx - 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x7f,0x42,0x80]
+ vmovdqu64 zmmword ptr [rdx - 8192], zmm24
+
+// CHECK: vmovdqu64 zmmword ptr [rdx - 8256], zmm24
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x7f,0x82,0xc0,0xdf,0xff,0xff]
+ vmovdqu64 zmmword ptr [rdx - 8256], zmm24
+
+// CHECK: vmovupd zmmword ptr [rcx], zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x11]
+ vmovupd zmmword ptr [rcx], zmm10
+
+// CHECK: vmovupd zmmword ptr [rcx] {k7}, zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x4f,0x11,0x11]
+ vmovupd zmmword ptr [rcx] {k7}, zmm10
+
+// CHECK: vmovupd zmmword ptr [rax + 8*r14 + 291], zmm10
+// CHECK: encoding: [0x62,0x31,0xfd,0x48,0x11,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vmovupd zmmword ptr [rax + 8*r14 + 291], zmm10
+
+// CHECK: vmovupd zmmword ptr [rdx + 8128], zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x52,0x7f]
+ vmovupd zmmword ptr [rdx + 8128], zmm10
+
+// CHECK: vmovupd zmmword ptr [rdx + 8192], zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x92,0x00,0x20,0x00,0x00]
+ vmovupd zmmword ptr [rdx + 8192], zmm10
+
+// CHECK: vmovupd zmmword ptr [rdx - 8192], zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x52,0x80]
+ vmovupd zmmword ptr [rdx - 8192], zmm10
+
+// CHECK: vmovupd zmmword ptr [rdx - 8256], zmm10
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x92,0xc0,0xdf,0xff,0xff]
+ vmovupd zmmword ptr [rdx - 8256], zmm10
+
+// CHECK: vmovups zmmword ptr [rcx], zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x11,0x01]
+ vmovups zmmword ptr [rcx], zmm24
+
+// CHECK: vmovups zmmword ptr [rcx] {k7}, zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x4f,0x11,0x01]
+ vmovups zmmword ptr [rcx] {k7}, zmm24
+
+// CHECK: vmovups zmmword ptr [rax + 8*r14 + 291], zmm24
+// CHECK: encoding: [0x62,0x21,0x7c,0x48,0x11,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vmovups zmmword ptr [rax + 8*r14 + 291], zmm24
+
+// CHECK: vmovups zmmword ptr [rdx + 8128], zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x11,0x42,0x7f]
+ vmovups zmmword ptr [rdx + 8128], zmm24
+
+// CHECK: vmovups zmmword ptr [rdx + 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x11,0x82,0x00,0x20,0x00,0x00]
+ vmovups zmmword ptr [rdx + 8192], zmm24
+
+// CHECK: vmovups zmmword ptr [rdx - 8192], zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x11,0x42,0x80]
+ vmovups zmmword ptr [rdx - 8192], zmm24
+
+// CHECK: vmovups zmmword ptr [rdx - 8256], zmm24
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x11,0x82,0xc0,0xdf,0xff,0xff]
+ vmovups zmmword ptr [rdx - 8256], zmm24
+
+// CHECK: vpmovqb qword ptr [rcx], zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x19]
+ vpmovqb qword ptr [rcx], zmm3
+
+// CHECK: vpmovqb qword ptr [rcx] {k7}, zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x32,0x19]
+ vpmovqb qword ptr [rcx] {k7}, zmm3
+
+// CHECK: vpmovqb qword ptr [rax + 8*r14 + 291], zmm3
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x32,0x9c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovqb qword ptr [rax + 8*r14 + 291], zmm3
+
+// CHECK: vpmovqb qword ptr [rdx + 1016], zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x5a,0x7f]
+ vpmovqb qword ptr [rdx + 1016], zmm3
+
+// CHECK: vpmovqb qword ptr [rdx + 1024], zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x9a,0x00,0x04,0x00,0x00]
+ vpmovqb qword ptr [rdx + 1024], zmm3
+
+// CHECK: vpmovqb qword ptr [rdx - 1024], zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x5a,0x80]
+ vpmovqb qword ptr [rdx - 1024], zmm3
+
+// CHECK: vpmovqb qword ptr [rdx - 1032], zmm3
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x32,0x9a,0xf8,0xfb,0xff,0xff]
+ vpmovqb qword ptr [rdx - 1032], zmm3
+
+// CHECK: vpmovsqb qword ptr [rcx], zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x01]
+ vpmovsqb qword ptr [rcx], zmm16
+
+// CHECK: vpmovsqb qword ptr [rcx] {k2}, zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4a,0x22,0x01]
+ vpmovsqb qword ptr [rcx] {k2}, zmm16
+
+// CHECK: vpmovsqb qword ptr [rax + 8*r14 + 291], zmm16
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x22,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsqb qword ptr [rax + 8*r14 + 291], zmm16
+
+// CHECK: vpmovsqb qword ptr [rdx + 1016], zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x42,0x7f]
+ vpmovsqb qword ptr [rdx + 1016], zmm16
+
+// CHECK: vpmovsqb qword ptr [rdx + 1024], zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x82,0x00,0x04,0x00,0x00]
+ vpmovsqb qword ptr [rdx + 1024], zmm16
+
+// CHECK: vpmovsqb qword ptr [rdx - 1024], zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x42,0x80]
+ vpmovsqb qword ptr [rdx - 1024], zmm16
+
+// CHECK: vpmovsqb qword ptr [rdx - 1032], zmm16
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x82,0xf8,0xfb,0xff,0xff]
+ vpmovsqb qword ptr [rdx - 1032], zmm16
+
+// CHECK: vpmovusqb qword ptr [rcx], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x21]
+ vpmovusqb qword ptr [rcx], zmm28
+
+// CHECK: vpmovusqb qword ptr [rcx] {k1}, zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x49,0x12,0x21]
+ vpmovusqb qword ptr [rcx] {k1}, zmm28
+
+// CHECK: vpmovusqb qword ptr [rax + 8*r14 + 291], zmm28
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x12,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovusqb qword ptr [rax + 8*r14 + 291], zmm28
+
+// CHECK: vpmovusqb qword ptr [rdx + 1016], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x62,0x7f]
+ vpmovusqb qword ptr [rdx + 1016], zmm28
+
+// CHECK: vpmovusqb qword ptr [rdx + 1024], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0xa2,0x00,0x04,0x00,0x00]
+ vpmovusqb qword ptr [rdx + 1024], zmm28
+
+// CHECK: vpmovusqb qword ptr [rdx - 1024], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0x62,0x80]
+ vpmovusqb qword ptr [rdx - 1024], zmm28
+
+// CHECK: vpmovusqb qword ptr [rdx - 1032], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x12,0xa2,0xf8,0xfb,0xff,0xff]
+ vpmovusqb qword ptr [rdx - 1032], zmm28
+
+// CHECK: vpmovqw xmmword ptr [rcx], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x39]
+ vpmovqw xmmword ptr [rcx], zmm7
+
+// CHECK: vpmovqw xmmword ptr [rcx] {k6}, zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4e,0x34,0x39]
+ vpmovqw xmmword ptr [rcx] {k6}, zmm7
+
+// CHECK: vpmovqw xmmword ptr [rax + 8*r14 + 291], zmm7
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x34,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpmovqw xmmword ptr [rax + 8*r14 + 291], zmm7
+
+// CHECK: vpmovqw xmmword ptr [rdx + 2032], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x7a,0x7f]
+ vpmovqw xmmword ptr [rdx + 2032], zmm7
+
+// CHECK: vpmovqw xmmword ptr [rdx + 2048], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0xba,0x00,0x08,0x00,0x00]
+ vpmovqw xmmword ptr [rdx + 2048], zmm7
+
+// CHECK: vpmovqw xmmword ptr [rdx - 2048], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0x7a,0x80]
+ vpmovqw xmmword ptr [rdx - 2048], zmm7
+
+// CHECK: vpmovqw xmmword ptr [rdx - 2064], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x34,0xba,0xf0,0xf7,0xff,0xff]
+ vpmovqw xmmword ptr [rdx - 2064], zmm7
+
+// CHECK: vpmovsqw xmmword ptr [rcx], zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x09]
+ vpmovsqw xmmword ptr [rcx], zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rcx] {k5}, zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4d,0x24,0x09]
+ vpmovsqw xmmword ptr [rcx] {k5}, zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rax + 8*r14 + 291], zmm1
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x24,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsqw xmmword ptr [rax + 8*r14 + 291], zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rdx + 2032], zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x4a,0x7f]
+ vpmovsqw xmmword ptr [rdx + 2032], zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rdx + 2048], zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x8a,0x00,0x08,0x00,0x00]
+ vpmovsqw xmmword ptr [rdx + 2048], zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rdx - 2048], zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x4a,0x80]
+ vpmovsqw xmmword ptr [rdx - 2048], zmm1
+
+// CHECK: vpmovsqw xmmword ptr [rdx - 2064], zmm1
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x24,0x8a,0xf0,0xf7,0xff,0xff]
+ vpmovsqw xmmword ptr [rdx - 2064], zmm1
+
+// CHECK: vpmovusqw xmmword ptr [rcx], zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x09]
+ vpmovusqw xmmword ptr [rcx], zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rcx] {k3}, zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x4b,0x14,0x09]
+ vpmovusqw xmmword ptr [rcx] {k3}, zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rax + 8*r14 + 291], zmm25
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x14,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovusqw xmmword ptr [rax + 8*r14 + 291], zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rdx + 2032], zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x4a,0x7f]
+ vpmovusqw xmmword ptr [rdx + 2032], zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rdx + 2048], zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x8a,0x00,0x08,0x00,0x00]
+ vpmovusqw xmmword ptr [rdx + 2048], zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rdx - 2048], zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x4a,0x80]
+ vpmovusqw xmmword ptr [rdx - 2048], zmm25
+
+// CHECK: vpmovusqw xmmword ptr [rdx - 2064], zmm25
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x14,0x8a,0xf0,0xf7,0xff,0xff]
+ vpmovusqw xmmword ptr [rdx - 2064], zmm25
+
+// CHECK: vpmovqd ymmword ptr [rcx], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x21]
+ vpmovqd ymmword ptr [rcx], zmm28
+
+// CHECK: vpmovqd ymmword ptr [rcx] {k5}, zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x4d,0x35,0x21]
+ vpmovqd ymmword ptr [rcx] {k5}, zmm28
+
+// CHECK: vpmovqd ymmword ptr [rax + 8*r14 + 291], zmm28
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x35,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovqd ymmword ptr [rax + 8*r14 + 291], zmm28
+
+// CHECK: vpmovqd ymmword ptr [rdx + 4064], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x62,0x7f]
+ vpmovqd ymmword ptr [rdx + 4064], zmm28
+
+// CHECK: vpmovqd ymmword ptr [rdx + 4096], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xa2,0x00,0x10,0x00,0x00]
+ vpmovqd ymmword ptr [rdx + 4096], zmm28
+
+// CHECK: vpmovqd ymmword ptr [rdx - 4096], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0x62,0x80]
+ vpmovqd ymmword ptr [rdx - 4096], zmm28
+
+// CHECK: vpmovqd ymmword ptr [rdx - 4128], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x35,0xa2,0xe0,0xef,0xff,0xff]
+ vpmovqd ymmword ptr [rdx - 4128], zmm28
+
+// CHECK: vpmovsqd ymmword ptr [rcx], zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x09]
+ vpmovsqd ymmword ptr [rcx], zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rcx] {k7}, zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x4f,0x25,0x09]
+ vpmovsqd ymmword ptr [rcx] {k7}, zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rax + 8*r14 + 291], zmm9
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x25,0x8c,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsqd ymmword ptr [rax + 8*r14 + 291], zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rdx + 4064], zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x4a,0x7f]
+ vpmovsqd ymmword ptr [rdx + 4064], zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rdx + 4096], zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x8a,0x00,0x10,0x00,0x00]
+ vpmovsqd ymmword ptr [rdx + 4096], zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rdx - 4096], zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x4a,0x80]
+ vpmovsqd ymmword ptr [rdx - 4096], zmm9
+
+// CHECK: vpmovsqd ymmword ptr [rdx - 4128], zmm9
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x25,0x8a,0xe0,0xef,0xff,0xff]
+ vpmovsqd ymmword ptr [rdx - 4128], zmm9
+
+// CHECK: vpmovusqd ymmword ptr [rcx], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x31]
+ vpmovusqd ymmword ptr [rcx], zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rcx] {k1}, zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x49,0x15,0x31]
+ vpmovusqd ymmword ptr [rcx] {k1}, zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rax + 8*r14 + 291], zmm22
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x15,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovusqd ymmword ptr [rax + 8*r14 + 291], zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rdx + 4064], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x72,0x7f]
+ vpmovusqd ymmword ptr [rdx + 4064], zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rdx + 4096], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0xb2,0x00,0x10,0x00,0x00]
+ vpmovusqd ymmword ptr [rdx + 4096], zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rdx - 4096], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x72,0x80]
+ vpmovusqd ymmword ptr [rdx - 4096], zmm22
+
+// CHECK: vpmovusqd ymmword ptr [rdx - 4128], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0xb2,0xe0,0xef,0xff,0xff]
+ vpmovusqd ymmword ptr [rdx - 4128], zmm22
+
+// CHECK: vpmovdb xmmword ptr [rcx], zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x21]
+ vpmovdb xmmword ptr [rcx], zmm12
+
+// CHECK: vpmovdb xmmword ptr [rcx] {k3}, zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x4b,0x31,0x21]
+ vpmovdb xmmword ptr [rcx] {k3}, zmm12
+
+// CHECK: vpmovdb xmmword ptr [rax + 8*r14 + 291], zmm12
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x31,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovdb xmmword ptr [rax + 8*r14 + 291], zmm12
+
+// CHECK: vpmovdb xmmword ptr [rdx + 2032], zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x62,0x7f]
+ vpmovdb xmmword ptr [rdx + 2032], zmm12
+
+// CHECK: vpmovdb xmmword ptr [rdx + 2048], zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0xa2,0x00,0x08,0x00,0x00]
+ vpmovdb xmmword ptr [rdx + 2048], zmm12
+
+// CHECK: vpmovdb xmmword ptr [rdx - 2048], zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0x62,0x80]
+ vpmovdb xmmword ptr [rdx - 2048], zmm12
+
+// CHECK: vpmovdb xmmword ptr [rdx - 2064], zmm12
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0xa2,0xf0,0xf7,0xff,0xff]
+ vpmovdb xmmword ptr [rdx - 2064], zmm12
+
+// CHECK: vpmovsdb xmmword ptr [rcx], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x31]
+ vpmovsdb xmmword ptr [rcx], zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rcx] {k1}, zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x49,0x21,0x31]
+ vpmovsdb xmmword ptr [rcx] {k1}, zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rax + 8*r14 + 291], zmm6
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x21,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsdb xmmword ptr [rax + 8*r14 + 291], zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rdx + 2032], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x72,0x7f]
+ vpmovsdb xmmword ptr [rdx + 2032], zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rdx + 2048], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0xb2,0x00,0x08,0x00,0x00]
+ vpmovsdb xmmword ptr [rdx + 2048], zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rdx - 2048], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0x72,0x80]
+ vpmovsdb xmmword ptr [rdx - 2048], zmm6
+
+// CHECK: vpmovsdb xmmword ptr [rdx - 2064], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x21,0xb2,0xf0,0xf7,0xff,0xff]
+ vpmovsdb xmmword ptr [rdx - 2064], zmm6
+
+// CHECK: vpmovusdb xmmword ptr [rcx], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x39]
+ vpmovusdb xmmword ptr [rcx], zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rcx] {k3}, zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4b,0x11,0x39]
+ vpmovusdb xmmword ptr [rcx] {k3}, zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rax + 8*r14 + 291], zmm23
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x11,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpmovusdb xmmword ptr [rax + 8*r14 + 291], zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rdx + 2032], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x7a,0x7f]
+ vpmovusdb xmmword ptr [rdx + 2032], zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rdx + 2048], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0xba,0x00,0x08,0x00,0x00]
+ vpmovusdb xmmword ptr [rdx + 2048], zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rdx - 2048], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0x7a,0x80]
+ vpmovusdb xmmword ptr [rdx - 2048], zmm23
+
+// CHECK: vpmovusdb xmmword ptr [rdx - 2064], zmm23
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0xba,0xf0,0xf7,0xff,0xff]
+ vpmovusdb xmmword ptr [rdx - 2064], zmm23
+
+// CHECK: vpmovdw ymmword ptr [rcx], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x39]
+ vpmovdw ymmword ptr [rcx], zmm7
+
+// CHECK: vpmovdw ymmword ptr [rcx] {k7}, zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x33,0x39]
+ vpmovdw ymmword ptr [rcx] {k7}, zmm7
+
+// CHECK: vpmovdw ymmword ptr [rax + 8*r14 + 291], zmm7
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x33,0xbc,0xf0,0x23,0x01,0x00,0x00]
+ vpmovdw ymmword ptr [rax + 8*r14 + 291], zmm7
+
+// CHECK: vpmovdw ymmword ptr [rdx + 4064], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x7a,0x7f]
+ vpmovdw ymmword ptr [rdx + 4064], zmm7
+
+// CHECK: vpmovdw ymmword ptr [rdx + 4096], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xba,0x00,0x10,0x00,0x00]
+ vpmovdw ymmword ptr [rdx + 4096], zmm7
+
+// CHECK: vpmovdw ymmword ptr [rdx - 4096], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x7a,0x80]
+ vpmovdw ymmword ptr [rdx - 4096], zmm7
+
+// CHECK: vpmovdw ymmword ptr [rdx - 4128], zmm7
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xba,0xe0,0xef,0xff,0xff]
+ vpmovdw ymmword ptr [rdx - 4128], zmm7
+
+// CHECK: vpmovsdw ymmword ptr [rcx], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x31]
+ vpmovsdw ymmword ptr [rcx], zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rcx] {k6}, zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x4e,0x23,0x31]
+ vpmovsdw ymmword ptr [rcx] {k6}, zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rax + 8*r14 + 291], zmm14
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x23,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vpmovsdw ymmword ptr [rax + 8*r14 + 291], zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rdx + 4064], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x72,0x7f]
+ vpmovsdw ymmword ptr [rdx + 4064], zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rdx + 4096], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0xb2,0x00,0x10,0x00,0x00]
+ vpmovsdw ymmword ptr [rdx + 4096], zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rdx - 4096], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0x72,0x80]
+ vpmovsdw ymmword ptr [rdx - 4096], zmm14
+
+// CHECK: vpmovsdw ymmword ptr [rdx - 4128], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x23,0xb2,0xe0,0xef,0xff,0xff]
+ vpmovsdw ymmword ptr [rdx - 4128], zmm14
+
+// CHECK: vpmovusdw ymmword ptr [rcx], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x29]
+ vpmovusdw ymmword ptr [rcx], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rcx] {k3}, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4b,0x13,0x29]
+ vpmovusdw ymmword ptr [rcx] {k3}, zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rax + 8*r14 + 291], zmm5
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x13,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vpmovusdw ymmword ptr [rax + 8*r14 + 291], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx + 4064], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x7f]
+ vpmovusdw ymmword ptr [rdx + 4064], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx + 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0x00,0x10,0x00,0x00]
+ vpmovusdw ymmword ptr [rdx + 4096], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx - 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x80]
+ vpmovusdw ymmword ptr [rdx - 4096], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx - 4128], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0xe0,0xef,0xff,0xff]
+ vpmovusdw ymmword ptr [rdx - 4128], zmm5
+
+// CHECK: vcvttpd2udq ymm16, zmm20
+// CHECK: encoding: [0x62,0xa1,0xfc,0x48,0x78,0xc4]
+ vcvttpd2udq ymm16, zmm20
+
+// CHECK: vcvttpd2udq ymm16 {k7}, zmm20
+// CHECK: encoding: [0x62,0xa1,0xfc,0x4f,0x78,0xc4]
+ vcvttpd2udq ymm16 {k7}, zmm20
+
+// CHECK: vcvttpd2udq ymm16 {k7} {z}, zmm20
+// CHECK: encoding: [0x62,0xa1,0xfc,0xcf,0x78,0xc4]
+ vcvttpd2udq ymm16 {k7} {z}, zmm20
+
+// CHECK: vcvttpd2udq ymm16, zmm20, {sae}
+// CHECK: encoding: [0x62,0xa1,0xfc,0x18,0x78,0xc4]
+ vcvttpd2udq ymm16, zmm20, {sae}
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x01]
+ vcvttpd2udq ymm16, zmmword ptr [rcx]
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa1,0xfc,0x48,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttpd2udq ymm16, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttpd2udq ymm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x01]
+ vcvttpd2udq ymm16, qword ptr [rcx]{1to8}
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x42,0x7f]
+ vcvttpd2udq ymm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x82,0x00,0x20,0x00,0x00]
+ vcvttpd2udq ymm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x42,0x80]
+ vcvttpd2udq ymm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttpd2udq ymm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x82,0xc0,0xdf,0xff,0xff]
+ vcvttpd2udq ymm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttpd2udq ymm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x42,0x7f]
+ vcvttpd2udq ymm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvttpd2udq ymm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttpd2udq ymm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvttpd2udq ymm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x42,0x80]
+ vcvttpd2udq ymm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvttpd2udq ymm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttpd2udq ymm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvttps2udq zmm14, zmm28
+// CHECK: encoding: [0x62,0x11,0x7c,0x48,0x78,0xf4]
+ vcvttps2udq zmm14, zmm28
+
+// CHECK: vcvttps2udq zmm14 {k1}, zmm28
+// CHECK: encoding: [0x62,0x11,0x7c,0x49,0x78,0xf4]
+ vcvttps2udq zmm14 {k1}, zmm28
+
+// CHECK: vcvttps2udq zmm14 {k1} {z}, zmm28
+// CHECK: encoding: [0x62,0x11,0x7c,0xc9,0x78,0xf4]
+ vcvttps2udq zmm14 {k1} {z}, zmm28
+
+// CHECK: vcvttps2udq zmm14, zmm28, {sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x18,0x78,0xf4]
+ vcvttps2udq zmm14, zmm28, {sae}
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x78,0x31]
+ vcvttps2udq zmm14, zmmword ptr [rcx]
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7c,0x48,0x78,0xb4,0xf0,0x23,0x01,0x00,0x00]
+ vcvttps2udq zmm14, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttps2udq zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x78,0x31]
+ vcvttps2udq zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x78,0x72,0x7f]
+ vcvttps2udq zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x78,0xb2,0x00,0x20,0x00,0x00]
+ vcvttps2udq zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x78,0x72,0x80]
+ vcvttps2udq zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttps2udq zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x78,0xb2,0xc0,0xdf,0xff,0xff]
+ vcvttps2udq zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttps2udq zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x78,0x72,0x7f]
+ vcvttps2udq zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvttps2udq zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x78,0xb2,0x00,0x02,0x00,0x00]
+ vcvttps2udq zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvttps2udq zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x78,0x72,0x80]
+ vcvttps2udq zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvttps2udq zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x78,0xb2,0xfc,0xfd,0xff,0xff]
+ vcvttps2udq zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvttsd2usi eax, xmm21
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xc5]
+ vcvttsd2usi eax, xmm21
+
+// CHECK: vcvttsd2usi eax, xmm21, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7f,0x18,0x78,0xc5]
+ vcvttsd2usi eax, xmm21, {sae}
+
+// CHECK: vcvttsd2usi eax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x01]
+ vcvttsd2usi eax, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttsd2usi eax, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi eax, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi eax, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x42,0x80]
+ vcvttsd2usi eax, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi eax, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi ebp, xmm21
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xed]
+ vcvttsd2usi ebp, xmm21
+
+// CHECK: vcvttsd2usi ebp, xmm21, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7f,0x18,0x78,0xed]
+ vcvttsd2usi ebp, xmm21, {sae}
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x29]
+ vcvttsd2usi ebp, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvttsd2usi ebp, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x6a,0x7f]
+ vcvttsd2usi ebp, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0xaa,0x00,0x04,0x00,0x00]
+ vcvttsd2usi ebp, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x6a,0x80]
+ vcvttsd2usi ebp, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi ebp, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi r13d, xmm21
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x78,0xed]
+ vcvttsd2usi r13d, xmm21
+
+// CHECK: vcvttsd2usi r13d, xmm21, {sae}
+// CHECK: encoding: [0x62,0x31,0x7f,0x18,0x78,0xed]
+ vcvttsd2usi r13d, xmm21, {sae}
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x29]
+ vcvttsd2usi r13d, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x78,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvttsd2usi r13d, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x6a,0x7f]
+ vcvttsd2usi r13d, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0xaa,0x00,0x04,0x00,0x00]
+ vcvttsd2usi r13d, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x6a,0x80]
+ vcvttsd2usi r13d, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi r13d, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi rax, xmm7
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0xc7]
+ vcvttsd2usi rax, xmm7
+
+// CHECK: vcvttsd2usi rax, xmm7, {sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x18,0x78,0xc7]
+ vcvttsd2usi rax, xmm7, {sae}
+
+// CHECK: vcvttsd2usi rax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x01]
+ vcvttsd2usi rax, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttsd2usi rax, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi rax, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi rax, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x42,0x80]
+ vcvttsd2usi rax, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi rax, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi r8, xmm7
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0xc7]
+ vcvttsd2usi r8, xmm7
+
+// CHECK: vcvttsd2usi r8, xmm7, {sae}
+// CHECK: encoding: [0x62,0x71,0xff,0x18,0x78,0xc7]
+ vcvttsd2usi r8, xmm7, {sae}
+
+// CHECK: vcvttsd2usi r8, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x01]
+ vcvttsd2usi r8, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttsd2usi r8, qword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi r8, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi r8, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x42,0x80]
+ vcvttsd2usi r8, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi r8, qword ptr [rdx - 1032]
+
+// CHECK: vcvttss2usi eax, xmm18
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xc2]
+ vcvttss2usi eax, xmm18
+
+// CHECK: vcvttss2usi eax, xmm18, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x78,0xc2]
+ vcvttss2usi eax, xmm18, {sae}
+
+// CHECK: vcvttss2usi eax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x01]
+ vcvttss2usi eax, dword ptr [rcx]
+
+// CHECK: vcvttss2usi eax, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttss2usi eax, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x42,0x7f]
+ vcvttss2usi eax, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi eax, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x42,0x80]
+ vcvttss2usi eax, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi eax, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi ebp, xmm18
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xea]
+ vcvttss2usi ebp, xmm18
+
+// CHECK: vcvttss2usi ebp, xmm18, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x78,0xea]
+ vcvttss2usi ebp, xmm18, {sae}
+
+// CHECK: vcvttss2usi ebp, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x29]
+ vcvttss2usi ebp, dword ptr [rcx]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvttss2usi ebp, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x6a,0x7f]
+ vcvttss2usi ebp, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0xaa,0x00,0x02,0x00,0x00]
+ vcvttss2usi ebp, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x6a,0x80]
+ vcvttss2usi ebp, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi ebp, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi r13d, xmm18
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x78,0xea]
+ vcvttss2usi r13d, xmm18
+
+// CHECK: vcvttss2usi r13d, xmm18, {sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x18,0x78,0xea]
+ vcvttss2usi r13d, xmm18, {sae}
+
+// CHECK: vcvttss2usi r13d, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x29]
+ vcvttss2usi r13d, dword ptr [rcx]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x78,0xac,0xf0,0x23,0x01,0x00,0x00]
+ vcvttss2usi r13d, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x6a,0x7f]
+ vcvttss2usi r13d, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0xaa,0x00,0x02,0x00,0x00]
+ vcvttss2usi r13d, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x6a,0x80]
+ vcvttss2usi r13d, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi r13d, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi rax, xmm27
+// CHECK: encoding: [0x62,0x91,0xfe,0x08,0x78,0xc3]
+ vcvttss2usi rax, xmm27
+
+// CHECK: vcvttss2usi rax, xmm27, {sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x18,0x78,0xc3]
+ vcvttss2usi rax, xmm27, {sae}
+
+// CHECK: vcvttss2usi rax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x01]
+ vcvttss2usi rax, dword ptr [rcx]
+
+// CHECK: vcvttss2usi rax, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xb1,0xfe,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttss2usi rax, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x42,0x7f]
+ vcvttss2usi rax, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi rax, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x42,0x80]
+ vcvttss2usi rax, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi rax, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi r8, xmm27
+// CHECK: encoding: [0x62,0x11,0xfe,0x08,0x78,0xc3]
+ vcvttss2usi r8, xmm27
+
+// CHECK: vcvttss2usi r8, xmm27, {sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x18,0x78,0xc3]
+ vcvttss2usi r8, xmm27, {sae}
+
+// CHECK: vcvttss2usi r8, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x01]
+ vcvttss2usi r8, dword ptr [rcx]
+
+// CHECK: vcvttss2usi r8, dword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x31,0xfe,0x08,0x78,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vcvttss2usi r8, dword ptr [rax + 8*r14 + 291]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x42,0x7f]
+ vcvttss2usi r8, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi r8, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x42,0x80]
+ vcvttss2usi r8, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi r8, dword ptr [rdx - 516]
+
+// CHECK: vpermi2d zmm10, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0xd4]
+ vpermi2d zmm10, zmm28, zmm4
+
+// CHECK: vpermi2d zmm10 {k5}, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0x45,0x76,0xd4]
+ vpermi2d zmm10 {k5}, zmm28, zmm4
+
+// CHECK: vpermi2d zmm10 {k5} {z}, zmm28, zmm4
+// CHECK: encoding: [0x62,0x72,0x1d,0xc5,0x76,0xd4]
+ vpermi2d zmm10 {k5} {z}, zmm28, zmm4
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0x11]
+ vpermi2d zmm10, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x32,0x1d,0x40,0x76,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpermi2d zmm10, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermi2d zmm10, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x76,0x11]
+ vpermi2d zmm10, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0x52,0x7f]
+ vpermi2d zmm10, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0x92,0x00,0x20,0x00,0x00]
+ vpermi2d zmm10, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0x52,0x80]
+ vpermi2d zmm10, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2d zmm10, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0x76,0x92,0xc0,0xdf,0xff,0xff]
+ vpermi2d zmm10, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2d zmm10, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x76,0x52,0x7f]
+ vpermi2d zmm10, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermi2d zmm10, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x76,0x92,0x00,0x02,0x00,0x00]
+ vpermi2d zmm10, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermi2d zmm10, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x76,0x52,0x80]
+ vpermi2d zmm10, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermi2d zmm10, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0x76,0x92,0xfc,0xfd,0xff,0xff]
+ vpermi2d zmm10, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermi2q zmm18, zmm28, zmm28
+// CHECK: encoding: [0x62,0x82,0x9d,0x40,0x76,0xd4]
+ vpermi2q zmm18, zmm28, zmm28
+
+// CHECK: vpermi2q zmm18 {k2}, zmm28, zmm28
+// CHECK: encoding: [0x62,0x82,0x9d,0x42,0x76,0xd4]
+ vpermi2q zmm18 {k2}, zmm28, zmm28
+
+// CHECK: vpermi2q zmm18 {k2} {z}, zmm28, zmm28
+// CHECK: encoding: [0x62,0x82,0x9d,0xc2,0x76,0xd4]
+ vpermi2q zmm18 {k2} {z}, zmm28, zmm28
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x76,0x11]
+ vpermi2q zmm18, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0x9d,0x40,0x76,0x94,0xf0,0x23,0x01,0x00,0x00]
+ vpermi2q zmm18, zmm28, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermi2q zmm18, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x76,0x11]
+ vpermi2q zmm18, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x76,0x52,0x7f]
+ vpermi2q zmm18, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x76,0x92,0x00,0x20,0x00,0x00]
+ vpermi2q zmm18, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x76,0x52,0x80]
+ vpermi2q zmm18, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2q zmm18, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x9d,0x40,0x76,0x92,0xc0,0xdf,0xff,0xff]
+ vpermi2q zmm18, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2q zmm18, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x76,0x52,0x7f]
+ vpermi2q zmm18, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermi2q zmm18, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x76,0x92,0x00,0x04,0x00,0x00]
+ vpermi2q zmm18, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermi2q zmm18, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x76,0x52,0x80]
+ vpermi2q zmm18, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermi2q zmm18, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x9d,0x50,0x76,0x92,0xf8,0xfb,0xff,0xff]
+ vpermi2q zmm18, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermi2ps zmm24, zmm23, zmm8
+// CHECK: encoding: [0x62,0x42,0x45,0x40,0x77,0xc0]
+ vpermi2ps zmm24, zmm23, zmm8
+
+// CHECK: vpermi2ps zmm24 {k2}, zmm23, zmm8
+// CHECK: encoding: [0x62,0x42,0x45,0x42,0x77,0xc0]
+ vpermi2ps zmm24 {k2}, zmm23, zmm8
+
+// CHECK: vpermi2ps zmm24 {k2} {z}, zmm23, zmm8
+// CHECK: encoding: [0x62,0x42,0x45,0xc2,0x77,0xc0]
+ vpermi2ps zmm24 {k2} {z}, zmm23, zmm8
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x45,0x40,0x77,0x01]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rcx]
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0x22,0x45,0x40,0x77,0x84,0xf0,0x23,0x01,0x00,0x00]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermi2ps zmm24, zmm23, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x50,0x77,0x01]
+ vpermi2ps zmm24, zmm23, dword ptr [rcx]{1to16}
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x45,0x40,0x77,0x42,0x7f]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x45,0x40,0x77,0x82,0x00,0x20,0x00,0x00]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x45,0x40,0x77,0x42,0x80]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2ps zmm24, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x45,0x40,0x77,0x82,0xc0,0xdf,0xff,0xff]
+ vpermi2ps zmm24, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2ps zmm24, zmm23, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x50,0x77,0x42,0x7f]
+ vpermi2ps zmm24, zmm23, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermi2ps zmm24, zmm23, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x50,0x77,0x82,0x00,0x02,0x00,0x00]
+ vpermi2ps zmm24, zmm23, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermi2ps zmm24, zmm23, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x50,0x77,0x42,0x80]
+ vpermi2ps zmm24, zmm23, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermi2ps zmm24, zmm23, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x50,0x77,0x82,0xfc,0xfd,0xff,0xff]
+ vpermi2ps zmm24, zmm23, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermi2pd zmm20, zmm5, zmm20
+// CHECK: encoding: [0x62,0xa2,0xd5,0x48,0x77,0xe4]
+ vpermi2pd zmm20, zmm5, zmm20
+
+// CHECK: vpermi2pd zmm20 {k3}, zmm5, zmm20
+// CHECK: encoding: [0x62,0xa2,0xd5,0x4b,0x77,0xe4]
+ vpermi2pd zmm20 {k3}, zmm5, zmm20
+
+// CHECK: vpermi2pd zmm20 {k3} {z}, zmm5, zmm20
+// CHECK: encoding: [0x62,0xa2,0xd5,0xcb,0x77,0xe4]
+ vpermi2pd zmm20 {k3} {z}, zmm5, zmm20
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x77,0x21]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rcx]
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rax + 8*r14 + 291]
+// CHECK: encoding: [0x62,0xa2,0xd5,0x48,0x77,0xa4,0xf0,0x23,0x01,0x00,0x00]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rax + 8*r14 + 291]
+
+// CHECK: vpermi2pd zmm20, zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x77,0x21]
+ vpermi2pd zmm20, zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x77,0x62,0x7f]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x77,0xa2,0x00,0x20,0x00,0x00]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x77,0x62,0x80]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2pd zmm20, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xd5,0x48,0x77,0xa2,0xc0,0xdf,0xff,0xff]
+ vpermi2pd zmm20, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2pd zmm20, zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x77,0x62,0x7f]
+ vpermi2pd zmm20, zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermi2pd zmm20, zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x77,0xa2,0x00,0x04,0x00,0x00]
+ vpermi2pd zmm20, zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermi2pd zmm20, zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x77,0x62,0x80]
+ vpermi2pd zmm20, zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermi2pd zmm20, zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xd5,0x58,0x77,0xa2,0xf8,0xfb,0xff,0xff]
+ vpermi2pd zmm20, zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vaddpd zmm17, zmm11, zmm2
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0xca]
+ vaddpd zmm17, zmm11, zmm2
+
+// CHECK: vaddpd zmm17 {k1}, zmm11, zmm2
+// CHECK: encoding: [0x62,0xe1,0xa5,0x49,0x58,0xca]
+ vaddpd zmm17 {k1}, zmm11, zmm2
+
+// CHECK: vaddpd zmm17 {k1} {z}, zmm11, zmm2
+// CHECK: encoding: [0x62,0xe1,0xa5,0xc9,0x58,0xca]
+ vaddpd zmm17 {k1} {z}, zmm11, zmm2
+
+// CHECK: vaddpd zmm17, zmm11, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x18,0x58,0xca]
+ vaddpd zmm17, zmm11, zmm2, {rn-sae}
+
+// CHECK: vaddpd zmm17, zmm11, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0xca]
+ vaddpd zmm17, zmm11, zmm2, {ru-sae}
+
+// CHECK: vaddpd zmm17, zmm11, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x38,0x58,0xca]
+ vaddpd zmm17, zmm11, zmm2, {rd-sae}
+
+// CHECK: vaddpd zmm17, zmm11, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x78,0x58,0xca]
+ vaddpd zmm17, zmm11, zmm2, {rz-sae}
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0x09]
+ vaddpd zmm17, zmm11, zmmword ptr [rcx]
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xa5,0x48,0x58,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vaddpd zmm17, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vaddpd zmm17, zmm11, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0x09]
+ vaddpd zmm17, zmm11, qword ptr [rcx]{1to8}
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0x4a,0x7f]
+ vaddpd zmm17, zmm11, zmmword ptr [rdx + 8128]
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0x8a,0x00,0x20,0x00,0x00]
+ vaddpd zmm17, zmm11, zmmword ptr [rdx + 8192]
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0x4a,0x80]
+ vaddpd zmm17, zmm11, zmmword ptr [rdx - 8192]
+
+// CHECK: vaddpd zmm17, zmm11, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xa5,0x48,0x58,0x8a,0xc0,0xdf,0xff,0xff]
+ vaddpd zmm17, zmm11, zmmword ptr [rdx - 8256]
+
+// CHECK: vaddpd zmm17, zmm11, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0x4a,0x7f]
+ vaddpd zmm17, zmm11, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vaddpd zmm17, zmm11, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0x8a,0x00,0x04,0x00,0x00]
+ vaddpd zmm17, zmm11, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vaddpd zmm17, zmm11, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0x4a,0x80]
+ vaddpd zmm17, zmm11, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vaddpd zmm17, zmm11, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xa5,0x58,0x58,0x8a,0xf8,0xfb,0xff,0xff]
+ vaddpd zmm17, zmm11, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vaddps zmm3, zmm6, zmm5
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0xdd]
+ vaddps zmm3, zmm6, zmm5
+
+// CHECK: vaddps zmm3 {k1}, zmm6, zmm5
+// CHECK: encoding: [0x62,0xf1,0x4c,0x49,0x58,0xdd]
+ vaddps zmm3 {k1}, zmm6, zmm5
+
+// CHECK: vaddps zmm3 {k1} {z}, zmm6, zmm5
+// CHECK: encoding: [0x62,0xf1,0x4c,0xc9,0x58,0xdd]
+ vaddps zmm3 {k1} {z}, zmm6, zmm5
+
+// CHECK: vaddps zmm3, zmm6, zmm5, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x18,0x58,0xdd]
+ vaddps zmm3, zmm6, zmm5, {rn-sae}
+
+// CHECK: vaddps zmm3, zmm6, zmm5, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0xdd]
+ vaddps zmm3, zmm6, zmm5, {ru-sae}
+
+// CHECK: vaddps zmm3, zmm6, zmm5, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x38,0x58,0xdd]
+ vaddps zmm3, zmm6, zmm5, {rd-sae}
+
+// CHECK: vaddps zmm3, zmm6, zmm5, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x78,0x58,0xdd]
+ vaddps zmm3, zmm6, zmm5, {rz-sae}
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0x19]
+ vaddps zmm3, zmm6, zmmword ptr [rcx]
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x4c,0x48,0x58,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vaddps zmm3, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vaddps zmm3, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0x19]
+ vaddps zmm3, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0x5a,0x7f]
+ vaddps zmm3, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0x9a,0x00,0x20,0x00,0x00]
+ vaddps zmm3, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0x5a,0x80]
+ vaddps zmm3, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vaddps zmm3, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x4c,0x48,0x58,0x9a,0xc0,0xdf,0xff,0xff]
+ vaddps zmm3, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vaddps zmm3, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0x5a,0x7f]
+ vaddps zmm3, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vaddps zmm3, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0x9a,0x00,0x02,0x00,0x00]
+ vaddps zmm3, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vaddps zmm3, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0x5a,0x80]
+ vaddps zmm3, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vaddps zmm3, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x4c,0x58,0x58,0x9a,0xfc,0xfd,0xff,0xff]
+ vaddps zmm3, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vaddsd xmm1, xmm18, xmm27
+// CHECK: encoding: [0x62,0x91,0xef,0x00,0x58,0xcb]
+ vaddsd xmm1, xmm18, xmm27
+
+// CHECK: vaddsd xmm1 {k3}, xmm18, xmm27
+// CHECK: encoding: [0x62,0x91,0xef,0x03,0x58,0xcb]
+ vaddsd xmm1 {k3}, xmm18, xmm27
+
+// CHECK: vaddsd xmm1 {k3} {z}, xmm18, xmm27
+// CHECK: encoding: [0x62,0x91,0xef,0x83,0x58,0xcb]
+ vaddsd xmm1 {k3} {z}, xmm18, xmm27
+
+// CHECK: vaddsd xmm1, xmm18, xmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0xef,0x10,0x58,0xcb]
+ vaddsd xmm1, xmm18, xmm27, {rn-sae}
+
+// CHECK: vaddsd xmm1, xmm18, xmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0xef,0x50,0x58,0xcb]
+ vaddsd xmm1, xmm18, xmm27, {ru-sae}
+
+// CHECK: vaddsd xmm1, xmm18, xmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0xef,0x30,0x58,0xcb]
+ vaddsd xmm1, xmm18, xmm27, {rd-sae}
+
+// CHECK: vaddsd xmm1, xmm18, xmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0xef,0x70,0x58,0xcb]
+ vaddsd xmm1, xmm18, xmm27, {rz-sae}
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xef,0x00,0x58,0x09]
+ vaddsd xmm1, xmm18, qword ptr [rcx]
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xef,0x00,0x58,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vaddsd xmm1, xmm18, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xef,0x00,0x58,0x4a,0x7f]
+ vaddsd xmm1, xmm18, qword ptr [rdx + 1016]
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xef,0x00,0x58,0x8a,0x00,0x04,0x00,0x00]
+ vaddsd xmm1, xmm18, qword ptr [rdx + 1024]
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xef,0x00,0x58,0x4a,0x80]
+ vaddsd xmm1, xmm18, qword ptr [rdx - 1024]
+
+// CHECK: vaddsd xmm1, xmm18, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xef,0x00,0x58,0x8a,0xf8,0xfb,0xff,0xff]
+ vaddsd xmm1, xmm18, qword ptr [rdx - 1032]
+
+// CHECK: vaddss xmm17, xmm14, xmm15
+// CHECK: encoding: [0x62,0xc1,0x0e,0x08,0x58,0xcf]
+ vaddss xmm17, xmm14, xmm15
+
+// CHECK: vaddss xmm17 {k4}, xmm14, xmm15
+// CHECK: encoding: [0x62,0xc1,0x0e,0x0c,0x58,0xcf]
+ vaddss xmm17 {k4}, xmm14, xmm15
+
+// CHECK: vaddss xmm17 {k4} {z}, xmm14, xmm15
+// CHECK: encoding: [0x62,0xc1,0x0e,0x8c,0x58,0xcf]
+ vaddss xmm17 {k4} {z}, xmm14, xmm15
+
+// CHECK: vaddss xmm17, xmm14, xmm15, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0x0e,0x18,0x58,0xcf]
+ vaddss xmm17, xmm14, xmm15, {rn-sae}
+
+// CHECK: vaddss xmm17, xmm14, xmm15, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0x0e,0x58,0x58,0xcf]
+ vaddss xmm17, xmm14, xmm15, {ru-sae}
+
+// CHECK: vaddss xmm17, xmm14, xmm15, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0x0e,0x38,0x58,0xcf]
+ vaddss xmm17, xmm14, xmm15, {rd-sae}
+
+// CHECK: vaddss xmm17, xmm14, xmm15, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0x0e,0x78,0x58,0xcf]
+ vaddss xmm17, xmm14, xmm15, {rz-sae}
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x0e,0x08,0x58,0x09]
+ vaddss xmm17, xmm14, dword ptr [rcx]
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x0e,0x08,0x58,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vaddss xmm17, xmm14, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x0e,0x08,0x58,0x4a,0x7f]
+ vaddss xmm17, xmm14, dword ptr [rdx + 508]
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x0e,0x08,0x58,0x8a,0x00,0x02,0x00,0x00]
+ vaddss xmm17, xmm14, dword ptr [rdx + 512]
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x0e,0x08,0x58,0x4a,0x80]
+ vaddss xmm17, xmm14, dword ptr [rdx - 512]
+
+// CHECK: vaddss xmm17, xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x0e,0x08,0x58,0x8a,0xfc,0xfd,0xff,0xff]
+ vaddss xmm17, xmm14, dword ptr [rdx - 516]
+
+// CHECK: valignd zmm15, zmm7, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0xfd,0xab]
+ valignd zmm15, zmm7, zmm5, 171
+
+// CHECK: valignd zmm15 {k2}, zmm7, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0x45,0x4a,0x03,0xfd,0xab]
+ valignd zmm15 {k2}, zmm7, zmm5, 171
+
+// CHECK: valignd zmm15 {k2} {z}, zmm7, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0x45,0xca,0x03,0xfd,0xab]
+ valignd zmm15 {k2} {z}, zmm7, zmm5, 171
+
+// CHECK: valignd zmm15, zmm7, zmm5, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0xfd,0x7b]
+ valignd zmm15, zmm7, zmm5, 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0x39,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rcx], 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0x45,0x48,0x03,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: valignd zmm15, zmm7, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x58,0x03,0x39,0x7b]
+ valignd zmm15, zmm7, dword ptr [rcx]{1to16}, 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0x7a,0x7f,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rdx + 8128], 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0xba,0x00,0x20,0x00,0x00,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rdx + 8192], 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0x7a,0x80,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rdx - 8192], 123
+
+// CHECK: valignd zmm15, zmm7, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x45,0x48,0x03,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ valignd zmm15, zmm7, zmmword ptr [rdx - 8256], 123
+
+// CHECK: valignd zmm15, zmm7, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x58,0x03,0x7a,0x7f,0x7b]
+ valignd zmm15, zmm7, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: valignd zmm15, zmm7, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x58,0x03,0xba,0x00,0x02,0x00,0x00,0x7b]
+ valignd zmm15, zmm7, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: valignd zmm15, zmm7, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x58,0x03,0x7a,0x80,0x7b]
+ valignd zmm15, zmm7, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: valignd zmm15, zmm7, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x45,0x58,0x03,0xba,0xfc,0xfd,0xff,0xff,0x7b]
+ valignd zmm15, zmm7, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vblendmpd zmm23, zmm2, zmm8
+// CHECK: encoding: [0x62,0xc2,0xed,0x48,0x65,0xf8]
+ vblendmpd zmm23, zmm2, zmm8
+
+// CHECK: vblendmpd zmm23 {k7}, zmm2, zmm8
+// CHECK: encoding: [0x62,0xc2,0xed,0x4f,0x65,0xf8]
+ vblendmpd zmm23 {k7}, zmm2, zmm8
+
+// CHECK: vblendmpd zmm23 {k7} {z}, zmm2, zmm8
+// CHECK: encoding: [0x62,0xc2,0xed,0xcf,0x65,0xf8]
+ vblendmpd zmm23 {k7} {z}, zmm2, zmm8
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0x65,0x39]
+ vblendmpd zmm23, zmm2, zmmword ptr [rcx]
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xed,0x48,0x65,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vblendmpd zmm23, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vblendmpd zmm23, zmm2, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0x65,0x39]
+ vblendmpd zmm23, zmm2, qword ptr [rcx]{1to8}
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0x65,0x7a,0x7f]
+ vblendmpd zmm23, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0x65,0xba,0x00,0x20,0x00,0x00]
+ vblendmpd zmm23, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0x65,0x7a,0x80]
+ vblendmpd zmm23, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vblendmpd zmm23, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0x65,0xba,0xc0,0xdf,0xff,0xff]
+ vblendmpd zmm23, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vblendmpd zmm23, zmm2, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0x65,0x7a,0x7f]
+ vblendmpd zmm23, zmm2, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vblendmpd zmm23, zmm2, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0x65,0xba,0x00,0x04,0x00,0x00]
+ vblendmpd zmm23, zmm2, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vblendmpd zmm23, zmm2, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0x65,0x7a,0x80]
+ vblendmpd zmm23, zmm2, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vblendmpd zmm23, zmm2, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0x65,0xba,0xf8,0xfb,0xff,0xff]
+ vblendmpd zmm23, zmm2, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vblendmps zmm23, zmm9, zmm7
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0xff]
+ vblendmps zmm23, zmm9, zmm7
+
+// CHECK: vblendmps zmm23 {k7}, zmm9, zmm7
+// CHECK: encoding: [0x62,0xe2,0x35,0x4f,0x65,0xff]
+ vblendmps zmm23 {k7}, zmm9, zmm7
+
+// CHECK: vblendmps zmm23 {k7} {z}, zmm9, zmm7
+// CHECK: encoding: [0x62,0xe2,0x35,0xcf,0x65,0xff]
+ vblendmps zmm23 {k7} {z}, zmm9, zmm7
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0x39]
+ vblendmps zmm23, zmm9, zmmword ptr [rcx]
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x35,0x48,0x65,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vblendmps zmm23, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vblendmps zmm23, zmm9, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x58,0x65,0x39]
+ vblendmps zmm23, zmm9, dword ptr [rcx]{1to16}
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0x7a,0x7f]
+ vblendmps zmm23, zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0xba,0x00,0x20,0x00,0x00]
+ vblendmps zmm23, zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0x7a,0x80]
+ vblendmps zmm23, zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vblendmps zmm23, zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x35,0x48,0x65,0xba,0xc0,0xdf,0xff,0xff]
+ vblendmps zmm23, zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vblendmps zmm23, zmm9, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x58,0x65,0x7a,0x7f]
+ vblendmps zmm23, zmm9, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vblendmps zmm23, zmm9, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x58,0x65,0xba,0x00,0x02,0x00,0x00]
+ vblendmps zmm23, zmm9, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vblendmps zmm23, zmm9, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x58,0x65,0x7a,0x80]
+ vblendmps zmm23, zmm9, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vblendmps zmm23, zmm9, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x58,0x65,0xba,0xfc,0xfd,0xff,0xff]
+ vblendmps zmm23, zmm9, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1a,0x39]
+ vbroadcastf32x4 zmm15, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm15 {k3}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x4b,0x1a,0x39]
+ vbroadcastf32x4 zmm15 {k3}, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm15 {k3} {z}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0xcb,0x1a,0x39]
+ vbroadcastf32x4 zmm15 {k3} {z}, xmmword ptr [rcx]
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x1a,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcastf32x4 zmm15, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1a,0x7a,0x7f]
+ vbroadcastf32x4 zmm15, xmmword ptr [rdx + 2032]
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1a,0xba,0x00,0x08,0x00,0x00]
+ vbroadcastf32x4 zmm15, xmmword ptr [rdx + 2048]
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1a,0x7a,0x80]
+ vbroadcastf32x4 zmm15, xmmword ptr [rdx - 2048]
+
+// CHECK: vbroadcastf32x4 zmm15, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x1a,0xba,0xf0,0xf7,0xff,0xff]
+ vbroadcastf32x4 zmm15, xmmword ptr [rdx - 2064]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x11]
+ vbroadcastf64x4 zmm26, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm26 {k1}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x1b,0x11]
+ vbroadcastf64x4 zmm26 {k1}, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm26 {k1} {z}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xc9,0x1b,0x11]
+ vbroadcastf64x4 zmm26 {k1} {z}, ymmword ptr [rcx]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x1b,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcastf64x4 zmm26, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x52,0x7f]
+ vbroadcastf64x4 zmm26, ymmword ptr [rdx + 4064]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x92,0x00,0x10,0x00,0x00]
+ vbroadcastf64x4 zmm26, ymmword ptr [rdx + 4096]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x52,0x80]
+ vbroadcastf64x4 zmm26, ymmword ptr [rdx - 4096]
+
+// CHECK: vbroadcastf64x4 zmm26, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x1b,0x92,0xe0,0xef,0xff,0xff]
+ vbroadcastf64x4 zmm26, ymmword ptr [rdx - 4128]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x5a,0x11]
+ vbroadcasti32x4 zmm2, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm2 {k5}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4d,0x5a,0x11]
+ vbroadcasti32x4 zmm2 {k5}, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm2 {k5} {z}, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xcd,0x5a,0x11]
+ vbroadcasti32x4 zmm2 {k5} {z}, xmmword ptr [rcx]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x5a,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcasti32x4 zmm2, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x5a,0x52,0x7f]
+ vbroadcasti32x4 zmm2, xmmword ptr [rdx + 2032]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x5a,0x92,0x00,0x08,0x00,0x00]
+ vbroadcasti32x4 zmm2, xmmword ptr [rdx + 2048]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x5a,0x52,0x80]
+ vbroadcasti32x4 zmm2, xmmword ptr [rdx - 2048]
+
+// CHECK: vbroadcasti32x4 zmm2, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x5a,0x92,0xf0,0xf7,0xff,0xff]
+ vbroadcasti32x4 zmm2, xmmword ptr [rdx - 2064]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x09]
+ vbroadcasti64x4 zmm17, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm17 {k2}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x4a,0x5b,0x09]
+ vbroadcasti64x4 zmm17 {k2}, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm17 {k2} {z}, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0xca,0x5b,0x09]
+ vbroadcasti64x4 zmm17 {k2} {z}, ymmword ptr [rcx]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x5b,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcasti64x4 zmm17, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x4a,0x7f]
+ vbroadcasti64x4 zmm17, ymmword ptr [rdx + 4064]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x8a,0x00,0x10,0x00,0x00]
+ vbroadcasti64x4 zmm17, ymmword ptr [rdx + 4096]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x4a,0x80]
+ vbroadcasti64x4 zmm17, ymmword ptr [rdx - 4096]
+
+// CHECK: vbroadcasti64x4 zmm17, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x5b,0x8a,0xe0,0xef,0xff,0xff]
+ vbroadcasti64x4 zmm17, ymmword ptr [rdx - 4128]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x19]
+ vbroadcastsd zmm27, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm27 {k7}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x4f,0x19,0x19]
+ vbroadcastsd zmm27 {k7}, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm27 {k7} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0xcf,0x19,0x19]
+ vbroadcastsd zmm27 {k7} {z}, qword ptr [rcx]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x19,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcastsd zmm27, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x5a,0x7f]
+ vbroadcastsd zmm27, qword ptr [rdx + 1016]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x9a,0x00,0x04,0x00,0x00]
+ vbroadcastsd zmm27, qword ptr [rdx + 1024]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x5a,0x80]
+ vbroadcastsd zmm27, qword ptr [rdx - 1024]
+
+// CHECK: vbroadcastsd zmm27, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x19,0x9a,0xf8,0xfb,0xff,0xff]
+ vbroadcastsd zmm27, qword ptr [rdx - 1032]
+
+// CHECK: vbroadcastsd zmm19, xmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0x48,0x19,0xd9]
+ vbroadcastsd zmm19, xmm25
+
+// CHECK: vbroadcastsd zmm19 {k3}, xmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0x4b,0x19,0xd9]
+ vbroadcastsd zmm19 {k3}, xmm25
+
+// CHECK: vbroadcastsd zmm19 {k3} {z}, xmm25
+// CHECK: encoding: [0x62,0x82,0xfd,0xcb,0x19,0xd9]
+ vbroadcastsd zmm19 {k3} {z}, xmm25
+
+// CHECK: vbroadcastss zmm2, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x11]
+ vbroadcastss zmm2, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm2 {k1}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x49,0x18,0x11]
+ vbroadcastss zmm2 {k1}, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm2 {k1} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0xc9,0x18,0x11]
+ vbroadcastss zmm2 {k1} {z}, dword ptr [rcx]
+
+// CHECK: vbroadcastss zmm2, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x18,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vbroadcastss zmm2, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vbroadcastss zmm2, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x52,0x7f]
+ vbroadcastss zmm2, dword ptr [rdx + 508]
+
+// CHECK: vbroadcastss zmm2, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x92,0x00,0x02,0x00,0x00]
+ vbroadcastss zmm2, dword ptr [rdx + 512]
+
+// CHECK: vbroadcastss zmm2, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x52,0x80]
+ vbroadcastss zmm2, dword ptr [rdx - 512]
+
+// CHECK: vbroadcastss zmm2, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x18,0x92,0xfc,0xfd,0xff,0xff]
+ vbroadcastss zmm2, dword ptr [rdx - 516]
+
+// CHECK: vbroadcastss zmm23, xmm15
+// CHECK: encoding: [0x62,0xc2,0x7d,0x48,0x18,0xff]
+ vbroadcastss zmm23, xmm15
+
+// CHECK: vbroadcastss zmm23 {k4}, xmm15
+// CHECK: encoding: [0x62,0xc2,0x7d,0x4c,0x18,0xff]
+ vbroadcastss zmm23 {k4}, xmm15
+
+// CHECK: vbroadcastss zmm23 {k4} {z}, xmm15
+// CHECK: encoding: [0x62,0xc2,0x7d,0xcc,0x18,0xff]
+ vbroadcastss zmm23 {k4} {z}, xmm15
+
+// CHECK: vcmppd k5, zmm15, zmm16, 171
+// CHECK: encoding: [0x62,0xb1,0x85,0x48,0xc2,0xe8,0xab]
+ vcmppd k5, zmm15, zmm16, 171
+
+// CHECK: vcmppd k5 {k5}, zmm15, zmm16, 171
+// CHECK: encoding: [0x62,0xb1,0x85,0x4d,0xc2,0xe8,0xab]
+ vcmppd k5 {k5}, zmm15, zmm16, 171
+
+// CHECK: vcmppd k5, zmm15, zmm16, {sae}, 171
+// CHECK: encoding: [0x62,0xb1,0x85,0x18,0xc2,0xe8,0xab]
+ vcmppd k5, zmm15, zmm16, {sae}, 171
+
+// CHECK: vcmppd k5, zmm15, zmm16, 123
+// CHECK: encoding: [0x62,0xb1,0x85,0x48,0xc2,0xe8,0x7b]
+ vcmppd k5, zmm15, zmm16, 123
+
+// CHECK: vcmppd k5, zmm15, zmm16, {sae}, 123
+// CHECK: encoding: [0x62,0xb1,0x85,0x18,0xc2,0xe8,0x7b]
+ vcmppd k5, zmm15, zmm16, {sae}, 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x48,0xc2,0x29,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rcx], 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x85,0x48,0xc2,0xac,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vcmppd k5, zmm15, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x58,0xc2,0x29,0x7b]
+ vcmppd k5, zmm15, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x48,0xc2,0x6a,0x7f,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x48,0xc2,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x48,0xc2,0x6a,0x80,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vcmppd k5, zmm15, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x48,0xc2,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vcmppd k5, zmm15, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vcmppd k5, zmm15, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x58,0xc2,0x6a,0x7f,0x7b]
+ vcmppd k5, zmm15, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vcmppd k5, zmm15, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x58,0xc2,0xaa,0x00,0x04,0x00,0x00,0x7b]
+ vcmppd k5, zmm15, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vcmppd k5, zmm15, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x58,0xc2,0x6a,0x80,0x7b]
+ vcmppd k5, zmm15, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vcmppd k5, zmm15, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0x85,0x58,0xc2,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
+ vcmppd k5, zmm15, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vcmpps k2, zmm3, zmm29, 171
+// CHECK: encoding: [0x62,0x91,0x64,0x48,0xc2,0xd5,0xab]
+ vcmpps k2, zmm3, zmm29, 171
+
+// CHECK: vcmpps k2 {k5}, zmm3, zmm29, 171
+// CHECK: encoding: [0x62,0x91,0x64,0x4d,0xc2,0xd5,0xab]
+ vcmpps k2 {k5}, zmm3, zmm29, 171
+
+// CHECK: vcmpps k2, zmm3, zmm29, {sae}, 171
+// CHECK: encoding: [0x62,0x91,0x64,0x18,0xc2,0xd5,0xab]
+ vcmpps k2, zmm3, zmm29, {sae}, 171
+
+// CHECK: vcmpps k2, zmm3, zmm29, 123
+// CHECK: encoding: [0x62,0x91,0x64,0x48,0xc2,0xd5,0x7b]
+ vcmpps k2, zmm3, zmm29, 123
+
+// CHECK: vcmpps k2, zmm3, zmm29, {sae}, 123
+// CHECK: encoding: [0x62,0x91,0x64,0x18,0xc2,0xd5,0x7b]
+ vcmpps k2, zmm3, zmm29, {sae}, 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0xc2,0x11,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rcx], 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x64,0x48,0xc2,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vcmpps k2, zmm3, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0xc2,0x11,0x7b]
+ vcmpps k2, zmm3, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0xc2,0x52,0x7f,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0xc2,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0xc2,0x52,0x80,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vcmpps k2, zmm3, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x48,0xc2,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vcmpps k2, zmm3, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vcmpps k2, zmm3, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0xc2,0x52,0x7f,0x7b]
+ vcmpps k2, zmm3, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm3, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0xc2,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vcmpps k2, zmm3, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm3, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0xc2,0x52,0x80,0x7b]
+ vcmpps k2, zmm3, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vcmpps k2, zmm3, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x64,0x58,0xc2,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vcmpps k2, zmm3, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vcmpsd k4, xmm5, xmm6, 171
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0xe6,0xab]
+ vcmpsd k4, xmm5, xmm6, 171
+
+// CHECK: vcmpsd k4 {k5}, xmm5, xmm6, 171
+// CHECK: encoding: [0x62,0xf1,0xd7,0x0d,0xc2,0xe6,0xab]
+ vcmpsd k4 {k5}, xmm5, xmm6, 171
+
+// CHECK: vcmpsd k4, xmm5, xmm6, {sae}, 171
+// CHECK: encoding: [0x62,0xf1,0xd7,0x18,0xc2,0xe6,0xab]
+ vcmpsd k4, xmm5, xmm6, {sae}, 171
+
+// CHECK: vcmpsd k4, xmm5, xmm6, 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0xe6,0x7b]
+ vcmpsd k4, xmm5, xmm6, 123
+
+// CHECK: vcmpsd k4, xmm5, xmm6, {sae}, 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x18,0xc2,0xe6,0x7b]
+ vcmpsd k4, xmm5, xmm6, {sae}, 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0x21,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rcx], 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xd7,0x08,0xc2,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0x62,0x7f,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rdx + 1016], 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rdx + 1024], 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0x62,0x80,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rdx - 1024], 123
+
+// CHECK: vcmpsd k4, xmm5, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0xf1,0xd7,0x08,0xc2,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vcmpsd k4, xmm5, qword ptr [rdx - 1032], 123
+
+// CHECK: vcmpss k2, xmm19, xmm24, 171
+// CHECK: encoding: [0x62,0x91,0x66,0x00,0xc2,0xd0,0xab]
+ vcmpss k2, xmm19, xmm24, 171
+
+// CHECK: vcmpss k2 {k1}, xmm19, xmm24, 171
+// CHECK: encoding: [0x62,0x91,0x66,0x01,0xc2,0xd0,0xab]
+ vcmpss k2 {k1}, xmm19, xmm24, 171
+
+// CHECK: vcmpss k2, xmm19, xmm24, {sae}, 171
+// CHECK: encoding: [0x62,0x91,0x66,0x10,0xc2,0xd0,0xab]
+ vcmpss k2, xmm19, xmm24, {sae}, 171
+
+// CHECK: vcmpss k2, xmm19, xmm24, 123
+// CHECK: encoding: [0x62,0x91,0x66,0x00,0xc2,0xd0,0x7b]
+ vcmpss k2, xmm19, xmm24, 123
+
+// CHECK: vcmpss k2, xmm19, xmm24, {sae}, 123
+// CHECK: encoding: [0x62,0x91,0x66,0x10,0xc2,0xd0,0x7b]
+ vcmpss k2, xmm19, xmm24, {sae}, 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x66,0x00,0xc2,0x11,0x7b]
+ vcmpss k2, xmm19, dword ptr [rcx], 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x66,0x00,0xc2,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vcmpss k2, xmm19, dword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0xf1,0x66,0x00,0xc2,0x52,0x7f,0x7b]
+ vcmpss k2, xmm19, dword ptr [rdx + 508], 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0xf1,0x66,0x00,0xc2,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vcmpss k2, xmm19, dword ptr [rdx + 512], 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0xf1,0x66,0x00,0xc2,0x52,0x80,0x7b]
+ vcmpss k2, xmm19, dword ptr [rdx - 512], 123
+
+// CHECK: vcmpss k2, xmm19, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0xf1,0x66,0x00,0xc2,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vcmpss k2, xmm19, dword ptr [rdx - 516], 123
+
+// CHECK: vcomisd xmm13, xmm11
+// CHECK: encoding: [0xc4,0x41,0x79,0x2f,0xeb]
+ vcomisd xmm13, xmm11
+
+// CHECK: vcomisd xmm13, xmm11, {sae}
+// CHECK: encoding: [0x62,0x51,0xfd,0x18,0x2f,0xeb]
+ vcomisd xmm13, xmm11, {sae}
+
+// CHECK: vcomisd xmm13, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x79,0x2f,0x29]
+ vcomisd xmm13, qword ptr [rcx]
+
+// CHECK: vcomisd xmm13, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x79,0x2f,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcomisd xmm13, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcomisd xmm13, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x79,0x2f,0xaa,0xf8,0x03,0x00,0x00]
+ vcomisd xmm13, qword ptr [rdx + 1016]
+
+// CHECK: vcomisd xmm13, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x79,0x2f,0xaa,0x00,0x04,0x00,0x00]
+ vcomisd xmm13, qword ptr [rdx + 1024]
+
+// CHECK: vcomisd xmm13, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x79,0x2f,0xaa,0x00,0xfc,0xff,0xff]
+ vcomisd xmm13, qword ptr [rdx - 1024]
+
+// CHECK: vcomisd xmm13, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x79,0x2f,0xaa,0xf8,0xfb,0xff,0xff]
+ vcomisd xmm13, qword ptr [rdx - 1032]
+
+// CHECK: vcomiss xmm8, xmm15
+// CHECK: encoding: [0xc4,0x41,0x78,0x2f,0xc7]
+ vcomiss xmm8, xmm15
+
+// CHECK: vcomiss xmm8, xmm15, {sae}
+// CHECK: encoding: [0x62,0x51,0x7c,0x18,0x2f,0xc7]
+ vcomiss xmm8, xmm15, {sae}
+
+// CHECK: vcomiss xmm8, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x01]
+ vcomiss xmm8, dword ptr [rcx]
+
+// CHECK: vcomiss xmm8, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x78,0x2f,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcomiss xmm8, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcomiss xmm8, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x82,0xfc,0x01,0x00,0x00]
+ vcomiss xmm8, dword ptr [rdx + 508]
+
+// CHECK: vcomiss xmm8, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x82,0x00,0x02,0x00,0x00]
+ vcomiss xmm8, dword ptr [rdx + 512]
+
+// CHECK: vcomiss xmm8, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x82,0x00,0xfe,0xff,0xff]
+ vcomiss xmm8, dword ptr [rdx - 512]
+
+// CHECK: vcomiss xmm8, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0x78,0x2f,0x82,0xfc,0xfd,0xff,0xff]
+ vcomiss xmm8, dword ptr [rdx - 516]
+
+// CHECK: vcompresspd zmmword ptr [rcx], zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0x31]
+ vcompresspd zmmword ptr [rcx], zmm30
+
+// CHECK: vcompresspd zmmword ptr [rcx] {k7}, zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x4f,0x8a,0x31]
+ vcompresspd zmmword ptr [rcx] {k7}, zmm30
+
+// CHECK: vcompresspd zmmword ptr [rax + 8*r14 + 4660], zmm30
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x8a,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vcompresspd zmmword ptr [rax + 8*r14 + 4660], zmm30
+
+// CHECK: vcompresspd zmmword ptr [rdx + 1016], zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0x72,0x7f]
+ vcompresspd zmmword ptr [rdx + 1016], zmm30
+
+// CHECK: vcompresspd zmmword ptr [rdx + 1024], zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0xb2,0x00,0x04,0x00,0x00]
+ vcompresspd zmmword ptr [rdx + 1024], zmm30
+
+// CHECK: vcompresspd zmmword ptr [rdx - 1024], zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0x72,0x80]
+ vcompresspd zmmword ptr [rdx - 1024], zmm30
+
+// CHECK: vcompresspd zmmword ptr [rdx - 1032], zmm30
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0xb2,0xf8,0xfb,0xff,0xff]
+ vcompresspd zmmword ptr [rdx - 1032], zmm30
+
+// CHECK: vcompresspd zmm1, zmm25
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x8a,0xc9]
+ vcompresspd zmm1, zmm25
+
+// CHECK: vcompresspd zmm1 {k4}, zmm25
+// CHECK: encoding: [0x62,0x62,0xfd,0x4c,0x8a,0xc9]
+ vcompresspd zmm1 {k4}, zmm25
+
+// CHECK: vcompresspd zmm1 {k4} {z}, zmm25
+// CHECK: encoding: [0x62,0x62,0xfd,0xcc,0x8a,0xc9]
+ vcompresspd zmm1 {k4} {z}, zmm25
+
+// CHECK: vcompressps zmmword ptr [rcx], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x11]
+ vcompressps zmmword ptr [rcx], zmm10
+
+// CHECK: vcompressps zmmword ptr [rcx] {k4}, zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x4c,0x8a,0x11]
+ vcompressps zmmword ptr [rcx] {k4}, zmm10
+
+// CHECK: vcompressps zmmword ptr [rax + 8*r14 + 4660], zmm10
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x8a,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vcompressps zmmword ptr [rax + 8*r14 + 4660], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx + 508], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x52,0x7f]
+ vcompressps zmmword ptr [rdx + 508], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx + 512], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x92,0x00,0x02,0x00,0x00]
+ vcompressps zmmword ptr [rdx + 512], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx - 512], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x52,0x80]
+ vcompressps zmmword ptr [rdx - 512], zmm10
+
+// CHECK: vcompressps zmmword ptr [rdx - 516], zmm10
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x8a,0x92,0xfc,0xfd,0xff,0xff]
+ vcompressps zmmword ptr [rdx - 516], zmm10
+
+// CHECK: vcompressps zmm19, zmm7
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x8a,0xfb]
+ vcompressps zmm19, zmm7
+
+// CHECK: vcompressps zmm19 {k3}, zmm7
+// CHECK: encoding: [0x62,0xb2,0x7d,0x4b,0x8a,0xfb]
+ vcompressps zmm19 {k3}, zmm7
+
+// CHECK: vcompressps zmm19 {k3} {z}, zmm7
+// CHECK: encoding: [0x62,0xb2,0x7d,0xcb,0x8a,0xfb]
+ vcompressps zmm19 {k3} {z}, zmm7
+
+// CHECK: vcvtdq2pd zmm28, ymm20
+// CHECK: encoding: [0x62,0x21,0x7e,0x48,0xe6,0xe4]
+ vcvtdq2pd zmm28, ymm20
+
+// CHECK: vcvtdq2pd zmm28 {k2}, ymm20
+// CHECK: encoding: [0x62,0x21,0x7e,0x4a,0xe6,0xe4]
+ vcvtdq2pd zmm28 {k2}, ymm20
+
+// CHECK: vcvtdq2pd zmm28 {k2} {z}, ymm20
+// CHECK: encoding: [0x62,0x21,0x7e,0xca,0xe6,0xe4]
+ vcvtdq2pd zmm28 {k2} {z}, ymm20
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x7e,0x48,0xe6,0x21]
+ vcvtdq2pd zmm28, ymmword ptr [rcx]
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x7e,0x48,0xe6,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vcvtdq2pd zmm28, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtdq2pd zmm28, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0x7e,0x58,0xe6,0x21]
+ vcvtdq2pd zmm28, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x61,0x7e,0x48,0xe6,0x62,0x7f]
+ vcvtdq2pd zmm28, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x61,0x7e,0x48,0xe6,0xa2,0x00,0x10,0x00,0x00]
+ vcvtdq2pd zmm28, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x61,0x7e,0x48,0xe6,0x62,0x80]
+ vcvtdq2pd zmm28, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtdq2pd zmm28, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x61,0x7e,0x48,0xe6,0xa2,0xe0,0xef,0xff,0xff]
+ vcvtdq2pd zmm28, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtdq2pd zmm28, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0x61,0x7e,0x58,0xe6,0x62,0x7f]
+ vcvtdq2pd zmm28, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtdq2pd zmm28, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0x61,0x7e,0x58,0xe6,0xa2,0x00,0x02,0x00,0x00]
+ vcvtdq2pd zmm28, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtdq2pd zmm28, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0x61,0x7e,0x58,0xe6,0x62,0x80]
+ vcvtdq2pd zmm28, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtdq2pd zmm28, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0x61,0x7e,0x58,0xe6,0xa2,0xfc,0xfd,0xff,0xff]
+ vcvtdq2pd zmm28, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtdq2ps zmm19, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0xdc]
+ vcvtdq2ps zmm19, zmm4
+
+// CHECK: vcvtdq2ps zmm19 {k5}, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0x4d,0x5b,0xdc]
+ vcvtdq2ps zmm19 {k5}, zmm4
+
+// CHECK: vcvtdq2ps zmm19 {k5} {z}, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0xcd,0x5b,0xdc]
+ vcvtdq2ps zmm19 {k5} {z}, zmm4
+
+// CHECK: vcvtdq2ps zmm19, zmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x18,0x5b,0xdc]
+ vcvtdq2ps zmm19, zmm4, {rn-sae}
+
+// CHECK: vcvtdq2ps zmm19, zmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0xdc]
+ vcvtdq2ps zmm19, zmm4, {ru-sae}
+
+// CHECK: vcvtdq2ps zmm19, zmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x38,0x5b,0xdc]
+ vcvtdq2ps zmm19, zmm4, {rd-sae}
+
+// CHECK: vcvtdq2ps zmm19, zmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x78,0x5b,0xdc]
+ vcvtdq2ps zmm19, zmm4, {rz-sae}
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0x19]
+ vcvtdq2ps zmm19, zmmword ptr [rcx]
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x5b,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtdq2ps zmm19, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtdq2ps zmm19, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0x19]
+ vcvtdq2ps zmm19, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0x5a,0x7f]
+ vcvtdq2ps zmm19, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0x9a,0x00,0x20,0x00,0x00]
+ vcvtdq2ps zmm19, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0x5a,0x80]
+ vcvtdq2ps zmm19, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtdq2ps zmm19, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x5b,0x9a,0xc0,0xdf,0xff,0xff]
+ vcvtdq2ps zmm19, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtdq2ps zmm19, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0x5a,0x7f]
+ vcvtdq2ps zmm19, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtdq2ps zmm19, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0x9a,0x00,0x02,0x00,0x00]
+ vcvtdq2ps zmm19, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtdq2ps zmm19, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0x5a,0x80]
+ vcvtdq2ps zmm19, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtdq2ps zmm19, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7c,0x58,0x5b,0x9a,0xfc,0xfd,0xff,0xff]
+ vcvtdq2ps zmm19, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtpd2dq ymm6, zmm2
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0xf2]
+ vcvtpd2dq ymm6, zmm2
+
+// CHECK: vcvtpd2dq ymm6 {k6}, zmm2
+// CHECK: encoding: [0x62,0xf1,0xff,0x4e,0xe6,0xf2]
+ vcvtpd2dq ymm6 {k6}, zmm2
+
+// CHECK: vcvtpd2dq ymm6 {k6} {z}, zmm2
+// CHECK: encoding: [0x62,0xf1,0xff,0xce,0xe6,0xf2]
+ vcvtpd2dq ymm6 {k6} {z}, zmm2
+
+// CHECK: vcvtpd2dq ymm6, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x18,0xe6,0xf2]
+ vcvtpd2dq ymm6, zmm2, {rn-sae}
+
+// CHECK: vcvtpd2dq ymm6, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0xf2]
+ vcvtpd2dq ymm6, zmm2, {ru-sae}
+
+// CHECK: vcvtpd2dq ymm6, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x38,0xe6,0xf2]
+ vcvtpd2dq ymm6, zmm2, {rd-sae}
+
+// CHECK: vcvtpd2dq ymm6, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x78,0xe6,0xf2]
+ vcvtpd2dq ymm6, zmm2, {rz-sae}
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0x31]
+ vcvtpd2dq ymm6, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xff,0x48,0xe6,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vcvtpd2dq ymm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtpd2dq ymm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0x31]
+ vcvtpd2dq ymm6, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0x72,0x7f]
+ vcvtpd2dq ymm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0xb2,0x00,0x20,0x00,0x00]
+ vcvtpd2dq ymm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0x72,0x80]
+ vcvtpd2dq ymm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2dq ymm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0xe6,0xb2,0xc0,0xdf,0xff,0xff]
+ vcvtpd2dq ymm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2dq ymm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0x72,0x7f]
+ vcvtpd2dq ymm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2dq ymm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0xb2,0x00,0x04,0x00,0x00]
+ vcvtpd2dq ymm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2dq ymm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0x72,0x80]
+ vcvtpd2dq ymm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2dq ymm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xff,0x58,0xe6,0xb2,0xf8,0xfb,0xff,0xff]
+ vcvtpd2dq ymm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtpd2ps ymm16, zmm10
+// CHECK: encoding: [0x62,0xc1,0xfd,0x48,0x5a,0xc2]
+ vcvtpd2ps ymm16, zmm10
+
+// CHECK: vcvtpd2ps ymm16 {k2}, zmm10
+// CHECK: encoding: [0x62,0xc1,0xfd,0x4a,0x5a,0xc2]
+ vcvtpd2ps ymm16 {k2}, zmm10
+
+// CHECK: vcvtpd2ps ymm16 {k2} {z}, zmm10
+// CHECK: encoding: [0x62,0xc1,0xfd,0xca,0x5a,0xc2]
+ vcvtpd2ps ymm16 {k2} {z}, zmm10
+
+// CHECK: vcvtpd2ps ymm16, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0xfd,0x18,0x5a,0xc2]
+ vcvtpd2ps ymm16, zmm10, {rn-sae}
+
+// CHECK: vcvtpd2ps ymm16, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0xfd,0x58,0x5a,0xc2]
+ vcvtpd2ps ymm16, zmm10, {ru-sae}
+
+// CHECK: vcvtpd2ps ymm16, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0xfd,0x38,0x5a,0xc2]
+ vcvtpd2ps ymm16, zmm10, {rd-sae}
+
+// CHECK: vcvtpd2ps ymm16, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0xfd,0x78,0x5a,0xc2]
+ vcvtpd2ps ymm16, zmm10, {rz-sae}
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x5a,0x01]
+ vcvtpd2ps ymm16, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x5a,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtpd2ps ymm16, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtpd2ps ymm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x5a,0x01]
+ vcvtpd2ps ymm16, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x5a,0x42,0x7f]
+ vcvtpd2ps ymm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x5a,0x82,0x00,0x20,0x00,0x00]
+ vcvtpd2ps ymm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x5a,0x42,0x80]
+ vcvtpd2ps ymm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2ps ymm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x5a,0x82,0xc0,0xdf,0xff,0xff]
+ vcvtpd2ps ymm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2ps ymm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x5a,0x42,0x7f]
+ vcvtpd2ps ymm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2ps ymm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x5a,0x82,0x00,0x04,0x00,0x00]
+ vcvtpd2ps ymm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2ps ymm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x5a,0x42,0x80]
+ vcvtpd2ps ymm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2ps ymm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x58,0x5a,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtpd2ps ymm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtpd2udq ymm25, zmm25
+// CHECK: encoding: [0x62,0x01,0xfc,0x48,0x79,0xc9]
+ vcvtpd2udq ymm25, zmm25
+
+// CHECK: vcvtpd2udq ymm25 {k1}, zmm25
+// CHECK: encoding: [0x62,0x01,0xfc,0x49,0x79,0xc9]
+ vcvtpd2udq ymm25 {k1}, zmm25
+
+// CHECK: vcvtpd2udq ymm25 {k1} {z}, zmm25
+// CHECK: encoding: [0x62,0x01,0xfc,0xc9,0x79,0xc9]
+ vcvtpd2udq ymm25 {k1} {z}, zmm25
+
+// CHECK: vcvtpd2udq ymm25, zmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x01,0xfc,0x18,0x79,0xc9]
+ vcvtpd2udq ymm25, zmm25, {rn-sae}
+
+// CHECK: vcvtpd2udq ymm25, zmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x01,0xfc,0x58,0x79,0xc9]
+ vcvtpd2udq ymm25, zmm25, {ru-sae}
+
+// CHECK: vcvtpd2udq ymm25, zmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x01,0xfc,0x38,0x79,0xc9]
+ vcvtpd2udq ymm25, zmm25, {rd-sae}
+
+// CHECK: vcvtpd2udq ymm25, zmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x01,0xfc,0x78,0x79,0xc9]
+ vcvtpd2udq ymm25, zmm25, {rz-sae}
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xfc,0x48,0x79,0x09]
+ vcvtpd2udq ymm25, zmmword ptr [rcx]
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xfc,0x48,0x79,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtpd2udq ymm25, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtpd2udq ymm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfc,0x58,0x79,0x09]
+ vcvtpd2udq ymm25, qword ptr [rcx]{1to8}
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xfc,0x48,0x79,0x4a,0x7f]
+ vcvtpd2udq ymm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xfc,0x48,0x79,0x8a,0x00,0x20,0x00,0x00]
+ vcvtpd2udq ymm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xfc,0x48,0x79,0x4a,0x80]
+ vcvtpd2udq ymm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtpd2udq ymm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xfc,0x48,0x79,0x8a,0xc0,0xdf,0xff,0xff]
+ vcvtpd2udq ymm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtpd2udq ymm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfc,0x58,0x79,0x4a,0x7f]
+ vcvtpd2udq ymm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvtpd2udq ymm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfc,0x58,0x79,0x8a,0x00,0x04,0x00,0x00]
+ vcvtpd2udq ymm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvtpd2udq ymm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfc,0x58,0x79,0x4a,0x80]
+ vcvtpd2udq ymm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvtpd2udq ymm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xfc,0x58,0x79,0x8a,0xf8,0xfb,0xff,0xff]
+ vcvtpd2udq ymm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvtph2ps zmm9, ymm21
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x13,0xcd]
+ vcvtph2ps zmm9, ymm21
+
+// CHECK: vcvtph2ps zmm9 {k3}, ymm21
+// CHECK: encoding: [0x62,0x32,0x7d,0x4b,0x13,0xcd]
+ vcvtph2ps zmm9 {k3}, ymm21
+
+// CHECK: vcvtph2ps zmm9 {k3} {z}, ymm21
+// CHECK: encoding: [0x62,0x32,0x7d,0xcb,0x13,0xcd]
+ vcvtph2ps zmm9 {k3} {z}, ymm21
+
+// CHECK: vcvtph2ps zmm9, ymm21, {sae}
+// CHECK: encoding: [0x62,0x32,0x7d,0x18,0x13,0xcd]
+ vcvtph2ps zmm9, ymm21, {sae}
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x09]
+ vcvtph2ps zmm9, ymmword ptr [rcx]
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x13,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtph2ps zmm9, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x4a,0x7f]
+ vcvtph2ps zmm9, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x8a,0x00,0x10,0x00,0x00]
+ vcvtph2ps zmm9, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x4a,0x80]
+ vcvtph2ps zmm9, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtph2ps zmm9, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x13,0x8a,0xe0,0xef,0xff,0xff]
+ vcvtph2ps zmm9, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtps2dq zmm16, zmm6
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0xc6]
+ vcvtps2dq zmm16, zmm6
+
+// CHECK: vcvtps2dq zmm16 {k2}, zmm6
+// CHECK: encoding: [0x62,0xe1,0x7d,0x4a,0x5b,0xc6]
+ vcvtps2dq zmm16 {k2}, zmm6
+
+// CHECK: vcvtps2dq zmm16 {k2} {z}, zmm6
+// CHECK: encoding: [0x62,0xe1,0x7d,0xca,0x5b,0xc6]
+ vcvtps2dq zmm16 {k2} {z}, zmm6
+
+// CHECK: vcvtps2dq zmm16, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x18,0x5b,0xc6]
+ vcvtps2dq zmm16, zmm6, {rn-sae}
+
+// CHECK: vcvtps2dq zmm16, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0xc6]
+ vcvtps2dq zmm16, zmm6, {ru-sae}
+
+// CHECK: vcvtps2dq zmm16, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x38,0x5b,0xc6]
+ vcvtps2dq zmm16, zmm6, {rd-sae}
+
+// CHECK: vcvtps2dq zmm16, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x78,0x5b,0xc6]
+ vcvtps2dq zmm16, zmm6, {rz-sae}
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0x01]
+ vcvtps2dq zmm16, zmmword ptr [rcx]
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x5b,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtps2dq zmm16, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtps2dq zmm16, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0x01]
+ vcvtps2dq zmm16, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0x42,0x7f]
+ vcvtps2dq zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0x82,0x00,0x20,0x00,0x00]
+ vcvtps2dq zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0x42,0x80]
+ vcvtps2dq zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtps2dq zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x5b,0x82,0xc0,0xdf,0xff,0xff]
+ vcvtps2dq zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtps2dq zmm16, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0x42,0x7f]
+ vcvtps2dq zmm16, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtps2dq zmm16, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0x82,0x00,0x02,0x00,0x00]
+ vcvtps2dq zmm16, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtps2dq zmm16, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0x42,0x80]
+ vcvtps2dq zmm16, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtps2dq zmm16, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7d,0x58,0x5b,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtps2dq zmm16, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtps2pd zmm11, ymm24
+// CHECK: encoding: [0x62,0x11,0x7c,0x48,0x5a,0xd8]
+ vcvtps2pd zmm11, ymm24
+
+// CHECK: vcvtps2pd zmm11 {k3}, ymm24
+// CHECK: encoding: [0x62,0x11,0x7c,0x4b,0x5a,0xd8]
+ vcvtps2pd zmm11 {k3}, ymm24
+
+// CHECK: vcvtps2pd zmm11 {k3} {z}, ymm24
+// CHECK: encoding: [0x62,0x11,0x7c,0xcb,0x5a,0xd8]
+ vcvtps2pd zmm11 {k3} {z}, ymm24
+
+// CHECK: vcvtps2pd zmm11, ymm24, {sae}
+// CHECK: encoding: [0x62,0x11,0x7c,0x18,0x5a,0xd8]
+ vcvtps2pd zmm11, ymm24, {sae}
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x19]
+ vcvtps2pd zmm11, ymmword ptr [rcx]
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7c,0x48,0x5a,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtps2pd zmm11, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtps2pd zmm11, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x19]
+ vcvtps2pd zmm11, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x5a,0x7f]
+ vcvtps2pd zmm11, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x9a,0x00,0x10,0x00,0x00]
+ vcvtps2pd zmm11, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x5a,0x80]
+ vcvtps2pd zmm11, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtps2pd zmm11, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x71,0x7c,0x48,0x5a,0x9a,0xe0,0xef,0xff,0xff]
+ vcvtps2pd zmm11, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtps2pd zmm11, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x5a,0x7f]
+ vcvtps2pd zmm11, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtps2pd zmm11, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x9a,0x00,0x02,0x00,0x00]
+ vcvtps2pd zmm11, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtps2pd zmm11, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x5a,0x80]
+ vcvtps2pd zmm11, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtps2pd zmm11, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0x71,0x7c,0x58,0x5a,0x9a,0xfc,0xfd,0xff,0xff]
+ vcvtps2pd zmm11, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtps2ph ymm9, zmm22, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x1d,0xf1,0xab]
+ vcvtps2ph ymm9, zmm22, 171
+
+// CHECK: vcvtps2ph ymm9 {k7}, zmm22, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x4f,0x1d,0xf1,0xab]
+ vcvtps2ph ymm9 {k7}, zmm22, 171
+
+// CHECK: vcvtps2ph ymm9 {k7} {z}, zmm22, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0xcf,0x1d,0xf1,0xab]
+ vcvtps2ph ymm9 {k7} {z}, zmm22, 171
+
+// CHECK: vcvtps2ph ymm9, zmm22, {sae}, 171
+// CHECK: encoding: [0x62,0xc3,0x7d,0x18,0x1d,0xf1,0xab]
+ vcvtps2ph ymm9, zmm22, {sae}, 171
+
+// CHECK: vcvtps2ph ymm9, zmm22, 123
+// CHECK: encoding: [0x62,0xc3,0x7d,0x48,0x1d,0xf1,0x7b]
+ vcvtps2ph ymm9, zmm22, 123
+
+// CHECK: vcvtps2ph ymm9, zmm22, {sae}, 123
+// CHECK: encoding: [0x62,0xc3,0x7d,0x18,0x1d,0xf1,0x7b]
+ vcvtps2ph ymm9, zmm22, {sae}, 123
+
+// CHECK: vcvtps2udq zmm5, zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0xec]
+ vcvtps2udq zmm5, zmm4
+
+// CHECK: vcvtps2udq zmm5 {k5}, zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x4d,0x79,0xec]
+ vcvtps2udq zmm5 {k5}, zmm4
+
+// CHECK: vcvtps2udq zmm5 {k5} {z}, zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0xcd,0x79,0xec]
+ vcvtps2udq zmm5 {k5} {z}, zmm4
+
+// CHECK: vcvtps2udq zmm5, zmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x18,0x79,0xec]
+ vcvtps2udq zmm5, zmm4, {rn-sae}
+
+// CHECK: vcvtps2udq zmm5, zmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0xec]
+ vcvtps2udq zmm5, zmm4, {ru-sae}
+
+// CHECK: vcvtps2udq zmm5, zmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x38,0x79,0xec]
+ vcvtps2udq zmm5, zmm4, {rd-sae}
+
+// CHECK: vcvtps2udq zmm5, zmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x78,0x79,0xec]
+ vcvtps2udq zmm5, zmm4, {rz-sae}
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0x29]
+ vcvtps2udq zmm5, zmmword ptr [rcx]
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x79,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtps2udq zmm5, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtps2udq zmm5, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0x29]
+ vcvtps2udq zmm5, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0x6a,0x7f]
+ vcvtps2udq zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0xaa,0x00,0x20,0x00,0x00]
+ vcvtps2udq zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0x6a,0x80]
+ vcvtps2udq zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtps2udq zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x79,0xaa,0xc0,0xdf,0xff,0xff]
+ vcvtps2udq zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtps2udq zmm5, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0x6a,0x7f]
+ vcvtps2udq zmm5, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtps2udq zmm5, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0xaa,0x00,0x02,0x00,0x00]
+ vcvtps2udq zmm5, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtps2udq zmm5, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0x6a,0x80]
+ vcvtps2udq zmm5, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtps2udq zmm5, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x79,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtps2udq zmm5, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvtsd2si eax, xmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2d,0xc4]
+ vcvtsd2si eax, xmm4, {rn-sae}
+
+// CHECK: vcvtsd2si eax, xmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x2d,0xc4]
+ vcvtsd2si eax, xmm4, {ru-sae}
+
+// CHECK: vcvtsd2si eax, xmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x38,0x2d,0xc4]
+ vcvtsd2si eax, xmm4, {rd-sae}
+
+// CHECK: vcvtsd2si eax, xmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x78,0x2d,0xc4]
+ vcvtsd2si eax, xmm4, {rz-sae}
+
+// CHECK: vcvtsd2si ebp, xmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2d,0xec]
+ vcvtsd2si ebp, xmm4, {rn-sae}
+
+// CHECK: vcvtsd2si ebp, xmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x2d,0xec]
+ vcvtsd2si ebp, xmm4, {ru-sae}
+
+// CHECK: vcvtsd2si ebp, xmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x38,0x2d,0xec]
+ vcvtsd2si ebp, xmm4, {rd-sae}
+
+// CHECK: vcvtsd2si ebp, xmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x78,0x2d,0xec]
+ vcvtsd2si ebp, xmm4, {rz-sae}
+
+// CHECK: vcvtsd2si r13d, xmm4, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x18,0x2d,0xec]
+ vcvtsd2si r13d, xmm4, {rn-sae}
+
+// CHECK: vcvtsd2si r13d, xmm4, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x58,0x2d,0xec]
+ vcvtsd2si r13d, xmm4, {ru-sae}
+
+// CHECK: vcvtsd2si r13d, xmm4, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x38,0x2d,0xec]
+ vcvtsd2si r13d, xmm4, {rd-sae}
+
+// CHECK: vcvtsd2si r13d, xmm4, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x78,0x2d,0xec]
+ vcvtsd2si r13d, xmm4, {rz-sae}
+
+// CHECK: vcvtsd2si rax, xmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0xff,0x18,0x2d,0xc3]
+ vcvtsd2si rax, xmm27, {rn-sae}
+
+// CHECK: vcvtsd2si rax, xmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0xff,0x58,0x2d,0xc3]
+ vcvtsd2si rax, xmm27, {ru-sae}
+
+// CHECK: vcvtsd2si rax, xmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0xff,0x38,0x2d,0xc3]
+ vcvtsd2si rax, xmm27, {rd-sae}
+
+// CHECK: vcvtsd2si rax, xmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0xff,0x78,0x2d,0xc3]
+ vcvtsd2si rax, xmm27, {rz-sae}
+
+// CHECK: vcvtsd2si r8, xmm27, {rn-sae}
+// CHECK: encoding: [0x62,0x11,0xff,0x18,0x2d,0xc3]
+ vcvtsd2si r8, xmm27, {rn-sae}
+
+// CHECK: vcvtsd2si r8, xmm27, {ru-sae}
+// CHECK: encoding: [0x62,0x11,0xff,0x58,0x2d,0xc3]
+ vcvtsd2si r8, xmm27, {ru-sae}
+
+// CHECK: vcvtsd2si r8, xmm27, {rd-sae}
+// CHECK: encoding: [0x62,0x11,0xff,0x38,0x2d,0xc3]
+ vcvtsd2si r8, xmm27, {rd-sae}
+
+// CHECK: vcvtsd2si r8, xmm27, {rz-sae}
+// CHECK: encoding: [0x62,0x11,0xff,0x78,0x2d,0xc3]
+ vcvtsd2si r8, xmm27, {rz-sae}
+
+// CHECK: vcvtsi2sd xmm4, xmm9, eax
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xe0]
+ vcvtsi2sd xmm4, xmm9, eax
+
+// CHECK: vcvtsi2sd xmm4, xmm9, ebp
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xe5]
+ vcvtsi2sd xmm4, xmm9, ebp
+
+// CHECK: vcvtsi2sd xmm4, xmm9, r13d
+// CHECK: encoding: [0xc4,0xc1,0x33,0x2a,0xe5]
+ vcvtsi2sd xmm4, xmm9, r13d
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0xb3,0x2a,0x21]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rcx]
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa1,0x33,0x2a,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xa2,0xfc,0x01,0x00,0x00]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rdx + 508]
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xa2,0x00,0x02,0x00,0x00]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rdx + 512]
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xa2,0x00,0xfe,0xff,0xff]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rdx - 512]
+
+// CHECK: vcvtsi2sd xmm4, xmm9, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0xb3,0x2a,0xa2,0xfc,0xfd,0xff,0xff]
+ vcvtsi2sd xmm4, xmm9, dword ptr [rdx - 516]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, rax
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, rax
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rn-sae}, rax
+// CHECK: encoding: [0x62,0x61,0xf7,0x10,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rn-sae}, rax
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {ru-sae}, rax
+// CHECK: encoding: [0x62,0x61,0xf7,0x50,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {ru-sae}, rax
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rd-sae}, rax
+// CHECK: encoding: [0x62,0x61,0xf7,0x30,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rd-sae}, rax
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rz-sae}, rax
+// CHECK: encoding: [0x62,0x61,0xf7,0x70,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rz-sae}, rax
+
+// CHECK: vcvtsi2sd xmm24, xmm17, r8
+// CHECK: encoding: [0x62,0x41,0xf7,0x00,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, r8
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rn-sae}, r8
+// CHECK: encoding: [0x62,0x41,0xf7,0x10,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rn-sae}, r8
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {ru-sae}, r8
+// CHECK: encoding: [0x62,0x41,0xf7,0x50,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {ru-sae}, r8
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rd-sae}, r8
+// CHECK: encoding: [0x62,0x41,0xf7,0x30,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rd-sae}, r8
+
+// CHECK: vcvtsi2sd xmm24, xmm17, {rz-sae}, r8
+// CHECK: encoding: [0x62,0x41,0xf7,0x70,0x2a,0xc0]
+ vcvtsi2sd xmm24, xmm17, {rz-sae}, r8
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0x01]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rcx]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xf7,0x00,0x2a,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0x42,0x7f]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0x82,0x00,0x04,0x00,0x00]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0x42,0x80]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsi2sd xmm24, xmm17, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0xf7,0x00,0x2a,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsi2sd xmm24, xmm17, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, eax
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0xc8]
+ vcvtsi2ss xmm25, xmm28, eax
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rn-sae}, eax
+// CHECK: encoding: [0x62,0x61,0x1e,0x10,0x2a,0xc8]
+ vcvtsi2ss xmm25, xmm28, {rn-sae}, eax
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {ru-sae}, eax
+// CHECK: encoding: [0x62,0x61,0x1e,0x50,0x2a,0xc8]
+ vcvtsi2ss xmm25, xmm28, {ru-sae}, eax
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rd-sae}, eax
+// CHECK: encoding: [0x62,0x61,0x1e,0x30,0x2a,0xc8]
+ vcvtsi2ss xmm25, xmm28, {rd-sae}, eax
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rz-sae}, eax
+// CHECK: encoding: [0x62,0x61,0x1e,0x70,0x2a,0xc8]
+ vcvtsi2ss xmm25, xmm28, {rz-sae}, eax
+
+// CHECK: vcvtsi2ss xmm25, xmm28, ebp
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, ebp
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rn-sae}, ebp
+// CHECK: encoding: [0x62,0x61,0x1e,0x10,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rn-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {ru-sae}, ebp
+// CHECK: encoding: [0x62,0x61,0x1e,0x50,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {ru-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rd-sae}, ebp
+// CHECK: encoding: [0x62,0x61,0x1e,0x30,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rd-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rz-sae}, ebp
+// CHECK: encoding: [0x62,0x61,0x1e,0x70,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rz-sae}, ebp
+
+// CHECK: vcvtsi2ss xmm25, xmm28, r13d
+// CHECK: encoding: [0x62,0x41,0x1e,0x00,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, r13d
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rn-sae}, r13d
+// CHECK: encoding: [0x62,0x41,0x1e,0x10,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rn-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {ru-sae}, r13d
+// CHECK: encoding: [0x62,0x41,0x1e,0x50,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {ru-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rd-sae}, r13d
+// CHECK: encoding: [0x62,0x41,0x1e,0x30,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rd-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm25, xmm28, {rz-sae}, r13d
+// CHECK: encoding: [0x62,0x41,0x1e,0x70,0x2a,0xcd]
+ vcvtsi2ss xmm25, xmm28, {rz-sae}, r13d
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0x09]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rcx]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x1e,0x00,0x2a,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0x4a,0x7f]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rdx + 508]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0x8a,0x00,0x02,0x00,0x00]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rdx + 512]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0x4a,0x80]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rdx - 512]
+
+// CHECK: vcvtsi2ss xmm25, xmm28, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x1e,0x00,0x2a,0x8a,0xfc,0xfd,0xff,0xff]
+ vcvtsi2ss xmm25, xmm28, dword ptr [rdx - 516]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, rax
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, rax
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rn-sae}, rax
+// CHECK: encoding: [0x62,0xf1,0xbe,0x18,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rn-sae}, rax
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {ru-sae}, rax
+// CHECK: encoding: [0x62,0xf1,0xbe,0x58,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {ru-sae}, rax
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rd-sae}, rax
+// CHECK: encoding: [0x62,0xf1,0xbe,0x38,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rd-sae}, rax
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rz-sae}, rax
+// CHECK: encoding: [0x62,0xf1,0xbe,0x78,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rz-sae}, rax
+
+// CHECK: vcvtsi2ss xmm4, xmm8, r8
+// CHECK: encoding: [0xc4,0xc1,0xba,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, r8
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rn-sae}, r8
+// CHECK: encoding: [0x62,0xd1,0xbe,0x18,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rn-sae}, r8
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {ru-sae}, r8
+// CHECK: encoding: [0x62,0xd1,0xbe,0x58,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {ru-sae}, r8
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rd-sae}, r8
+// CHECK: encoding: [0x62,0xd1,0xbe,0x38,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rd-sae}, r8
+
+// CHECK: vcvtsi2ss xmm4, xmm8, {rz-sae}, r8
+// CHECK: encoding: [0x62,0xd1,0xbe,0x78,0x2a,0xe0]
+ vcvtsi2ss xmm4, xmm8, {rz-sae}, r8
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0x21]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rcx]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa1,0xba,0x2a,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0xa2,0xf8,0x03,0x00,0x00]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0xa2,0x00,0x04,0x00,0x00]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0xa2,0x00,0xfc,0xff,0xff]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsi2ss xmm4, xmm8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe1,0xba,0x2a,0xa2,0xf8,0xfb,0xff,0xff]
+ vcvtsi2ss xmm4, xmm8, qword ptr [rdx - 1032]
+
+// CHECK: vcvtss2si eax, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x18,0x2d,0xc0]
+ vcvtss2si eax, xmm8, {rn-sae}
+
+// CHECK: vcvtss2si eax, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x58,0x2d,0xc0]
+ vcvtss2si eax, xmm8, {ru-sae}
+
+// CHECK: vcvtss2si eax, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x38,0x2d,0xc0]
+ vcvtss2si eax, xmm8, {rd-sae}
+
+// CHECK: vcvtss2si eax, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x78,0x2d,0xc0]
+ vcvtss2si eax, xmm8, {rz-sae}
+
+// CHECK: vcvtss2si ebp, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x18,0x2d,0xe8]
+ vcvtss2si ebp, xmm8, {rn-sae}
+
+// CHECK: vcvtss2si ebp, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x58,0x2d,0xe8]
+ vcvtss2si ebp, xmm8, {ru-sae}
+
+// CHECK: vcvtss2si ebp, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x38,0x2d,0xe8]
+ vcvtss2si ebp, xmm8, {rd-sae}
+
+// CHECK: vcvtss2si ebp, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0x7e,0x78,0x2d,0xe8]
+ vcvtss2si ebp, xmm8, {rz-sae}
+
+// CHECK: vcvtss2si r13d, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0x51,0x7e,0x18,0x2d,0xe8]
+ vcvtss2si r13d, xmm8, {rn-sae}
+
+// CHECK: vcvtss2si r13d, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0x51,0x7e,0x58,0x2d,0xe8]
+ vcvtss2si r13d, xmm8, {ru-sae}
+
+// CHECK: vcvtss2si r13d, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0x51,0x7e,0x38,0x2d,0xe8]
+ vcvtss2si r13d, xmm8, {rd-sae}
+
+// CHECK: vcvtss2si r13d, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0x51,0x7e,0x78,0x2d,0xe8]
+ vcvtss2si r13d, xmm8, {rz-sae}
+
+// CHECK: vcvtss2si rax, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x18,0x2d,0xc6]
+ vcvtss2si rax, xmm6, {rn-sae}
+
+// CHECK: vcvtss2si rax, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x58,0x2d,0xc6]
+ vcvtss2si rax, xmm6, {ru-sae}
+
+// CHECK: vcvtss2si rax, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x38,0x2d,0xc6]
+ vcvtss2si rax, xmm6, {rd-sae}
+
+// CHECK: vcvtss2si rax, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x78,0x2d,0xc6]
+ vcvtss2si rax, xmm6, {rz-sae}
+
+// CHECK: vcvtss2si r8, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x18,0x2d,0xc6]
+ vcvtss2si r8, xmm6, {rn-sae}
+
+// CHECK: vcvtss2si r8, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x58,0x2d,0xc6]
+ vcvtss2si r8, xmm6, {ru-sae}
+
+// CHECK: vcvtss2si r8, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x38,0x2d,0xc6]
+ vcvtss2si r8, xmm6, {rd-sae}
+
+// CHECK: vcvtss2si r8, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x78,0x2d,0xc6]
+ vcvtss2si r8, xmm6, {rz-sae}
+
+// CHECK: vcvttpd2dq ymm4, zmm1
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0xe1]
+ vcvttpd2dq ymm4, zmm1
+
+// CHECK: vcvttpd2dq ymm4 {k6}, zmm1
+// CHECK: encoding: [0x62,0xf1,0xfd,0x4e,0xe6,0xe1]
+ vcvttpd2dq ymm4 {k6}, zmm1
+
+// CHECK: vcvttpd2dq ymm4 {k6} {z}, zmm1
+// CHECK: encoding: [0x62,0xf1,0xfd,0xce,0xe6,0xe1]
+ vcvttpd2dq ymm4 {k6} {z}, zmm1
+
+// CHECK: vcvttpd2dq ymm4, zmm1, {sae}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x18,0xe6,0xe1]
+ vcvttpd2dq ymm4, zmm1, {sae}
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0x21]
+ vcvttpd2dq ymm4, zmmword ptr [rcx]
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xfd,0x48,0xe6,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vcvttpd2dq ymm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttpd2dq ymm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0xe6,0x21]
+ vcvttpd2dq ymm4, qword ptr [rcx]{1to8}
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0x62,0x7f]
+ vcvttpd2dq ymm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0xa2,0x00,0x20,0x00,0x00]
+ vcvttpd2dq ymm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0x62,0x80]
+ vcvttpd2dq ymm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttpd2dq ymm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xfd,0x48,0xe6,0xa2,0xc0,0xdf,0xff,0xff]
+ vcvttpd2dq ymm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttpd2dq ymm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0xe6,0x62,0x7f]
+ vcvttpd2dq ymm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvttpd2dq ymm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0xe6,0xa2,0x00,0x04,0x00,0x00]
+ vcvttpd2dq ymm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvttpd2dq ymm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0xe6,0x62,0x80]
+ vcvttpd2dq ymm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvttpd2dq ymm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xfd,0x58,0xe6,0xa2,0xf8,0xfb,0xff,0xff]
+ vcvttpd2dq ymm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvttps2dq zmm23, zmm28
+// CHECK: encoding: [0x62,0x81,0x7e,0x48,0x5b,0xfc]
+ vcvttps2dq zmm23, zmm28
+
+// CHECK: vcvttps2dq zmm23 {k3}, zmm28
+// CHECK: encoding: [0x62,0x81,0x7e,0x4b,0x5b,0xfc]
+ vcvttps2dq zmm23 {k3}, zmm28
+
+// CHECK: vcvttps2dq zmm23 {k3} {z}, zmm28
+// CHECK: encoding: [0x62,0x81,0x7e,0xcb,0x5b,0xfc]
+ vcvttps2dq zmm23 {k3} {z}, zmm28
+
+// CHECK: vcvttps2dq zmm23, zmm28, {sae}
+// CHECK: encoding: [0x62,0x81,0x7e,0x18,0x5b,0xfc]
+ vcvttps2dq zmm23, zmm28, {sae}
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x5b,0x39]
+ vcvttps2dq zmm23, zmmword ptr [rcx]
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x5b,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vcvttps2dq zmm23, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttps2dq zmm23, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x5b,0x39]
+ vcvttps2dq zmm23, dword ptr [rcx]{1to16}
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x5b,0x7a,0x7f]
+ vcvttps2dq zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x5b,0xba,0x00,0x20,0x00,0x00]
+ vcvttps2dq zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x5b,0x7a,0x80]
+ vcvttps2dq zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttps2dq zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x5b,0xba,0xc0,0xdf,0xff,0xff]
+ vcvttps2dq zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttps2dq zmm23, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x5b,0x7a,0x7f]
+ vcvttps2dq zmm23, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvttps2dq zmm23, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x5b,0xba,0x00,0x02,0x00,0x00]
+ vcvttps2dq zmm23, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvttps2dq zmm23, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x5b,0x7a,0x80]
+ vcvttps2dq zmm23, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvttps2dq zmm23, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x5b,0xba,0xfc,0xfd,0xff,0xff]
+ vcvttps2dq zmm23, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvttsd2si eax, xmm5, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2c,0xc5]
+ vcvttsd2si eax, xmm5, {sae}
+
+// CHECK: vcvttsd2si ebp, xmm5, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x18,0x2c,0xed]
+ vcvttsd2si ebp, xmm5, {sae}
+
+// CHECK: vcvttsd2si r13d, xmm5, {sae}
+// CHECK: encoding: [0x62,0x71,0x7f,0x18,0x2c,0xed]
+ vcvttsd2si r13d, xmm5, {sae}
+
+// CHECK: vcvttsd2si rax, xmm7, {sae}
+// CHECK: encoding: [0x62,0xf1,0xff,0x18,0x2c,0xc7]
+ vcvttsd2si rax, xmm7, {sae}
+
+// CHECK: vcvttsd2si r8, xmm7, {sae}
+// CHECK: encoding: [0x62,0x71,0xff,0x18,0x2c,0xc7]
+ vcvttsd2si r8, xmm7, {sae}
+
+// CHECK: vcvttss2si eax, xmm4, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x18,0x2c,0xc4]
+ vcvttss2si eax, xmm4, {sae}
+
+// CHECK: vcvttss2si ebp, xmm4, {sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x18,0x2c,0xec]
+ vcvttss2si ebp, xmm4, {sae}
+
+// CHECK: vcvttss2si r13d, xmm4, {sae}
+// CHECK: encoding: [0x62,0x71,0x7e,0x18,0x2c,0xec]
+ vcvttss2si r13d, xmm4, {sae}
+
+// CHECK: vcvttss2si rax, xmm27, {sae}
+// CHECK: encoding: [0x62,0x91,0xfe,0x18,0x2c,0xc3]
+ vcvttss2si rax, xmm27, {sae}
+
+// CHECK: vcvttss2si r8, xmm27, {sae}
+// CHECK: encoding: [0x62,0x11,0xfe,0x18,0x2c,0xc3]
+ vcvttss2si r8, xmm27, {sae}
+
+// CHECK: vcvtudq2pd zmm18, ymm28
+// CHECK: encoding: [0x62,0x81,0x7e,0x48,0x7a,0xd4]
+ vcvtudq2pd zmm18, ymm28
+
+// CHECK: vcvtudq2pd zmm18 {k1}, ymm28
+// CHECK: encoding: [0x62,0x81,0x7e,0x49,0x7a,0xd4]
+ vcvtudq2pd zmm18 {k1}, ymm28
+
+// CHECK: vcvtudq2pd zmm18 {k1} {z}, ymm28
+// CHECK: encoding: [0x62,0x81,0x7e,0xc9,0x7a,0xd4]
+ vcvtudq2pd zmm18 {k1} {z}, ymm28
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x11]
+ vcvtudq2pd zmm18, ymmword ptr [rcx]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x7a,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vcvtudq2pd zmm18, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x11]
+ vcvtudq2pd zmm18, dword ptr [rcx]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x52,0x7f]
+ vcvtudq2pd zmm18, ymmword ptr [rdx + 4064]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x92,0x00,0x10,0x00,0x00]
+ vcvtudq2pd zmm18, ymmword ptr [rdx + 4096]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x52,0x80]
+ vcvtudq2pd zmm18, ymmword ptr [rdx - 4096]
+
+// CHECK: vcvtudq2pd zmm18, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x7a,0x92,0xe0,0xef,0xff,0xff]
+ vcvtudq2pd zmm18, ymmword ptr [rdx - 4128]
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx + 508]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x52,0x7f]
+ vcvtudq2pd zmm18, dword ptr [rdx + 508]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx + 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x92,0x00,0x02,0x00,0x00]
+ vcvtudq2pd zmm18, dword ptr [rdx + 512]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx - 512]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x52,0x80]
+ vcvtudq2pd zmm18, dword ptr [rdx - 512]{1to8}
+
+// CHECK: vcvtudq2pd zmm18, dword ptr [rdx - 516]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x7e,0x58,0x7a,0x92,0xfc,0xfd,0xff,0xff]
+ vcvtudq2pd zmm18, dword ptr [rdx - 516]{1to8}
+
+// CHECK: vcvtudq2ps zmm7, zmm24
+// CHECK: encoding: [0x62,0x91,0x7f,0x48,0x7a,0xf8]
+ vcvtudq2ps zmm7, zmm24
+
+// CHECK: vcvtudq2ps zmm7 {k7}, zmm24
+// CHECK: encoding: [0x62,0x91,0x7f,0x4f,0x7a,0xf8]
+ vcvtudq2ps zmm7 {k7}, zmm24
+
+// CHECK: vcvtudq2ps zmm7 {k7} {z}, zmm24
+// CHECK: encoding: [0x62,0x91,0x7f,0xcf,0x7a,0xf8]
+ vcvtudq2ps zmm7 {k7} {z}, zmm24
+
+// CHECK: vcvtudq2ps zmm7, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x18,0x7a,0xf8]
+ vcvtudq2ps zmm7, zmm24, {rn-sae}
+
+// CHECK: vcvtudq2ps zmm7, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x58,0x7a,0xf8]
+ vcvtudq2ps zmm7, zmm24, {ru-sae}
+
+// CHECK: vcvtudq2ps zmm7, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x38,0x7a,0xf8]
+ vcvtudq2ps zmm7, zmm24, {rd-sae}
+
+// CHECK: vcvtudq2ps zmm7, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x91,0x7f,0x78,0x7a,0xf8]
+ vcvtudq2ps zmm7, zmm24, {rz-sae}
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x48,0x7a,0x39]
+ vcvtudq2ps zmm7, zmmword ptr [rcx]
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x48,0x7a,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vcvtudq2ps zmm7, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtudq2ps zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x7a,0x39]
+ vcvtudq2ps zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x48,0x7a,0x7a,0x7f]
+ vcvtudq2ps zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x48,0x7a,0xba,0x00,0x20,0x00,0x00]
+ vcvtudq2ps zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x48,0x7a,0x7a,0x80]
+ vcvtudq2ps zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvtudq2ps zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x48,0x7a,0xba,0xc0,0xdf,0xff,0xff]
+ vcvtudq2ps zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvtudq2ps zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x7a,0x7a,0x7f]
+ vcvtudq2ps zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvtudq2ps zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x7a,0xba,0x00,0x02,0x00,0x00]
+ vcvtudq2ps zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvtudq2ps zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x7a,0x7a,0x80]
+ vcvtudq2ps zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvtudq2ps zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7f,0x58,0x7a,0xba,0xfc,0xfd,0xff,0xff]
+ vcvtudq2ps zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vdivpd zmm18, zmm4, zmm19
+// CHECK: encoding: [0x62,0xa1,0xdd,0x48,0x5e,0xd3]
+ vdivpd zmm18, zmm4, zmm19
+
+// CHECK: vdivpd zmm18 {k5}, zmm4, zmm19
+// CHECK: encoding: [0x62,0xa1,0xdd,0x4d,0x5e,0xd3]
+ vdivpd zmm18 {k5}, zmm4, zmm19
+
+// CHECK: vdivpd zmm18 {k5} {z}, zmm4, zmm19
+// CHECK: encoding: [0x62,0xa1,0xdd,0xcd,0x5e,0xd3]
+ vdivpd zmm18 {k5} {z}, zmm4, zmm19
+
+// CHECK: vdivpd zmm18, zmm4, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xa1,0xdd,0x18,0x5e,0xd3]
+ vdivpd zmm18, zmm4, zmm19, {rn-sae}
+
+// CHECK: vdivpd zmm18, zmm4, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xa1,0xdd,0x58,0x5e,0xd3]
+ vdivpd zmm18, zmm4, zmm19, {ru-sae}
+
+// CHECK: vdivpd zmm18, zmm4, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xa1,0xdd,0x38,0x5e,0xd3]
+ vdivpd zmm18, zmm4, zmm19, {rd-sae}
+
+// CHECK: vdivpd zmm18, zmm4, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xa1,0xdd,0x78,0x5e,0xd3]
+ vdivpd zmm18, zmm4, zmm19, {rz-sae}
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0x5e,0x11]
+ vdivpd zmm18, zmm4, zmmword ptr [rcx]
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xdd,0x48,0x5e,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vdivpd zmm18, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vdivpd zmm18, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0x5e,0x11]
+ vdivpd zmm18, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0x5e,0x52,0x7f]
+ vdivpd zmm18, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0x5e,0x92,0x00,0x20,0x00,0x00]
+ vdivpd zmm18, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0x5e,0x52,0x80]
+ vdivpd zmm18, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vdivpd zmm18, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x48,0x5e,0x92,0xc0,0xdf,0xff,0xff]
+ vdivpd zmm18, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vdivpd zmm18, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0x5e,0x52,0x7f]
+ vdivpd zmm18, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vdivpd zmm18, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0x5e,0x92,0x00,0x04,0x00,0x00]
+ vdivpd zmm18, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vdivpd zmm18, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0x5e,0x52,0x80]
+ vdivpd zmm18, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vdivpd zmm18, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xdd,0x58,0x5e,0x92,0xf8,0xfb,0xff,0xff]
+ vdivpd zmm18, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vdivps zmm6, zmm29, zmm4
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0xf4]
+ vdivps zmm6, zmm29, zmm4
+
+// CHECK: vdivps zmm6 {k6}, zmm29, zmm4
+// CHECK: encoding: [0x62,0xf1,0x14,0x46,0x5e,0xf4]
+ vdivps zmm6 {k6}, zmm29, zmm4
+
+// CHECK: vdivps zmm6 {k6} {z}, zmm29, zmm4
+// CHECK: encoding: [0x62,0xf1,0x14,0xc6,0x5e,0xf4]
+ vdivps zmm6 {k6} {z}, zmm29, zmm4
+
+// CHECK: vdivps zmm6, zmm29, zmm4, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x14,0x10,0x5e,0xf4]
+ vdivps zmm6, zmm29, zmm4, {rn-sae}
+
+// CHECK: vdivps zmm6, zmm29, zmm4, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0xf4]
+ vdivps zmm6, zmm29, zmm4, {ru-sae}
+
+// CHECK: vdivps zmm6, zmm29, zmm4, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x14,0x30,0x5e,0xf4]
+ vdivps zmm6, zmm29, zmm4, {rd-sae}
+
+// CHECK: vdivps zmm6, zmm29, zmm4, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x14,0x70,0x5e,0xf4]
+ vdivps zmm6, zmm29, zmm4, {rz-sae}
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0x31]
+ vdivps zmm6, zmm29, zmmword ptr [rcx]
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x14,0x40,0x5e,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vdivps zmm6, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vdivps zmm6, zmm29, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0x31]
+ vdivps zmm6, zmm29, dword ptr [rcx]{1to16}
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0x72,0x7f]
+ vdivps zmm6, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0xb2,0x00,0x20,0x00,0x00]
+ vdivps zmm6, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0x72,0x80]
+ vdivps zmm6, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vdivps zmm6, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x14,0x40,0x5e,0xb2,0xc0,0xdf,0xff,0xff]
+ vdivps zmm6, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vdivps zmm6, zmm29, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0x72,0x7f]
+ vdivps zmm6, zmm29, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vdivps zmm6, zmm29, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0xb2,0x00,0x02,0x00,0x00]
+ vdivps zmm6, zmm29, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vdivps zmm6, zmm29, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0x72,0x80]
+ vdivps zmm6, zmm29, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vdivps zmm6, zmm29, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x14,0x50,0x5e,0xb2,0xfc,0xfd,0xff,0xff]
+ vdivps zmm6, zmm29, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vdivsd xmm15, xmm4, xmm22
+// CHECK: encoding: [0x62,0x31,0xdf,0x08,0x5e,0xfe]
+ vdivsd xmm15, xmm4, xmm22
+
+// CHECK: vdivsd xmm15 {k3}, xmm4, xmm22
+// CHECK: encoding: [0x62,0x31,0xdf,0x0b,0x5e,0xfe]
+ vdivsd xmm15 {k3}, xmm4, xmm22
+
+// CHECK: vdivsd xmm15 {k3} {z}, xmm4, xmm22
+// CHECK: encoding: [0x62,0x31,0xdf,0x8b,0x5e,0xfe]
+ vdivsd xmm15 {k3} {z}, xmm4, xmm22
+
+// CHECK: vdivsd xmm15, xmm4, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x18,0x5e,0xfe]
+ vdivsd xmm15, xmm4, xmm22, {rn-sae}
+
+// CHECK: vdivsd xmm15, xmm4, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x58,0x5e,0xfe]
+ vdivsd xmm15, xmm4, xmm22, {ru-sae}
+
+// CHECK: vdivsd xmm15, xmm4, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x38,0x5e,0xfe]
+ vdivsd xmm15, xmm4, xmm22, {rd-sae}
+
+// CHECK: vdivsd xmm15, xmm4, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x31,0xdf,0x78,0x5e,0xfe]
+ vdivsd xmm15, xmm4, xmm22, {rz-sae}
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x5b,0x5e,0x39]
+ vdivsd xmm15, xmm4, qword ptr [rcx]
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x5b,0x5e,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vdivsd xmm15, xmm4, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x5b,0x5e,0xba,0xf8,0x03,0x00,0x00]
+ vdivsd xmm15, xmm4, qword ptr [rdx + 1016]
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x5b,0x5e,0xba,0x00,0x04,0x00,0x00]
+ vdivsd xmm15, xmm4, qword ptr [rdx + 1024]
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x5b,0x5e,0xba,0x00,0xfc,0xff,0xff]
+ vdivsd xmm15, xmm4, qword ptr [rdx - 1024]
+
+// CHECK: vdivsd xmm15, xmm4, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x5b,0x5e,0xba,0xf8,0xfb,0xff,0xff]
+ vdivsd xmm15, xmm4, qword ptr [rdx - 1032]
+
+// CHECK: vdivss xmm27, xmm2, xmm20
+// CHECK: encoding: [0x62,0x21,0x6e,0x08,0x5e,0xdc]
+ vdivss xmm27, xmm2, xmm20
+
+// CHECK: vdivss xmm27 {k5}, xmm2, xmm20
+// CHECK: encoding: [0x62,0x21,0x6e,0x0d,0x5e,0xdc]
+ vdivss xmm27 {k5}, xmm2, xmm20
+
+// CHECK: vdivss xmm27 {k5} {z}, xmm2, xmm20
+// CHECK: encoding: [0x62,0x21,0x6e,0x8d,0x5e,0xdc]
+ vdivss xmm27 {k5} {z}, xmm2, xmm20
+
+// CHECK: vdivss xmm27, xmm2, xmm20, {rn-sae}
+// CHECK: encoding: [0x62,0x21,0x6e,0x18,0x5e,0xdc]
+ vdivss xmm27, xmm2, xmm20, {rn-sae}
+
+// CHECK: vdivss xmm27, xmm2, xmm20, {ru-sae}
+// CHECK: encoding: [0x62,0x21,0x6e,0x58,0x5e,0xdc]
+ vdivss xmm27, xmm2, xmm20, {ru-sae}
+
+// CHECK: vdivss xmm27, xmm2, xmm20, {rd-sae}
+// CHECK: encoding: [0x62,0x21,0x6e,0x38,0x5e,0xdc]
+ vdivss xmm27, xmm2, xmm20, {rd-sae}
+
+// CHECK: vdivss xmm27, xmm2, xmm20, {rz-sae}
+// CHECK: encoding: [0x62,0x21,0x6e,0x78,0x5e,0xdc]
+ vdivss xmm27, xmm2, xmm20, {rz-sae}
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x6e,0x08,0x5e,0x19]
+ vdivss xmm27, xmm2, dword ptr [rcx]
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x6e,0x08,0x5e,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vdivss xmm27, xmm2, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x6e,0x08,0x5e,0x5a,0x7f]
+ vdivss xmm27, xmm2, dword ptr [rdx + 508]
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x6e,0x08,0x5e,0x9a,0x00,0x02,0x00,0x00]
+ vdivss xmm27, xmm2, dword ptr [rdx + 512]
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x6e,0x08,0x5e,0x5a,0x80]
+ vdivss xmm27, xmm2, dword ptr [rdx - 512]
+
+// CHECK: vdivss xmm27, xmm2, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x6e,0x08,0x5e,0x9a,0xfc,0xfd,0xff,0xff]
+ vdivss xmm27, xmm2, dword ptr [rdx - 516]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x88,0x21]
+ vexpandpd zmm4, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm4 {k7}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x4f,0x88,0x21]
+ vexpandpd zmm4 {k7}, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm4 {k7} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0xcf,0x88,0x21]
+ vexpandpd zmm4 {k7} {z}, zmmword ptr [rcx]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xfd,0x48,0x88,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vexpandpd zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x88,0x62,0x7f]
+ vexpandpd zmm4, zmmword ptr [rdx + 1016]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x88,0xa2,0x00,0x04,0x00,0x00]
+ vexpandpd zmm4, zmmword ptr [rdx + 1024]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x88,0x62,0x80]
+ vexpandpd zmm4, zmmword ptr [rdx - 1024]
+
+// CHECK: vexpandpd zmm4, zmmword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x88,0xa2,0xf8,0xfb,0xff,0xff]
+ vexpandpd zmm4, zmmword ptr [rdx - 1032]
+
+// CHECK: vexpandpd zmm18, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0x48,0x88,0xd1]
+ vexpandpd zmm18, zmm9
+
+// CHECK: vexpandpd zmm18 {k2}, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0x4a,0x88,0xd1]
+ vexpandpd zmm18 {k2}, zmm9
+
+// CHECK: vexpandpd zmm18 {k2} {z}, zmm9
+// CHECK: encoding: [0x62,0xc2,0xfd,0xca,0x88,0xd1]
+ vexpandpd zmm18 {k2} {z}, zmm9
+
+// CHECK: vexpandps zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x88,0x21]
+ vexpandps zmm28, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm28 {k7}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x4f,0x88,0x21]
+ vexpandps zmm28 {k7}, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm28 {k7} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0xcf,0x88,0x21]
+ vexpandps zmm28 {k7} {z}, zmmword ptr [rcx]
+
+// CHECK: vexpandps zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x88,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vexpandps zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vexpandps zmm28, zmmword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x88,0x62,0x7f]
+ vexpandps zmm28, zmmword ptr [rdx + 508]
+
+// CHECK: vexpandps zmm28, zmmword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x88,0xa2,0x00,0x02,0x00,0x00]
+ vexpandps zmm28, zmmword ptr [rdx + 512]
+
+// CHECK: vexpandps zmm28, zmmword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x88,0x62,0x80]
+ vexpandps zmm28, zmmword ptr [rdx - 512]
+
+// CHECK: vexpandps zmm28, zmmword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x88,0xa2,0xfc,0xfd,0xff,0xff]
+ vexpandps zmm28, zmmword ptr [rdx - 516]
+
+// CHECK: vexpandps zmm17, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x88,0xca]
+ vexpandps zmm17, zmm18
+
+// CHECK: vexpandps zmm17 {k1}, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0x49,0x88,0xca]
+ vexpandps zmm17 {k1}, zmm18
+
+// CHECK: vexpandps zmm17 {k1} {z}, zmm18
+// CHECK: encoding: [0x62,0xa2,0x7d,0xc9,0x88,0xca]
+ vexpandps zmm17 {k1} {z}, zmm18
+
+// CHECK: vextractf32x4 xmm21, zmm10, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0x48,0x19,0xd5,0xab]
+ vextractf32x4 xmm21, zmm10, 171
+
+// CHECK: vextractf32x4 xmm21 {k2}, zmm10, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0x4a,0x19,0xd5,0xab]
+ vextractf32x4 xmm21 {k2}, zmm10, 171
+
+// CHECK: vextractf32x4 xmm21 {k2} {z}, zmm10, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0xca,0x19,0xd5,0xab]
+ vextractf32x4 xmm21 {k2} {z}, zmm10, 171
+
+// CHECK: vextractf32x4 xmm21, zmm10, 123
+// CHECK: encoding: [0x62,0x33,0x7d,0x48,0x19,0xd5,0x7b]
+ vextractf32x4 xmm21, zmm10, 123
+
+// CHECK: vextractf64x4 ymm14, zmm5, 171
+// CHECK: encoding: [0x62,0xd3,0xfd,0x48,0x1b,0xee,0xab]
+ vextractf64x4 ymm14, zmm5, 171
+
+// CHECK: vextractf64x4 ymm14 {k3}, zmm5, 171
+// CHECK: encoding: [0x62,0xd3,0xfd,0x4b,0x1b,0xee,0xab]
+ vextractf64x4 ymm14 {k3}, zmm5, 171
+
+// CHECK: vextractf64x4 ymm14 {k3} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xd3,0xfd,0xcb,0x1b,0xee,0xab]
+ vextractf64x4 ymm14 {k3} {z}, zmm5, 171
+
+// CHECK: vextractf64x4 ymm14, zmm5, 123
+// CHECK: encoding: [0x62,0xd3,0xfd,0x48,0x1b,0xee,0x7b]
+ vextractf64x4 ymm14, zmm5, 123
+
+// CHECK: vextracti32x4 xmm29, zmm12, 171
+// CHECK: encoding: [0x62,0x13,0x7d,0x48,0x39,0xe5,0xab]
+ vextracti32x4 xmm29, zmm12, 171
+
+// CHECK: vextracti32x4 xmm29 {k5}, zmm12, 171
+// CHECK: encoding: [0x62,0x13,0x7d,0x4d,0x39,0xe5,0xab]
+ vextracti32x4 xmm29 {k5}, zmm12, 171
+
+// CHECK: vextracti32x4 xmm29 {k5} {z}, zmm12, 171
+// CHECK: encoding: [0x62,0x13,0x7d,0xcd,0x39,0xe5,0xab]
+ vextracti32x4 xmm29 {k5} {z}, zmm12, 171
+
+// CHECK: vextracti32x4 xmm29, zmm12, 123
+// CHECK: encoding: [0x62,0x13,0x7d,0x48,0x39,0xe5,0x7b]
+ vextracti32x4 xmm29, zmm12, 123
+
+// CHECK: vextracti64x4 ymm5, zmm22, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x3b,0xf5,0xab]
+ vextracti64x4 ymm5, zmm22, 171
+
+// CHECK: vextracti64x4 ymm5 {k6}, zmm22, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0x4e,0x3b,0xf5,0xab]
+ vextracti64x4 ymm5 {k6}, zmm22, 171
+
+// CHECK: vextracti64x4 ymm5 {k6} {z}, zmm22, 171
+// CHECK: encoding: [0x62,0xe3,0xfd,0xce,0x3b,0xf5,0xab]
+ vextracti64x4 ymm5 {k6} {z}, zmm22, 171
+
+// CHECK: vextracti64x4 ymm5, zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0xfd,0x48,0x3b,0xf5,0x7b]
+ vextracti64x4 ymm5, zmm22, 123
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmm11
+// CHECK: encoding: [0x62,0xc2,0x85,0x48,0x98,0xfb]
+ vfmadd132pd zmm23, zmm15, zmm11
+
+// CHECK: vfmadd132pd zmm23 {k7}, zmm15, zmm11
+// CHECK: encoding: [0x62,0xc2,0x85,0x4f,0x98,0xfb]
+ vfmadd132pd zmm23 {k7}, zmm15, zmm11
+
+// CHECK: vfmadd132pd zmm23 {k7} {z}, zmm15, zmm11
+// CHECK: encoding: [0x62,0xc2,0x85,0xcf,0x98,0xfb]
+ vfmadd132pd zmm23 {k7} {z}, zmm15, zmm11
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x85,0x18,0x98,0xfb]
+ vfmadd132pd zmm23, zmm15, zmm11, {rn-sae}
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x85,0x58,0x98,0xfb]
+ vfmadd132pd zmm23, zmm15, zmm11, {ru-sae}
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x85,0x38,0x98,0xfb]
+ vfmadd132pd zmm23, zmm15, zmm11, {rd-sae}
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x85,0x78,0x98,0xfb]
+ vfmadd132pd zmm23, zmm15, zmm11, {rz-sae}
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x85,0x48,0x98,0x39]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rcx]
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x85,0x48,0x98,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd132pd zmm23, zmm15, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x85,0x58,0x98,0x39]
+ vfmadd132pd zmm23, zmm15, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x85,0x48,0x98,0x7a,0x7f]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x85,0x48,0x98,0xba,0x00,0x20,0x00,0x00]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x85,0x48,0x98,0x7a,0x80]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd132pd zmm23, zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x85,0x48,0x98,0xba,0xc0,0xdf,0xff,0xff]
+ vfmadd132pd zmm23, zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd132pd zmm23, zmm15, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x85,0x58,0x98,0x7a,0x7f]
+ vfmadd132pd zmm23, zmm15, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd132pd zmm23, zmm15, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x85,0x58,0x98,0xba,0x00,0x04,0x00,0x00]
+ vfmadd132pd zmm23, zmm15, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd132pd zmm23, zmm15, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x85,0x58,0x98,0x7a,0x80]
+ vfmadd132pd zmm23, zmm15, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd132pd zmm23, zmm15, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0x85,0x58,0x98,0xba,0xf8,0xfb,0xff,0xff]
+ vfmadd132pd zmm23, zmm15, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmm17
+// CHECK: encoding: [0x62,0xa2,0x35,0x40,0x98,0xd9]
+ vfmadd132ps zmm19, zmm25, zmm17
+
+// CHECK: vfmadd132ps zmm19 {k6}, zmm25, zmm17
+// CHECK: encoding: [0x62,0xa2,0x35,0x46,0x98,0xd9]
+ vfmadd132ps zmm19 {k6}, zmm25, zmm17
+
+// CHECK: vfmadd132ps zmm19 {k6} {z}, zmm25, zmm17
+// CHECK: encoding: [0x62,0xa2,0x35,0xc6,0x98,0xd9]
+ vfmadd132ps zmm19 {k6} {z}, zmm25, zmm17
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmm17, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0x35,0x10,0x98,0xd9]
+ vfmadd132ps zmm19, zmm25, zmm17, {rn-sae}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmm17, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0x35,0x50,0x98,0xd9]
+ vfmadd132ps zmm19, zmm25, zmm17, {ru-sae}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmm17, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0x35,0x30,0x98,0xd9]
+ vfmadd132ps zmm19, zmm25, zmm17, {rd-sae}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmm17, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0x35,0x70,0x98,0xd9]
+ vfmadd132ps zmm19, zmm25, zmm17, {rz-sae}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x35,0x40,0x98,0x19]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rcx]
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x35,0x40,0x98,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd132ps zmm19, zmm25, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x50,0x98,0x19]
+ vfmadd132ps zmm19, zmm25, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x35,0x40,0x98,0x5a,0x7f]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x35,0x40,0x98,0x9a,0x00,0x20,0x00,0x00]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x35,0x40,0x98,0x5a,0x80]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd132ps zmm19, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x35,0x40,0x98,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmadd132ps zmm19, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd132ps zmm19, zmm25, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x50,0x98,0x5a,0x7f]
+ vfmadd132ps zmm19, zmm25, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd132ps zmm19, zmm25, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x50,0x98,0x9a,0x00,0x02,0x00,0x00]
+ vfmadd132ps zmm19, zmm25, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd132ps zmm19, zmm25, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x50,0x98,0x5a,0x80]
+ vfmadd132ps zmm19, zmm25, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd132ps zmm19, zmm25, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x35,0x50,0x98,0x9a,0xfc,0xfd,0xff,0xff]
+ vfmadd132ps zmm19, zmm25, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd132sd xmm18, xmm22, xmm11
+// CHECK: encoding: [0x62,0xc2,0xcd,0x00,0x99,0xd3]
+ vfmadd132sd xmm18, xmm22, xmm11
+
+// CHECK: vfmadd132sd xmm18 {k6}, xmm22, xmm11
+// CHECK: encoding: [0x62,0xc2,0xcd,0x06,0x99,0xd3]
+ vfmadd132sd xmm18 {k6}, xmm22, xmm11
+
+// CHECK: vfmadd132sd xmm18 {k6} {z}, xmm22, xmm11
+// CHECK: encoding: [0x62,0xc2,0xcd,0x86,0x99,0xd3]
+ vfmadd132sd xmm18 {k6} {z}, xmm22, xmm11
+
+// CHECK: vfmadd132sd xmm18, xmm22, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xcd,0x10,0x99,0xd3]
+ vfmadd132sd xmm18, xmm22, xmm11, {rn-sae}
+
+// CHECK: vfmadd132sd xmm18, xmm22, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xcd,0x50,0x99,0xd3]
+ vfmadd132sd xmm18, xmm22, xmm11, {ru-sae}
+
+// CHECK: vfmadd132sd xmm18, xmm22, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xcd,0x30,0x99,0xd3]
+ vfmadd132sd xmm18, xmm22, xmm11, {rd-sae}
+
+// CHECK: vfmadd132sd xmm18, xmm22, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xcd,0x70,0x99,0xd3]
+ vfmadd132sd xmm18, xmm22, xmm11, {rz-sae}
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x99,0x11]
+ vfmadd132sd xmm18, xmm22, qword ptr [rcx]
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x00,0x99,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd132sd xmm18, xmm22, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x99,0x52,0x7f]
+ vfmadd132sd xmm18, xmm22, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x99,0x92,0x00,0x04,0x00,0x00]
+ vfmadd132sd xmm18, xmm22, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x99,0x52,0x80]
+ vfmadd132sd xmm18, xmm22, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd132sd xmm18, xmm22, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x00,0x99,0x92,0xf8,0xfb,0xff,0xff]
+ vfmadd132sd xmm18, xmm22, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd132ss xmm26, xmm20, xmm7
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0xd7]
+ vfmadd132ss xmm26, xmm20, xmm7
+
+// CHECK: vfmadd132ss xmm26 {k7}, xmm20, xmm7
+// CHECK: encoding: [0x62,0x62,0x5d,0x07,0x99,0xd7]
+ vfmadd132ss xmm26 {k7}, xmm20, xmm7
+
+// CHECK: vfmadd132ss xmm26 {k7} {z}, xmm20, xmm7
+// CHECK: encoding: [0x62,0x62,0x5d,0x87,0x99,0xd7]
+ vfmadd132ss xmm26 {k7} {z}, xmm20, xmm7
+
+// CHECK: vfmadd132ss xmm26, xmm20, xmm7, {rn-sae}
+// CHECK: encoding: [0x62,0x62,0x5d,0x10,0x99,0xd7]
+ vfmadd132ss xmm26, xmm20, xmm7, {rn-sae}
+
+// CHECK: vfmadd132ss xmm26, xmm20, xmm7, {ru-sae}
+// CHECK: encoding: [0x62,0x62,0x5d,0x50,0x99,0xd7]
+ vfmadd132ss xmm26, xmm20, xmm7, {ru-sae}
+
+// CHECK: vfmadd132ss xmm26, xmm20, xmm7, {rd-sae}
+// CHECK: encoding: [0x62,0x62,0x5d,0x30,0x99,0xd7]
+ vfmadd132ss xmm26, xmm20, xmm7, {rd-sae}
+
+// CHECK: vfmadd132ss xmm26, xmm20, xmm7, {rz-sae}
+// CHECK: encoding: [0x62,0x62,0x5d,0x70,0x99,0xd7]
+ vfmadd132ss xmm26, xmm20, xmm7, {rz-sae}
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0x11]
+ vfmadd132ss xmm26, xmm20, dword ptr [rcx]
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x5d,0x00,0x99,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd132ss xmm26, xmm20, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0x52,0x7f]
+ vfmadd132ss xmm26, xmm20, dword ptr [rdx + 508]
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0x92,0x00,0x02,0x00,0x00]
+ vfmadd132ss xmm26, xmm20, dword ptr [rdx + 512]
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0x52,0x80]
+ vfmadd132ss xmm26, xmm20, dword ptr [rdx - 512]
+
+// CHECK: vfmadd132ss xmm26, xmm20, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0x99,0x92,0xfc,0xfd,0xff,0xff]
+ vfmadd132ss xmm26, xmm20, dword ptr [rdx - 516]
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmm1
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0xf1]
+ vfmadd213pd zmm6, zmm17, zmm1
+
+// CHECK: vfmadd213pd zmm6 {k6}, zmm17, zmm1
+// CHECK: encoding: [0x62,0xf2,0xf5,0x46,0xa8,0xf1]
+ vfmadd213pd zmm6 {k6}, zmm17, zmm1
+
+// CHECK: vfmadd213pd zmm6 {k6} {z}, zmm17, zmm1
+// CHECK: encoding: [0x62,0xf2,0xf5,0xc6,0xa8,0xf1]
+ vfmadd213pd zmm6 {k6} {z}, zmm17, zmm1
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmm1, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x10,0xa8,0xf1]
+ vfmadd213pd zmm6, zmm17, zmm1, {rn-sae}
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmm1, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0xf1]
+ vfmadd213pd zmm6, zmm17, zmm1, {ru-sae}
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmm1, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x30,0xa8,0xf1]
+ vfmadd213pd zmm6, zmm17, zmm1, {rd-sae}
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmm1, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x70,0xa8,0xf1]
+ vfmadd213pd zmm6, zmm17, zmm1, {rz-sae}
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0x31]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rcx]
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xf5,0x40,0xa8,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd213pd zmm6, zmm17, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0x31]
+ vfmadd213pd zmm6, zmm17, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0x72,0x7f]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0xb2,0x00,0x20,0x00,0x00]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0x72,0x80]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd213pd zmm6, zmm17, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xf5,0x40,0xa8,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmadd213pd zmm6, zmm17, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd213pd zmm6, zmm17, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0x72,0x7f]
+ vfmadd213pd zmm6, zmm17, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd213pd zmm6, zmm17, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0xb2,0x00,0x04,0x00,0x00]
+ vfmadd213pd zmm6, zmm17, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd213pd zmm6, zmm17, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0x72,0x80]
+ vfmadd213pd zmm6, zmm17, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd213pd zmm6, zmm17, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xf5,0x50,0xa8,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmadd213pd zmm6, zmm17, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmm24
+// CHECK: encoding: [0x62,0x92,0x3d,0x40,0xa8,0xe8]
+ vfmadd213ps zmm5, zmm24, zmm24
+
+// CHECK: vfmadd213ps zmm5 {k6}, zmm24, zmm24
+// CHECK: encoding: [0x62,0x92,0x3d,0x46,0xa8,0xe8]
+ vfmadd213ps zmm5 {k6}, zmm24, zmm24
+
+// CHECK: vfmadd213ps zmm5 {k6} {z}, zmm24, zmm24
+// CHECK: encoding: [0x62,0x92,0x3d,0xc6,0xa8,0xe8]
+ vfmadd213ps zmm5 {k6} {z}, zmm24, zmm24
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x92,0x3d,0x10,0xa8,0xe8]
+ vfmadd213ps zmm5, zmm24, zmm24, {rn-sae}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x92,0x3d,0x50,0xa8,0xe8]
+ vfmadd213ps zmm5, zmm24, zmm24, {ru-sae}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x92,0x3d,0x30,0xa8,0xe8]
+ vfmadd213ps zmm5, zmm24, zmm24, {rd-sae}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x92,0x3d,0x70,0xa8,0xe8]
+ vfmadd213ps zmm5, zmm24, zmm24, {rz-sae}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0xa8,0x29]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rcx]
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x3d,0x40,0xa8,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd213ps zmm5, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0xa8,0x29]
+ vfmadd213ps zmm5, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0xa8,0x6a,0x7f]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0xa8,0xaa,0x00,0x20,0x00,0x00]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0xa8,0x6a,0x80]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd213ps zmm5, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0xa8,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmadd213ps zmm5, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd213ps zmm5, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0xa8,0x6a,0x7f]
+ vfmadd213ps zmm5, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd213ps zmm5, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0xa8,0xaa,0x00,0x02,0x00,0x00]
+ vfmadd213ps zmm5, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd213ps zmm5, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0xa8,0x6a,0x80]
+ vfmadd213ps zmm5, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd213ps zmm5, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0xa8,0xaa,0xfc,0xfd,0xff,0xff]
+ vfmadd213ps zmm5, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd213sd xmm30, xmm14, xmm28
+// CHECK: encoding: [0x62,0x02,0x8d,0x08,0xa9,0xf4]
+ vfmadd213sd xmm30, xmm14, xmm28
+
+// CHECK: vfmadd213sd xmm30 {k5}, xmm14, xmm28
+// CHECK: encoding: [0x62,0x02,0x8d,0x0d,0xa9,0xf4]
+ vfmadd213sd xmm30 {k5}, xmm14, xmm28
+
+// CHECK: vfmadd213sd xmm30 {k5} {z}, xmm14, xmm28
+// CHECK: encoding: [0x62,0x02,0x8d,0x8d,0xa9,0xf4]
+ vfmadd213sd xmm30 {k5} {z}, xmm14, xmm28
+
+// CHECK: vfmadd213sd xmm30, xmm14, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x8d,0x18,0xa9,0xf4]
+ vfmadd213sd xmm30, xmm14, xmm28, {rn-sae}
+
+// CHECK: vfmadd213sd xmm30, xmm14, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x8d,0x58,0xa9,0xf4]
+ vfmadd213sd xmm30, xmm14, xmm28, {ru-sae}
+
+// CHECK: vfmadd213sd xmm30, xmm14, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x8d,0x38,0xa9,0xf4]
+ vfmadd213sd xmm30, xmm14, xmm28, {rd-sae}
+
+// CHECK: vfmadd213sd xmm30, xmm14, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x8d,0x78,0xa9,0xf4]
+ vfmadd213sd xmm30, xmm14, xmm28, {rz-sae}
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xa9,0x31]
+ vfmadd213sd xmm30, xmm14, qword ptr [rcx]
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x8d,0x08,0xa9,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd213sd xmm30, xmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xa9,0x72,0x7f]
+ vfmadd213sd xmm30, xmm14, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xa9,0xb2,0x00,0x04,0x00,0x00]
+ vfmadd213sd xmm30, xmm14, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xa9,0x72,0x80]
+ vfmadd213sd xmm30, xmm14, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd213sd xmm30, xmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xa9,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmadd213sd xmm30, xmm14, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd213ss xmm18, xmm25, xmm25
+// CHECK: encoding: [0x62,0x82,0x35,0x00,0xa9,0xd1]
+ vfmadd213ss xmm18, xmm25, xmm25
+
+// CHECK: vfmadd213ss xmm18 {k1}, xmm25, xmm25
+// CHECK: encoding: [0x62,0x82,0x35,0x01,0xa9,0xd1]
+ vfmadd213ss xmm18 {k1}, xmm25, xmm25
+
+// CHECK: vfmadd213ss xmm18 {k1} {z}, xmm25, xmm25
+// CHECK: encoding: [0x62,0x82,0x35,0x81,0xa9,0xd1]
+ vfmadd213ss xmm18 {k1} {z}, xmm25, xmm25
+
+// CHECK: vfmadd213ss xmm18, xmm25, xmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0x35,0x10,0xa9,0xd1]
+ vfmadd213ss xmm18, xmm25, xmm25, {rn-sae}
+
+// CHECK: vfmadd213ss xmm18, xmm25, xmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0x35,0x50,0xa9,0xd1]
+ vfmadd213ss xmm18, xmm25, xmm25, {ru-sae}
+
+// CHECK: vfmadd213ss xmm18, xmm25, xmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0x35,0x30,0xa9,0xd1]
+ vfmadd213ss xmm18, xmm25, xmm25, {rd-sae}
+
+// CHECK: vfmadd213ss xmm18, xmm25, xmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0x35,0x70,0xa9,0xd1]
+ vfmadd213ss xmm18, xmm25, xmm25, {rz-sae}
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x35,0x00,0xa9,0x11]
+ vfmadd213ss xmm18, xmm25, dword ptr [rcx]
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x35,0x00,0xa9,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd213ss xmm18, xmm25, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x35,0x00,0xa9,0x52,0x7f]
+ vfmadd213ss xmm18, xmm25, dword ptr [rdx + 508]
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x35,0x00,0xa9,0x92,0x00,0x02,0x00,0x00]
+ vfmadd213ss xmm18, xmm25, dword ptr [rdx + 512]
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x35,0x00,0xa9,0x52,0x80]
+ vfmadd213ss xmm18, xmm25, dword ptr [rdx - 512]
+
+// CHECK: vfmadd213ss xmm18, xmm25, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x35,0x00,0xa9,0x92,0xfc,0xfd,0xff,0xff]
+ vfmadd213ss xmm18, xmm25, dword ptr [rdx - 516]
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmm19
+// CHECK: encoding: [0x62,0xb2,0x95,0x48,0xb8,0xeb]
+ vfmadd231pd zmm5, zmm13, zmm19
+
+// CHECK: vfmadd231pd zmm5 {k1}, zmm13, zmm19
+// CHECK: encoding: [0x62,0xb2,0x95,0x49,0xb8,0xeb]
+ vfmadd231pd zmm5 {k1}, zmm13, zmm19
+
+// CHECK: vfmadd231pd zmm5 {k1} {z}, zmm13, zmm19
+// CHECK: encoding: [0x62,0xb2,0x95,0xc9,0xb8,0xeb]
+ vfmadd231pd zmm5 {k1} {z}, zmm13, zmm19
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x95,0x18,0xb8,0xeb]
+ vfmadd231pd zmm5, zmm13, zmm19, {rn-sae}
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x95,0x58,0xb8,0xeb]
+ vfmadd231pd zmm5, zmm13, zmm19, {ru-sae}
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x95,0x38,0xb8,0xeb]
+ vfmadd231pd zmm5, zmm13, zmm19, {rd-sae}
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x95,0x78,0xb8,0xeb]
+ vfmadd231pd zmm5, zmm13, zmm19, {rz-sae}
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x95,0x48,0xb8,0x29]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rcx]
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x95,0x48,0xb8,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd231pd zmm5, zmm13, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x58,0xb8,0x29]
+ vfmadd231pd zmm5, zmm13, qword ptr [rcx]{1to8}
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x95,0x48,0xb8,0x6a,0x7f]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x95,0x48,0xb8,0xaa,0x00,0x20,0x00,0x00]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x95,0x48,0xb8,0x6a,0x80]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd231pd zmm5, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x95,0x48,0xb8,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmadd231pd zmm5, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd231pd zmm5, zmm13, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x58,0xb8,0x6a,0x7f]
+ vfmadd231pd zmm5, zmm13, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmadd231pd zmm5, zmm13, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x58,0xb8,0xaa,0x00,0x04,0x00,0x00]
+ vfmadd231pd zmm5, zmm13, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmadd231pd zmm5, zmm13, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x58,0xb8,0x6a,0x80]
+ vfmadd231pd zmm5, zmm13, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmadd231pd zmm5, zmm13, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x58,0xb8,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmadd231pd zmm5, zmm13, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmm18
+// CHECK: encoding: [0x62,0xb2,0x75,0x48,0xb8,0xd2]
+ vfmadd231ps zmm2, zmm1, zmm18
+
+// CHECK: vfmadd231ps zmm2 {k2}, zmm1, zmm18
+// CHECK: encoding: [0x62,0xb2,0x75,0x4a,0xb8,0xd2]
+ vfmadd231ps zmm2 {k2}, zmm1, zmm18
+
+// CHECK: vfmadd231ps zmm2 {k2} {z}, zmm1, zmm18
+// CHECK: encoding: [0x62,0xb2,0x75,0xca,0xb8,0xd2]
+ vfmadd231ps zmm2 {k2} {z}, zmm1, zmm18
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x75,0x18,0xb8,0xd2]
+ vfmadd231ps zmm2, zmm1, zmm18, {rn-sae}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x75,0x58,0xb8,0xd2]
+ vfmadd231ps zmm2, zmm1, zmm18, {ru-sae}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x75,0x38,0xb8,0xd2]
+ vfmadd231ps zmm2, zmm1, zmm18, {rd-sae}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x75,0x78,0xb8,0xd2]
+ vfmadd231ps zmm2, zmm1, zmm18, {rz-sae}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x75,0x48,0xb8,0x11]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rcx]
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x75,0x48,0xb8,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd231ps zmm2, zmm1, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x75,0x58,0xb8,0x11]
+ vfmadd231ps zmm2, zmm1, dword ptr [rcx]{1to16}
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x75,0x48,0xb8,0x52,0x7f]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x75,0x48,0xb8,0x92,0x00,0x20,0x00,0x00]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x75,0x48,0xb8,0x52,0x80]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmadd231ps zmm2, zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x75,0x48,0xb8,0x92,0xc0,0xdf,0xff,0xff]
+ vfmadd231ps zmm2, zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmadd231ps zmm2, zmm1, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x75,0x58,0xb8,0x52,0x7f]
+ vfmadd231ps zmm2, zmm1, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmadd231ps zmm2, zmm1, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x75,0x58,0xb8,0x92,0x00,0x02,0x00,0x00]
+ vfmadd231ps zmm2, zmm1, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmadd231ps zmm2, zmm1, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x75,0x58,0xb8,0x52,0x80]
+ vfmadd231ps zmm2, zmm1, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmadd231ps zmm2, zmm1, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x75,0x58,0xb8,0x92,0xfc,0xfd,0xff,0xff]
+ vfmadd231ps zmm2, zmm1, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmadd231sd xmm6, xmm14, xmm14
+// CHECK: encoding: [0xc4,0xc2,0x89,0xb9,0xf6]
+ vfmadd231sd xmm6, xmm14, xmm14
+
+// CHECK: vfmadd231sd xmm6 {k2}, xmm14, xmm14
+// CHECK: encoding: [0x62,0xd2,0x8d,0x0a,0xb9,0xf6]
+ vfmadd231sd xmm6 {k2}, xmm14, xmm14
+
+// CHECK: vfmadd231sd xmm6 {k2} {z}, xmm14, xmm14
+// CHECK: encoding: [0x62,0xd2,0x8d,0x8a,0xb9,0xf6]
+ vfmadd231sd xmm6 {k2} {z}, xmm14, xmm14
+
+// CHECK: vfmadd231sd xmm6, xmm14, xmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0x8d,0x18,0xb9,0xf6]
+ vfmadd231sd xmm6, xmm14, xmm14, {rn-sae}
+
+// CHECK: vfmadd231sd xmm6, xmm14, xmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0x8d,0x58,0xb9,0xf6]
+ vfmadd231sd xmm6, xmm14, xmm14, {ru-sae}
+
+// CHECK: vfmadd231sd xmm6, xmm14, xmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0x8d,0x38,0xb9,0xf6]
+ vfmadd231sd xmm6, xmm14, xmm14, {rd-sae}
+
+// CHECK: vfmadd231sd xmm6, xmm14, xmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0x8d,0x78,0xb9,0xf6]
+ vfmadd231sd xmm6, xmm14, xmm14, {rz-sae}
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0x89,0xb9,0x31]
+ vfmadd231sd xmm6, xmm14, qword ptr [rcx]
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa2,0x89,0xb9,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd231sd xmm6, xmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0x89,0xb9,0xb2,0xf8,0x03,0x00,0x00]
+ vfmadd231sd xmm6, xmm14, qword ptr [rdx + 1016]
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0x89,0xb9,0xb2,0x00,0x04,0x00,0x00]
+ vfmadd231sd xmm6, xmm14, qword ptr [rdx + 1024]
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0x89,0xb9,0xb2,0x00,0xfc,0xff,0xff]
+ vfmadd231sd xmm6, xmm14, qword ptr [rdx - 1024]
+
+// CHECK: vfmadd231sd xmm6, xmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0x89,0xb9,0xb2,0xf8,0xfb,0xff,0xff]
+ vfmadd231sd xmm6, xmm14, qword ptr [rdx - 1032]
+
+// CHECK: vfmadd231ss xmm26, xmm14, xmm19
+// CHECK: encoding: [0x62,0x22,0x0d,0x08,0xb9,0xd3]
+ vfmadd231ss xmm26, xmm14, xmm19
+
+// CHECK: vfmadd231ss xmm26 {k4}, xmm14, xmm19
+// CHECK: encoding: [0x62,0x22,0x0d,0x0c,0xb9,0xd3]
+ vfmadd231ss xmm26 {k4}, xmm14, xmm19
+
+// CHECK: vfmadd231ss xmm26 {k4} {z}, xmm14, xmm19
+// CHECK: encoding: [0x62,0x22,0x0d,0x8c,0xb9,0xd3]
+ vfmadd231ss xmm26 {k4} {z}, xmm14, xmm19
+
+// CHECK: vfmadd231ss xmm26, xmm14, xmm19, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x0d,0x18,0xb9,0xd3]
+ vfmadd231ss xmm26, xmm14, xmm19, {rn-sae}
+
+// CHECK: vfmadd231ss xmm26, xmm14, xmm19, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x0d,0x58,0xb9,0xd3]
+ vfmadd231ss xmm26, xmm14, xmm19, {ru-sae}
+
+// CHECK: vfmadd231ss xmm26, xmm14, xmm19, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x0d,0x38,0xb9,0xd3]
+ vfmadd231ss xmm26, xmm14, xmm19, {rd-sae}
+
+// CHECK: vfmadd231ss xmm26, xmm14, xmm19, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x0d,0x78,0xb9,0xd3]
+ vfmadd231ss xmm26, xmm14, xmm19, {rz-sae}
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x0d,0x08,0xb9,0x11]
+ vfmadd231ss xmm26, xmm14, dword ptr [rcx]
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x0d,0x08,0xb9,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmadd231ss xmm26, xmm14, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x0d,0x08,0xb9,0x52,0x7f]
+ vfmadd231ss xmm26, xmm14, dword ptr [rdx + 508]
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x0d,0x08,0xb9,0x92,0x00,0x02,0x00,0x00]
+ vfmadd231ss xmm26, xmm14, dword ptr [rdx + 512]
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x0d,0x08,0xb9,0x52,0x80]
+ vfmadd231ss xmm26, xmm14, dword ptr [rdx - 512]
+
+// CHECK: vfmadd231ss xmm26, xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x0d,0x08,0xb9,0x92,0xfc,0xfd,0xff,0xff]
+ vfmadd231ss xmm26, xmm14, dword ptr [rdx - 516]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmm2
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0xe2]
+ vfmaddsub132pd zmm20, zmm6, zmm2
+
+// CHECK: vfmaddsub132pd zmm20 {k6}, zmm6, zmm2
+// CHECK: encoding: [0x62,0xe2,0xcd,0x4e,0x96,0xe2]
+ vfmaddsub132pd zmm20 {k6}, zmm6, zmm2
+
+// CHECK: vfmaddsub132pd zmm20 {k6} {z}, zmm6, zmm2
+// CHECK: encoding: [0x62,0xe2,0xcd,0xce,0x96,0xe2]
+ vfmaddsub132pd zmm20 {k6} {z}, zmm6, zmm2
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmm2, {rn-sae}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x18,0x96,0xe2]
+ vfmaddsub132pd zmm20, zmm6, zmm2, {rn-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmm2, {ru-sae}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0xe2]
+ vfmaddsub132pd zmm20, zmm6, zmm2, {ru-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmm2, {rd-sae}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x38,0x96,0xe2]
+ vfmaddsub132pd zmm20, zmm6, zmm2, {rd-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmm2, {rz-sae}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x78,0x96,0xe2]
+ vfmaddsub132pd zmm20, zmm6, zmm2, {rz-sae}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0x21]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x48,0x96,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0x21]
+ vfmaddsub132pd zmm20, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0x62,0x7f]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0xa2,0x00,0x20,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0x62,0x80]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x48,0x96,0xa2,0xc0,0xdf,0xff,0xff]
+ vfmaddsub132pd zmm20, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0x62,0x7f]
+ vfmaddsub132pd zmm20, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0xa2,0x00,0x04,0x00,0x00]
+ vfmaddsub132pd zmm20, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0x62,0x80]
+ vfmaddsub132pd zmm20, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub132pd zmm20, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x58,0x96,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmaddsub132pd zmm20, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmm12
+// CHECK: encoding: [0x62,0x42,0x45,0x48,0x96,0xec]
+ vfmaddsub132ps zmm29, zmm7, zmm12
+
+// CHECK: vfmaddsub132ps zmm29 {k7}, zmm7, zmm12
+// CHECK: encoding: [0x62,0x42,0x45,0x4f,0x96,0xec]
+ vfmaddsub132ps zmm29 {k7}, zmm7, zmm12
+
+// CHECK: vfmaddsub132ps zmm29 {k7} {z}, zmm7, zmm12
+// CHECK: encoding: [0x62,0x42,0x45,0xcf,0x96,0xec]
+ vfmaddsub132ps zmm29 {k7} {z}, zmm7, zmm12
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmm12, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x45,0x18,0x96,0xec]
+ vfmaddsub132ps zmm29, zmm7, zmm12, {rn-sae}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmm12, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x45,0x58,0x96,0xec]
+ vfmaddsub132ps zmm29, zmm7, zmm12, {ru-sae}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmm12, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x45,0x38,0x96,0xec]
+ vfmaddsub132ps zmm29, zmm7, zmm12, {rd-sae}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmm12, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x45,0x78,0x96,0xec]
+ vfmaddsub132ps zmm29, zmm7, zmm12, {rz-sae}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x45,0x48,0x96,0x29]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x45,0x48,0x96,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x58,0x96,0x29]
+ vfmaddsub132ps zmm29, zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x45,0x48,0x96,0x6a,0x7f]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x45,0x48,0x96,0xaa,0x00,0x20,0x00,0x00]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x45,0x48,0x96,0x6a,0x80]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x45,0x48,0x96,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmaddsub132ps zmm29, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x58,0x96,0x6a,0x7f]
+ vfmaddsub132ps zmm29, zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x58,0x96,0xaa,0x00,0x02,0x00,0x00]
+ vfmaddsub132ps zmm29, zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x58,0x96,0x6a,0x80]
+ vfmaddsub132ps zmm29, zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub132ps zmm29, zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x45,0x58,0x96,0xaa,0xfc,0xfd,0xff,0xff]
+ vfmaddsub132ps zmm29, zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmm15
+// CHECK: encoding: [0x62,0x42,0xdd,0x40,0xa6,0xdf]
+ vfmaddsub213pd zmm27, zmm20, zmm15
+
+// CHECK: vfmaddsub213pd zmm27 {k3}, zmm20, zmm15
+// CHECK: encoding: [0x62,0x42,0xdd,0x43,0xa6,0xdf]
+ vfmaddsub213pd zmm27 {k3}, zmm20, zmm15
+
+// CHECK: vfmaddsub213pd zmm27 {k3} {z}, zmm20, zmm15
+// CHECK: encoding: [0x62,0x42,0xdd,0xc3,0xa6,0xdf]
+ vfmaddsub213pd zmm27 {k3} {z}, zmm20, zmm15
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmm15, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xdd,0x10,0xa6,0xdf]
+ vfmaddsub213pd zmm27, zmm20, zmm15, {rn-sae}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmm15, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xdd,0x50,0xa6,0xdf]
+ vfmaddsub213pd zmm27, zmm20, zmm15, {ru-sae}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmm15, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xdd,0x30,0xa6,0xdf]
+ vfmaddsub213pd zmm27, zmm20, zmm15, {rd-sae}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmm15, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xdd,0x70,0xa6,0xdf]
+ vfmaddsub213pd zmm27, zmm20, zmm15, {rz-sae}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xdd,0x40,0xa6,0x19]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xdd,0x40,0xa6,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x50,0xa6,0x19]
+ vfmaddsub213pd zmm27, zmm20, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xdd,0x40,0xa6,0x5a,0x7f]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x40,0xa6,0x9a,0x00,0x20,0x00,0x00]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xdd,0x40,0xa6,0x5a,0x80]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xdd,0x40,0xa6,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmaddsub213pd zmm27, zmm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x50,0xa6,0x5a,0x7f]
+ vfmaddsub213pd zmm27, zmm20, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x50,0xa6,0x9a,0x00,0x04,0x00,0x00]
+ vfmaddsub213pd zmm27, zmm20, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x50,0xa6,0x5a,0x80]
+ vfmaddsub213pd zmm27, zmm20, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub213pd zmm27, zmm20, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xdd,0x50,0xa6,0x9a,0xf8,0xfb,0xff,0xff]
+ vfmaddsub213pd zmm27, zmm20, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmm10
+// CHECK: encoding: [0x62,0xc2,0x15,0x48,0xa6,0xf2]
+ vfmaddsub213ps zmm22, zmm13, zmm10
+
+// CHECK: vfmaddsub213ps zmm22 {k5}, zmm13, zmm10
+// CHECK: encoding: [0x62,0xc2,0x15,0x4d,0xa6,0xf2]
+ vfmaddsub213ps zmm22 {k5}, zmm13, zmm10
+
+// CHECK: vfmaddsub213ps zmm22 {k5} {z}, zmm13, zmm10
+// CHECK: encoding: [0x62,0xc2,0x15,0xcd,0xa6,0xf2]
+ vfmaddsub213ps zmm22 {k5} {z}, zmm13, zmm10
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x15,0x18,0xa6,0xf2]
+ vfmaddsub213ps zmm22, zmm13, zmm10, {rn-sae}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x15,0x58,0xa6,0xf2]
+ vfmaddsub213ps zmm22, zmm13, zmm10, {ru-sae}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x15,0x38,0xa6,0xf2]
+ vfmaddsub213ps zmm22, zmm13, zmm10, {rd-sae}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x15,0x78,0xa6,0xf2]
+ vfmaddsub213ps zmm22, zmm13, zmm10, {rz-sae}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xa6,0x31]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x15,0x48,0xa6,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xa6,0x31]
+ vfmaddsub213ps zmm22, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xa6,0x72,0x7f]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xa6,0xb2,0x00,0x20,0x00,0x00]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xa6,0x72,0x80]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x15,0x48,0xa6,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmaddsub213ps zmm22, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xa6,0x72,0x7f]
+ vfmaddsub213ps zmm22, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xa6,0xb2,0x00,0x02,0x00,0x00]
+ vfmaddsub213ps zmm22, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xa6,0x72,0x80]
+ vfmaddsub213ps zmm22, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub213ps zmm22, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x15,0x58,0xa6,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmaddsub213ps zmm22, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmm28
+// CHECK: encoding: [0x62,0x92,0xb5,0x40,0xb6,0xe4]
+ vfmaddsub231pd zmm4, zmm25, zmm28
+
+// CHECK: vfmaddsub231pd zmm4 {k6}, zmm25, zmm28
+// CHECK: encoding: [0x62,0x92,0xb5,0x46,0xb6,0xe4]
+ vfmaddsub231pd zmm4 {k6}, zmm25, zmm28
+
+// CHECK: vfmaddsub231pd zmm4 {k6} {z}, zmm25, zmm28
+// CHECK: encoding: [0x62,0x92,0xb5,0xc6,0xb6,0xe4]
+ vfmaddsub231pd zmm4 {k6} {z}, zmm25, zmm28
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x92,0xb5,0x10,0xb6,0xe4]
+ vfmaddsub231pd zmm4, zmm25, zmm28, {rn-sae}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x92,0xb5,0x50,0xb6,0xe4]
+ vfmaddsub231pd zmm4, zmm25, zmm28, {ru-sae}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x92,0xb5,0x30,0xb6,0xe4]
+ vfmaddsub231pd zmm4, zmm25, zmm28, {rd-sae}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x92,0xb5,0x70,0xb6,0xe4]
+ vfmaddsub231pd zmm4, zmm25, zmm28, {rz-sae}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x40,0xb6,0x21]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xb5,0x40,0xb6,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x50,0xb6,0x21]
+ vfmaddsub231pd zmm4, zmm25, qword ptr [rcx]{1to8}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x40,0xb6,0x62,0x7f]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x40,0xb6,0xa2,0x00,0x20,0x00,0x00]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x40,0xb6,0x62,0x80]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x40,0xb6,0xa2,0xc0,0xdf,0xff,0xff]
+ vfmaddsub231pd zmm4, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x50,0xb6,0x62,0x7f]
+ vfmaddsub231pd zmm4, zmm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x50,0xb6,0xa2,0x00,0x04,0x00,0x00]
+ vfmaddsub231pd zmm4, zmm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x50,0xb6,0x62,0x80]
+ vfmaddsub231pd zmm4, zmm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmaddsub231pd zmm4, zmm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x50,0xb6,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmaddsub231pd zmm4, zmm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd2,0x4d,0x40,0xb6,0xfa]
+ vfmaddsub231ps zmm7, zmm22, zmm10
+
+// CHECK: vfmaddsub231ps zmm7 {k6}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd2,0x4d,0x46,0xb6,0xfa]
+ vfmaddsub231ps zmm7 {k6}, zmm22, zmm10
+
+// CHECK: vfmaddsub231ps zmm7 {k6} {z}, zmm22, zmm10
+// CHECK: encoding: [0x62,0xd2,0x4d,0xc6,0xb6,0xfa]
+ vfmaddsub231ps zmm7 {k6} {z}, zmm22, zmm10
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0x4d,0x10,0xb6,0xfa]
+ vfmaddsub231ps zmm7, zmm22, zmm10, {rn-sae}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0x4d,0x50,0xb6,0xfa]
+ vfmaddsub231ps zmm7, zmm22, zmm10, {ru-sae}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0x4d,0x30,0xb6,0xfa]
+ vfmaddsub231ps zmm7, zmm22, zmm10, {rd-sae}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0x4d,0x70,0xb6,0xfa]
+ vfmaddsub231ps zmm7, zmm22, zmm10, {rz-sae}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0xb6,0x39]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rcx]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x4d,0x40,0xb6,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0xb6,0x39]
+ vfmaddsub231ps zmm7, zmm22, dword ptr [rcx]{1to16}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0xb6,0x7a,0x7f]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0xb6,0xba,0x00,0x20,0x00,0x00]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0xb6,0x7a,0x80]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0xb6,0xba,0xc0,0xdf,0xff,0xff]
+ vfmaddsub231ps zmm7, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0xb6,0x7a,0x7f]
+ vfmaddsub231ps zmm7, zmm22, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0xb6,0xba,0x00,0x02,0x00,0x00]
+ vfmaddsub231ps zmm7, zmm22, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0xb6,0x7a,0x80]
+ vfmaddsub231ps zmm7, zmm22, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmaddsub231ps zmm7, zmm22, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0xb6,0xba,0xfc,0xfd,0xff,0xff]
+ vfmaddsub231ps zmm7, zmm22, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmm19
+// CHECK: encoding: [0x62,0x22,0x95,0x40,0x9a,0xcb]
+ vfmsub132pd zmm25, zmm29, zmm19
+
+// CHECK: vfmsub132pd zmm25 {k4}, zmm29, zmm19
+// CHECK: encoding: [0x62,0x22,0x95,0x44,0x9a,0xcb]
+ vfmsub132pd zmm25 {k4}, zmm29, zmm19
+
+// CHECK: vfmsub132pd zmm25 {k4} {z}, zmm29, zmm19
+// CHECK: encoding: [0x62,0x22,0x95,0xc4,0x9a,0xcb]
+ vfmsub132pd zmm25 {k4} {z}, zmm29, zmm19
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x95,0x10,0x9a,0xcb]
+ vfmsub132pd zmm25, zmm29, zmm19, {rn-sae}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x95,0x50,0x9a,0xcb]
+ vfmsub132pd zmm25, zmm29, zmm19, {ru-sae}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x95,0x30,0x9a,0xcb]
+ vfmsub132pd zmm25, zmm29, zmm19, {rd-sae}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x95,0x70,0x9a,0xcb]
+ vfmsub132pd zmm25, zmm29, zmm19, {rz-sae}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x9a,0x09]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rcx]
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x95,0x40,0x9a,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub132pd zmm25, zmm29, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x9a,0x09]
+ vfmsub132pd zmm25, zmm29, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x9a,0x4a,0x7f]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x9a,0x8a,0x00,0x20,0x00,0x00]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x9a,0x4a,0x80]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub132pd zmm25, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x95,0x40,0x9a,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmsub132pd zmm25, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub132pd zmm25, zmm29, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x9a,0x4a,0x7f]
+ vfmsub132pd zmm25, zmm29, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub132pd zmm25, zmm29, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x9a,0x8a,0x00,0x04,0x00,0x00]
+ vfmsub132pd zmm25, zmm29, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub132pd zmm25, zmm29, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x9a,0x4a,0x80]
+ vfmsub132pd zmm25, zmm29, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub132pd zmm25, zmm29, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0x95,0x50,0x9a,0x8a,0xf8,0xfb,0xff,0xff]
+ vfmsub132pd zmm25, zmm29, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmm18
+// CHECK: encoding: [0x62,0x22,0x4d,0x48,0x9a,0xda]
+ vfmsub132ps zmm27, zmm6, zmm18
+
+// CHECK: vfmsub132ps zmm27 {k4}, zmm6, zmm18
+// CHECK: encoding: [0x62,0x22,0x4d,0x4c,0x9a,0xda]
+ vfmsub132ps zmm27 {k4}, zmm6, zmm18
+
+// CHECK: vfmsub132ps zmm27 {k4} {z}, zmm6, zmm18
+// CHECK: encoding: [0x62,0x22,0x4d,0xcc,0x9a,0xda]
+ vfmsub132ps zmm27 {k4} {z}, zmm6, zmm18
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmm18, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x18,0x9a,0xda]
+ vfmsub132ps zmm27, zmm6, zmm18, {rn-sae}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmm18, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x58,0x9a,0xda]
+ vfmsub132ps zmm27, zmm6, zmm18, {ru-sae}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmm18, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x38,0x9a,0xda]
+ vfmsub132ps zmm27, zmm6, zmm18, {rd-sae}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmm18, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x4d,0x78,0x9a,0xda]
+ vfmsub132ps zmm27, zmm6, zmm18, {rz-sae}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x4d,0x48,0x9a,0x19]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rcx]
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x4d,0x48,0x9a,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub132ps zmm27, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x4d,0x58,0x9a,0x19]
+ vfmsub132ps zmm27, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x4d,0x48,0x9a,0x5a,0x7f]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x4d,0x48,0x9a,0x9a,0x00,0x20,0x00,0x00]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x4d,0x48,0x9a,0x5a,0x80]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub132ps zmm27, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x4d,0x48,0x9a,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmsub132ps zmm27, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub132ps zmm27, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x4d,0x58,0x9a,0x5a,0x7f]
+ vfmsub132ps zmm27, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub132ps zmm27, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x4d,0x58,0x9a,0x9a,0x00,0x02,0x00,0x00]
+ vfmsub132ps zmm27, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub132ps zmm27, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x4d,0x58,0x9a,0x5a,0x80]
+ vfmsub132ps zmm27, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub132ps zmm27, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x4d,0x58,0x9a,0x9a,0xfc,0xfd,0xff,0xff]
+ vfmsub132ps zmm27, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub132sd xmm23, xmm20, xmm28
+// CHECK: encoding: [0x62,0x82,0xdd,0x00,0x9b,0xfc]
+ vfmsub132sd xmm23, xmm20, xmm28
+
+// CHECK: vfmsub132sd xmm23 {k1}, xmm20, xmm28
+// CHECK: encoding: [0x62,0x82,0xdd,0x01,0x9b,0xfc]
+ vfmsub132sd xmm23 {k1}, xmm20, xmm28
+
+// CHECK: vfmsub132sd xmm23 {k1} {z}, xmm20, xmm28
+// CHECK: encoding: [0x62,0x82,0xdd,0x81,0x9b,0xfc]
+ vfmsub132sd xmm23 {k1} {z}, xmm20, xmm28
+
+// CHECK: vfmsub132sd xmm23, xmm20, xmm28, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0xdd,0x10,0x9b,0xfc]
+ vfmsub132sd xmm23, xmm20, xmm28, {rn-sae}
+
+// CHECK: vfmsub132sd xmm23, xmm20, xmm28, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0xdd,0x50,0x9b,0xfc]
+ vfmsub132sd xmm23, xmm20, xmm28, {ru-sae}
+
+// CHECK: vfmsub132sd xmm23, xmm20, xmm28, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0xdd,0x30,0x9b,0xfc]
+ vfmsub132sd xmm23, xmm20, xmm28, {rd-sae}
+
+// CHECK: vfmsub132sd xmm23, xmm20, xmm28, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0xdd,0x70,0x9b,0xfc]
+ vfmsub132sd xmm23, xmm20, xmm28, {rz-sae}
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x00,0x9b,0x39]
+ vfmsub132sd xmm23, xmm20, qword ptr [rcx]
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xdd,0x00,0x9b,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub132sd xmm23, xmm20, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x00,0x9b,0x7a,0x7f]
+ vfmsub132sd xmm23, xmm20, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x00,0x9b,0xba,0x00,0x04,0x00,0x00]
+ vfmsub132sd xmm23, xmm20, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x00,0x9b,0x7a,0x80]
+ vfmsub132sd xmm23, xmm20, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub132sd xmm23, xmm20, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x00,0x9b,0xba,0xf8,0xfb,0xff,0xff]
+ vfmsub132sd xmm23, xmm20, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub132ss xmm26, xmm9, xmm25
+// CHECK: encoding: [0x62,0x02,0x35,0x08,0x9b,0xd1]
+ vfmsub132ss xmm26, xmm9, xmm25
+
+// CHECK: vfmsub132ss xmm26 {k7}, xmm9, xmm25
+// CHECK: encoding: [0x62,0x02,0x35,0x0f,0x9b,0xd1]
+ vfmsub132ss xmm26 {k7}, xmm9, xmm25
+
+// CHECK: vfmsub132ss xmm26 {k7} {z}, xmm9, xmm25
+// CHECK: encoding: [0x62,0x02,0x35,0x8f,0x9b,0xd1]
+ vfmsub132ss xmm26 {k7} {z}, xmm9, xmm25
+
+// CHECK: vfmsub132ss xmm26, xmm9, xmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x35,0x18,0x9b,0xd1]
+ vfmsub132ss xmm26, xmm9, xmm25, {rn-sae}
+
+// CHECK: vfmsub132ss xmm26, xmm9, xmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x35,0x58,0x9b,0xd1]
+ vfmsub132ss xmm26, xmm9, xmm25, {ru-sae}
+
+// CHECK: vfmsub132ss xmm26, xmm9, xmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x35,0x38,0x9b,0xd1]
+ vfmsub132ss xmm26, xmm9, xmm25, {rd-sae}
+
+// CHECK: vfmsub132ss xmm26, xmm9, xmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x35,0x78,0x9b,0xd1]
+ vfmsub132ss xmm26, xmm9, xmm25, {rz-sae}
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x35,0x08,0x9b,0x11]
+ vfmsub132ss xmm26, xmm9, dword ptr [rcx]
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x35,0x08,0x9b,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub132ss xmm26, xmm9, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x35,0x08,0x9b,0x52,0x7f]
+ vfmsub132ss xmm26, xmm9, dword ptr [rdx + 508]
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x35,0x08,0x9b,0x92,0x00,0x02,0x00,0x00]
+ vfmsub132ss xmm26, xmm9, dword ptr [rdx + 512]
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x35,0x08,0x9b,0x52,0x80]
+ vfmsub132ss xmm26, xmm9, dword ptr [rdx - 512]
+
+// CHECK: vfmsub132ss xmm26, xmm9, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x35,0x08,0x9b,0x92,0xfc,0xfd,0xff,0xff]
+ vfmsub132ss xmm26, xmm9, dword ptr [rdx - 516]
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmm19
+// CHECK: encoding: [0x62,0xb2,0xed,0x40,0xaa,0xfb]
+ vfmsub213pd zmm7, zmm18, zmm19
+
+// CHECK: vfmsub213pd zmm7 {k4}, zmm18, zmm19
+// CHECK: encoding: [0x62,0xb2,0xed,0x44,0xaa,0xfb]
+ vfmsub213pd zmm7 {k4}, zmm18, zmm19
+
+// CHECK: vfmsub213pd zmm7 {k4} {z}, zmm18, zmm19
+// CHECK: encoding: [0x62,0xb2,0xed,0xc4,0xaa,0xfb]
+ vfmsub213pd zmm7 {k4} {z}, zmm18, zmm19
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0xed,0x10,0xaa,0xfb]
+ vfmsub213pd zmm7, zmm18, zmm19, {rn-sae}
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0xed,0x50,0xaa,0xfb]
+ vfmsub213pd zmm7, zmm18, zmm19, {ru-sae}
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0xed,0x30,0xaa,0xfb]
+ vfmsub213pd zmm7, zmm18, zmm19, {rd-sae}
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0xed,0x70,0xaa,0xfb]
+ vfmsub213pd zmm7, zmm18, zmm19, {rz-sae}
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xed,0x40,0xaa,0x39]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rcx]
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xed,0x40,0xaa,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub213pd zmm7, zmm18, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xed,0x50,0xaa,0x39]
+ vfmsub213pd zmm7, zmm18, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xed,0x40,0xaa,0x7a,0x7f]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xed,0x40,0xaa,0xba,0x00,0x20,0x00,0x00]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xed,0x40,0xaa,0x7a,0x80]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub213pd zmm7, zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xed,0x40,0xaa,0xba,0xc0,0xdf,0xff,0xff]
+ vfmsub213pd zmm7, zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub213pd zmm7, zmm18, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xed,0x50,0xaa,0x7a,0x7f]
+ vfmsub213pd zmm7, zmm18, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub213pd zmm7, zmm18, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xed,0x50,0xaa,0xba,0x00,0x04,0x00,0x00]
+ vfmsub213pd zmm7, zmm18, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub213pd zmm7, zmm18, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xed,0x50,0xaa,0x7a,0x80]
+ vfmsub213pd zmm7, zmm18, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub213pd zmm7, zmm18, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xed,0x50,0xaa,0xba,0xf8,0xfb,0xff,0xff]
+ vfmsub213pd zmm7, zmm18, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmm6
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0xce]
+ vfmsub213ps zmm9, zmm16, zmm6
+
+// CHECK: vfmsub213ps zmm9 {k6}, zmm16, zmm6
+// CHECK: encoding: [0x62,0x72,0x7d,0x46,0xaa,0xce]
+ vfmsub213ps zmm9 {k6}, zmm16, zmm6
+
+// CHECK: vfmsub213ps zmm9 {k6} {z}, zmm16, zmm6
+// CHECK: encoding: [0x62,0x72,0x7d,0xc6,0xaa,0xce]
+ vfmsub213ps zmm9 {k6} {z}, zmm16, zmm6
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmm6, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0x7d,0x10,0xaa,0xce]
+ vfmsub213ps zmm9, zmm16, zmm6, {rn-sae}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmm6, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0xce]
+ vfmsub213ps zmm9, zmm16, zmm6, {ru-sae}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmm6, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0x7d,0x30,0xaa,0xce]
+ vfmsub213ps zmm9, zmm16, zmm6, {rd-sae}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmm6, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0x7d,0x70,0xaa,0xce]
+ vfmsub213ps zmm9, zmm16, zmm6, {rz-sae}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0x09]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rcx]
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x40,0xaa,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub213ps zmm9, zmm16, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0x09]
+ vfmsub213ps zmm9, zmm16, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0x4a,0x7f]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0x8a,0x00,0x20,0x00,0x00]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0x4a,0x80]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub213ps zmm9, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x7d,0x40,0xaa,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmsub213ps zmm9, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub213ps zmm9, zmm16, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0x4a,0x7f]
+ vfmsub213ps zmm9, zmm16, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub213ps zmm9, zmm16, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0x8a,0x00,0x02,0x00,0x00]
+ vfmsub213ps zmm9, zmm16, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub213ps zmm9, zmm16, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0x4a,0x80]
+ vfmsub213ps zmm9, zmm16, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub213ps zmm9, zmm16, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x7d,0x50,0xaa,0x8a,0xfc,0xfd,0xff,0xff]
+ vfmsub213ps zmm9, zmm16, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub213sd xmm12, xmm18, xmm20
+// CHECK: encoding: [0x62,0x32,0xed,0x00,0xab,0xe4]
+ vfmsub213sd xmm12, xmm18, xmm20
+
+// CHECK: vfmsub213sd xmm12 {k4}, xmm18, xmm20
+// CHECK: encoding: [0x62,0x32,0xed,0x04,0xab,0xe4]
+ vfmsub213sd xmm12 {k4}, xmm18, xmm20
+
+// CHECK: vfmsub213sd xmm12 {k4} {z}, xmm18, xmm20
+// CHECK: encoding: [0x62,0x32,0xed,0x84,0xab,0xe4]
+ vfmsub213sd xmm12 {k4} {z}, xmm18, xmm20
+
+// CHECK: vfmsub213sd xmm12, xmm18, xmm20, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0xed,0x10,0xab,0xe4]
+ vfmsub213sd xmm12, xmm18, xmm20, {rn-sae}
+
+// CHECK: vfmsub213sd xmm12, xmm18, xmm20, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0xed,0x50,0xab,0xe4]
+ vfmsub213sd xmm12, xmm18, xmm20, {ru-sae}
+
+// CHECK: vfmsub213sd xmm12, xmm18, xmm20, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0xed,0x30,0xab,0xe4]
+ vfmsub213sd xmm12, xmm18, xmm20, {rd-sae}
+
+// CHECK: vfmsub213sd xmm12, xmm18, xmm20, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0xed,0x70,0xab,0xe4]
+ vfmsub213sd xmm12, xmm18, xmm20, {rz-sae}
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xed,0x00,0xab,0x21]
+ vfmsub213sd xmm12, xmm18, qword ptr [rcx]
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xed,0x00,0xab,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub213sd xmm12, xmm18, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0xed,0x00,0xab,0x62,0x7f]
+ vfmsub213sd xmm12, xmm18, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0xed,0x00,0xab,0xa2,0x00,0x04,0x00,0x00]
+ vfmsub213sd xmm12, xmm18, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0xed,0x00,0xab,0x62,0x80]
+ vfmsub213sd xmm12, xmm18, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub213sd xmm12, xmm18, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0xed,0x00,0xab,0xa2,0xf8,0xfb,0xff,0xff]
+ vfmsub213sd xmm12, xmm18, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub213ss xmm2, xmm1, xmm9
+// CHECK: encoding: [0xc4,0xc2,0x71,0xab,0xd1]
+ vfmsub213ss xmm2, xmm1, xmm9
+
+// CHECK: vfmsub213ss xmm2 {k7}, xmm1, xmm9
+// CHECK: encoding: [0x62,0xd2,0x75,0x0f,0xab,0xd1]
+ vfmsub213ss xmm2 {k7}, xmm1, xmm9
+
+// CHECK: vfmsub213ss xmm2 {k7} {z}, xmm1, xmm9
+// CHECK: encoding: [0x62,0xd2,0x75,0x8f,0xab,0xd1]
+ vfmsub213ss xmm2 {k7} {z}, xmm1, xmm9
+
+// CHECK: vfmsub213ss xmm2, xmm1, xmm9, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0x75,0x18,0xab,0xd1]
+ vfmsub213ss xmm2, xmm1, xmm9, {rn-sae}
+
+// CHECK: vfmsub213ss xmm2, xmm1, xmm9, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0x75,0x58,0xab,0xd1]
+ vfmsub213ss xmm2, xmm1, xmm9, {ru-sae}
+
+// CHECK: vfmsub213ss xmm2, xmm1, xmm9, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0x75,0x38,0xab,0xd1]
+ vfmsub213ss xmm2, xmm1, xmm9, {rd-sae}
+
+// CHECK: vfmsub213ss xmm2, xmm1, xmm9, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0x75,0x78,0xab,0xd1]
+ vfmsub213ss xmm2, xmm1, xmm9, {rz-sae}
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0x71,0xab,0x11]
+ vfmsub213ss xmm2, xmm1, dword ptr [rcx]
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa2,0x71,0xab,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub213ss xmm2, xmm1, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc4,0xe2,0x71,0xab,0x92,0xfc,0x01,0x00,0x00]
+ vfmsub213ss xmm2, xmm1, dword ptr [rdx + 508]
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc4,0xe2,0x71,0xab,0x92,0x00,0x02,0x00,0x00]
+ vfmsub213ss xmm2, xmm1, dword ptr [rdx + 512]
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc4,0xe2,0x71,0xab,0x92,0x00,0xfe,0xff,0xff]
+ vfmsub213ss xmm2, xmm1, dword ptr [rdx - 512]
+
+// CHECK: vfmsub213ss xmm2, xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc4,0xe2,0x71,0xab,0x92,0xfc,0xfd,0xff,0xff]
+ vfmsub213ss xmm2, xmm1, dword ptr [rdx - 516]
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmm14
+// CHECK: encoding: [0x62,0xc2,0xed,0x48,0xba,0xce]
+ vfmsub231pd zmm17, zmm2, zmm14
+
+// CHECK: vfmsub231pd zmm17 {k2}, zmm2, zmm14
+// CHECK: encoding: [0x62,0xc2,0xed,0x4a,0xba,0xce]
+ vfmsub231pd zmm17 {k2}, zmm2, zmm14
+
+// CHECK: vfmsub231pd zmm17 {k2} {z}, zmm2, zmm14
+// CHECK: encoding: [0x62,0xc2,0xed,0xca,0xba,0xce]
+ vfmsub231pd zmm17 {k2} {z}, zmm2, zmm14
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmm14, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x18,0xba,0xce]
+ vfmsub231pd zmm17, zmm2, zmm14, {rn-sae}
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmm14, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x58,0xba,0xce]
+ vfmsub231pd zmm17, zmm2, zmm14, {ru-sae}
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmm14, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x38,0xba,0xce]
+ vfmsub231pd zmm17, zmm2, zmm14, {rd-sae}
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmm14, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x78,0xba,0xce]
+ vfmsub231pd zmm17, zmm2, zmm14, {rz-sae}
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xba,0x09]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rcx]
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xed,0x48,0xba,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub231pd zmm17, zmm2, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xba,0x09]
+ vfmsub231pd zmm17, zmm2, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xba,0x4a,0x7f]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xba,0x8a,0x00,0x20,0x00,0x00]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xba,0x4a,0x80]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub231pd zmm17, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xba,0x8a,0xc0,0xdf,0xff,0xff]
+ vfmsub231pd zmm17, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub231pd zmm17, zmm2, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xba,0x4a,0x7f]
+ vfmsub231pd zmm17, zmm2, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsub231pd zmm17, zmm2, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xba,0x8a,0x00,0x04,0x00,0x00]
+ vfmsub231pd zmm17, zmm2, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsub231pd zmm17, zmm2, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xba,0x4a,0x80]
+ vfmsub231pd zmm17, zmm2, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsub231pd zmm17, zmm2, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xba,0x8a,0xf8,0xfb,0xff,0xff]
+ vfmsub231pd zmm17, zmm2, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmm20
+// CHECK: encoding: [0x62,0xb2,0x5d,0x48,0xba,0xec]
+ vfmsub231ps zmm5, zmm4, zmm20
+
+// CHECK: vfmsub231ps zmm5 {k1}, zmm4, zmm20
+// CHECK: encoding: [0x62,0xb2,0x5d,0x49,0xba,0xec]
+ vfmsub231ps zmm5 {k1}, zmm4, zmm20
+
+// CHECK: vfmsub231ps zmm5 {k1} {z}, zmm4, zmm20
+// CHECK: encoding: [0x62,0xb2,0x5d,0xc9,0xba,0xec]
+ vfmsub231ps zmm5 {k1} {z}, zmm4, zmm20
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmm20, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x5d,0x18,0xba,0xec]
+ vfmsub231ps zmm5, zmm4, zmm20, {rn-sae}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmm20, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x5d,0x58,0xba,0xec]
+ vfmsub231ps zmm5, zmm4, zmm20, {ru-sae}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmm20, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x5d,0x38,0xba,0xec]
+ vfmsub231ps zmm5, zmm4, zmm20, {rd-sae}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmm20, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x5d,0x78,0xba,0xec]
+ vfmsub231ps zmm5, zmm4, zmm20, {rz-sae}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0xba,0x29]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rcx]
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x5d,0x48,0xba,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub231ps zmm5, zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0xba,0x29]
+ vfmsub231ps zmm5, zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0xba,0x6a,0x7f]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0xba,0xaa,0x00,0x20,0x00,0x00]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0xba,0x6a,0x80]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsub231ps zmm5, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0xba,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsub231ps zmm5, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsub231ps zmm5, zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0xba,0x6a,0x7f]
+ vfmsub231ps zmm5, zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsub231ps zmm5, zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0xba,0xaa,0x00,0x02,0x00,0x00]
+ vfmsub231ps zmm5, zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsub231ps zmm5, zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0xba,0x6a,0x80]
+ vfmsub231ps zmm5, zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsub231ps zmm5, zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0xba,0xaa,0xfc,0xfd,0xff,0xff]
+ vfmsub231ps zmm5, zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsub231sd xmm7, xmm2, xmm6
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0xfe]
+ vfmsub231sd xmm7, xmm2, xmm6
+
+// CHECK: vfmsub231sd xmm7 {k4}, xmm2, xmm6
+// CHECK: encoding: [0x62,0xf2,0xed,0x0c,0xbb,0xfe]
+ vfmsub231sd xmm7 {k4}, xmm2, xmm6
+
+// CHECK: vfmsub231sd xmm7 {k4} {z}, xmm2, xmm6
+// CHECK: encoding: [0x62,0xf2,0xed,0x8c,0xbb,0xfe]
+ vfmsub231sd xmm7 {k4} {z}, xmm2, xmm6
+
+// CHECK: vfmsub231sd xmm7, xmm2, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xed,0x18,0xbb,0xfe]
+ vfmsub231sd xmm7, xmm2, xmm6, {rn-sae}
+
+// CHECK: vfmsub231sd xmm7, xmm2, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xed,0x58,0xbb,0xfe]
+ vfmsub231sd xmm7, xmm2, xmm6, {ru-sae}
+
+// CHECK: vfmsub231sd xmm7, xmm2, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xed,0x38,0xbb,0xfe]
+ vfmsub231sd xmm7, xmm2, xmm6, {rd-sae}
+
+// CHECK: vfmsub231sd xmm7, xmm2, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xed,0x78,0xbb,0xfe]
+ vfmsub231sd xmm7, xmm2, xmm6, {rz-sae}
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0x39]
+ vfmsub231sd xmm7, xmm2, qword ptr [rcx]
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa2,0xe9,0xbb,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub231sd xmm7, xmm2, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0xba,0xf8,0x03,0x00,0x00]
+ vfmsub231sd xmm7, xmm2, qword ptr [rdx + 1016]
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0xba,0x00,0x04,0x00,0x00]
+ vfmsub231sd xmm7, xmm2, qword ptr [rdx + 1024]
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0xba,0x00,0xfc,0xff,0xff]
+ vfmsub231sd xmm7, xmm2, qword ptr [rdx - 1024]
+
+// CHECK: vfmsub231sd xmm7, xmm2, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xe9,0xbb,0xba,0xf8,0xfb,0xff,0xff]
+ vfmsub231sd xmm7, xmm2, qword ptr [rdx - 1032]
+
+// CHECK: vfmsub231ss xmm18, xmm18, xmm18
+// CHECK: encoding: [0x62,0xa2,0x6d,0x00,0xbb,0xd2]
+ vfmsub231ss xmm18, xmm18, xmm18
+
+// CHECK: vfmsub231ss xmm18 {k7}, xmm18, xmm18
+// CHECK: encoding: [0x62,0xa2,0x6d,0x07,0xbb,0xd2]
+ vfmsub231ss xmm18 {k7}, xmm18, xmm18
+
+// CHECK: vfmsub231ss xmm18 {k7} {z}, xmm18, xmm18
+// CHECK: encoding: [0x62,0xa2,0x6d,0x87,0xbb,0xd2]
+ vfmsub231ss xmm18 {k7} {z}, xmm18, xmm18
+
+// CHECK: vfmsub231ss xmm18, xmm18, xmm18, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0x6d,0x10,0xbb,0xd2]
+ vfmsub231ss xmm18, xmm18, xmm18, {rn-sae}
+
+// CHECK: vfmsub231ss xmm18, xmm18, xmm18, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0x6d,0x50,0xbb,0xd2]
+ vfmsub231ss xmm18, xmm18, xmm18, {ru-sae}
+
+// CHECK: vfmsub231ss xmm18, xmm18, xmm18, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0x6d,0x30,0xbb,0xd2]
+ vfmsub231ss xmm18, xmm18, xmm18, {rd-sae}
+
+// CHECK: vfmsub231ss xmm18, xmm18, xmm18, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0x6d,0x70,0xbb,0xd2]
+ vfmsub231ss xmm18, xmm18, xmm18, {rz-sae}
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x6d,0x00,0xbb,0x11]
+ vfmsub231ss xmm18, xmm18, dword ptr [rcx]
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x6d,0x00,0xbb,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfmsub231ss xmm18, xmm18, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x6d,0x00,0xbb,0x52,0x7f]
+ vfmsub231ss xmm18, xmm18, dword ptr [rdx + 508]
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x6d,0x00,0xbb,0x92,0x00,0x02,0x00,0x00]
+ vfmsub231ss xmm18, xmm18, dword ptr [rdx + 512]
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x6d,0x00,0xbb,0x52,0x80]
+ vfmsub231ss xmm18, xmm18, dword ptr [rdx - 512]
+
+// CHECK: vfmsub231ss xmm18, xmm18, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x6d,0x00,0xbb,0x92,0xfc,0xfd,0xff,0xff]
+ vfmsub231ss xmm18, xmm18, dword ptr [rdx - 516]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmm7
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0xef]
+ vfmsubadd132pd zmm21, zmm4, zmm7
+
+// CHECK: vfmsubadd132pd zmm21 {k5}, zmm4, zmm7
+// CHECK: encoding: [0x62,0xe2,0xdd,0x4d,0x97,0xef]
+ vfmsubadd132pd zmm21 {k5}, zmm4, zmm7
+
+// CHECK: vfmsubadd132pd zmm21 {k5} {z}, zmm4, zmm7
+// CHECK: encoding: [0x62,0xe2,0xdd,0xcd,0x97,0xef]
+ vfmsubadd132pd zmm21 {k5} {z}, zmm4, zmm7
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmm7, {rn-sae}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x18,0x97,0xef]
+ vfmsubadd132pd zmm21, zmm4, zmm7, {rn-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmm7, {ru-sae}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0xef]
+ vfmsubadd132pd zmm21, zmm4, zmm7, {ru-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmm7, {rd-sae}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x38,0x97,0xef]
+ vfmsubadd132pd zmm21, zmm4, zmm7, {rd-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmm7, {rz-sae}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x78,0x97,0xef]
+ vfmsubadd132pd zmm21, zmm4, zmm7, {rz-sae}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0x29]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xdd,0x48,0x97,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0x29]
+ vfmsubadd132pd zmm21, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0x6a,0x7f]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0xaa,0x00,0x20,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0x6a,0x80]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xdd,0x48,0x97,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsubadd132pd zmm21, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0x6a,0x7f]
+ vfmsubadd132pd zmm21, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0xaa,0x00,0x04,0x00,0x00]
+ vfmsubadd132pd zmm21, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0x6a,0x80]
+ vfmsubadd132pd zmm21, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd132pd zmm21, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xdd,0x58,0x97,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmsubadd132pd zmm21, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0x40,0x97,0xf0]
+ vfmsubadd132ps zmm6, zmm24, zmm16
+
+// CHECK: vfmsubadd132ps zmm6 {k7}, zmm24, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0x47,0x97,0xf0]
+ vfmsubadd132ps zmm6 {k7}, zmm24, zmm16
+
+// CHECK: vfmsubadd132ps zmm6 {k7} {z}, zmm24, zmm16
+// CHECK: encoding: [0x62,0xb2,0x3d,0xc7,0x97,0xf0]
+ vfmsubadd132ps zmm6 {k7} {z}, zmm24, zmm16
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmm16, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x3d,0x10,0x97,0xf0]
+ vfmsubadd132ps zmm6, zmm24, zmm16, {rn-sae}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmm16, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x3d,0x50,0x97,0xf0]
+ vfmsubadd132ps zmm6, zmm24, zmm16, {ru-sae}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmm16, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x3d,0x30,0x97,0xf0]
+ vfmsubadd132ps zmm6, zmm24, zmm16, {rd-sae}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmm16, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x3d,0x70,0x97,0xf0]
+ vfmsubadd132ps zmm6, zmm24, zmm16, {rz-sae}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x97,0x31]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x3d,0x40,0x97,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x97,0x31]
+ vfmsubadd132ps zmm6, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x97,0x72,0x7f]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x97,0xb2,0x00,0x20,0x00,0x00]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x97,0x72,0x80]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x97,0xb2,0xc0,0xdf,0xff,0xff]
+ vfmsubadd132ps zmm6, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x97,0x72,0x7f]
+ vfmsubadd132ps zmm6, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x97,0xb2,0x00,0x02,0x00,0x00]
+ vfmsubadd132ps zmm6, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x97,0x72,0x80]
+ vfmsubadd132ps zmm6, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd132ps zmm6, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x97,0xb2,0xfc,0xfd,0xff,0xff]
+ vfmsubadd132ps zmm6, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmm11
+// CHECK: encoding: [0x62,0x52,0xcd,0x40,0xa7,0xdb]
+ vfmsubadd213pd zmm11, zmm22, zmm11
+
+// CHECK: vfmsubadd213pd zmm11 {k4}, zmm22, zmm11
+// CHECK: encoding: [0x62,0x52,0xcd,0x44,0xa7,0xdb]
+ vfmsubadd213pd zmm11 {k4}, zmm22, zmm11
+
+// CHECK: vfmsubadd213pd zmm11 {k4} {z}, zmm22, zmm11
+// CHECK: encoding: [0x62,0x52,0xcd,0xc4,0xa7,0xdb]
+ vfmsubadd213pd zmm11 {k4} {z}, zmm22, zmm11
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmm11, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0xcd,0x10,0xa7,0xdb]
+ vfmsubadd213pd zmm11, zmm22, zmm11, {rn-sae}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmm11, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0xcd,0x50,0xa7,0xdb]
+ vfmsubadd213pd zmm11, zmm22, zmm11, {ru-sae}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmm11, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0xcd,0x30,0xa7,0xdb]
+ vfmsubadd213pd zmm11, zmm22, zmm11, {rd-sae}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmm11, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0xcd,0x70,0xa7,0xdb]
+ vfmsubadd213pd zmm11, zmm22, zmm11, {rz-sae}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0xa7,0x19]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xcd,0x40,0xa7,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0xa7,0x19]
+ vfmsubadd213pd zmm11, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0xa7,0x5a,0x7f]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0xa7,0x9a,0x00,0x20,0x00,0x00]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0xa7,0x5a,0x80]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0xa7,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmsubadd213pd zmm11, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0xa7,0x5a,0x7f]
+ vfmsubadd213pd zmm11, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0xa7,0x9a,0x00,0x04,0x00,0x00]
+ vfmsubadd213pd zmm11, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0xa7,0x5a,0x80]
+ vfmsubadd213pd zmm11, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd213pd zmm11, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0xa7,0x9a,0xf8,0xfb,0xff,0xff]
+ vfmsubadd213pd zmm11, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmm10
+// CHECK: encoding: [0x62,0x52,0x35,0x48,0xa7,0xe2]
+ vfmsubadd213ps zmm12, zmm9, zmm10
+
+// CHECK: vfmsubadd213ps zmm12 {k7}, zmm9, zmm10
+// CHECK: encoding: [0x62,0x52,0x35,0x4f,0xa7,0xe2]
+ vfmsubadd213ps zmm12 {k7}, zmm9, zmm10
+
+// CHECK: vfmsubadd213ps zmm12 {k7} {z}, zmm9, zmm10
+// CHECK: encoding: [0x62,0x52,0x35,0xcf,0xa7,0xe2]
+ vfmsubadd213ps zmm12 {k7} {z}, zmm9, zmm10
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmm10, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0x35,0x18,0xa7,0xe2]
+ vfmsubadd213ps zmm12, zmm9, zmm10, {rn-sae}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmm10, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0x35,0x58,0xa7,0xe2]
+ vfmsubadd213ps zmm12, zmm9, zmm10, {ru-sae}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmm10, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0x35,0x38,0xa7,0xe2]
+ vfmsubadd213ps zmm12, zmm9, zmm10, {rd-sae}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmm10, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0x35,0x78,0xa7,0xe2]
+ vfmsubadd213ps zmm12, zmm9, zmm10, {rz-sae}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0xa7,0x21]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x35,0x48,0xa7,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0xa7,0x21]
+ vfmsubadd213ps zmm12, zmm9, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0xa7,0x62,0x7f]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0xa7,0xa2,0x00,0x20,0x00,0x00]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0xa7,0x62,0x80]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x35,0x48,0xa7,0xa2,0xc0,0xdf,0xff,0xff]
+ vfmsubadd213ps zmm12, zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0xa7,0x62,0x7f]
+ vfmsubadd213ps zmm12, zmm9, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0xa7,0xa2,0x00,0x02,0x00,0x00]
+ vfmsubadd213ps zmm12, zmm9, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0xa7,0x62,0x80]
+ vfmsubadd213ps zmm12, zmm9, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd213ps zmm12, zmm9, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x35,0x58,0xa7,0xa2,0xfc,0xfd,0xff,0xff]
+ vfmsubadd213ps zmm12, zmm9, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmm9
+// CHECK: encoding: [0x62,0xc2,0xed,0x48,0xb7,0xe9]
+ vfmsubadd231pd zmm21, zmm2, zmm9
+
+// CHECK: vfmsubadd231pd zmm21 {k6}, zmm2, zmm9
+// CHECK: encoding: [0x62,0xc2,0xed,0x4e,0xb7,0xe9]
+ vfmsubadd231pd zmm21 {k6}, zmm2, zmm9
+
+// CHECK: vfmsubadd231pd zmm21 {k6} {z}, zmm2, zmm9
+// CHECK: encoding: [0x62,0xc2,0xed,0xce,0xb7,0xe9]
+ vfmsubadd231pd zmm21 {k6} {z}, zmm2, zmm9
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x18,0xb7,0xe9]
+ vfmsubadd231pd zmm21, zmm2, zmm9, {rn-sae}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x58,0xb7,0xe9]
+ vfmsubadd231pd zmm21, zmm2, zmm9, {ru-sae}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x38,0xb7,0xe9]
+ vfmsubadd231pd zmm21, zmm2, zmm9, {rd-sae}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0xed,0x78,0xb7,0xe9]
+ vfmsubadd231pd zmm21, zmm2, zmm9, {rz-sae}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xb7,0x29]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xed,0x48,0xb7,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xb7,0x29]
+ vfmsubadd231pd zmm21, zmm2, qword ptr [rcx]{1to8}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xb7,0x6a,0x7f]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xb7,0xaa,0x00,0x20,0x00,0x00]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xb7,0x6a,0x80]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xed,0x48,0xb7,0xaa,0xc0,0xdf,0xff,0xff]
+ vfmsubadd231pd zmm21, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xb7,0x6a,0x7f]
+ vfmsubadd231pd zmm21, zmm2, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xb7,0xaa,0x00,0x04,0x00,0x00]
+ vfmsubadd231pd zmm21, zmm2, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xb7,0x6a,0x80]
+ vfmsubadd231pd zmm21, zmm2, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfmsubadd231pd zmm21, zmm2, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xed,0x58,0xb7,0xaa,0xf8,0xfb,0xff,0xff]
+ vfmsubadd231pd zmm21, zmm2, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmm24
+// CHECK: encoding: [0x62,0x02,0x55,0x40,0xb7,0xd8]
+ vfmsubadd231ps zmm27, zmm21, zmm24
+
+// CHECK: vfmsubadd231ps zmm27 {k6}, zmm21, zmm24
+// CHECK: encoding: [0x62,0x02,0x55,0x46,0xb7,0xd8]
+ vfmsubadd231ps zmm27 {k6}, zmm21, zmm24
+
+// CHECK: vfmsubadd231ps zmm27 {k6} {z}, zmm21, zmm24
+// CHECK: encoding: [0x62,0x02,0x55,0xc6,0xb7,0xd8]
+ vfmsubadd231ps zmm27 {k6} {z}, zmm21, zmm24
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmm24, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x55,0x10,0xb7,0xd8]
+ vfmsubadd231ps zmm27, zmm21, zmm24, {rn-sae}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmm24, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x55,0x50,0xb7,0xd8]
+ vfmsubadd231ps zmm27, zmm21, zmm24, {ru-sae}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmm24, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x55,0x30,0xb7,0xd8]
+ vfmsubadd231ps zmm27, zmm21, zmm24, {rd-sae}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmm24, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x55,0x70,0xb7,0xd8]
+ vfmsubadd231ps zmm27, zmm21, zmm24, {rz-sae}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x55,0x40,0xb7,0x19]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rcx]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x55,0x40,0xb7,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x55,0x50,0xb7,0x19]
+ vfmsubadd231ps zmm27, zmm21, dword ptr [rcx]{1to16}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x55,0x40,0xb7,0x5a,0x7f]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx + 8128]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x55,0x40,0xb7,0x9a,0x00,0x20,0x00,0x00]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx + 8192]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x55,0x40,0xb7,0x5a,0x80]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx - 8192]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x55,0x40,0xb7,0x9a,0xc0,0xdf,0xff,0xff]
+ vfmsubadd231ps zmm27, zmm21, zmmword ptr [rdx - 8256]
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x55,0x50,0xb7,0x5a,0x7f]
+ vfmsubadd231ps zmm27, zmm21, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x55,0x50,0xb7,0x9a,0x00,0x02,0x00,0x00]
+ vfmsubadd231ps zmm27, zmm21, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x55,0x50,0xb7,0x5a,0x80]
+ vfmsubadd231ps zmm27, zmm21, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfmsubadd231ps zmm27, zmm21, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x55,0x50,0xb7,0x9a,0xfc,0xfd,0xff,0xff]
+ vfmsubadd231ps zmm27, zmm21, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmm19
+// CHECK: encoding: [0x62,0x32,0x95,0x40,0x9c,0xdb]
+ vfnmadd132pd zmm11, zmm29, zmm19
+
+// CHECK: vfnmadd132pd zmm11 {k2}, zmm29, zmm19
+// CHECK: encoding: [0x62,0x32,0x95,0x42,0x9c,0xdb]
+ vfnmadd132pd zmm11 {k2}, zmm29, zmm19
+
+// CHECK: vfnmadd132pd zmm11 {k2} {z}, zmm29, zmm19
+// CHECK: encoding: [0x62,0x32,0x95,0xc2,0x9c,0xdb]
+ vfnmadd132pd zmm11 {k2} {z}, zmm29, zmm19
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0x95,0x10,0x9c,0xdb]
+ vfnmadd132pd zmm11, zmm29, zmm19, {rn-sae}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0x95,0x50,0x9c,0xdb]
+ vfnmadd132pd zmm11, zmm29, zmm19, {ru-sae}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0x95,0x30,0x9c,0xdb]
+ vfnmadd132pd zmm11, zmm29, zmm19, {rd-sae}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0x95,0x70,0x9c,0xdb]
+ vfnmadd132pd zmm11, zmm29, zmm19, {rz-sae}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x95,0x40,0x9c,0x19]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rcx]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x95,0x40,0x9c,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0x95,0x50,0x9c,0x19]
+ vfnmadd132pd zmm11, zmm29, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x95,0x40,0x9c,0x5a,0x7f]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x95,0x40,0x9c,0x9a,0x00,0x20,0x00,0x00]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x95,0x40,0x9c,0x5a,0x80]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x95,0x40,0x9c,0x9a,0xc0,0xdf,0xff,0xff]
+ vfnmadd132pd zmm11, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd132pd zmm11, zmm29, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0x95,0x50,0x9c,0x5a,0x7f]
+ vfnmadd132pd zmm11, zmm29, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x95,0x50,0x9c,0x9a,0x00,0x04,0x00,0x00]
+ vfnmadd132pd zmm11, zmm29, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x95,0x50,0x9c,0x5a,0x80]
+ vfnmadd132pd zmm11, zmm29, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd132pd zmm11, zmm29, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0x95,0x50,0x9c,0x9a,0xf8,0xfb,0xff,0xff]
+ vfnmadd132pd zmm11, zmm29, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmm15
+// CHECK: encoding: [0x62,0xc2,0x65,0x48,0x9c,0xcf]
+ vfnmadd132ps zmm17, zmm3, zmm15
+
+// CHECK: vfnmadd132ps zmm17 {k5}, zmm3, zmm15
+// CHECK: encoding: [0x62,0xc2,0x65,0x4d,0x9c,0xcf]
+ vfnmadd132ps zmm17 {k5}, zmm3, zmm15
+
+// CHECK: vfnmadd132ps zmm17 {k5} {z}, zmm3, zmm15
+// CHECK: encoding: [0x62,0xc2,0x65,0xcd,0x9c,0xcf]
+ vfnmadd132ps zmm17 {k5} {z}, zmm3, zmm15
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmm15, {rn-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x18,0x9c,0xcf]
+ vfnmadd132ps zmm17, zmm3, zmm15, {rn-sae}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmm15, {ru-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x58,0x9c,0xcf]
+ vfnmadd132ps zmm17, zmm3, zmm15, {ru-sae}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmm15, {rd-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x38,0x9c,0xcf]
+ vfnmadd132ps zmm17, zmm3, zmm15, {rd-sae}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmm15, {rz-sae}
+// CHECK: encoding: [0x62,0xc2,0x65,0x78,0x9c,0xcf]
+ vfnmadd132ps zmm17, zmm3, zmm15, {rz-sae}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x65,0x48,0x9c,0x09]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rcx]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x65,0x48,0x9c,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x58,0x9c,0x09]
+ vfnmadd132ps zmm17, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x65,0x48,0x9c,0x4a,0x7f]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x65,0x48,0x9c,0x8a,0x00,0x20,0x00,0x00]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x65,0x48,0x9c,0x4a,0x80]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x65,0x48,0x9c,0x8a,0xc0,0xdf,0xff,0xff]
+ vfnmadd132ps zmm17, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd132ps zmm17, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x58,0x9c,0x4a,0x7f]
+ vfnmadd132ps zmm17, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x58,0x9c,0x8a,0x00,0x02,0x00,0x00]
+ vfnmadd132ps zmm17, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x58,0x9c,0x4a,0x80]
+ vfnmadd132ps zmm17, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd132ps zmm17, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x65,0x58,0x9c,0x8a,0xfc,0xfd,0xff,0xff]
+ vfnmadd132ps zmm17, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd132sd xmm2, xmm24, xmm1
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0xd1]
+ vfnmadd132sd xmm2, xmm24, xmm1
+
+// CHECK: vfnmadd132sd xmm2 {k4}, xmm24, xmm1
+// CHECK: encoding: [0x62,0xf2,0xbd,0x04,0x9d,0xd1]
+ vfnmadd132sd xmm2 {k4}, xmm24, xmm1
+
+// CHECK: vfnmadd132sd xmm2 {k4} {z}, xmm24, xmm1
+// CHECK: encoding: [0x62,0xf2,0xbd,0x84,0x9d,0xd1]
+ vfnmadd132sd xmm2 {k4} {z}, xmm24, xmm1
+
+// CHECK: vfnmadd132sd xmm2, xmm24, xmm1, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x10,0x9d,0xd1]
+ vfnmadd132sd xmm2, xmm24, xmm1, {rn-sae}
+
+// CHECK: vfnmadd132sd xmm2, xmm24, xmm1, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x50,0x9d,0xd1]
+ vfnmadd132sd xmm2, xmm24, xmm1, {ru-sae}
+
+// CHECK: vfnmadd132sd xmm2, xmm24, xmm1, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x30,0x9d,0xd1]
+ vfnmadd132sd xmm2, xmm24, xmm1, {rd-sae}
+
+// CHECK: vfnmadd132sd xmm2, xmm24, xmm1, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x70,0x9d,0xd1]
+ vfnmadd132sd xmm2, xmm24, xmm1, {rz-sae}
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0x11]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rcx]
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xbd,0x00,0x9d,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0x52,0x7f]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0x92,0x00,0x04,0x00,0x00]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0x52,0x80]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd132sd xmm2, xmm24, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x00,0x9d,0x92,0xf8,0xfb,0xff,0xff]
+ vfnmadd132sd xmm2, xmm24, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, xmm13
+// CHECK: encoding: [0x62,0x52,0x65,0x00,0x9d,0xed]
+ vfnmadd132ss xmm13, xmm19, xmm13
+
+// CHECK: vfnmadd132ss xmm13 {k4}, xmm19, xmm13
+// CHECK: encoding: [0x62,0x52,0x65,0x04,0x9d,0xed]
+ vfnmadd132ss xmm13 {k4}, xmm19, xmm13
+
+// CHECK: vfnmadd132ss xmm13 {k4} {z}, xmm19, xmm13
+// CHECK: encoding: [0x62,0x52,0x65,0x84,0x9d,0xed]
+ vfnmadd132ss xmm13 {k4} {z}, xmm19, xmm13
+
+// CHECK: vfnmadd132ss xmm13, xmm19, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0x65,0x10,0x9d,0xed]
+ vfnmadd132ss xmm13, xmm19, xmm13, {rn-sae}
+
+// CHECK: vfnmadd132ss xmm13, xmm19, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0x65,0x50,0x9d,0xed]
+ vfnmadd132ss xmm13, xmm19, xmm13, {ru-sae}
+
+// CHECK: vfnmadd132ss xmm13, xmm19, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0x65,0x30,0x9d,0xed]
+ vfnmadd132ss xmm13, xmm19, xmm13, {rd-sae}
+
+// CHECK: vfnmadd132ss xmm13, xmm19, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0x65,0x70,0x9d,0xed]
+ vfnmadd132ss xmm13, xmm19, xmm13, {rz-sae}
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x65,0x00,0x9d,0x29]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rcx]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x65,0x00,0x9d,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x65,0x00,0x9d,0x6a,0x7f]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x65,0x00,0x9d,0xaa,0x00,0x02,0x00,0x00]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x65,0x00,0x9d,0x6a,0x80]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd132ss xmm13, xmm19, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x65,0x00,0x9d,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmadd132ss xmm13, xmm19, dword ptr [rdx - 516]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmm22
+// CHECK: encoding: [0x62,0x32,0xf5,0x48,0xac,0xfe]
+ vfnmadd213pd zmm15, zmm1, zmm22
+
+// CHECK: vfnmadd213pd zmm15 {k3}, zmm1, zmm22
+// CHECK: encoding: [0x62,0x32,0xf5,0x4b,0xac,0xfe]
+ vfnmadd213pd zmm15 {k3}, zmm1, zmm22
+
+// CHECK: vfnmadd213pd zmm15 {k3} {z}, zmm1, zmm22
+// CHECK: encoding: [0x62,0x32,0xf5,0xcb,0xac,0xfe]
+ vfnmadd213pd zmm15 {k3} {z}, zmm1, zmm22
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0xf5,0x18,0xac,0xfe]
+ vfnmadd213pd zmm15, zmm1, zmm22, {rn-sae}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0xf5,0x58,0xac,0xfe]
+ vfnmadd213pd zmm15, zmm1, zmm22, {ru-sae}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0xf5,0x38,0xac,0xfe]
+ vfnmadd213pd zmm15, zmm1, zmm22, {rd-sae}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0xf5,0x78,0xac,0xfe]
+ vfnmadd213pd zmm15, zmm1, zmm22, {rz-sae}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xf5,0x48,0xac,0x39]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rcx]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xf5,0x48,0xac,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xf5,0x58,0xac,0x39]
+ vfnmadd213pd zmm15, zmm1, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xf5,0x48,0xac,0x7a,0x7f]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xf5,0x48,0xac,0xba,0x00,0x20,0x00,0x00]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xf5,0x48,0xac,0x7a,0x80]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xf5,0x48,0xac,0xba,0xc0,0xdf,0xff,0xff]
+ vfnmadd213pd zmm15, zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd213pd zmm15, zmm1, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xf5,0x58,0xac,0x7a,0x7f]
+ vfnmadd213pd zmm15, zmm1, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xf5,0x58,0xac,0xba,0x00,0x04,0x00,0x00]
+ vfnmadd213pd zmm15, zmm1, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xf5,0x58,0xac,0x7a,0x80]
+ vfnmadd213pd zmm15, zmm1, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd213pd zmm15, zmm1, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xf5,0x58,0xac,0xba,0xf8,0xfb,0xff,0xff]
+ vfnmadd213pd zmm15, zmm1, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmm4
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0xdc]
+ vfnmadd213ps zmm11, zmm4, zmm4
+
+// CHECK: vfnmadd213ps zmm11 {k4}, zmm4, zmm4
+// CHECK: encoding: [0x62,0x72,0x5d,0x4c,0xac,0xdc]
+ vfnmadd213ps zmm11 {k4}, zmm4, zmm4
+
+// CHECK: vfnmadd213ps zmm11 {k4} {z}, zmm4, zmm4
+// CHECK: encoding: [0x62,0x72,0x5d,0xcc,0xac,0xdc]
+ vfnmadd213ps zmm11 {k4} {z}, zmm4, zmm4
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmm4, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0x5d,0x18,0xac,0xdc]
+ vfnmadd213ps zmm11, zmm4, zmm4, {rn-sae}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmm4, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0xdc]
+ vfnmadd213ps zmm11, zmm4, zmm4, {ru-sae}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmm4, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0x5d,0x38,0xac,0xdc]
+ vfnmadd213ps zmm11, zmm4, zmm4, {rd-sae}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmm4, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0x5d,0x78,0xac,0xdc]
+ vfnmadd213ps zmm11, zmm4, zmm4, {rz-sae}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0x19]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rcx]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x5d,0x48,0xac,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0x19]
+ vfnmadd213ps zmm11, zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0x5a,0x7f]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0x9a,0x00,0x20,0x00,0x00]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0x5a,0x80]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x5d,0x48,0xac,0x9a,0xc0,0xdf,0xff,0xff]
+ vfnmadd213ps zmm11, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd213ps zmm11, zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0x5a,0x7f]
+ vfnmadd213ps zmm11, zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0x9a,0x00,0x02,0x00,0x00]
+ vfnmadd213ps zmm11, zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0x5a,0x80]
+ vfnmadd213ps zmm11, zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd213ps zmm11, zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x5d,0x58,0xac,0x9a,0xfc,0xfd,0xff,0xff]
+ vfnmadd213ps zmm11, zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd213sd xmm30, xmm14, xmm11
+// CHECK: encoding: [0x62,0x42,0x8d,0x08,0xad,0xf3]
+ vfnmadd213sd xmm30, xmm14, xmm11
+
+// CHECK: vfnmadd213sd xmm30 {k4}, xmm14, xmm11
+// CHECK: encoding: [0x62,0x42,0x8d,0x0c,0xad,0xf3]
+ vfnmadd213sd xmm30 {k4}, xmm14, xmm11
+
+// CHECK: vfnmadd213sd xmm30 {k4} {z}, xmm14, xmm11
+// CHECK: encoding: [0x62,0x42,0x8d,0x8c,0xad,0xf3]
+ vfnmadd213sd xmm30 {k4} {z}, xmm14, xmm11
+
+// CHECK: vfnmadd213sd xmm30, xmm14, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x8d,0x18,0xad,0xf3]
+ vfnmadd213sd xmm30, xmm14, xmm11, {rn-sae}
+
+// CHECK: vfnmadd213sd xmm30, xmm14, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x8d,0x58,0xad,0xf3]
+ vfnmadd213sd xmm30, xmm14, xmm11, {ru-sae}
+
+// CHECK: vfnmadd213sd xmm30, xmm14, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x8d,0x38,0xad,0xf3]
+ vfnmadd213sd xmm30, xmm14, xmm11, {rd-sae}
+
+// CHECK: vfnmadd213sd xmm30, xmm14, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x8d,0x78,0xad,0xf3]
+ vfnmadd213sd xmm30, xmm14, xmm11, {rz-sae}
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xad,0x31]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rcx]
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x8d,0x08,0xad,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xad,0x72,0x7f]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xad,0xb2,0x00,0x04,0x00,0x00]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xad,0x72,0x80]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd213sd xmm30, xmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0x8d,0x08,0xad,0xb2,0xf8,0xfb,0xff,0xff]
+ vfnmadd213sd xmm30, xmm14, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, xmm20
+// CHECK: encoding: [0x62,0x22,0x65,0x08,0xad,0xe4]
+ vfnmadd213ss xmm28, xmm3, xmm20
+
+// CHECK: vfnmadd213ss xmm28 {k3}, xmm3, xmm20
+// CHECK: encoding: [0x62,0x22,0x65,0x0b,0xad,0xe4]
+ vfnmadd213ss xmm28 {k3}, xmm3, xmm20
+
+// CHECK: vfnmadd213ss xmm28 {k3} {z}, xmm3, xmm20
+// CHECK: encoding: [0x62,0x22,0x65,0x8b,0xad,0xe4]
+ vfnmadd213ss xmm28 {k3} {z}, xmm3, xmm20
+
+// CHECK: vfnmadd213ss xmm28, xmm3, xmm20, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0x65,0x18,0xad,0xe4]
+ vfnmadd213ss xmm28, xmm3, xmm20, {rn-sae}
+
+// CHECK: vfnmadd213ss xmm28, xmm3, xmm20, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0x65,0x58,0xad,0xe4]
+ vfnmadd213ss xmm28, xmm3, xmm20, {ru-sae}
+
+// CHECK: vfnmadd213ss xmm28, xmm3, xmm20, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0x65,0x38,0xad,0xe4]
+ vfnmadd213ss xmm28, xmm3, xmm20, {rd-sae}
+
+// CHECK: vfnmadd213ss xmm28, xmm3, xmm20, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0x65,0x78,0xad,0xe4]
+ vfnmadd213ss xmm28, xmm3, xmm20, {rz-sae}
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xad,0x21]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rcx]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x65,0x08,0xad,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xad,0x62,0x7f]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xad,0xa2,0x00,0x02,0x00,0x00]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xad,0x62,0x80]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd213ss xmm28, xmm3, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x65,0x08,0xad,0xa2,0xfc,0xfd,0xff,0xff]
+ vfnmadd213ss xmm28, xmm3, dword ptr [rdx - 516]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmm22
+// CHECK: encoding: [0x62,0x32,0xd5,0x48,0xbc,0xfe]
+ vfnmadd231pd zmm15, zmm5, zmm22
+
+// CHECK: vfnmadd231pd zmm15 {k7}, zmm5, zmm22
+// CHECK: encoding: [0x62,0x32,0xd5,0x4f,0xbc,0xfe]
+ vfnmadd231pd zmm15 {k7}, zmm5, zmm22
+
+// CHECK: vfnmadd231pd zmm15 {k7} {z}, zmm5, zmm22
+// CHECK: encoding: [0x62,0x32,0xd5,0xcf,0xbc,0xfe]
+ vfnmadd231pd zmm15 {k7} {z}, zmm5, zmm22
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x32,0xd5,0x18,0xbc,0xfe]
+ vfnmadd231pd zmm15, zmm5, zmm22, {rn-sae}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x32,0xd5,0x58,0xbc,0xfe]
+ vfnmadd231pd zmm15, zmm5, zmm22, {ru-sae}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x32,0xd5,0x38,0xbc,0xfe]
+ vfnmadd231pd zmm15, zmm5, zmm22, {rd-sae}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x32,0xd5,0x78,0xbc,0xfe]
+ vfnmadd231pd zmm15, zmm5, zmm22, {rz-sae}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xd5,0x48,0xbc,0x39]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rcx]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xd5,0x48,0xbc,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbc,0x39]
+ vfnmadd231pd zmm15, zmm5, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xd5,0x48,0xbc,0x7a,0x7f]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xd5,0x48,0xbc,0xba,0x00,0x20,0x00,0x00]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xd5,0x48,0xbc,0x7a,0x80]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xd5,0x48,0xbc,0xba,0xc0,0xdf,0xff,0xff]
+ vfnmadd231pd zmm15, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd231pd zmm15, zmm5, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbc,0x7a,0x7f]
+ vfnmadd231pd zmm15, zmm5, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbc,0xba,0x00,0x04,0x00,0x00]
+ vfnmadd231pd zmm15, zmm5, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbc,0x7a,0x80]
+ vfnmadd231pd zmm15, zmm5, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmadd231pd zmm15, zmm5, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbc,0xba,0xf8,0xfb,0xff,0xff]
+ vfnmadd231pd zmm15, zmm5, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmm9
+// CHECK: encoding: [0x62,0x52,0x1d,0x40,0xbc,0xe9]
+ vfnmadd231ps zmm13, zmm28, zmm9
+
+// CHECK: vfnmadd231ps zmm13 {k3}, zmm28, zmm9
+// CHECK: encoding: [0x62,0x52,0x1d,0x43,0xbc,0xe9]
+ vfnmadd231ps zmm13 {k3}, zmm28, zmm9
+
+// CHECK: vfnmadd231ps zmm13 {k3} {z}, zmm28, zmm9
+// CHECK: encoding: [0x62,0x52,0x1d,0xc3,0xbc,0xe9]
+ vfnmadd231ps zmm13 {k3} {z}, zmm28, zmm9
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x10,0xbc,0xe9]
+ vfnmadd231ps zmm13, zmm28, zmm9, {rn-sae}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x50,0xbc,0xe9]
+ vfnmadd231ps zmm13, zmm28, zmm9, {ru-sae}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x30,0xbc,0xe9]
+ vfnmadd231ps zmm13, zmm28, zmm9, {rd-sae}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0x52,0x1d,0x70,0xbc,0xe9]
+ vfnmadd231ps zmm13, zmm28, zmm9, {rz-sae}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0xbc,0x29]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rcx]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x1d,0x40,0xbc,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0xbc,0x29]
+ vfnmadd231ps zmm13, zmm28, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0xbc,0x6a,0x7f]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0xbc,0xaa,0x00,0x20,0x00,0x00]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0xbc,0x6a,0x80]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x1d,0x40,0xbc,0xaa,0xc0,0xdf,0xff,0xff]
+ vfnmadd231ps zmm13, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmadd231ps zmm13, zmm28, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0xbc,0x6a,0x7f]
+ vfnmadd231ps zmm13, zmm28, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0xbc,0xaa,0x00,0x02,0x00,0x00]
+ vfnmadd231ps zmm13, zmm28, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0xbc,0x6a,0x80]
+ vfnmadd231ps zmm13, zmm28, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmadd231ps zmm13, zmm28, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x1d,0x50,0xbc,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmadd231ps zmm13, zmm28, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmadd231sd xmm14, xmm5, xmm5
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0xf5]
+ vfnmadd231sd xmm14, xmm5, xmm5
+
+// CHECK: vfnmadd231sd xmm14 {k7}, xmm5, xmm5
+// CHECK: encoding: [0x62,0x72,0xd5,0x0f,0xbd,0xf5]
+ vfnmadd231sd xmm14 {k7}, xmm5, xmm5
+
+// CHECK: vfnmadd231sd xmm14 {k7} {z}, xmm5, xmm5
+// CHECK: encoding: [0x62,0x72,0xd5,0x8f,0xbd,0xf5]
+ vfnmadd231sd xmm14 {k7} {z}, xmm5, xmm5
+
+// CHECK: vfnmadd231sd xmm14, xmm5, xmm5, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0xd5,0x18,0xbd,0xf5]
+ vfnmadd231sd xmm14, xmm5, xmm5, {rn-sae}
+
+// CHECK: vfnmadd231sd xmm14, xmm5, xmm5, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0xd5,0x58,0xbd,0xf5]
+ vfnmadd231sd xmm14, xmm5, xmm5, {ru-sae}
+
+// CHECK: vfnmadd231sd xmm14, xmm5, xmm5, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0xd5,0x38,0xbd,0xf5]
+ vfnmadd231sd xmm14, xmm5, xmm5, {rd-sae}
+
+// CHECK: vfnmadd231sd xmm14, xmm5, xmm5, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0xd5,0x78,0xbd,0xf5]
+ vfnmadd231sd xmm14, xmm5, xmm5, {rz-sae}
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0x31]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rcx]
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x22,0xd1,0xbd,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0xb2,0xf8,0x03,0x00,0x00]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rdx + 1016]
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0xb2,0x00,0x04,0x00,0x00]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rdx + 1024]
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0xb2,0x00,0xfc,0xff,0xff]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rdx - 1024]
+
+// CHECK: vfnmadd231sd xmm14, xmm5, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0x62,0xd1,0xbd,0xb2,0xf8,0xfb,0xff,0xff]
+ vfnmadd231sd xmm14, xmm5, qword ptr [rdx - 1032]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x00,0xbd,0xc9]
+ vfnmadd231ss xmm25, xmm16, xmm25
+
+// CHECK: vfnmadd231ss xmm25 {k6}, xmm16, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x06,0xbd,0xc9]
+ vfnmadd231ss xmm25 {k6}, xmm16, xmm25
+
+// CHECK: vfnmadd231ss xmm25 {k6} {z}, xmm16, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x86,0xbd,0xc9]
+ vfnmadd231ss xmm25 {k6} {z}, xmm16, xmm25
+
+// CHECK: vfnmadd231ss xmm25, xmm16, xmm25, {rn-sae}
+// CHECK: encoding: [0x62,0x02,0x7d,0x10,0xbd,0xc9]
+ vfnmadd231ss xmm25, xmm16, xmm25, {rn-sae}
+
+// CHECK: vfnmadd231ss xmm25, xmm16, xmm25, {ru-sae}
+// CHECK: encoding: [0x62,0x02,0x7d,0x50,0xbd,0xc9]
+ vfnmadd231ss xmm25, xmm16, xmm25, {ru-sae}
+
+// CHECK: vfnmadd231ss xmm25, xmm16, xmm25, {rd-sae}
+// CHECK: encoding: [0x62,0x02,0x7d,0x30,0xbd,0xc9]
+ vfnmadd231ss xmm25, xmm16, xmm25, {rd-sae}
+
+// CHECK: vfnmadd231ss xmm25, xmm16, xmm25, {rz-sae}
+// CHECK: encoding: [0x62,0x02,0x7d,0x70,0xbd,0xc9]
+ vfnmadd231ss xmm25, xmm16, xmm25, {rz-sae}
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x00,0xbd,0x09]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rcx]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x7d,0x00,0xbd,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x7d,0x00,0xbd,0x4a,0x7f]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rdx + 508]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x00,0xbd,0x8a,0x00,0x02,0x00,0x00]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rdx + 512]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x7d,0x00,0xbd,0x4a,0x80]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rdx - 512]
+
+// CHECK: vfnmadd231ss xmm25, xmm16, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x7d,0x00,0xbd,0x8a,0xfc,0xfd,0xff,0xff]
+ vfnmadd231ss xmm25, xmm16, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmm9
+// CHECK: encoding: [0x62,0x42,0xbd,0x48,0x9e,0xd9]
+ vfnmsub132pd zmm27, zmm8, zmm9
+
+// CHECK: vfnmsub132pd zmm27 {k4}, zmm8, zmm9
+// CHECK: encoding: [0x62,0x42,0xbd,0x4c,0x9e,0xd9]
+ vfnmsub132pd zmm27 {k4}, zmm8, zmm9
+
+// CHECK: vfnmsub132pd zmm27 {k4} {z}, zmm8, zmm9
+// CHECK: encoding: [0x62,0x42,0xbd,0xcc,0x9e,0xd9]
+ vfnmsub132pd zmm27 {k4} {z}, zmm8, zmm9
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0xbd,0x18,0x9e,0xd9]
+ vfnmsub132pd zmm27, zmm8, zmm9, {rn-sae}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0xbd,0x58,0x9e,0xd9]
+ vfnmsub132pd zmm27, zmm8, zmm9, {ru-sae}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0xbd,0x38,0x9e,0xd9]
+ vfnmsub132pd zmm27, zmm8, zmm9, {rd-sae}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0xbd,0x78,0x9e,0xd9]
+ vfnmsub132pd zmm27, zmm8, zmm9, {rz-sae}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xbd,0x48,0x9e,0x19]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rcx]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xbd,0x48,0x9e,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xbd,0x58,0x9e,0x19]
+ vfnmsub132pd zmm27, zmm8, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xbd,0x48,0x9e,0x5a,0x7f]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xbd,0x48,0x9e,0x9a,0x00,0x20,0x00,0x00]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xbd,0x48,0x9e,0x5a,0x80]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xbd,0x48,0x9e,0x9a,0xc0,0xdf,0xff,0xff]
+ vfnmsub132pd zmm27, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub132pd zmm27, zmm8, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xbd,0x58,0x9e,0x5a,0x7f]
+ vfnmsub132pd zmm27, zmm8, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xbd,0x58,0x9e,0x9a,0x00,0x04,0x00,0x00]
+ vfnmsub132pd zmm27, zmm8, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xbd,0x58,0x9e,0x5a,0x80]
+ vfnmsub132pd zmm27, zmm8, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub132pd zmm27, zmm8, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xbd,0x58,0x9e,0x9a,0xf8,0xfb,0xff,0xff]
+ vfnmsub132pd zmm27, zmm8, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmm9
+// CHECK: encoding: [0x62,0x42,0x25,0x48,0x9e,0xd1]
+ vfnmsub132ps zmm26, zmm11, zmm9
+
+// CHECK: vfnmsub132ps zmm26 {k4}, zmm11, zmm9
+// CHECK: encoding: [0x62,0x42,0x25,0x4c,0x9e,0xd1]
+ vfnmsub132ps zmm26 {k4}, zmm11, zmm9
+
+// CHECK: vfnmsub132ps zmm26 {k4} {z}, zmm11, zmm9
+// CHECK: encoding: [0x62,0x42,0x25,0xcc,0x9e,0xd1]
+ vfnmsub132ps zmm26 {k4} {z}, zmm11, zmm9
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmm9, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x25,0x18,0x9e,0xd1]
+ vfnmsub132ps zmm26, zmm11, zmm9, {rn-sae}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmm9, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x25,0x58,0x9e,0xd1]
+ vfnmsub132ps zmm26, zmm11, zmm9, {ru-sae}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmm9, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x25,0x38,0x9e,0xd1]
+ vfnmsub132ps zmm26, zmm11, zmm9, {rd-sae}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmm9, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x25,0x78,0x9e,0xd1]
+ vfnmsub132ps zmm26, zmm11, zmm9, {rz-sae}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x25,0x48,0x9e,0x11]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rcx]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x25,0x48,0x9e,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x25,0x58,0x9e,0x11]
+ vfnmsub132ps zmm26, zmm11, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x25,0x48,0x9e,0x52,0x7f]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x25,0x48,0x9e,0x92,0x00,0x20,0x00,0x00]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x25,0x48,0x9e,0x52,0x80]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x25,0x48,0x9e,0x92,0xc0,0xdf,0xff,0xff]
+ vfnmsub132ps zmm26, zmm11, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub132ps zmm26, zmm11, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x25,0x58,0x9e,0x52,0x7f]
+ vfnmsub132ps zmm26, zmm11, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x25,0x58,0x9e,0x92,0x00,0x02,0x00,0x00]
+ vfnmsub132ps zmm26, zmm11, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x25,0x58,0x9e,0x52,0x80]
+ vfnmsub132ps zmm26, zmm11, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub132ps zmm26, zmm11, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x25,0x58,0x9e,0x92,0xfc,0xfd,0xff,0xff]
+ vfnmsub132ps zmm26, zmm11, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub132sd xmm3, xmm8, xmm19
+// CHECK: encoding: [0x62,0xb2,0xbd,0x08,0x9f,0xdb]
+ vfnmsub132sd xmm3, xmm8, xmm19
+
+// CHECK: vfnmsub132sd xmm3 {k3}, xmm8, xmm19
+// CHECK: encoding: [0x62,0xb2,0xbd,0x0b,0x9f,0xdb]
+ vfnmsub132sd xmm3 {k3}, xmm8, xmm19
+
+// CHECK: vfnmsub132sd xmm3 {k3} {z}, xmm8, xmm19
+// CHECK: encoding: [0x62,0xb2,0xbd,0x8b,0x9f,0xdb]
+ vfnmsub132sd xmm3 {k3} {z}, xmm8, xmm19
+
+// CHECK: vfnmsub132sd xmm3, xmm8, xmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0xbd,0x18,0x9f,0xdb]
+ vfnmsub132sd xmm3, xmm8, xmm19, {rn-sae}
+
+// CHECK: vfnmsub132sd xmm3, xmm8, xmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0xbd,0x58,0x9f,0xdb]
+ vfnmsub132sd xmm3, xmm8, xmm19, {ru-sae}
+
+// CHECK: vfnmsub132sd xmm3, xmm8, xmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0xbd,0x38,0x9f,0xdb]
+ vfnmsub132sd xmm3, xmm8, xmm19, {rd-sae}
+
+// CHECK: vfnmsub132sd xmm3, xmm8, xmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0xbd,0x78,0x9f,0xdb]
+ vfnmsub132sd xmm3, xmm8, xmm19, {rz-sae}
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rcx]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0x9f,0x19]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rcx]
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa2,0xb9,0x9f,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0x9f,0x9a,0xf8,0x03,0x00,0x00]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0x9f,0x9a,0x00,0x04,0x00,0x00]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0x9f,0x9a,0x00,0xfc,0xff,0xff]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub132sd xmm3, xmm8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc4,0xe2,0xb9,0x9f,0x9a,0xf8,0xfb,0xff,0xff]
+ vfnmsub132sd xmm3, xmm8, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, xmm6
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0xde]
+ vfnmsub132ss xmm19, xmm17, xmm6
+
+// CHECK: vfnmsub132ss xmm19 {k1}, xmm17, xmm6
+// CHECK: encoding: [0x62,0xe2,0x75,0x01,0x9f,0xde]
+ vfnmsub132ss xmm19 {k1}, xmm17, xmm6
+
+// CHECK: vfnmsub132ss xmm19 {k1} {z}, xmm17, xmm6
+// CHECK: encoding: [0x62,0xe2,0x75,0x81,0x9f,0xde]
+ vfnmsub132ss xmm19 {k1} {z}, xmm17, xmm6
+
+// CHECK: vfnmsub132ss xmm19, xmm17, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xe2,0x75,0x10,0x9f,0xde]
+ vfnmsub132ss xmm19, xmm17, xmm6, {rn-sae}
+
+// CHECK: vfnmsub132ss xmm19, xmm17, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x9f,0xde]
+ vfnmsub132ss xmm19, xmm17, xmm6, {ru-sae}
+
+// CHECK: vfnmsub132ss xmm19, xmm17, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xe2,0x75,0x30,0x9f,0xde]
+ vfnmsub132ss xmm19, xmm17, xmm6, {rd-sae}
+
+// CHECK: vfnmsub132ss xmm19, xmm17, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xe2,0x75,0x70,0x9f,0xde]
+ vfnmsub132ss xmm19, xmm17, xmm6, {rz-sae}
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0x19]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rcx]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x75,0x00,0x9f,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0x5a,0x7f]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0x9a,0x00,0x02,0x00,0x00]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0x5a,0x80]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub132ss xmm19, xmm17, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x75,0x00,0x9f,0x9a,0xfc,0xfd,0xff,0xff]
+ vfnmsub132ss xmm19, xmm17, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmm7
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0xff]
+ vfnmsub213pd zmm7, zmm8, zmm7
+
+// CHECK: vfnmsub213pd zmm7 {k5}, zmm8, zmm7
+// CHECK: encoding: [0x62,0xf2,0xbd,0x4d,0xae,0xff]
+ vfnmsub213pd zmm7 {k5}, zmm8, zmm7
+
+// CHECK: vfnmsub213pd zmm7 {k5} {z}, zmm8, zmm7
+// CHECK: encoding: [0x62,0xf2,0xbd,0xcd,0xae,0xff]
+ vfnmsub213pd zmm7 {k5} {z}, zmm8, zmm7
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmm7, {rn-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x18,0xae,0xff]
+ vfnmsub213pd zmm7, zmm8, zmm7, {rn-sae}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmm7, {ru-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0xff]
+ vfnmsub213pd zmm7, zmm8, zmm7, {ru-sae}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmm7, {rd-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x38,0xae,0xff]
+ vfnmsub213pd zmm7, zmm8, zmm7, {rd-sae}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmm7, {rz-sae}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x78,0xae,0xff]
+ vfnmsub213pd zmm7, zmm8, zmm7, {rz-sae}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0x39]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rcx]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xbd,0x48,0xae,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0x39]
+ vfnmsub213pd zmm7, zmm8, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0x7a,0x7f]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0xba,0x00,0x20,0x00,0x00]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0x7a,0x80]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0xae,0xba,0xc0,0xdf,0xff,0xff]
+ vfnmsub213pd zmm7, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub213pd zmm7, zmm8, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0x7a,0x7f]
+ vfnmsub213pd zmm7, zmm8, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0xba,0x00,0x04,0x00,0x00]
+ vfnmsub213pd zmm7, zmm8, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0x7a,0x80]
+ vfnmsub213pd zmm7, zmm8, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub213pd zmm7, zmm8, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0xae,0xba,0xf8,0xfb,0xff,0xff]
+ vfnmsub213pd zmm7, zmm8, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmm14
+// CHECK: encoding: [0x62,0x42,0x3d,0x40,0xae,0xee]
+ vfnmsub213ps zmm29, zmm24, zmm14
+
+// CHECK: vfnmsub213ps zmm29 {k7}, zmm24, zmm14
+// CHECK: encoding: [0x62,0x42,0x3d,0x47,0xae,0xee]
+ vfnmsub213ps zmm29 {k7}, zmm24, zmm14
+
+// CHECK: vfnmsub213ps zmm29 {k7} {z}, zmm24, zmm14
+// CHECK: encoding: [0x62,0x42,0x3d,0xc7,0xae,0xee]
+ vfnmsub213ps zmm29 {k7} {z}, zmm24, zmm14
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmm14, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x3d,0x10,0xae,0xee]
+ vfnmsub213ps zmm29, zmm24, zmm14, {rn-sae}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmm14, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x3d,0x50,0xae,0xee]
+ vfnmsub213ps zmm29, zmm24, zmm14, {ru-sae}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmm14, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x3d,0x30,0xae,0xee]
+ vfnmsub213ps zmm29, zmm24, zmm14, {rd-sae}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmm14, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x3d,0x70,0xae,0xee]
+ vfnmsub213ps zmm29, zmm24, zmm14, {rz-sae}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x3d,0x40,0xae,0x29]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rcx]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x3d,0x40,0xae,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x3d,0x50,0xae,0x29]
+ vfnmsub213ps zmm29, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x3d,0x40,0xae,0x6a,0x7f]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x3d,0x40,0xae,0xaa,0x00,0x20,0x00,0x00]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x3d,0x40,0xae,0x6a,0x80]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x3d,0x40,0xae,0xaa,0xc0,0xdf,0xff,0xff]
+ vfnmsub213ps zmm29, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub213ps zmm29, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x3d,0x50,0xae,0x6a,0x7f]
+ vfnmsub213ps zmm29, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x3d,0x50,0xae,0xaa,0x00,0x02,0x00,0x00]
+ vfnmsub213ps zmm29, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x3d,0x50,0xae,0x6a,0x80]
+ vfnmsub213ps zmm29, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub213ps zmm29, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x3d,0x50,0xae,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmsub213ps zmm29, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub213sd xmm25, xmm8, xmm23
+// CHECK: encoding: [0x62,0x22,0xbd,0x08,0xaf,0xcf]
+ vfnmsub213sd xmm25, xmm8, xmm23
+
+// CHECK: vfnmsub213sd xmm25 {k1}, xmm8, xmm23
+// CHECK: encoding: [0x62,0x22,0xbd,0x09,0xaf,0xcf]
+ vfnmsub213sd xmm25 {k1}, xmm8, xmm23
+
+// CHECK: vfnmsub213sd xmm25 {k1} {z}, xmm8, xmm23
+// CHECK: encoding: [0x62,0x22,0xbd,0x89,0xaf,0xcf]
+ vfnmsub213sd xmm25 {k1} {z}, xmm8, xmm23
+
+// CHECK: vfnmsub213sd xmm25, xmm8, xmm23, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0xbd,0x18,0xaf,0xcf]
+ vfnmsub213sd xmm25, xmm8, xmm23, {rn-sae}
+
+// CHECK: vfnmsub213sd xmm25, xmm8, xmm23, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0xbd,0x58,0xaf,0xcf]
+ vfnmsub213sd xmm25, xmm8, xmm23, {ru-sae}
+
+// CHECK: vfnmsub213sd xmm25, xmm8, xmm23, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0xbd,0x38,0xaf,0xcf]
+ vfnmsub213sd xmm25, xmm8, xmm23, {rd-sae}
+
+// CHECK: vfnmsub213sd xmm25, xmm8, xmm23, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0xbd,0x78,0xaf,0xcf]
+ vfnmsub213sd xmm25, xmm8, xmm23, {rz-sae}
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xbd,0x08,0xaf,0x09]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rcx]
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xbd,0x08,0xaf,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xbd,0x08,0xaf,0x4a,0x7f]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xbd,0x08,0xaf,0x8a,0x00,0x04,0x00,0x00]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xbd,0x08,0xaf,0x4a,0x80]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub213sd xmm25, xmm8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xbd,0x08,0xaf,0x8a,0xf8,0xfb,0xff,0xff]
+ vfnmsub213sd xmm25, xmm8, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, xmm15
+// CHECK: encoding: [0x62,0x42,0x5d,0x00,0xaf,0xc7]
+ vfnmsub213ss xmm24, xmm20, xmm15
+
+// CHECK: vfnmsub213ss xmm24 {k6}, xmm20, xmm15
+// CHECK: encoding: [0x62,0x42,0x5d,0x06,0xaf,0xc7]
+ vfnmsub213ss xmm24 {k6}, xmm20, xmm15
+
+// CHECK: vfnmsub213ss xmm24 {k6} {z}, xmm20, xmm15
+// CHECK: encoding: [0x62,0x42,0x5d,0x86,0xaf,0xc7]
+ vfnmsub213ss xmm24 {k6} {z}, xmm20, xmm15
+
+// CHECK: vfnmsub213ss xmm24, xmm20, xmm15, {rn-sae}
+// CHECK: encoding: [0x62,0x42,0x5d,0x10,0xaf,0xc7]
+ vfnmsub213ss xmm24, xmm20, xmm15, {rn-sae}
+
+// CHECK: vfnmsub213ss xmm24, xmm20, xmm15, {ru-sae}
+// CHECK: encoding: [0x62,0x42,0x5d,0x50,0xaf,0xc7]
+ vfnmsub213ss xmm24, xmm20, xmm15, {ru-sae}
+
+// CHECK: vfnmsub213ss xmm24, xmm20, xmm15, {rd-sae}
+// CHECK: encoding: [0x62,0x42,0x5d,0x30,0xaf,0xc7]
+ vfnmsub213ss xmm24, xmm20, xmm15, {rd-sae}
+
+// CHECK: vfnmsub213ss xmm24, xmm20, xmm15, {rz-sae}
+// CHECK: encoding: [0x62,0x42,0x5d,0x70,0xaf,0xc7]
+ vfnmsub213ss xmm24, xmm20, xmm15, {rz-sae}
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0xaf,0x01]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rcx]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x5d,0x00,0xaf,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0xaf,0x42,0x7f]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0xaf,0x82,0x00,0x02,0x00,0x00]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0xaf,0x42,0x80]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub213ss xmm24, xmm20, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x5d,0x00,0xaf,0x82,0xfc,0xfd,0xff,0xff]
+ vfnmsub213ss xmm24, xmm20, dword ptr [rdx - 516]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmm12
+// CHECK: encoding: [0x62,0xd2,0xad,0x48,0xbe,0xcc]
+ vfnmsub231pd zmm1, zmm10, zmm12
+
+// CHECK: vfnmsub231pd zmm1 {k5}, zmm10, zmm12
+// CHECK: encoding: [0x62,0xd2,0xad,0x4d,0xbe,0xcc]
+ vfnmsub231pd zmm1 {k5}, zmm10, zmm12
+
+// CHECK: vfnmsub231pd zmm1 {k5} {z}, zmm10, zmm12
+// CHECK: encoding: [0x62,0xd2,0xad,0xcd,0xbe,0xcc]
+ vfnmsub231pd zmm1 {k5} {z}, zmm10, zmm12
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmm12, {rn-sae}
+// CHECK: encoding: [0x62,0xd2,0xad,0x18,0xbe,0xcc]
+ vfnmsub231pd zmm1, zmm10, zmm12, {rn-sae}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmm12, {ru-sae}
+// CHECK: encoding: [0x62,0xd2,0xad,0x58,0xbe,0xcc]
+ vfnmsub231pd zmm1, zmm10, zmm12, {ru-sae}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmm12, {rd-sae}
+// CHECK: encoding: [0x62,0xd2,0xad,0x38,0xbe,0xcc]
+ vfnmsub231pd zmm1, zmm10, zmm12, {rd-sae}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmm12, {rz-sae}
+// CHECK: encoding: [0x62,0xd2,0xad,0x78,0xbe,0xcc]
+ vfnmsub231pd zmm1, zmm10, zmm12, {rz-sae}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xbe,0x09]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rcx]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xad,0x48,0xbe,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xbe,0x09]
+ vfnmsub231pd zmm1, zmm10, qword ptr [rcx]{1to8}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xbe,0x4a,0x7f]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xbe,0x8a,0x00,0x20,0x00,0x00]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xbe,0x4a,0x80]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xad,0x48,0xbe,0x8a,0xc0,0xdf,0xff,0xff]
+ vfnmsub231pd zmm1, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub231pd zmm1, zmm10, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xbe,0x4a,0x7f]
+ vfnmsub231pd zmm1, zmm10, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xbe,0x8a,0x00,0x04,0x00,0x00]
+ vfnmsub231pd zmm1, zmm10, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xbe,0x4a,0x80]
+ vfnmsub231pd zmm1, zmm10, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vfnmsub231pd zmm1, zmm10, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xad,0x58,0xbe,0x8a,0xf8,0xfb,0xff,0xff]
+ vfnmsub231pd zmm1, zmm10, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmm19
+// CHECK: encoding: [0x62,0xa2,0x2d,0x40,0xbe,0xcb]
+ vfnmsub231ps zmm17, zmm26, zmm19
+
+// CHECK: vfnmsub231ps zmm17 {k4}, zmm26, zmm19
+// CHECK: encoding: [0x62,0xa2,0x2d,0x44,0xbe,0xcb]
+ vfnmsub231ps zmm17 {k4}, zmm26, zmm19
+
+// CHECK: vfnmsub231ps zmm17 {k4} {z}, zmm26, zmm19
+// CHECK: encoding: [0x62,0xa2,0x2d,0xc4,0xbe,0xcb]
+ vfnmsub231ps zmm17 {k4} {z}, zmm26, zmm19
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xa2,0x2d,0x10,0xbe,0xcb]
+ vfnmsub231ps zmm17, zmm26, zmm19, {rn-sae}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xa2,0x2d,0x50,0xbe,0xcb]
+ vfnmsub231ps zmm17, zmm26, zmm19, {ru-sae}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xa2,0x2d,0x30,0xbe,0xcb]
+ vfnmsub231ps zmm17, zmm26, zmm19, {rd-sae}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xa2,0x2d,0x70,0xbe,0xcb]
+ vfnmsub231ps zmm17, zmm26, zmm19, {rz-sae}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x40,0xbe,0x09]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rcx]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x2d,0x40,0xbe,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x2d,0x50,0xbe,0x09]
+ vfnmsub231ps zmm17, zmm26, dword ptr [rcx]{1to16}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x40,0xbe,0x4a,0x7f]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x40,0xbe,0x8a,0x00,0x20,0x00,0x00]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x40,0xbe,0x4a,0x80]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x40,0xbe,0x8a,0xc0,0xdf,0xff,0xff]
+ vfnmsub231ps zmm17, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vfnmsub231ps zmm17, zmm26, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x2d,0x50,0xbe,0x4a,0x7f]
+ vfnmsub231ps zmm17, zmm26, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x2d,0x50,0xbe,0x8a,0x00,0x02,0x00,0x00]
+ vfnmsub231ps zmm17, zmm26, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x2d,0x50,0xbe,0x4a,0x80]
+ vfnmsub231ps zmm17, zmm26, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vfnmsub231ps zmm17, zmm26, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x2d,0x50,0xbe,0x8a,0xfc,0xfd,0xff,0xff]
+ vfnmsub231ps zmm17, zmm26, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vfnmsub231sd xmm19, xmm6, xmm26
+// CHECK: encoding: [0x62,0x82,0xcd,0x08,0xbf,0xda]
+ vfnmsub231sd xmm19, xmm6, xmm26
+
+// CHECK: vfnmsub231sd xmm19 {k7}, xmm6, xmm26
+// CHECK: encoding: [0x62,0x82,0xcd,0x0f,0xbf,0xda]
+ vfnmsub231sd xmm19 {k7}, xmm6, xmm26
+
+// CHECK: vfnmsub231sd xmm19 {k7} {z}, xmm6, xmm26
+// CHECK: encoding: [0x62,0x82,0xcd,0x8f,0xbf,0xda]
+ vfnmsub231sd xmm19 {k7} {z}, xmm6, xmm26
+
+// CHECK: vfnmsub231sd xmm19, xmm6, xmm26, {rn-sae}
+// CHECK: encoding: [0x62,0x82,0xcd,0x18,0xbf,0xda]
+ vfnmsub231sd xmm19, xmm6, xmm26, {rn-sae}
+
+// CHECK: vfnmsub231sd xmm19, xmm6, xmm26, {ru-sae}
+// CHECK: encoding: [0x62,0x82,0xcd,0x58,0xbf,0xda]
+ vfnmsub231sd xmm19, xmm6, xmm26, {ru-sae}
+
+// CHECK: vfnmsub231sd xmm19, xmm6, xmm26, {rd-sae}
+// CHECK: encoding: [0x62,0x82,0xcd,0x38,0xbf,0xda]
+ vfnmsub231sd xmm19, xmm6, xmm26, {rd-sae}
+
+// CHECK: vfnmsub231sd xmm19, xmm6, xmm26, {rz-sae}
+// CHECK: encoding: [0x62,0x82,0xcd,0x78,0xbf,0xda]
+ vfnmsub231sd xmm19, xmm6, xmm26, {rz-sae}
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x08,0xbf,0x19]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rcx]
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x08,0xbf,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x08,0xbf,0x5a,0x7f]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rdx + 1016]
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x08,0xbf,0x9a,0x00,0x04,0x00,0x00]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rdx + 1024]
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x08,0xbf,0x5a,0x80]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rdx - 1024]
+
+// CHECK: vfnmsub231sd xmm19, xmm6, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x08,0xbf,0x9a,0xf8,0xfb,0xff,0xff]
+ vfnmsub231sd xmm19, xmm6, qword ptr [rdx - 1032]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, xmm1
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0xe9]
+ vfnmsub231ss xmm13, xmm18, xmm1
+
+// CHECK: vfnmsub231ss xmm13 {k5}, xmm18, xmm1
+// CHECK: encoding: [0x62,0x72,0x6d,0x05,0xbf,0xe9]
+ vfnmsub231ss xmm13 {k5}, xmm18, xmm1
+
+// CHECK: vfnmsub231ss xmm13 {k5} {z}, xmm18, xmm1
+// CHECK: encoding: [0x62,0x72,0x6d,0x85,0xbf,0xe9]
+ vfnmsub231ss xmm13 {k5} {z}, xmm18, xmm1
+
+// CHECK: vfnmsub231ss xmm13, xmm18, xmm1, {rn-sae}
+// CHECK: encoding: [0x62,0x72,0x6d,0x10,0xbf,0xe9]
+ vfnmsub231ss xmm13, xmm18, xmm1, {rn-sae}
+
+// CHECK: vfnmsub231ss xmm13, xmm18, xmm1, {ru-sae}
+// CHECK: encoding: [0x62,0x72,0x6d,0x50,0xbf,0xe9]
+ vfnmsub231ss xmm13, xmm18, xmm1, {ru-sae}
+
+// CHECK: vfnmsub231ss xmm13, xmm18, xmm1, {rd-sae}
+// CHECK: encoding: [0x62,0x72,0x6d,0x30,0xbf,0xe9]
+ vfnmsub231ss xmm13, xmm18, xmm1, {rd-sae}
+
+// CHECK: vfnmsub231ss xmm13, xmm18, xmm1, {rz-sae}
+// CHECK: encoding: [0x62,0x72,0x6d,0x70,0xbf,0xe9]
+ vfnmsub231ss xmm13, xmm18, xmm1, {rz-sae}
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0x29]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rcx]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x6d,0x00,0xbf,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0x6a,0x7f]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rdx + 508]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0xaa,0x00,0x02,0x00,0x00]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rdx + 512]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0x6a,0x80]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rdx - 512]
+
+// CHECK: vfnmsub231ss xmm13, xmm18, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x72,0x6d,0x00,0xbf,0xaa,0xfc,0xfd,0xff,0xff]
+ vfnmsub231ss xmm13, xmm18, dword ptr [rdx - 516]
+
+// CHECK: vgetexppd zmm6, zmm25
+// CHECK: encoding: [0x62,0x92,0xfd,0x48,0x42,0xf1]
+ vgetexppd zmm6, zmm25
+
+// CHECK: vgetexppd zmm6 {k3}, zmm25
+// CHECK: encoding: [0x62,0x92,0xfd,0x4b,0x42,0xf1]
+ vgetexppd zmm6 {k3}, zmm25
+
+// CHECK: vgetexppd zmm6 {k3} {z}, zmm25
+// CHECK: encoding: [0x62,0x92,0xfd,0xcb,0x42,0xf1]
+ vgetexppd zmm6 {k3} {z}, zmm25
+
+// CHECK: vgetexppd zmm6, zmm25, {sae}
+// CHECK: encoding: [0x62,0x92,0xfd,0x18,0x42,0xf1]
+ vgetexppd zmm6, zmm25, {sae}
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x42,0x31]
+ vgetexppd zmm6, zmmword ptr [rcx]
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xfd,0x48,0x42,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vgetexppd zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vgetexppd zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x42,0x31]
+ vgetexppd zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x42,0x72,0x7f]
+ vgetexppd zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x42,0xb2,0x00,0x20,0x00,0x00]
+ vgetexppd zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x42,0x72,0x80]
+ vgetexppd zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vgetexppd zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x42,0xb2,0xc0,0xdf,0xff,0xff]
+ vgetexppd zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vgetexppd zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x42,0x72,0x7f]
+ vgetexppd zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vgetexppd zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x42,0xb2,0x00,0x04,0x00,0x00]
+ vgetexppd zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vgetexppd zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x42,0x72,0x80]
+ vgetexppd zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vgetexppd zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xfd,0x58,0x42,0xb2,0xf8,0xfb,0xff,0xff]
+ vgetexppd zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vgetexpps zmm7, zmm16
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x42,0xf8]
+ vgetexpps zmm7, zmm16
+
+// CHECK: vgetexpps zmm7 {k2}, zmm16
+// CHECK: encoding: [0x62,0xb2,0x7d,0x4a,0x42,0xf8]
+ vgetexpps zmm7 {k2}, zmm16
+
+// CHECK: vgetexpps zmm7 {k2} {z}, zmm16
+// CHECK: encoding: [0x62,0xb2,0x7d,0xca,0x42,0xf8]
+ vgetexpps zmm7 {k2} {z}, zmm16
+
+// CHECK: vgetexpps zmm7, zmm16, {sae}
+// CHECK: encoding: [0x62,0xb2,0x7d,0x18,0x42,0xf8]
+ vgetexpps zmm7, zmm16, {sae}
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x39]
+ vgetexpps zmm7, zmmword ptr [rcx]
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x42,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vgetexpps zmm7, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vgetexpps zmm7, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x39]
+ vgetexpps zmm7, dword ptr [rcx]{1to16}
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x7a,0x7f]
+ vgetexpps zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0xba,0x00,0x20,0x00,0x00]
+ vgetexpps zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0x7a,0x80]
+ vgetexpps zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vgetexpps zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x42,0xba,0xc0,0xdf,0xff,0xff]
+ vgetexpps zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vgetexpps zmm7, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x7a,0x7f]
+ vgetexpps zmm7, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vgetexpps zmm7, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0xba,0x00,0x02,0x00,0x00]
+ vgetexpps zmm7, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vgetexpps zmm7, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0x7a,0x80]
+ vgetexpps zmm7, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vgetexpps zmm7, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x42,0xba,0xfc,0xfd,0xff,0xff]
+ vgetexpps zmm7, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vgetexpsd xmm10, xmm14, xmm5
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0xd5]
+ vgetexpsd xmm10, xmm14, xmm5
+
+// CHECK: vgetexpsd xmm10 {k4}, xmm14, xmm5
+// CHECK: encoding: [0x62,0x72,0x8d,0x0c,0x43,0xd5]
+ vgetexpsd xmm10 {k4}, xmm14, xmm5
+
+// CHECK: vgetexpsd xmm10 {k4} {z}, xmm14, xmm5
+// CHECK: encoding: [0x62,0x72,0x8d,0x8c,0x43,0xd5]
+ vgetexpsd xmm10 {k4} {z}, xmm14, xmm5
+
+// CHECK: vgetexpsd xmm10, xmm14, xmm5, {sae}
+// CHECK: encoding: [0x62,0x72,0x8d,0x18,0x43,0xd5]
+ vgetexpsd xmm10, xmm14, xmm5, {sae}
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0x11]
+ vgetexpsd xmm10, xmm14, qword ptr [rcx]
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x8d,0x08,0x43,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vgetexpsd xmm10, xmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0x52,0x7f]
+ vgetexpsd xmm10, xmm14, qword ptr [rdx + 1016]
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0x92,0x00,0x04,0x00,0x00]
+ vgetexpsd xmm10, xmm14, qword ptr [rdx + 1024]
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0x52,0x80]
+ vgetexpsd xmm10, xmm14, qword ptr [rdx - 1024]
+
+// CHECK: vgetexpsd xmm10, xmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0x8d,0x08,0x43,0x92,0xf8,0xfb,0xff,0xff]
+ vgetexpsd xmm10, xmm14, qword ptr [rdx - 1032]
+
+// CHECK: vgetexpss xmm16, xmm21, xmm23
+// CHECK: encoding: [0x62,0xa2,0x55,0x00,0x43,0xc7]
+ vgetexpss xmm16, xmm21, xmm23
+
+// CHECK: vgetexpss xmm16 {k2}, xmm21, xmm23
+// CHECK: encoding: [0x62,0xa2,0x55,0x02,0x43,0xc7]
+ vgetexpss xmm16 {k2}, xmm21, xmm23
+
+// CHECK: vgetexpss xmm16 {k2} {z}, xmm21, xmm23
+// CHECK: encoding: [0x62,0xa2,0x55,0x82,0x43,0xc7]
+ vgetexpss xmm16 {k2} {z}, xmm21, xmm23
+
+// CHECK: vgetexpss xmm16, xmm21, xmm23, {sae}
+// CHECK: encoding: [0x62,0xa2,0x55,0x10,0x43,0xc7]
+ vgetexpss xmm16, xmm21, xmm23, {sae}
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x55,0x00,0x43,0x01]
+ vgetexpss xmm16, xmm21, dword ptr [rcx]
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x55,0x00,0x43,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vgetexpss xmm16, xmm21, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x55,0x00,0x43,0x42,0x7f]
+ vgetexpss xmm16, xmm21, dword ptr [rdx + 508]
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x55,0x00,0x43,0x82,0x00,0x02,0x00,0x00]
+ vgetexpss xmm16, xmm21, dword ptr [rdx + 512]
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x55,0x00,0x43,0x42,0x80]
+ vgetexpss xmm16, xmm21, dword ptr [rdx - 512]
+
+// CHECK: vgetexpss xmm16, xmm21, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x55,0x00,0x43,0x82,0xfc,0xfd,0xff,0xff]
+ vgetexpss xmm16, xmm21, dword ptr [rdx - 516]
+
+// CHECK: vgetmantpd zmm9, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0x48,0x26,0xca,0xab]
+ vgetmantpd zmm9, zmm10, 171
+
+// CHECK: vgetmantpd zmm9 {k5}, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0x4d,0x26,0xca,0xab]
+ vgetmantpd zmm9 {k5}, zmm10, 171
+
+// CHECK: vgetmantpd zmm9 {k5} {z}, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0xcd,0x26,0xca,0xab]
+ vgetmantpd zmm9 {k5} {z}, zmm10, 171
+
+// CHECK: vgetmantpd zmm9, zmm10, {sae}, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0x18,0x26,0xca,0xab]
+ vgetmantpd zmm9, zmm10, {sae}, 171
+
+// CHECK: vgetmantpd zmm9, zmm10, 123
+// CHECK: encoding: [0x62,0x53,0xfd,0x48,0x26,0xca,0x7b]
+ vgetmantpd zmm9, zmm10, 123
+
+// CHECK: vgetmantpd zmm9, zmm10, {sae}, 123
+// CHECK: encoding: [0x62,0x53,0xfd,0x18,0x26,0xca,0x7b]
+ vgetmantpd zmm9, zmm10, {sae}, 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x26,0x09,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rcx], 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0xfd,0x48,0x26,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vgetmantpd zmm9, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x26,0x09,0x7b]
+ vgetmantpd zmm9, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x26,0x4a,0x7f,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x26,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x26,0x4a,0x80,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vgetmantpd zmm9, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x26,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vgetmantpd zmm9, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vgetmantpd zmm9, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x26,0x4a,0x7f,0x7b]
+ vgetmantpd zmm9, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vgetmantpd zmm9, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x26,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vgetmantpd zmm9, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vgetmantpd zmm9, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x26,0x4a,0x80,0x7b]
+ vgetmantpd zmm9, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vgetmantpd zmm9, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x26,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vgetmantpd zmm9, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vgetmantps zmm29, zmm25, 171
+// CHECK: encoding: [0x62,0x03,0x7d,0x48,0x26,0xe9,0xab]
+ vgetmantps zmm29, zmm25, 171
+
+// CHECK: vgetmantps zmm29 {k3}, zmm25, 171
+// CHECK: encoding: [0x62,0x03,0x7d,0x4b,0x26,0xe9,0xab]
+ vgetmantps zmm29 {k3}, zmm25, 171
+
+// CHECK: vgetmantps zmm29 {k3} {z}, zmm25, 171
+// CHECK: encoding: [0x62,0x03,0x7d,0xcb,0x26,0xe9,0xab]
+ vgetmantps zmm29 {k3} {z}, zmm25, 171
+
+// CHECK: vgetmantps zmm29, zmm25, {sae}, 171
+// CHECK: encoding: [0x62,0x03,0x7d,0x18,0x26,0xe9,0xab]
+ vgetmantps zmm29, zmm25, {sae}, 171
+
+// CHECK: vgetmantps zmm29, zmm25, 123
+// CHECK: encoding: [0x62,0x03,0x7d,0x48,0x26,0xe9,0x7b]
+ vgetmantps zmm29, zmm25, 123
+
+// CHECK: vgetmantps zmm29, zmm25, {sae}, 123
+// CHECK: encoding: [0x62,0x03,0x7d,0x18,0x26,0xe9,0x7b]
+ vgetmantps zmm29, zmm25, {sae}, 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x26,0x29,0x7b]
+ vgetmantps zmm29, zmmword ptr [rcx], 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x7d,0x48,0x26,0xac,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vgetmantps zmm29, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vgetmantps zmm29, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x26,0x29,0x7b]
+ vgetmantps zmm29, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x26,0x6a,0x7f,0x7b]
+ vgetmantps zmm29, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x26,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vgetmantps zmm29, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x26,0x6a,0x80,0x7b]
+ vgetmantps zmm29, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vgetmantps zmm29, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x26,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vgetmantps zmm29, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vgetmantps zmm29, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x26,0x6a,0x7f,0x7b]
+ vgetmantps zmm29, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vgetmantps zmm29, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x26,0xaa,0x00,0x02,0x00,0x00,0x7b]
+ vgetmantps zmm29, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vgetmantps zmm29, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x26,0x6a,0x80,0x7b]
+ vgetmantps zmm29, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vgetmantps zmm29, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x26,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
+ vgetmantps zmm29, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vgetmantsd xmm20, xmm3, xmm17, 171
+// CHECK: encoding: [0x62,0xa3,0xe5,0x08,0x27,0xe1,0xab]
+ vgetmantsd xmm20, xmm3, xmm17, 171
+
+// CHECK: vgetmantsd xmm20 {k7}, xmm3, xmm17, 171
+// CHECK: encoding: [0x62,0xa3,0xe5,0x0f,0x27,0xe1,0xab]
+ vgetmantsd xmm20 {k7}, xmm3, xmm17, 171
+
+// CHECK: vgetmantsd xmm20 {k7} {z}, xmm3, xmm17, 171
+// CHECK: encoding: [0x62,0xa3,0xe5,0x8f,0x27,0xe1,0xab]
+ vgetmantsd xmm20 {k7} {z}, xmm3, xmm17, 171
+
+// CHECK: vgetmantsd xmm20, xmm3, xmm17, {sae}, 171
+// CHECK: encoding: [0x62,0xa3,0xe5,0x18,0x27,0xe1,0xab]
+ vgetmantsd xmm20, xmm3, xmm17, {sae}, 171
+
+// CHECK: vgetmantsd xmm20, xmm3, xmm17, 123
+// CHECK: encoding: [0x62,0xa3,0xe5,0x08,0x27,0xe1,0x7b]
+ vgetmantsd xmm20, xmm3, xmm17, 123
+
+// CHECK: vgetmantsd xmm20, xmm3, xmm17, {sae}, 123
+// CHECK: encoding: [0x62,0xa3,0xe5,0x18,0x27,0xe1,0x7b]
+ vgetmantsd xmm20, xmm3, xmm17, {sae}, 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0xe5,0x08,0x27,0x21,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rcx], 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xa3,0xe5,0x08,0x27,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0xe3,0xe5,0x08,0x27,0x62,0x7f,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rdx + 1016], 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0xe3,0xe5,0x08,0x27,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rdx + 1024], 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0xe3,0xe5,0x08,0x27,0x62,0x80,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rdx - 1024], 123
+
+// CHECK: vgetmantsd xmm20, xmm3, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0xe3,0xe5,0x08,0x27,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vgetmantsd xmm20, xmm3, qword ptr [rdx - 1032], 123
+
+// CHECK: vgetmantss xmm13, xmm12, xmm6, 171
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0xee,0xab]
+ vgetmantss xmm13, xmm12, xmm6, 171
+
+// CHECK: vgetmantss xmm13 {k2}, xmm12, xmm6, 171
+// CHECK: encoding: [0x62,0x73,0x1d,0x0a,0x27,0xee,0xab]
+ vgetmantss xmm13 {k2}, xmm12, xmm6, 171
+
+// CHECK: vgetmantss xmm13 {k2} {z}, xmm12, xmm6, 171
+// CHECK: encoding: [0x62,0x73,0x1d,0x8a,0x27,0xee,0xab]
+ vgetmantss xmm13 {k2} {z}, xmm12, xmm6, 171
+
+// CHECK: vgetmantss xmm13, xmm12, xmm6, {sae}, 171
+// CHECK: encoding: [0x62,0x73,0x1d,0x18,0x27,0xee,0xab]
+ vgetmantss xmm13, xmm12, xmm6, {sae}, 171
+
+// CHECK: vgetmantss xmm13, xmm12, xmm6, 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0xee,0x7b]
+ vgetmantss xmm13, xmm12, xmm6, 123
+
+// CHECK: vgetmantss xmm13, xmm12, xmm6, {sae}, 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x18,0x27,0xee,0x7b]
+ vgetmantss xmm13, xmm12, xmm6, {sae}, 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0x29,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rcx], 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0x1d,0x08,0x27,0xac,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0x6a,0x7f,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rdx + 508], 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0xaa,0x00,0x02,0x00,0x00,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rdx + 512], 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0x6a,0x80,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rdx - 512], 123
+
+// CHECK: vgetmantss xmm13, xmm12, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x73,0x1d,0x08,0x27,0xaa,0xfc,0xfd,0xff,0xff,0x7b]
+ vgetmantss xmm13, xmm12, dword ptr [rdx - 516], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmm22, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0x40,0x18,0xc6,0xab]
+ vinsertf32x4 zmm8, zmm16, xmm22, 171
+
+// CHECK: vinsertf32x4 zmm8 {k5}, zmm16, xmm22, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0x45,0x18,0xc6,0xab]
+ vinsertf32x4 zmm8 {k5}, zmm16, xmm22, 171
+
+// CHECK: vinsertf32x4 zmm8 {k5} {z}, zmm16, xmm22, 171
+// CHECK: encoding: [0x62,0x33,0x7d,0xc5,0x18,0xc6,0xab]
+ vinsertf32x4 zmm8 {k5} {z}, zmm16, xmm22, 171
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmm22, 123
+// CHECK: encoding: [0x62,0x33,0x7d,0x40,0x18,0xc6,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmm22, 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x40,0x18,0x01,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rcx], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0x7d,0x40,0x18,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx + 2032], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x40,0x18,0x42,0x7f,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx + 2032], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx + 2048], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x40,0x18,0x82,0x00,0x08,0x00,0x00,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx + 2048], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx - 2048], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x40,0x18,0x42,0x80,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx - 2048], 123
+
+// CHECK: vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx - 2064], 123
+// CHECK: encoding: [0x62,0x73,0x7d,0x40,0x18,0x82,0xf0,0xf7,0xff,0xff,0x7b]
+ vinsertf32x4 zmm8, zmm16, xmmword ptr [rdx - 2064], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymm12, 171
+// CHECK: encoding: [0x62,0xc3,0xb5,0x48,0x1a,0xf4,0xab]
+ vinsertf64x4 zmm22, zmm9, ymm12, 171
+
+// CHECK: vinsertf64x4 zmm22 {k6}, zmm9, ymm12, 171
+// CHECK: encoding: [0x62,0xc3,0xb5,0x4e,0x1a,0xf4,0xab]
+ vinsertf64x4 zmm22 {k6}, zmm9, ymm12, 171
+
+// CHECK: vinsertf64x4 zmm22 {k6} {z}, zmm9, ymm12, 171
+// CHECK: encoding: [0x62,0xc3,0xb5,0xce,0x1a,0xf4,0xab]
+ vinsertf64x4 zmm22 {k6} {z}, zmm9, ymm12, 171
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymm12, 123
+// CHECK: encoding: [0x62,0xc3,0xb5,0x48,0x1a,0xf4,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymm12, 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0xb5,0x48,0x1a,0x31,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rcx], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xa3,0xb5,0x48,0x1a,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx + 4064], 123
+// CHECK: encoding: [0x62,0xe3,0xb5,0x48,0x1a,0x72,0x7f,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx + 4064], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx + 4096], 123
+// CHECK: encoding: [0x62,0xe3,0xb5,0x48,0x1a,0xb2,0x00,0x10,0x00,0x00,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx + 4096], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx - 4096], 123
+// CHECK: encoding: [0x62,0xe3,0xb5,0x48,0x1a,0x72,0x80,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx - 4096], 123
+
+// CHECK: vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx - 4128], 123
+// CHECK: encoding: [0x62,0xe3,0xb5,0x48,0x1a,0xb2,0xe0,0xef,0xff,0xff,0x7b]
+ vinsertf64x4 zmm22, zmm9, ymmword ptr [rdx - 4128], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmm24, 171
+// CHECK: encoding: [0x62,0x93,0x5d,0x48,0x38,0xf8,0xab]
+ vinserti32x4 zmm7, zmm4, xmm24, 171
+
+// CHECK: vinserti32x4 zmm7 {k7}, zmm4, xmm24, 171
+// CHECK: encoding: [0x62,0x93,0x5d,0x4f,0x38,0xf8,0xab]
+ vinserti32x4 zmm7 {k7}, zmm4, xmm24, 171
+
+// CHECK: vinserti32x4 zmm7 {k7} {z}, zmm4, xmm24, 171
+// CHECK: encoding: [0x62,0x93,0x5d,0xcf,0x38,0xf8,0xab]
+ vinserti32x4 zmm7 {k7} {z}, zmm4, xmm24, 171
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmm24, 123
+// CHECK: encoding: [0x62,0x93,0x5d,0x48,0x38,0xf8,0x7b]
+ vinserti32x4 zmm7, zmm4, xmm24, 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x5d,0x48,0x38,0x39,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rcx], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x5d,0x48,0x38,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rdx + 2032], 123
+// CHECK: encoding: [0x62,0xf3,0x5d,0x48,0x38,0x7a,0x7f,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rdx + 2032], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rdx + 2048], 123
+// CHECK: encoding: [0x62,0xf3,0x5d,0x48,0x38,0xba,0x00,0x08,0x00,0x00,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rdx + 2048], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rdx - 2048], 123
+// CHECK: encoding: [0x62,0xf3,0x5d,0x48,0x38,0x7a,0x80,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rdx - 2048], 123
+
+// CHECK: vinserti32x4 zmm7, zmm4, xmmword ptr [rdx - 2064], 123
+// CHECK: encoding: [0x62,0xf3,0x5d,0x48,0x38,0xba,0xf0,0xf7,0xff,0xff,0x7b]
+ vinserti32x4 zmm7, zmm4, xmmword ptr [rdx - 2064], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymm23, 171
+// CHECK: encoding: [0x62,0xa3,0xd5,0x48,0x3a,0xd7,0xab]
+ vinserti64x4 zmm18, zmm5, ymm23, 171
+
+// CHECK: vinserti64x4 zmm18 {k2}, zmm5, ymm23, 171
+// CHECK: encoding: [0x62,0xa3,0xd5,0x4a,0x3a,0xd7,0xab]
+ vinserti64x4 zmm18 {k2}, zmm5, ymm23, 171
+
+// CHECK: vinserti64x4 zmm18 {k2} {z}, zmm5, ymm23, 171
+// CHECK: encoding: [0x62,0xa3,0xd5,0xca,0x3a,0xd7,0xab]
+ vinserti64x4 zmm18 {k2} {z}, zmm5, ymm23, 171
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymm23, 123
+// CHECK: encoding: [0x62,0xa3,0xd5,0x48,0x3a,0xd7,0x7b]
+ vinserti64x4 zmm18, zmm5, ymm23, 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0xd5,0x48,0x3a,0x11,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rcx], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xa3,0xd5,0x48,0x3a,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rdx + 4064], 123
+// CHECK: encoding: [0x62,0xe3,0xd5,0x48,0x3a,0x52,0x7f,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rdx + 4064], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rdx + 4096], 123
+// CHECK: encoding: [0x62,0xe3,0xd5,0x48,0x3a,0x92,0x00,0x10,0x00,0x00,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rdx + 4096], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rdx - 4096], 123
+// CHECK: encoding: [0x62,0xe3,0xd5,0x48,0x3a,0x52,0x80,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rdx - 4096], 123
+
+// CHECK: vinserti64x4 zmm18, zmm5, ymmword ptr [rdx - 4128], 123
+// CHECK: encoding: [0x62,0xe3,0xd5,0x48,0x3a,0x92,0xe0,0xef,0xff,0xff,0x7b]
+ vinserti64x4 zmm18, zmm5, ymmword ptr [rdx - 4128], 123
+
+// CHECK: vinsertps xmm24, xmm6, xmm28, 171
+// CHECK: encoding: [0x62,0x03,0x4d,0x08,0x21,0xc4,0xab]
+ vinsertps xmm24, xmm6, xmm28, 171
+
+// CHECK: vinsertps xmm24, xmm6, xmm28, 123
+// CHECK: encoding: [0x62,0x03,0x4d,0x08,0x21,0xc4,0x7b]
+ vinsertps xmm24, xmm6, xmm28, 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x4d,0x08,0x21,0x01,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rcx], 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x4d,0x08,0x21,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x63,0x4d,0x08,0x21,0x42,0x7f,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rdx + 508], 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x63,0x4d,0x08,0x21,0x82,0x00,0x02,0x00,0x00,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rdx + 512], 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x63,0x4d,0x08,0x21,0x42,0x80,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rdx - 512], 123
+
+// CHECK: vinsertps xmm24, xmm6, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x63,0x4d,0x08,0x21,0x82,0xfc,0xfd,0xff,0xff,0x7b]
+ vinsertps xmm24, xmm6, dword ptr [rdx - 516], 123
+
+// CHECK: vmaxpd zmm9, zmm12, zmm21
+// CHECK: encoding: [0x62,0x31,0x9d,0x48,0x5f,0xcd]
+ vmaxpd zmm9, zmm12, zmm21
+
+// CHECK: vmaxpd zmm9 {k6}, zmm12, zmm21
+// CHECK: encoding: [0x62,0x31,0x9d,0x4e,0x5f,0xcd]
+ vmaxpd zmm9 {k6}, zmm12, zmm21
+
+// CHECK: vmaxpd zmm9 {k6} {z}, zmm12, zmm21
+// CHECK: encoding: [0x62,0x31,0x9d,0xce,0x5f,0xcd]
+ vmaxpd zmm9 {k6} {z}, zmm12, zmm21
+
+// CHECK: vmaxpd zmm9, zmm12, zmm21, {sae}
+// CHECK: encoding: [0x62,0x31,0x9d,0x18,0x5f,0xcd]
+ vmaxpd zmm9, zmm12, zmm21, {sae}
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5f,0x09]
+ vmaxpd zmm9, zmm12, zmmword ptr [rcx]
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x9d,0x48,0x5f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmaxpd zmm9, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmaxpd zmm9, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5f,0x09]
+ vmaxpd zmm9, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5f,0x4a,0x7f]
+ vmaxpd zmm9, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5f,0x8a,0x00,0x20,0x00,0x00]
+ vmaxpd zmm9, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5f,0x4a,0x80]
+ vmaxpd zmm9, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vmaxpd zmm9, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x9d,0x48,0x5f,0x8a,0xc0,0xdf,0xff,0xff]
+ vmaxpd zmm9, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vmaxpd zmm9, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5f,0x4a,0x7f]
+ vmaxpd zmm9, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vmaxpd zmm9, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5f,0x8a,0x00,0x04,0x00,0x00]
+ vmaxpd zmm9, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vmaxpd zmm9, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5f,0x4a,0x80]
+ vmaxpd zmm9, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vmaxpd zmm9, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0x9d,0x58,0x5f,0x8a,0xf8,0xfb,0xff,0xff]
+ vmaxpd zmm9, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vmaxps zmm17, zmm24, zmm24
+// CHECK: encoding: [0x62,0x81,0x3c,0x40,0x5f,0xc8]
+ vmaxps zmm17, zmm24, zmm24
+
+// CHECK: vmaxps zmm17 {k4}, zmm24, zmm24
+// CHECK: encoding: [0x62,0x81,0x3c,0x44,0x5f,0xc8]
+ vmaxps zmm17 {k4}, zmm24, zmm24
+
+// CHECK: vmaxps zmm17 {k4} {z}, zmm24, zmm24
+// CHECK: encoding: [0x62,0x81,0x3c,0xc4,0x5f,0xc8]
+ vmaxps zmm17 {k4} {z}, zmm24, zmm24
+
+// CHECK: vmaxps zmm17, zmm24, zmm24, {sae}
+// CHECK: encoding: [0x62,0x81,0x3c,0x10,0x5f,0xc8]
+ vmaxps zmm17, zmm24, zmm24, {sae}
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x3c,0x40,0x5f,0x09]
+ vmaxps zmm17, zmm24, zmmword ptr [rcx]
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x3c,0x40,0x5f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmaxps zmm17, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmaxps zmm17, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x3c,0x50,0x5f,0x09]
+ vmaxps zmm17, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x3c,0x40,0x5f,0x4a,0x7f]
+ vmaxps zmm17, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x3c,0x40,0x5f,0x8a,0x00,0x20,0x00,0x00]
+ vmaxps zmm17, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x3c,0x40,0x5f,0x4a,0x80]
+ vmaxps zmm17, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vmaxps zmm17, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x3c,0x40,0x5f,0x8a,0xc0,0xdf,0xff,0xff]
+ vmaxps zmm17, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vmaxps zmm17, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x3c,0x50,0x5f,0x4a,0x7f]
+ vmaxps zmm17, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vmaxps zmm17, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x3c,0x50,0x5f,0x8a,0x00,0x02,0x00,0x00]
+ vmaxps zmm17, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vmaxps zmm17, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x3c,0x50,0x5f,0x4a,0x80]
+ vmaxps zmm17, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vmaxps zmm17, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x3c,0x50,0x5f,0x8a,0xfc,0xfd,0xff,0xff]
+ vmaxps zmm17, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vmaxsd xmm23, xmm21, xmm16
+// CHECK: encoding: [0x62,0xa1,0xd7,0x00,0x5f,0xf8]
+ vmaxsd xmm23, xmm21, xmm16
+
+// CHECK: vmaxsd xmm23 {k3}, xmm21, xmm16
+// CHECK: encoding: [0x62,0xa1,0xd7,0x03,0x5f,0xf8]
+ vmaxsd xmm23 {k3}, xmm21, xmm16
+
+// CHECK: vmaxsd xmm23 {k3} {z}, xmm21, xmm16
+// CHECK: encoding: [0x62,0xa1,0xd7,0x83,0x5f,0xf8]
+ vmaxsd xmm23 {k3} {z}, xmm21, xmm16
+
+// CHECK: vmaxsd xmm23, xmm21, xmm16, {sae}
+// CHECK: encoding: [0x62,0xa1,0xd7,0x10,0x5f,0xf8]
+ vmaxsd xmm23, xmm21, xmm16, {sae}
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xd7,0x00,0x5f,0x39]
+ vmaxsd xmm23, xmm21, qword ptr [rcx]
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xd7,0x00,0x5f,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmaxsd xmm23, xmm21, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xd7,0x00,0x5f,0x7a,0x7f]
+ vmaxsd xmm23, xmm21, qword ptr [rdx + 1016]
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xd7,0x00,0x5f,0xba,0x00,0x04,0x00,0x00]
+ vmaxsd xmm23, xmm21, qword ptr [rdx + 1024]
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xd7,0x00,0x5f,0x7a,0x80]
+ vmaxsd xmm23, xmm21, qword ptr [rdx - 1024]
+
+// CHECK: vmaxsd xmm23, xmm21, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xd7,0x00,0x5f,0xba,0xf8,0xfb,0xff,0xff]
+ vmaxsd xmm23, xmm21, qword ptr [rdx - 1032]
+
+// CHECK: vmaxss xmm22, xmm17, xmm16
+// CHECK: encoding: [0x62,0xa1,0x76,0x00,0x5f,0xf0]
+ vmaxss xmm22, xmm17, xmm16
+
+// CHECK: vmaxss xmm22 {k7}, xmm17, xmm16
+// CHECK: encoding: [0x62,0xa1,0x76,0x07,0x5f,0xf0]
+ vmaxss xmm22 {k7}, xmm17, xmm16
+
+// CHECK: vmaxss xmm22 {k7} {z}, xmm17, xmm16
+// CHECK: encoding: [0x62,0xa1,0x76,0x87,0x5f,0xf0]
+ vmaxss xmm22 {k7} {z}, xmm17, xmm16
+
+// CHECK: vmaxss xmm22, xmm17, xmm16, {sae}
+// CHECK: encoding: [0x62,0xa1,0x76,0x10,0x5f,0xf0]
+ vmaxss xmm22, xmm17, xmm16, {sae}
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x76,0x00,0x5f,0x31]
+ vmaxss xmm22, xmm17, dword ptr [rcx]
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x76,0x00,0x5f,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmaxss xmm22, xmm17, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe1,0x76,0x00,0x5f,0x72,0x7f]
+ vmaxss xmm22, xmm17, dword ptr [rdx + 508]
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe1,0x76,0x00,0x5f,0xb2,0x00,0x02,0x00,0x00]
+ vmaxss xmm22, xmm17, dword ptr [rdx + 512]
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe1,0x76,0x00,0x5f,0x72,0x80]
+ vmaxss xmm22, xmm17, dword ptr [rdx - 512]
+
+// CHECK: vmaxss xmm22, xmm17, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe1,0x76,0x00,0x5f,0xb2,0xfc,0xfd,0xff,0xff]
+ vmaxss xmm22, xmm17, dword ptr [rdx - 516]
+
+// CHECK: vminpd zmm10, zmm25, zmm27
+// CHECK: encoding: [0x62,0x11,0xb5,0x40,0x5d,0xd3]
+ vminpd zmm10, zmm25, zmm27
+
+// CHECK: vminpd zmm10 {k4}, zmm25, zmm27
+// CHECK: encoding: [0x62,0x11,0xb5,0x44,0x5d,0xd3]
+ vminpd zmm10 {k4}, zmm25, zmm27
+
+// CHECK: vminpd zmm10 {k4} {z}, zmm25, zmm27
+// CHECK: encoding: [0x62,0x11,0xb5,0xc4,0x5d,0xd3]
+ vminpd zmm10 {k4} {z}, zmm25, zmm27
+
+// CHECK: vminpd zmm10, zmm25, zmm27, {sae}
+// CHECK: encoding: [0x62,0x11,0xb5,0x10,0x5d,0xd3]
+ vminpd zmm10, zmm25, zmm27, {sae}
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0x5d,0x11]
+ vminpd zmm10, zmm25, zmmword ptr [rcx]
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xb5,0x40,0x5d,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vminpd zmm10, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vminpd zmm10, zmm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0x5d,0x11]
+ vminpd zmm10, zmm25, qword ptr [rcx]{1to8}
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0x5d,0x52,0x7f]
+ vminpd zmm10, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0x5d,0x92,0x00,0x20,0x00,0x00]
+ vminpd zmm10, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0x5d,0x52,0x80]
+ vminpd zmm10, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vminpd zmm10, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xb5,0x40,0x5d,0x92,0xc0,0xdf,0xff,0xff]
+ vminpd zmm10, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vminpd zmm10, zmm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0x5d,0x52,0x7f]
+ vminpd zmm10, zmm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vminpd zmm10, zmm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0x5d,0x92,0x00,0x04,0x00,0x00]
+ vminpd zmm10, zmm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vminpd zmm10, zmm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0x5d,0x52,0x80]
+ vminpd zmm10, zmm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vminpd zmm10, zmm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xb5,0x50,0x5d,0x92,0xf8,0xfb,0xff,0xff]
+ vminpd zmm10, zmm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vminps zmm3, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0x48,0x5d,0xd8]
+ vminps zmm3, zmm14, zmm16
+
+// CHECK: vminps zmm3 {k7}, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0x4f,0x5d,0xd8]
+ vminps zmm3 {k7}, zmm14, zmm16
+
+// CHECK: vminps zmm3 {k7} {z}, zmm14, zmm16
+// CHECK: encoding: [0x62,0xb1,0x0c,0xcf,0x5d,0xd8]
+ vminps zmm3 {k7} {z}, zmm14, zmm16
+
+// CHECK: vminps zmm3, zmm14, zmm16, {sae}
+// CHECK: encoding: [0x62,0xb1,0x0c,0x18,0x5d,0xd8]
+ vminps zmm3, zmm14, zmm16, {sae}
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x5d,0x19]
+ vminps zmm3, zmm14, zmmword ptr [rcx]
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x0c,0x48,0x5d,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vminps zmm3, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vminps zmm3, zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x5d,0x19]
+ vminps zmm3, zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x5d,0x5a,0x7f]
+ vminps zmm3, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x5d,0x9a,0x00,0x20,0x00,0x00]
+ vminps zmm3, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x5d,0x5a,0x80]
+ vminps zmm3, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vminps zmm3, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x0c,0x48,0x5d,0x9a,0xc0,0xdf,0xff,0xff]
+ vminps zmm3, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vminps zmm3, zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x5d,0x5a,0x7f]
+ vminps zmm3, zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vminps zmm3, zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x5d,0x9a,0x00,0x02,0x00,0x00]
+ vminps zmm3, zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vminps zmm3, zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x5d,0x5a,0x80]
+ vminps zmm3, zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vminps zmm3, zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x0c,0x58,0x5d,0x9a,0xfc,0xfd,0xff,0xff]
+ vminps zmm3, zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vminsd xmm10, xmm1, xmm28
+// CHECK: encoding: [0x62,0x11,0xf7,0x08,0x5d,0xd4]
+ vminsd xmm10, xmm1, xmm28
+
+// CHECK: vminsd xmm10 {k2}, xmm1, xmm28
+// CHECK: encoding: [0x62,0x11,0xf7,0x0a,0x5d,0xd4]
+ vminsd xmm10 {k2}, xmm1, xmm28
+
+// CHECK: vminsd xmm10 {k2} {z}, xmm1, xmm28
+// CHECK: encoding: [0x62,0x11,0xf7,0x8a,0x5d,0xd4]
+ vminsd xmm10 {k2} {z}, xmm1, xmm28
+
+// CHECK: vminsd xmm10, xmm1, xmm28, {sae}
+// CHECK: encoding: [0x62,0x11,0xf7,0x18,0x5d,0xd4]
+ vminsd xmm10, xmm1, xmm28, {sae}
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x73,0x5d,0x11]
+ vminsd xmm10, xmm1, qword ptr [rcx]
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x73,0x5d,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vminsd xmm10, xmm1, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x73,0x5d,0x92,0xf8,0x03,0x00,0x00]
+ vminsd xmm10, xmm1, qword ptr [rdx + 1016]
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x73,0x5d,0x92,0x00,0x04,0x00,0x00]
+ vminsd xmm10, xmm1, qword ptr [rdx + 1024]
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x73,0x5d,0x92,0x00,0xfc,0xff,0xff]
+ vminsd xmm10, xmm1, qword ptr [rdx - 1024]
+
+// CHECK: vminsd xmm10, xmm1, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x73,0x5d,0x92,0xf8,0xfb,0xff,0xff]
+ vminsd xmm10, xmm1, qword ptr [rdx - 1032]
+
+// CHECK: vminss xmm28, xmm5, xmm8
+// CHECK: encoding: [0x62,0x41,0x56,0x08,0x5d,0xe0]
+ vminss xmm28, xmm5, xmm8
+
+// CHECK: vminss xmm28 {k4}, xmm5, xmm8
+// CHECK: encoding: [0x62,0x41,0x56,0x0c,0x5d,0xe0]
+ vminss xmm28 {k4}, xmm5, xmm8
+
+// CHECK: vminss xmm28 {k4} {z}, xmm5, xmm8
+// CHECK: encoding: [0x62,0x41,0x56,0x8c,0x5d,0xe0]
+ vminss xmm28 {k4} {z}, xmm5, xmm8
+
+// CHECK: vminss xmm28, xmm5, xmm8, {sae}
+// CHECK: encoding: [0x62,0x41,0x56,0x18,0x5d,0xe0]
+ vminss xmm28, xmm5, xmm8, {sae}
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x56,0x08,0x5d,0x21]
+ vminss xmm28, xmm5, dword ptr [rcx]
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x56,0x08,0x5d,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vminss xmm28, xmm5, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x56,0x08,0x5d,0x62,0x7f]
+ vminss xmm28, xmm5, dword ptr [rdx + 508]
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x56,0x08,0x5d,0xa2,0x00,0x02,0x00,0x00]
+ vminss xmm28, xmm5, dword ptr [rdx + 512]
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x56,0x08,0x5d,0x62,0x80]
+ vminss xmm28, xmm5, dword ptr [rdx - 512]
+
+// CHECK: vminss xmm28, xmm5, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x56,0x08,0x5d,0xa2,0xfc,0xfd,0xff,0xff]
+ vminss xmm28, xmm5, dword ptr [rdx - 516]
+
+// CHECK: vmovapd zmm23, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0x48,0x28,0xf9]
+ vmovapd zmm23, zmm9
+
+// CHECK: vmovapd zmm23 {k5}, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0x4d,0x28,0xf9]
+ vmovapd zmm23 {k5}, zmm9
+
+// CHECK: vmovapd zmm23 {k5} {z}, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0xcd,0x28,0xf9]
+ vmovapd zmm23 {k5} {z}, zmm9
+
+// CHECK: vmovapd zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x28,0x39]
+ vmovapd zmm23, zmmword ptr [rcx]
+
+// CHECK: vmovapd zmm23, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x28,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmovapd zmm23, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovapd zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x28,0x7a,0x7f]
+ vmovapd zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovapd zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x28,0xba,0x00,0x20,0x00,0x00]
+ vmovapd zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovapd zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x28,0x7a,0x80]
+ vmovapd zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovapd zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x28,0xba,0xc0,0xdf,0xff,0xff]
+ vmovapd zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovaps zmm26, zmm11
+// CHECK: encoding: [0x62,0x41,0x7c,0x48,0x28,0xd3]
+ vmovaps zmm26, zmm11
+
+// CHECK: vmovaps zmm26 {k7}, zmm11
+// CHECK: encoding: [0x62,0x41,0x7c,0x4f,0x28,0xd3]
+ vmovaps zmm26 {k7}, zmm11
+
+// CHECK: vmovaps zmm26 {k7} {z}, zmm11
+// CHECK: encoding: [0x62,0x41,0x7c,0xcf,0x28,0xd3]
+ vmovaps zmm26 {k7} {z}, zmm11
+
+// CHECK: vmovaps zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x28,0x11]
+ vmovaps zmm26, zmmword ptr [rcx]
+
+// CHECK: vmovaps zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x7c,0x48,0x28,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vmovaps zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovaps zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x28,0x52,0x7f]
+ vmovaps zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovaps zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x28,0x92,0x00,0x20,0x00,0x00]
+ vmovaps zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovaps zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x28,0x52,0x80]
+ vmovaps zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovaps zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x7c,0x48,0x28,0x92,0xc0,0xdf,0xff,0xff]
+ vmovaps zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovd xmm14, eax
+// CHECK: encoding: [0xc5,0x79,0x6e,0xf0]
+ vmovd xmm14, eax
+
+// CHECK: vmovd xmm14, ebp
+// CHECK: encoding: [0xc5,0x79,0x6e,0xf5]
+ vmovd xmm14, ebp
+
+// CHECK: vmovd xmm14, r13d
+// CHECK: encoding: [0xc4,0x41,0x79,0x6e,0xf5]
+ vmovd xmm14, r13d
+
+// CHECK: vmovd xmm14, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0x79,0x6e,0x31]
+ vmovd xmm14, dword ptr [rcx]
+
+// CHECK: vmovd xmm14, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x79,0x6e,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmovd xmm14, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovd xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0x79,0x6e,0xb2,0xfc,0x01,0x00,0x00]
+ vmovd xmm14, dword ptr [rdx + 508]
+
+// CHECK: vmovd xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0x79,0x6e,0xb2,0x00,0x02,0x00,0x00]
+ vmovd xmm14, dword ptr [rdx + 512]
+
+// CHECK: vmovd xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0x79,0x6e,0xb2,0x00,0xfe,0xff,0xff]
+ vmovd xmm14, dword ptr [rdx - 512]
+
+// CHECK: vmovd xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0x79,0x6e,0xb2,0xfc,0xfd,0xff,0xff]
+ vmovd xmm14, dword ptr [rdx - 516]
+
+// CHECK: vmovd dword ptr [rcx], xmm14
+// CHECK: encoding: [0xc5,0x79,0x7e,0x31]
+ vmovd dword ptr [rcx], xmm14
+
+// CHECK: vmovd dword ptr [rax + 8*r14 + 4660], xmm14
+// CHECK: encoding: [0xc4,0x21,0x79,0x7e,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmovd dword ptr [rax + 8*r14 + 4660], xmm14
+
+// CHECK: vmovd dword ptr [rdx + 508], xmm14
+// CHECK: encoding: [0xc5,0x79,0x7e,0xb2,0xfc,0x01,0x00,0x00]
+ vmovd dword ptr [rdx + 508], xmm14
+
+// CHECK: vmovd dword ptr [rdx + 512], xmm14
+// CHECK: encoding: [0xc5,0x79,0x7e,0xb2,0x00,0x02,0x00,0x00]
+ vmovd dword ptr [rdx + 512], xmm14
+
+// CHECK: vmovd dword ptr [rdx - 512], xmm14
+// CHECK: encoding: [0xc5,0x79,0x7e,0xb2,0x00,0xfe,0xff,0xff]
+ vmovd dword ptr [rdx - 512], xmm14
+
+// CHECK: vmovd dword ptr [rdx - 516], xmm14
+// CHECK: encoding: [0xc5,0x79,0x7e,0xb2,0xfc,0xfd,0xff,0xff]
+ vmovd dword ptr [rdx - 516], xmm14
+
+// CHECK: vmovddup zmm1, zmm10
+// CHECK: encoding: [0x62,0xd1,0xff,0x48,0x12,0xca]
+ vmovddup zmm1, zmm10
+
+// CHECK: vmovddup zmm1 {k3}, zmm10
+// CHECK: encoding: [0x62,0xd1,0xff,0x4b,0x12,0xca]
+ vmovddup zmm1 {k3}, zmm10
+
+// CHECK: vmovddup zmm1 {k3} {z}, zmm10
+// CHECK: encoding: [0x62,0xd1,0xff,0xcb,0x12,0xca]
+ vmovddup zmm1 {k3} {z}, zmm10
+
+// CHECK: vmovddup zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x09]
+ vmovddup zmm1, zmmword ptr [rcx]
+
+// CHECK: vmovddup zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xff,0x48,0x12,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovddup zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovddup zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x4a,0x7f]
+ vmovddup zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovddup zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x8a,0x00,0x20,0x00,0x00]
+ vmovddup zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovddup zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x4a,0x80]
+ vmovddup zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovddup zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xff,0x48,0x12,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovddup zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqa32 zmm22, zmm29
+// CHECK: encoding: [0x62,0x81,0x7d,0x48,0x6f,0xf5]
+ vmovdqa32 zmm22, zmm29
+
+// CHECK: vmovdqa32 zmm22 {k5}, zmm29
+// CHECK: encoding: [0x62,0x81,0x7d,0x4d,0x6f,0xf5]
+ vmovdqa32 zmm22 {k5}, zmm29
+
+// CHECK: vmovdqa32 zmm22 {k5} {z}, zmm29
+// CHECK: encoding: [0x62,0x81,0x7d,0xcd,0x6f,0xf5]
+ vmovdqa32 zmm22 {k5} {z}, zmm29
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x31]
+ vmovdqa32 zmm22, zmmword ptr [rcx]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0x6f,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqa32 zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x7f]
+ vmovdqa32 zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0x00,0x20,0x00,0x00]
+ vmovdqa32 zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0x72,0x80]
+ vmovdqa32 zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqa32 zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0x6f,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovdqa32 zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqa64 zmm9, zmm7
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0xcf]
+ vmovdqa64 zmm9, zmm7
+
+// CHECK: vmovdqa64 zmm9 {k2}, zmm7
+// CHECK: encoding: [0x62,0x71,0xfd,0x4a,0x6f,0xcf]
+ vmovdqa64 zmm9 {k2}, zmm7
+
+// CHECK: vmovdqa64 zmm9 {k2} {z}, zmm7
+// CHECK: encoding: [0x62,0x71,0xfd,0xca,0x6f,0xcf]
+ vmovdqa64 zmm9 {k2} {z}, zmm7
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0x09]
+ vmovdqa64 zmm9, zmmword ptr [rcx]
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xfd,0x48,0x6f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqa64 zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0x4a,0x7f]
+ vmovdqa64 zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0x8a,0x00,0x20,0x00,0x00]
+ vmovdqa64 zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0x4a,0x80]
+ vmovdqa64 zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqa64 zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x6f,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovdqa64 zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqu32 zmm5, zmm22
+// CHECK: encoding: [0x62,0xb1,0x7e,0x48,0x6f,0xee]
+ vmovdqu32 zmm5, zmm22
+
+// CHECK: vmovdqu32 zmm5 {k5}, zmm22
+// CHECK: encoding: [0x62,0xb1,0x7e,0x4d,0x6f,0xee]
+ vmovdqu32 zmm5 {k5}, zmm22
+
+// CHECK: vmovdqu32 zmm5 {k5} {z}, zmm22
+// CHECK: encoding: [0x62,0xb1,0x7e,0xcd,0x6f,0xee]
+ vmovdqu32 zmm5 {k5} {z}, zmm22
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x29]
+ vmovdqu32 zmm5, zmmword ptr [rcx]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x48,0x6f,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqu32 zmm5, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x6a,0x7f]
+ vmovdqu32 zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0xaa,0x00,0x20,0x00,0x00]
+ vmovdqu32 zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0x6a,0x80]
+ vmovdqu32 zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqu32 zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x6f,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovdqu32 zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovdqu64 zmm28, zmm5
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0xe5]
+ vmovdqu64 zmm28, zmm5
+
+// CHECK: vmovdqu64 zmm28 {k3}, zmm5
+// CHECK: encoding: [0x62,0x61,0xfe,0x4b,0x6f,0xe5]
+ vmovdqu64 zmm28 {k3}, zmm5
+
+// CHECK: vmovdqu64 zmm28 {k3} {z}, zmm5
+// CHECK: encoding: [0x62,0x61,0xfe,0xcb,0x6f,0xe5]
+ vmovdqu64 zmm28 {k3} {z}, zmm5
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0x21]
+ vmovdqu64 zmm28, zmmword ptr [rcx]
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xfe,0x48,0x6f,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqu64 zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0x62,0x7f]
+ vmovdqu64 zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0xa2,0x00,0x20,0x00,0x00]
+ vmovdqu64 zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0x62,0x80]
+ vmovdqu64 zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovdqu64 zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xfe,0x48,0x6f,0xa2,0xc0,0xdf,0xff,0xff]
+ vmovdqu64 zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovhlps xmm22, xmm16, xmm25
+// CHECK: encoding: [0x62,0x81,0x7c,0x00,0x12,0xf1]
+ vmovhlps xmm22, xmm16, xmm25
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xf5,0x08,0x16,0x09]
+ vmovhpd xmm25, xmm1, qword ptr [rcx]
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xf5,0x08,0x16,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovhpd xmm25, xmm1, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0xf5,0x08,0x16,0x4a,0x7f]
+ vmovhpd xmm25, xmm1, qword ptr [rdx + 1016]
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0xf5,0x08,0x16,0x8a,0x00,0x04,0x00,0x00]
+ vmovhpd xmm25, xmm1, qword ptr [rdx + 1024]
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0xf5,0x08,0x16,0x4a,0x80]
+ vmovhpd xmm25, xmm1, qword ptr [rdx - 1024]
+
+// CHECK: vmovhpd xmm25, xmm1, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0xf5,0x08,0x16,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovhpd xmm25, xmm1, qword ptr [rdx - 1032]
+
+// CHECK: vmovhpd qword ptr [rcx], xmm9
+// CHECK: encoding: [0xc5,0x79,0x17,0x09]
+ vmovhpd qword ptr [rcx], xmm9
+
+// CHECK: vmovhpd qword ptr [rax + 8*r14 + 4660], xmm9
+// CHECK: encoding: [0xc4,0x21,0x79,0x17,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovhpd qword ptr [rax + 8*r14 + 4660], xmm9
+
+// CHECK: vmovhpd qword ptr [rdx + 1016], xmm9
+// CHECK: encoding: [0xc5,0x79,0x17,0x8a,0xf8,0x03,0x00,0x00]
+ vmovhpd qword ptr [rdx + 1016], xmm9
+
+// CHECK: vmovhpd qword ptr [rdx + 1024], xmm9
+// CHECK: encoding: [0xc5,0x79,0x17,0x8a,0x00,0x04,0x00,0x00]
+ vmovhpd qword ptr [rdx + 1024], xmm9
+
+// CHECK: vmovhpd qword ptr [rdx - 1024], xmm9
+// CHECK: encoding: [0xc5,0x79,0x17,0x8a,0x00,0xfc,0xff,0xff]
+ vmovhpd qword ptr [rdx - 1024], xmm9
+
+// CHECK: vmovhpd qword ptr [rdx - 1032], xmm9
+// CHECK: encoding: [0xc5,0x79,0x17,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovhpd qword ptr [rdx - 1032], xmm9
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x74,0x00,0x16,0x21]
+ vmovhps xmm28, xmm17, qword ptr [rcx]
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x74,0x00,0x16,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vmovhps xmm28, xmm17, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0x74,0x00,0x16,0x62,0x7f]
+ vmovhps xmm28, xmm17, qword ptr [rdx + 1016]
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0x74,0x00,0x16,0xa2,0x00,0x04,0x00,0x00]
+ vmovhps xmm28, xmm17, qword ptr [rdx + 1024]
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0x74,0x00,0x16,0x62,0x80]
+ vmovhps xmm28, xmm17, qword ptr [rdx - 1024]
+
+// CHECK: vmovhps xmm28, xmm17, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0x74,0x00,0x16,0xa2,0xf8,0xfb,0xff,0xff]
+ vmovhps xmm28, xmm17, qword ptr [rdx - 1032]
+
+// CHECK: vmovhps qword ptr [rcx], xmm13
+// CHECK: encoding: [0xc5,0x78,0x17,0x29]
+ vmovhps qword ptr [rcx], xmm13
+
+// CHECK: vmovhps qword ptr [rax + 8*r14 + 4660], xmm13
+// CHECK: encoding: [0xc4,0x21,0x78,0x17,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovhps qword ptr [rax + 8*r14 + 4660], xmm13
+
+// CHECK: vmovhps qword ptr [rdx + 1016], xmm13
+// CHECK: encoding: [0xc5,0x78,0x17,0xaa,0xf8,0x03,0x00,0x00]
+ vmovhps qword ptr [rdx + 1016], xmm13
+
+// CHECK: vmovhps qword ptr [rdx + 1024], xmm13
+// CHECK: encoding: [0xc5,0x78,0x17,0xaa,0x00,0x04,0x00,0x00]
+ vmovhps qword ptr [rdx + 1024], xmm13
+
+// CHECK: vmovhps qword ptr [rdx - 1024], xmm13
+// CHECK: encoding: [0xc5,0x78,0x17,0xaa,0x00,0xfc,0xff,0xff]
+ vmovhps qword ptr [rdx - 1024], xmm13
+
+// CHECK: vmovhps qword ptr [rdx - 1032], xmm13
+// CHECK: encoding: [0xc5,0x78,0x17,0xaa,0xf8,0xfb,0xff,0xff]
+ vmovhps qword ptr [rdx - 1032], xmm13
+
+// CHECK: vmovlhps xmm6, xmm12, xmm6
+// CHECK: encoding: [0xc5,0x98,0x16,0xf6]
+ vmovlhps xmm6, xmm12, xmm6
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x12,0x09]
+ vmovlpd xmm17, xmm20, qword ptr [rcx]
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xdd,0x00,0x12,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovlpd xmm17, xmm20, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x12,0x4a,0x7f]
+ vmovlpd xmm17, xmm20, qword ptr [rdx + 1016]
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x12,0x8a,0x00,0x04,0x00,0x00]
+ vmovlpd xmm17, xmm20, qword ptr [rdx + 1024]
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x12,0x4a,0x80]
+ vmovlpd xmm17, xmm20, qword ptr [rdx - 1024]
+
+// CHECK: vmovlpd xmm17, xmm20, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x12,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovlpd xmm17, xmm20, qword ptr [rdx - 1032]
+
+// CHECK: vmovlpd qword ptr [rcx], xmm7
+// CHECK: encoding: [0xc5,0xf9,0x13,0x39]
+ vmovlpd qword ptr [rcx], xmm7
+
+// CHECK: vmovlpd qword ptr [rax + 8*r14 + 4660], xmm7
+// CHECK: encoding: [0xc4,0xa1,0x79,0x13,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmovlpd qword ptr [rax + 8*r14 + 4660], xmm7
+
+// CHECK: vmovlpd qword ptr [rdx + 1016], xmm7
+// CHECK: encoding: [0xc5,0xf9,0x13,0xba,0xf8,0x03,0x00,0x00]
+ vmovlpd qword ptr [rdx + 1016], xmm7
+
+// CHECK: vmovlpd qword ptr [rdx + 1024], xmm7
+// CHECK: encoding: [0xc5,0xf9,0x13,0xba,0x00,0x04,0x00,0x00]
+ vmovlpd qword ptr [rdx + 1024], xmm7
+
+// CHECK: vmovlpd qword ptr [rdx - 1024], xmm7
+// CHECK: encoding: [0xc5,0xf9,0x13,0xba,0x00,0xfc,0xff,0xff]
+ vmovlpd qword ptr [rdx - 1024], xmm7
+
+// CHECK: vmovlpd qword ptr [rdx - 1032], xmm7
+// CHECK: encoding: [0xc5,0xf9,0x13,0xba,0xf8,0xfb,0xff,0xff]
+ vmovlpd qword ptr [rdx - 1032], xmm7
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0x20,0x12,0x19]
+ vmovlps xmm11, xmm11, qword ptr [rcx]
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0x21,0x20,0x12,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vmovlps xmm11, xmm11, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0x20,0x12,0x9a,0xf8,0x03,0x00,0x00]
+ vmovlps xmm11, xmm11, qword ptr [rdx + 1016]
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0x20,0x12,0x9a,0x00,0x04,0x00,0x00]
+ vmovlps xmm11, xmm11, qword ptr [rdx + 1024]
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0x20,0x12,0x9a,0x00,0xfc,0xff,0xff]
+ vmovlps xmm11, xmm11, qword ptr [rdx - 1024]
+
+// CHECK: vmovlps xmm11, xmm11, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0x20,0x12,0x9a,0xf8,0xfb,0xff,0xff]
+ vmovlps xmm11, xmm11, qword ptr [rdx - 1032]
+
+// CHECK: vmovlps qword ptr [rcx], xmm21
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x13,0x29]
+ vmovlps qword ptr [rcx], xmm21
+
+// CHECK: vmovlps qword ptr [rax + 8*r14 + 4660], xmm21
+// CHECK: encoding: [0x62,0xa1,0x7c,0x08,0x13,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovlps qword ptr [rax + 8*r14 + 4660], xmm21
+
+// CHECK: vmovlps qword ptr [rdx + 1016], xmm21
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x13,0x6a,0x7f]
+ vmovlps qword ptr [rdx + 1016], xmm21
+
+// CHECK: vmovlps qword ptr [rdx + 1024], xmm21
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x13,0xaa,0x00,0x04,0x00,0x00]
+ vmovlps qword ptr [rdx + 1024], xmm21
+
+// CHECK: vmovlps qword ptr [rdx - 1024], xmm21
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x13,0x6a,0x80]
+ vmovlps qword ptr [rdx - 1024], xmm21
+
+// CHECK: vmovlps qword ptr [rdx - 1032], xmm21
+// CHECK: encoding: [0x62,0xe1,0x7c,0x08,0x13,0xaa,0xf8,0xfb,0xff,0xff]
+ vmovlps qword ptr [rdx - 1032], xmm21
+
+// CHECK: vmovntdq zmmword ptr [rcx], zmm20
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0xe7,0x21]
+ vmovntdq zmmword ptr [rcx], zmm20
+
+// CHECK: vmovntdq zmmword ptr [rax + 8*r14 + 4660], zmm20
+// CHECK: encoding: [0x62,0xa1,0x7d,0x48,0xe7,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vmovntdq zmmword ptr [rax + 8*r14 + 4660], zmm20
+
+// CHECK: vmovntdq zmmword ptr [rdx + 8128], zmm20
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0xe7,0x62,0x7f]
+ vmovntdq zmmword ptr [rdx + 8128], zmm20
+
+// CHECK: vmovntdq zmmword ptr [rdx + 8192], zmm20
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0xe7,0xa2,0x00,0x20,0x00,0x00]
+ vmovntdq zmmword ptr [rdx + 8192], zmm20
+
+// CHECK: vmovntdq zmmword ptr [rdx - 8192], zmm20
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0xe7,0x62,0x80]
+ vmovntdq zmmword ptr [rdx - 8192], zmm20
+
+// CHECK: vmovntdq zmmword ptr [rdx - 8256], zmm20
+// CHECK: encoding: [0x62,0xe1,0x7d,0x48,0xe7,0xa2,0xc0,0xdf,0xff,0xff]
+ vmovntdq zmmword ptr [rdx - 8256], zmm20
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0x11]
+ vmovntdqa zmm10, zmmword ptr [rcx]
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x2a,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vmovntdqa zmm10, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0x52,0x7f]
+ vmovntdqa zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0x92,0x00,0x20,0x00,0x00]
+ vmovntdqa zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0x52,0x80]
+ vmovntdqa zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovntdqa zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x2a,0x92,0xc0,0xdf,0xff,0xff]
+ vmovntdqa zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovntpd zmmword ptr [rcx], zmm21
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x29]
+ vmovntpd zmmword ptr [rcx], zmm21
+
+// CHECK: vmovntpd zmmword ptr [rax + 8*r14 + 4660], zmm21
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x2b,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovntpd zmmword ptr [rax + 8*r14 + 4660], zmm21
+
+// CHECK: vmovntpd zmmword ptr [rdx + 8128], zmm21
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x6a,0x7f]
+ vmovntpd zmmword ptr [rdx + 8128], zmm21
+
+// CHECK: vmovntpd zmmword ptr [rdx + 8192], zmm21
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0xaa,0x00,0x20,0x00,0x00]
+ vmovntpd zmmword ptr [rdx + 8192], zmm21
+
+// CHECK: vmovntpd zmmword ptr [rdx - 8192], zmm21
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0x6a,0x80]
+ vmovntpd zmmword ptr [rdx - 8192], zmm21
+
+// CHECK: vmovntpd zmmword ptr [rdx - 8256], zmm21
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x2b,0xaa,0xc0,0xdf,0xff,0xff]
+ vmovntpd zmmword ptr [rdx - 8256], zmm21
+
+// CHECK: vmovntps zmmword ptr [rcx], zmm23
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x2b,0x39]
+ vmovntps zmmword ptr [rcx], zmm23
+
+// CHECK: vmovntps zmmword ptr [rax + 8*r14 + 4660], zmm23
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x2b,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmovntps zmmword ptr [rax + 8*r14 + 4660], zmm23
+
+// CHECK: vmovntps zmmword ptr [rdx + 8128], zmm23
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x2b,0x7a,0x7f]
+ vmovntps zmmword ptr [rdx + 8128], zmm23
+
+// CHECK: vmovntps zmmword ptr [rdx + 8192], zmm23
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x2b,0xba,0x00,0x20,0x00,0x00]
+ vmovntps zmmword ptr [rdx + 8192], zmm23
+
+// CHECK: vmovntps zmmword ptr [rdx - 8192], zmm23
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x2b,0x7a,0x80]
+ vmovntps zmmword ptr [rdx - 8192], zmm23
+
+// CHECK: vmovntps zmmword ptr [rdx - 8256], zmm23
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x2b,0xba,0xc0,0xdf,0xff,0xff]
+ vmovntps zmmword ptr [rdx - 8256], zmm23
+
+// CHECK: vmovq xmm24, rax
+// CHECK: encoding: [0x62,0x61,0xfd,0x08,0x6e,0xc0]
+ vmovq xmm24, rax
+
+// CHECK: vmovq xmm24, r8
+// CHECK: encoding: [0x62,0x41,0xfd,0x08,0x6e,0xc0]
+ vmovq xmm24, r8
+
+// CHECK: vmovsd xmm5, qword ptr [rcx]
+// CHECK: encoding: [0xc5,0xfb,0x10,0x29]
+ vmovsd xmm5, qword ptr [rcx]
+
+// CHECK: vmovsd xmm5 {k3}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x0b,0x10,0x29]
+ vmovsd xmm5 {k3}, qword ptr [rcx]
+
+// CHECK: vmovsd xmm5 {k3} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x8b,0x10,0x29]
+ vmovsd xmm5 {k3} {z}, qword ptr [rcx]
+
+// CHECK: vmovsd xmm5, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa1,0x7b,0x10,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovsd xmm5, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovsd xmm5, qword ptr [rdx + 1016]
+// CHECK: encoding: [0xc5,0xfb,0x10,0xaa,0xf8,0x03,0x00,0x00]
+ vmovsd xmm5, qword ptr [rdx + 1016]
+
+// CHECK: vmovsd xmm5, qword ptr [rdx + 1024]
+// CHECK: encoding: [0xc5,0xfb,0x10,0xaa,0x00,0x04,0x00,0x00]
+ vmovsd xmm5, qword ptr [rdx + 1024]
+
+// CHECK: vmovsd xmm5, qword ptr [rdx - 1024]
+// CHECK: encoding: [0xc5,0xfb,0x10,0xaa,0x00,0xfc,0xff,0xff]
+ vmovsd xmm5, qword ptr [rdx - 1024]
+
+// CHECK: vmovsd xmm5, qword ptr [rdx - 1032]
+// CHECK: encoding: [0xc5,0xfb,0x10,0xaa,0xf8,0xfb,0xff,0xff]
+ vmovsd xmm5, qword ptr [rdx - 1032]
+
+// CHECK: vmovsd qword ptr [rcx], xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x08,0x11,0x09]
+ vmovsd qword ptr [rcx], xmm17
+
+// CHECK: vmovsd qword ptr [rcx] {k3}, xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x0b,0x11,0x09]
+ vmovsd qword ptr [rcx] {k3}, xmm17
+
+// CHECK: vmovsd qword ptr [rax + 8*r14 + 4660], xmm17
+// CHECK: encoding: [0x62,0xa1,0xff,0x08,0x11,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovsd qword ptr [rax + 8*r14 + 4660], xmm17
+
+// CHECK: vmovsd qword ptr [rdx + 1016], xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x08,0x11,0x4a,0x7f]
+ vmovsd qword ptr [rdx + 1016], xmm17
+
+// CHECK: vmovsd qword ptr [rdx + 1024], xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x08,0x11,0x8a,0x00,0x04,0x00,0x00]
+ vmovsd qword ptr [rdx + 1024], xmm17
+
+// CHECK: vmovsd qword ptr [rdx - 1024], xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x08,0x11,0x4a,0x80]
+ vmovsd qword ptr [rdx - 1024], xmm17
+
+// CHECK: vmovsd qword ptr [rdx - 1032], xmm17
+// CHECK: encoding: [0x62,0xe1,0xff,0x08,0x11,0x8a,0xf8,0xfb,0xff,0xff]
+ vmovsd qword ptr [rdx - 1032], xmm17
+
+// CHECK: vmovsd xmm21, xmm29, xmm12
+// CHECK: encoding: [0x62,0xc1,0x97,0x00,0x10,0xec]
+ vmovsd xmm21, xmm29, xmm12
+
+// CHECK: vmovsd xmm21 {k7}, xmm29, xmm12
+// CHECK: encoding: [0x62,0xc1,0x97,0x07,0x10,0xec]
+ vmovsd xmm21 {k7}, xmm29, xmm12
+
+// CHECK: vmovsd xmm21 {k7} {z}, xmm29, xmm12
+// CHECK: encoding: [0x62,0xc1,0x97,0x87,0x10,0xec]
+ vmovsd xmm21 {k7} {z}, xmm29, xmm12
+
+// CHECK: vmovshdup zmm18, zmm20
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x16,0xd4]
+ vmovshdup zmm18, zmm20
+
+// CHECK: vmovshdup zmm18 {k5}, zmm20
+// CHECK: encoding: [0x62,0xa1,0x7e,0x4d,0x16,0xd4]
+ vmovshdup zmm18 {k5}, zmm20
+
+// CHECK: vmovshdup zmm18 {k5} {z}, zmm20
+// CHECK: encoding: [0x62,0xa1,0x7e,0xcd,0x16,0xd4]
+ vmovshdup zmm18 {k5} {z}, zmm20
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x11]
+ vmovshdup zmm18, zmmword ptr [rcx]
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7e,0x48,0x16,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vmovshdup zmm18, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x52,0x7f]
+ vmovshdup zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x92,0x00,0x20,0x00,0x00]
+ vmovshdup zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x52,0x80]
+ vmovshdup zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovshdup zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7e,0x48,0x16,0x92,0xc0,0xdf,0xff,0xff]
+ vmovshdup zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovsldup zmm9, zmm5
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0xcd]
+ vmovsldup zmm9, zmm5
+
+// CHECK: vmovsldup zmm9 {k7}, zmm5
+// CHECK: encoding: [0x62,0x71,0x7e,0x4f,0x12,0xcd]
+ vmovsldup zmm9 {k7}, zmm5
+
+// CHECK: vmovsldup zmm9 {k7} {z}, zmm5
+// CHECK: encoding: [0x62,0x71,0x7e,0xcf,0x12,0xcd]
+ vmovsldup zmm9 {k7} {z}, zmm5
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x09]
+ vmovsldup zmm9, zmmword ptr [rcx]
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7e,0x48,0x12,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovsldup zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x4a,0x7f]
+ vmovsldup zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x8a,0x00,0x20,0x00,0x00]
+ vmovsldup zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x4a,0x80]
+ vmovsldup zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovsldup zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x7e,0x48,0x12,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovsldup zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovss xmm1, dword ptr [rcx]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x09]
+ vmovss xmm1, dword ptr [rcx]
+
+// CHECK: vmovss xmm1 {k4}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x0c,0x10,0x09]
+ vmovss xmm1 {k4}, dword ptr [rcx]
+
+// CHECK: vmovss xmm1 {k4} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x8c,0x10,0x09]
+ vmovss xmm1 {k4} {z}, dword ptr [rcx]
+
+// CHECK: vmovss xmm1, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa1,0x7a,0x10,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovss xmm1, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovss xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x8a,0xfc,0x01,0x00,0x00]
+ vmovss xmm1, dword ptr [rdx + 508]
+
+// CHECK: vmovss xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x8a,0x00,0x02,0x00,0x00]
+ vmovss xmm1, dword ptr [rdx + 512]
+
+// CHECK: vmovss xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x8a,0x00,0xfe,0xff,0xff]
+ vmovss xmm1, dword ptr [rdx - 512]
+
+// CHECK: vmovss xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0xc5,0xfa,0x10,0x8a,0xfc,0xfd,0xff,0xff]
+ vmovss xmm1, dword ptr [rdx - 516]
+
+// CHECK: vmovss dword ptr [rcx], xmm13
+// CHECK: encoding: [0xc5,0x7a,0x11,0x29]
+ vmovss dword ptr [rcx], xmm13
+
+// CHECK: vmovss dword ptr [rcx] {k2}, xmm13
+// CHECK: encoding: [0x62,0x71,0x7e,0x0a,0x11,0x29]
+ vmovss dword ptr [rcx] {k2}, xmm13
+
+// CHECK: vmovss dword ptr [rax + 8*r14 + 4660], xmm13
+// CHECK: encoding: [0xc4,0x21,0x7a,0x11,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vmovss dword ptr [rax + 8*r14 + 4660], xmm13
+
+// CHECK: vmovss dword ptr [rdx + 508], xmm13
+// CHECK: encoding: [0xc5,0x7a,0x11,0xaa,0xfc,0x01,0x00,0x00]
+ vmovss dword ptr [rdx + 508], xmm13
+
+// CHECK: vmovss dword ptr [rdx + 512], xmm13
+// CHECK: encoding: [0xc5,0x7a,0x11,0xaa,0x00,0x02,0x00,0x00]
+ vmovss dword ptr [rdx + 512], xmm13
+
+// CHECK: vmovss dword ptr [rdx - 512], xmm13
+// CHECK: encoding: [0xc5,0x7a,0x11,0xaa,0x00,0xfe,0xff,0xff]
+ vmovss dword ptr [rdx - 512], xmm13
+
+// CHECK: vmovss dword ptr [rdx - 516], xmm13
+// CHECK: encoding: [0xc5,0x7a,0x11,0xaa,0xfc,0xfd,0xff,0xff]
+ vmovss dword ptr [rdx - 516], xmm13
+
+// CHECK: vmovss xmm18, xmm27, xmm14
+// CHECK: encoding: [0x62,0xc1,0x26,0x00,0x10,0xd6]
+ vmovss xmm18, xmm27, xmm14
+
+// CHECK: vmovss xmm18 {k2}, xmm27, xmm14
+// CHECK: encoding: [0x62,0xc1,0x26,0x02,0x10,0xd6]
+ vmovss xmm18 {k2}, xmm27, xmm14
+
+// CHECK: vmovss xmm18 {k2} {z}, xmm27, xmm14
+// CHECK: encoding: [0x62,0xc1,0x26,0x82,0x10,0xd6]
+ vmovss xmm18 {k2} {z}, xmm27, xmm14
+
+// CHECK: vmovupd zmm16, zmm6
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0xc6]
+ vmovupd zmm16, zmm6
+
+// CHECK: vmovupd zmm16 {k2}, zmm6
+// CHECK: encoding: [0x62,0xe1,0xfd,0x4a,0x10,0xc6]
+ vmovupd zmm16 {k2}, zmm6
+
+// CHECK: vmovupd zmm16 {k2} {z}, zmm6
+// CHECK: encoding: [0x62,0xe1,0xfd,0xca,0x10,0xc6]
+ vmovupd zmm16 {k2} {z}, zmm6
+
+// CHECK: vmovupd zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0x01]
+ vmovupd zmm16, zmmword ptr [rcx]
+
+// CHECK: vmovupd zmm16, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x10,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vmovupd zmm16, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovupd zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0x42,0x7f]
+ vmovupd zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovupd zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0x82,0x00,0x20,0x00,0x00]
+ vmovupd zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovupd zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0x42,0x80]
+ vmovupd zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovupd zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x10,0x82,0xc0,0xdf,0xff,0xff]
+ vmovupd zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vmovups zmm22, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0xf4]
+ vmovups zmm22, zmm4
+
+// CHECK: vmovups zmm22 {k7}, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0x4f,0x10,0xf4]
+ vmovups zmm22 {k7}, zmm4
+
+// CHECK: vmovups zmm22 {k7} {z}, zmm4
+// CHECK: encoding: [0x62,0xe1,0x7c,0xcf,0x10,0xf4]
+ vmovups zmm22 {k7} {z}, zmm4
+
+// CHECK: vmovups zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x31]
+ vmovups zmm22, zmmword ptr [rcx]
+
+// CHECK: vmovups zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x10,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmovups zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x72,0x7f]
+ vmovups zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0xb2,0x00,0x20,0x00,0x00]
+ vmovups zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0x72,0x80]
+ vmovups zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vmovups zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x10,0xb2,0xc0,0xdf,0xff,0xff]
+ vmovups zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulpd zmm24, zmm25, zmm5
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0xc5]
+ vmulpd zmm24, zmm25, zmm5
+
+// CHECK: vmulpd zmm24 {k4}, zmm25, zmm5
+// CHECK: encoding: [0x62,0x61,0xb5,0x44,0x59,0xc5]
+ vmulpd zmm24 {k4}, zmm25, zmm5
+
+// CHECK: vmulpd zmm24 {k4} {z}, zmm25, zmm5
+// CHECK: encoding: [0x62,0x61,0xb5,0xc4,0x59,0xc5]
+ vmulpd zmm24 {k4} {z}, zmm25, zmm5
+
+// CHECK: vmulpd zmm24, zmm25, zmm5, {rn-sae}
+// CHECK: encoding: [0x62,0x61,0xb5,0x10,0x59,0xc5]
+ vmulpd zmm24, zmm25, zmm5, {rn-sae}
+
+// CHECK: vmulpd zmm24, zmm25, zmm5, {ru-sae}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0xc5]
+ vmulpd zmm24, zmm25, zmm5, {ru-sae}
+
+// CHECK: vmulpd zmm24, zmm25, zmm5, {rd-sae}
+// CHECK: encoding: [0x62,0x61,0xb5,0x30,0x59,0xc5]
+ vmulpd zmm24, zmm25, zmm5, {rd-sae}
+
+// CHECK: vmulpd zmm24, zmm25, zmm5, {rz-sae}
+// CHECK: encoding: [0x62,0x61,0xb5,0x70,0x59,0xc5]
+ vmulpd zmm24, zmm25, zmm5, {rz-sae}
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0x01]
+ vmulpd zmm24, zmm25, zmmword ptr [rcx]
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xb5,0x40,0x59,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vmulpd zmm24, zmm25, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmulpd zmm24, zmm25, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0x01]
+ vmulpd zmm24, zmm25, qword ptr [rcx]{1to8}
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0x42,0x7f]
+ vmulpd zmm24, zmm25, zmmword ptr [rdx + 8128]
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0x82,0x00,0x20,0x00,0x00]
+ vmulpd zmm24, zmm25, zmmword ptr [rdx + 8192]
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0x42,0x80]
+ vmulpd zmm24, zmm25, zmmword ptr [rdx - 8192]
+
+// CHECK: vmulpd zmm24, zmm25, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xb5,0x40,0x59,0x82,0xc0,0xdf,0xff,0xff]
+ vmulpd zmm24, zmm25, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulpd zmm24, zmm25, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0x42,0x7f]
+ vmulpd zmm24, zmm25, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vmulpd zmm24, zmm25, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0x82,0x00,0x04,0x00,0x00]
+ vmulpd zmm24, zmm25, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vmulpd zmm24, zmm25, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0x42,0x80]
+ vmulpd zmm24, zmm25, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vmulpd zmm24, zmm25, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xb5,0x50,0x59,0x82,0xf8,0xfb,0xff,0xff]
+ vmulpd zmm24, zmm25, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vmulps zmm6, zmm27, zmm3
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0xf3]
+ vmulps zmm6, zmm27, zmm3
+
+// CHECK: vmulps zmm6 {k5}, zmm27, zmm3
+// CHECK: encoding: [0x62,0xf1,0x24,0x45,0x59,0xf3]
+ vmulps zmm6 {k5}, zmm27, zmm3
+
+// CHECK: vmulps zmm6 {k5} {z}, zmm27, zmm3
+// CHECK: encoding: [0x62,0xf1,0x24,0xc5,0x59,0xf3]
+ vmulps zmm6 {k5} {z}, zmm27, zmm3
+
+// CHECK: vmulps zmm6, zmm27, zmm3, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x24,0x10,0x59,0xf3]
+ vmulps zmm6, zmm27, zmm3, {rn-sae}
+
+// CHECK: vmulps zmm6, zmm27, zmm3, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0xf3]
+ vmulps zmm6, zmm27, zmm3, {ru-sae}
+
+// CHECK: vmulps zmm6, zmm27, zmm3, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x24,0x30,0x59,0xf3]
+ vmulps zmm6, zmm27, zmm3, {rd-sae}
+
+// CHECK: vmulps zmm6, zmm27, zmm3, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x24,0x70,0x59,0xf3]
+ vmulps zmm6, zmm27, zmm3, {rz-sae}
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0x31]
+ vmulps zmm6, zmm27, zmmword ptr [rcx]
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x24,0x40,0x59,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vmulps zmm6, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmulps zmm6, zmm27, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0x31]
+ vmulps zmm6, zmm27, dword ptr [rcx]{1to16}
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0x72,0x7f]
+ vmulps zmm6, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0xb2,0x00,0x20,0x00,0x00]
+ vmulps zmm6, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0x72,0x80]
+ vmulps zmm6, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vmulps zmm6, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x24,0x40,0x59,0xb2,0xc0,0xdf,0xff,0xff]
+ vmulps zmm6, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vmulps zmm6, zmm27, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0x72,0x7f]
+ vmulps zmm6, zmm27, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vmulps zmm6, zmm27, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0xb2,0x00,0x02,0x00,0x00]
+ vmulps zmm6, zmm27, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vmulps zmm6, zmm27, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0x72,0x80]
+ vmulps zmm6, zmm27, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vmulps zmm6, zmm27, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x24,0x50,0x59,0xb2,0xfc,0xfd,0xff,0xff]
+ vmulps zmm6, zmm27, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vmulsd xmm23, xmm29, xmm22
+// CHECK: encoding: [0x62,0xa1,0x97,0x00,0x59,0xfe]
+ vmulsd xmm23, xmm29, xmm22
+
+// CHECK: vmulsd xmm23 {k5}, xmm29, xmm22
+// CHECK: encoding: [0x62,0xa1,0x97,0x05,0x59,0xfe]
+ vmulsd xmm23 {k5}, xmm29, xmm22
+
+// CHECK: vmulsd xmm23 {k5} {z}, xmm29, xmm22
+// CHECK: encoding: [0x62,0xa1,0x97,0x85,0x59,0xfe]
+ vmulsd xmm23 {k5} {z}, xmm29, xmm22
+
+// CHECK: vmulsd xmm23, xmm29, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0xa1,0x97,0x10,0x59,0xfe]
+ vmulsd xmm23, xmm29, xmm22, {rn-sae}
+
+// CHECK: vmulsd xmm23, xmm29, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0xa1,0x97,0x50,0x59,0xfe]
+ vmulsd xmm23, xmm29, xmm22, {ru-sae}
+
+// CHECK: vmulsd xmm23, xmm29, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0xa1,0x97,0x30,0x59,0xfe]
+ vmulsd xmm23, xmm29, xmm22, {rd-sae}
+
+// CHECK: vmulsd xmm23, xmm29, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0xa1,0x97,0x70,0x59,0xfe]
+ vmulsd xmm23, xmm29, xmm22, {rz-sae}
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x97,0x00,0x59,0x39]
+ vmulsd xmm23, xmm29, qword ptr [rcx]
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x97,0x00,0x59,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmulsd xmm23, xmm29, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0x97,0x00,0x59,0x7a,0x7f]
+ vmulsd xmm23, xmm29, qword ptr [rdx + 1016]
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0x97,0x00,0x59,0xba,0x00,0x04,0x00,0x00]
+ vmulsd xmm23, xmm29, qword ptr [rdx + 1024]
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0x97,0x00,0x59,0x7a,0x80]
+ vmulsd xmm23, xmm29, qword ptr [rdx - 1024]
+
+// CHECK: vmulsd xmm23, xmm29, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0x97,0x00,0x59,0xba,0xf8,0xfb,0xff,0xff]
+ vmulsd xmm23, xmm29, qword ptr [rdx - 1032]
+
+// CHECK: vmulss xmm25, xmm26, xmm8
+// CHECK: encoding: [0x62,0x41,0x2e,0x00,0x59,0xc8]
+ vmulss xmm25, xmm26, xmm8
+
+// CHECK: vmulss xmm25 {k5}, xmm26, xmm8
+// CHECK: encoding: [0x62,0x41,0x2e,0x05,0x59,0xc8]
+ vmulss xmm25 {k5}, xmm26, xmm8
+
+// CHECK: vmulss xmm25 {k5} {z}, xmm26, xmm8
+// CHECK: encoding: [0x62,0x41,0x2e,0x85,0x59,0xc8]
+ vmulss xmm25 {k5} {z}, xmm26, xmm8
+
+// CHECK: vmulss xmm25, xmm26, xmm8, {rn-sae}
+// CHECK: encoding: [0x62,0x41,0x2e,0x10,0x59,0xc8]
+ vmulss xmm25, xmm26, xmm8, {rn-sae}
+
+// CHECK: vmulss xmm25, xmm26, xmm8, {ru-sae}
+// CHECK: encoding: [0x62,0x41,0x2e,0x50,0x59,0xc8]
+ vmulss xmm25, xmm26, xmm8, {ru-sae}
+
+// CHECK: vmulss xmm25, xmm26, xmm8, {rd-sae}
+// CHECK: encoding: [0x62,0x41,0x2e,0x30,0x59,0xc8]
+ vmulss xmm25, xmm26, xmm8, {rd-sae}
+
+// CHECK: vmulss xmm25, xmm26, xmm8, {rz-sae}
+// CHECK: encoding: [0x62,0x41,0x2e,0x70,0x59,0xc8]
+ vmulss xmm25, xmm26, xmm8, {rz-sae}
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x2e,0x00,0x59,0x09]
+ vmulss xmm25, xmm26, dword ptr [rcx]
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x2e,0x00,0x59,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmulss xmm25, xmm26, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x2e,0x00,0x59,0x4a,0x7f]
+ vmulss xmm25, xmm26, dword ptr [rdx + 508]
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x2e,0x00,0x59,0x8a,0x00,0x02,0x00,0x00]
+ vmulss xmm25, xmm26, dword ptr [rdx + 512]
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x2e,0x00,0x59,0x4a,0x80]
+ vmulss xmm25, xmm26, dword ptr [rdx - 512]
+
+// CHECK: vmulss xmm25, xmm26, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x2e,0x00,0x59,0x8a,0xfc,0xfd,0xff,0xff]
+ vmulss xmm25, xmm26, dword ptr [rdx - 516]
+
+// CHECK: vpabsd zmm4, zmm29
+// CHECK: encoding: [0x62,0x92,0x7d,0x48,0x1e,0xe5]
+ vpabsd zmm4, zmm29
+
+// CHECK: vpabsd zmm4 {k4}, zmm29
+// CHECK: encoding: [0x62,0x92,0x7d,0x4c,0x1e,0xe5]
+ vpabsd zmm4 {k4}, zmm29
+
+// CHECK: vpabsd zmm4 {k4} {z}, zmm29
+// CHECK: encoding: [0x62,0x92,0x7d,0xcc,0x1e,0xe5]
+ vpabsd zmm4 {k4} {z}, zmm29
+
+// CHECK: vpabsd zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1e,0x21]
+ vpabsd zmm4, zmmword ptr [rcx]
+
+// CHECK: vpabsd zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x1e,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpabsd zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpabsd zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x1e,0x21]
+ vpabsd zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vpabsd zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1e,0x62,0x7f]
+ vpabsd zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpabsd zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1e,0xa2,0x00,0x20,0x00,0x00]
+ vpabsd zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpabsd zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1e,0x62,0x80]
+ vpabsd zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpabsd zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x1e,0xa2,0xc0,0xdf,0xff,0xff]
+ vpabsd zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpabsd zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x1e,0x62,0x7f]
+ vpabsd zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpabsd zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x1e,0xa2,0x00,0x02,0x00,0x00]
+ vpabsd zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpabsd zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x1e,0x62,0x80]
+ vpabsd zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpabsd zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x1e,0xa2,0xfc,0xfd,0xff,0xff]
+ vpabsd zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpabsq zmm17, zmm3
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0xcb]
+ vpabsq zmm17, zmm3
+
+// CHECK: vpabsq zmm17 {k2}, zmm3
+// CHECK: encoding: [0x62,0xe2,0xfd,0x4a,0x1f,0xcb]
+ vpabsq zmm17 {k2}, zmm3
+
+// CHECK: vpabsq zmm17 {k2} {z}, zmm3
+// CHECK: encoding: [0x62,0xe2,0xfd,0xca,0x1f,0xcb]
+ vpabsq zmm17 {k2} {z}, zmm3
+
+// CHECK: vpabsq zmm17, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0x09]
+ vpabsq zmm17, zmmword ptr [rcx]
+
+// CHECK: vpabsq zmm17, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x1f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpabsq zmm17, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpabsq zmm17, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x1f,0x09]
+ vpabsq zmm17, qword ptr [rcx]{1to8}
+
+// CHECK: vpabsq zmm17, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0x4a,0x7f]
+ vpabsq zmm17, zmmword ptr [rdx + 8128]
+
+// CHECK: vpabsq zmm17, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0x8a,0x00,0x20,0x00,0x00]
+ vpabsq zmm17, zmmword ptr [rdx + 8192]
+
+// CHECK: vpabsq zmm17, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0x4a,0x80]
+ vpabsq zmm17, zmmword ptr [rdx - 8192]
+
+// CHECK: vpabsq zmm17, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x1f,0x8a,0xc0,0xdf,0xff,0xff]
+ vpabsq zmm17, zmmword ptr [rdx - 8256]
+
+// CHECK: vpabsq zmm17, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x1f,0x4a,0x7f]
+ vpabsq zmm17, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpabsq zmm17, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x1f,0x8a,0x00,0x04,0x00,0x00]
+ vpabsq zmm17, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpabsq zmm17, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x1f,0x4a,0x80]
+ vpabsq zmm17, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpabsq zmm17, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xfd,0x58,0x1f,0x8a,0xf8,0xfb,0xff,0xff]
+ vpabsq zmm17, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpaddd zmm10, zmm8, zmm11
+// CHECK: encoding: [0x62,0x51,0x3d,0x48,0xfe,0xd3]
+ vpaddd zmm10, zmm8, zmm11
+
+// CHECK: vpaddd zmm10 {k7}, zmm8, zmm11
+// CHECK: encoding: [0x62,0x51,0x3d,0x4f,0xfe,0xd3]
+ vpaddd zmm10 {k7}, zmm8, zmm11
+
+// CHECK: vpaddd zmm10 {k7} {z}, zmm8, zmm11
+// CHECK: encoding: [0x62,0x51,0x3d,0xcf,0xfe,0xd3]
+ vpaddd zmm10 {k7} {z}, zmm8, zmm11
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x3d,0x48,0xfe,0x11]
+ vpaddd zmm10, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x3d,0x48,0xfe,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpaddd zmm10, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpaddd zmm10, zmm8, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x3d,0x58,0xfe,0x11]
+ vpaddd zmm10, zmm8, dword ptr [rcx]{1to16}
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x3d,0x48,0xfe,0x52,0x7f]
+ vpaddd zmm10, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x3d,0x48,0xfe,0x92,0x00,0x20,0x00,0x00]
+ vpaddd zmm10, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x3d,0x48,0xfe,0x52,0x80]
+ vpaddd zmm10, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpaddd zmm10, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x3d,0x48,0xfe,0x92,0xc0,0xdf,0xff,0xff]
+ vpaddd zmm10, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpaddd zmm10, zmm8, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x3d,0x58,0xfe,0x52,0x7f]
+ vpaddd zmm10, zmm8, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpaddd zmm10, zmm8, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x3d,0x58,0xfe,0x92,0x00,0x02,0x00,0x00]
+ vpaddd zmm10, zmm8, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpaddd zmm10, zmm8, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x3d,0x58,0xfe,0x52,0x80]
+ vpaddd zmm10, zmm8, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpaddd zmm10, zmm8, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x3d,0x58,0xfe,0x92,0xfc,0xfd,0xff,0xff]
+ vpaddd zmm10, zmm8, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpaddq zmm6, zmm4, zmm26
+// CHECK: encoding: [0x62,0x91,0xdd,0x48,0xd4,0xf2]
+ vpaddq zmm6, zmm4, zmm26
+
+// CHECK: vpaddq zmm6 {k3}, zmm4, zmm26
+// CHECK: encoding: [0x62,0x91,0xdd,0x4b,0xd4,0xf2]
+ vpaddq zmm6 {k3}, zmm4, zmm26
+
+// CHECK: vpaddq zmm6 {k3} {z}, zmm4, zmm26
+// CHECK: encoding: [0x62,0x91,0xdd,0xcb,0xd4,0xf2]
+ vpaddq zmm6 {k3} {z}, zmm4, zmm26
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0xd4,0x31]
+ vpaddq zmm6, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xdd,0x48,0xd4,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpaddq zmm6, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpaddq zmm6, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0xd4,0x31]
+ vpaddq zmm6, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0xd4,0x72,0x7f]
+ vpaddq zmm6, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0xd4,0xb2,0x00,0x20,0x00,0x00]
+ vpaddq zmm6, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0xd4,0x72,0x80]
+ vpaddq zmm6, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpaddq zmm6, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0xd4,0xb2,0xc0,0xdf,0xff,0xff]
+ vpaddq zmm6, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpaddq zmm6, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0xd4,0x72,0x7f]
+ vpaddq zmm6, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpaddq zmm6, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0xd4,0xb2,0x00,0x04,0x00,0x00]
+ vpaddq zmm6, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpaddq zmm6, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0xd4,0x72,0x80]
+ vpaddq zmm6, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpaddq zmm6, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0xd4,0xb2,0xf8,0xfb,0xff,0xff]
+ vpaddq zmm6, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpandd zmm1, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb1,0x15,0x40,0xdb,0xc8]
+ vpandd zmm1, zmm29, zmm16
+
+// CHECK: vpandd zmm1 {k2}, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb1,0x15,0x42,0xdb,0xc8]
+ vpandd zmm1 {k2}, zmm29, zmm16
+
+// CHECK: vpandd zmm1 {k2} {z}, zmm29, zmm16
+// CHECK: encoding: [0x62,0xb1,0x15,0xc2,0xdb,0xc8]
+ vpandd zmm1 {k2} {z}, zmm29, zmm16
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0xdb,0x09]
+ vpandd zmm1, zmm29, zmmword ptr [rcx]
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x15,0x40,0xdb,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpandd zmm1, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpandd zmm1, zmm29, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0xdb,0x09]
+ vpandd zmm1, zmm29, dword ptr [rcx]{1to16}
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0xdb,0x4a,0x7f]
+ vpandd zmm1, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0xdb,0x8a,0x00,0x20,0x00,0x00]
+ vpandd zmm1, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0xdb,0x4a,0x80]
+ vpandd zmm1, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandd zmm1, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x15,0x40,0xdb,0x8a,0xc0,0xdf,0xff,0xff]
+ vpandd zmm1, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandd zmm1, zmm29, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0xdb,0x4a,0x7f]
+ vpandd zmm1, zmm29, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpandd zmm1, zmm29, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0xdb,0x8a,0x00,0x02,0x00,0x00]
+ vpandd zmm1, zmm29, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpandd zmm1, zmm29, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0xdb,0x4a,0x80]
+ vpandd zmm1, zmm29, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpandd zmm1, zmm29, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x15,0x50,0xdb,0x8a,0xfc,0xfd,0xff,0xff]
+ vpandd zmm1, zmm29, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpandnd zmm22, zmm17, zmm16
+// CHECK: encoding: [0x62,0xa1,0x75,0x40,0xdf,0xf0]
+ vpandnd zmm22, zmm17, zmm16
+
+// CHECK: vpandnd zmm22 {k5}, zmm17, zmm16
+// CHECK: encoding: [0x62,0xa1,0x75,0x45,0xdf,0xf0]
+ vpandnd zmm22 {k5}, zmm17, zmm16
+
+// CHECK: vpandnd zmm22 {k5} {z}, zmm17, zmm16
+// CHECK: encoding: [0x62,0xa1,0x75,0xc5,0xdf,0xf0]
+ vpandnd zmm22 {k5} {z}, zmm17, zmm16
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x75,0x40,0xdf,0x31]
+ vpandnd zmm22, zmm17, zmmword ptr [rcx]
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x75,0x40,0xdf,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpandnd zmm22, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpandnd zmm22, zmm17, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x75,0x50,0xdf,0x31]
+ vpandnd zmm22, zmm17, dword ptr [rcx]{1to16}
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x75,0x40,0xdf,0x72,0x7f]
+ vpandnd zmm22, zmm17, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x75,0x40,0xdf,0xb2,0x00,0x20,0x00,0x00]
+ vpandnd zmm22, zmm17, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x75,0x40,0xdf,0x72,0x80]
+ vpandnd zmm22, zmm17, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandnd zmm22, zmm17, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x75,0x40,0xdf,0xb2,0xc0,0xdf,0xff,0xff]
+ vpandnd zmm22, zmm17, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandnd zmm22, zmm17, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x75,0x50,0xdf,0x72,0x7f]
+ vpandnd zmm22, zmm17, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpandnd zmm22, zmm17, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x75,0x50,0xdf,0xb2,0x00,0x02,0x00,0x00]
+ vpandnd zmm22, zmm17, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpandnd zmm22, zmm17, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x75,0x50,0xdf,0x72,0x80]
+ vpandnd zmm22, zmm17, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpandnd zmm22, zmm17, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x75,0x50,0xdf,0xb2,0xfc,0xfd,0xff,0xff]
+ vpandnd zmm22, zmm17, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpandnq zmm25, zmm4, zmm2
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0xca]
+ vpandnq zmm25, zmm4, zmm2
+
+// CHECK: vpandnq zmm25 {k3}, zmm4, zmm2
+// CHECK: encoding: [0x62,0x61,0xdd,0x4b,0xdf,0xca]
+ vpandnq zmm25 {k3}, zmm4, zmm2
+
+// CHECK: vpandnq zmm25 {k3} {z}, zmm4, zmm2
+// CHECK: encoding: [0x62,0x61,0xdd,0xcb,0xdf,0xca]
+ vpandnq zmm25 {k3} {z}, zmm4, zmm2
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0x09]
+ vpandnq zmm25, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xdd,0x48,0xdf,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpandnq zmm25, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpandnq zmm25, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0xdf,0x09]
+ vpandnq zmm25, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0x4a,0x7f]
+ vpandnq zmm25, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0x8a,0x00,0x20,0x00,0x00]
+ vpandnq zmm25, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0x4a,0x80]
+ vpandnq zmm25, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandnq zmm25, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0xdd,0x48,0xdf,0x8a,0xc0,0xdf,0xff,0xff]
+ vpandnq zmm25, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandnq zmm25, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0xdf,0x4a,0x7f]
+ vpandnq zmm25, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpandnq zmm25, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0xdf,0x8a,0x00,0x04,0x00,0x00]
+ vpandnq zmm25, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpandnq zmm25, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0xdf,0x4a,0x80]
+ vpandnq zmm25, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpandnq zmm25, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0xdd,0x58,0xdf,0x8a,0xf8,0xfb,0xff,0xff]
+ vpandnq zmm25, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpandq zmm27, zmm12, zmm9
+// CHECK: encoding: [0x62,0x41,0x9d,0x48,0xdb,0xd9]
+ vpandq zmm27, zmm12, zmm9
+
+// CHECK: vpandq zmm27 {k2}, zmm12, zmm9
+// CHECK: encoding: [0x62,0x41,0x9d,0x4a,0xdb,0xd9]
+ vpandq zmm27 {k2}, zmm12, zmm9
+
+// CHECK: vpandq zmm27 {k2} {z}, zmm12, zmm9
+// CHECK: encoding: [0x62,0x41,0x9d,0xca,0xdb,0xd9]
+ vpandq zmm27 {k2} {z}, zmm12, zmm9
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x9d,0x48,0xdb,0x19]
+ vpandq zmm27, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x9d,0x48,0xdb,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpandq zmm27, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpandq zmm27, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x58,0xdb,0x19]
+ vpandq zmm27, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x9d,0x48,0xdb,0x5a,0x7f]
+ vpandq zmm27, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x48,0xdb,0x9a,0x00,0x20,0x00,0x00]
+ vpandq zmm27, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x9d,0x48,0xdb,0x5a,0x80]
+ vpandq zmm27, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpandq zmm27, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x9d,0x48,0xdb,0x9a,0xc0,0xdf,0xff,0xff]
+ vpandq zmm27, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpandq zmm27, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x58,0xdb,0x5a,0x7f]
+ vpandq zmm27, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpandq zmm27, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x58,0xdb,0x9a,0x00,0x04,0x00,0x00]
+ vpandq zmm27, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpandq zmm27, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x58,0xdb,0x5a,0x80]
+ vpandq zmm27, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpandq zmm27, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x61,0x9d,0x58,0xdb,0x9a,0xf8,0xfb,0xff,0xff]
+ vpandq zmm27, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpblendmd zmm23, zmm24, zmm12
+// CHECK: encoding: [0x62,0xc2,0x3d,0x40,0x64,0xfc]
+ vpblendmd zmm23, zmm24, zmm12
+
+// CHECK: vpblendmd zmm23 {k1}, zmm24, zmm12
+// CHECK: encoding: [0x62,0xc2,0x3d,0x41,0x64,0xfc]
+ vpblendmd zmm23 {k1}, zmm24, zmm12
+
+// CHECK: vpblendmd zmm23 {k1} {z}, zmm24, zmm12
+// CHECK: encoding: [0x62,0xc2,0x3d,0xc1,0x64,0xfc]
+ vpblendmd zmm23 {k1} {z}, zmm24, zmm12
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0x64,0x39]
+ vpblendmd zmm23, zmm24, zmmword ptr [rcx]
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x3d,0x40,0x64,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpblendmd zmm23, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpblendmd zmm23, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0x64,0x39]
+ vpblendmd zmm23, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0x64,0x7a,0x7f]
+ vpblendmd zmm23, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0x64,0xba,0x00,0x20,0x00,0x00]
+ vpblendmd zmm23, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0x64,0x7a,0x80]
+ vpblendmd zmm23, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vpblendmd zmm23, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x3d,0x40,0x64,0xba,0xc0,0xdf,0xff,0xff]
+ vpblendmd zmm23, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vpblendmd zmm23, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0x64,0x7a,0x7f]
+ vpblendmd zmm23, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpblendmd zmm23, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0x64,0xba,0x00,0x02,0x00,0x00]
+ vpblendmd zmm23, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpblendmd zmm23, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0x64,0x7a,0x80]
+ vpblendmd zmm23, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpblendmd zmm23, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x3d,0x50,0x64,0xba,0xfc,0xfd,0xff,0xff]
+ vpblendmd zmm23, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x58,0x19]
+ vpbroadcastd zmm19, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm19 {k5}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x4d,0x58,0x19]
+ vpbroadcastd zmm19 {k5}, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm19 {k5} {z}, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0xcd,0x58,0x19]
+ vpbroadcastd zmm19 {k5} {z}, dword ptr [rcx]
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x58,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpbroadcastd zmm19, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x58,0x5a,0x7f]
+ vpbroadcastd zmm19, dword ptr [rdx + 508]
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x58,0x9a,0x00,0x02,0x00,0x00]
+ vpbroadcastd zmm19, dword ptr [rdx + 512]
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x58,0x5a,0x80]
+ vpbroadcastd zmm19, dword ptr [rdx - 512]
+
+// CHECK: vpbroadcastd zmm19, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x58,0x9a,0xfc,0xfd,0xff,0xff]
+ vpbroadcastd zmm19, dword ptr [rdx - 516]
+
+// CHECK: vpbroadcastd zmm3, xmm1
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x58,0xd9]
+ vpbroadcastd zmm3, xmm1
+
+// CHECK: vpbroadcastd zmm3 {k6}, xmm1
+// CHECK: encoding: [0x62,0xf2,0x7d,0x4e,0x58,0xd9]
+ vpbroadcastd zmm3 {k6}, xmm1
+
+// CHECK: vpbroadcastd zmm3 {k6} {z}, xmm1
+// CHECK: encoding: [0x62,0xf2,0x7d,0xce,0x58,0xd9]
+ vpbroadcastd zmm3 {k6} {z}, xmm1
+
+// CHECK: vpbroadcastd zmm8, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x7c,0xc0]
+ vpbroadcastd zmm8, eax
+
+// CHECK: vpbroadcastd zmm8 {k3}, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0x4b,0x7c,0xc0]
+ vpbroadcastd zmm8 {k3}, eax
+
+// CHECK: vpbroadcastd zmm8 {k3} {z}, eax
+// CHECK: encoding: [0x62,0x72,0x7d,0xcb,0x7c,0xc0]
+ vpbroadcastd zmm8 {k3} {z}, eax
+
+// CHECK: vpbroadcastd zmm8, ebp
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x7c,0xc5]
+ vpbroadcastd zmm8, ebp
+
+// CHECK: vpbroadcastd zmm8, r13d
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x7c,0xc5]
+ vpbroadcastd zmm8, r13d
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0x31]
+ vpbroadcastq zmm14, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm14 {k5}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x4d,0x59,0x31]
+ vpbroadcastq zmm14 {k5}, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm14 {k5} {z}, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0xcd,0x59,0x31]
+ vpbroadcastq zmm14 {k5} {z}, qword ptr [rcx]
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x59,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpbroadcastq zmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0x72,0x7f]
+ vpbroadcastq zmm14, qword ptr [rdx + 1016]
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0xb2,0x00,0x04,0x00,0x00]
+ vpbroadcastq zmm14, qword ptr [rdx + 1024]
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0x72,0x80]
+ vpbroadcastq zmm14, qword ptr [rdx - 1024]
+
+// CHECK: vpbroadcastq zmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0xb2,0xf8,0xfb,0xff,0xff]
+ vpbroadcastq zmm14, qword ptr [rdx - 1032]
+
+// CHECK: vpbroadcastq zmm8, xmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x59,0xc4]
+ vpbroadcastq zmm8, xmm4
+
+// CHECK: vpbroadcastq zmm8 {k3}, xmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x4b,0x59,0xc4]
+ vpbroadcastq zmm8 {k3}, xmm4
+
+// CHECK: vpbroadcastq zmm8 {k3} {z}, xmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0xcb,0x59,0xc4]
+ vpbroadcastq zmm8 {k3} {z}, xmm4
+
+// CHECK: vpbroadcastq zmm5, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x7c,0xe8]
+ vpbroadcastq zmm5, rax
+
+// CHECK: vpbroadcastq zmm5 {k6}, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0x4e,0x7c,0xe8]
+ vpbroadcastq zmm5 {k6}, rax
+
+// CHECK: vpbroadcastq zmm5 {k6} {z}, rax
+// CHECK: encoding: [0x62,0xf2,0xfd,0xce,0x7c,0xe8]
+ vpbroadcastq zmm5 {k6} {z}, rax
+
+// CHECK: vpbroadcastq zmm5, r8
+// CHECK: encoding: [0x62,0xd2,0xfd,0x48,0x7c,0xe8]
+ vpbroadcastq zmm5, r8
+
+// CHECK: vpcmpd k2, zmm25, zmm22, 171
+// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1f,0xd6,0xab]
+ vpcmpd k2, zmm25, zmm22, 171
+
+// CHECK: vpcmpd k2 {k3}, zmm25, zmm22, 171
+// CHECK: encoding: [0x62,0xb3,0x35,0x43,0x1f,0xd6,0xab]
+ vpcmpd k2 {k3}, zmm25, zmm22, 171
+
+// CHECK: vpcmpd k2, zmm25, zmm22, 123
+// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1f,0xd6,0x7b]
+ vpcmpd k2, zmm25, zmm22, 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x11,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x35,0x40,0x1f,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpcmpd k2, zmm25, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x11,0x7b]
+ vpcmpd k2, zmm25, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x52,0x7f,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x52,0x80,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpd k2, zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x40,0x1f,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpd k2, zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpd k2, zmm25, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x52,0x7f,0x7b]
+ vpcmpd k2, zmm25, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpcmpd k2, zmm25, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpcmpd k2, zmm25, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpcmpd k2, zmm25, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x52,0x80,0x7b]
+ vpcmpd k2, zmm25, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpcmpd k2, zmm25, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x35,0x50,0x1f,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpcmpd k2, zmm25, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpcmpeqd k5, zmm8, zmm21
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x76,0xed]
+ vpcmpeqd k5, zmm8, zmm21
+
+// CHECK: vpcmpeqd k5 {k4}, zmm8, zmm21
+// CHECK: encoding: [0x62,0xb1,0x3d,0x4c,0x76,0xed]
+ vpcmpeqd k5 {k4}, zmm8, zmm21
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x76,0x29]
+ vpcmpeqd k5, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x76,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpcmpeqd k5, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpcmpeqd k5, zmm8, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x76,0x29]
+ vpcmpeqd k5, zmm8, dword ptr [rcx]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x76,0x6a,0x7f]
+ vpcmpeqd k5, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x76,0xaa,0x00,0x20,0x00,0x00]
+ vpcmpeqd k5, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x76,0x6a,0x80]
+ vpcmpeqd k5, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpeqd k5, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x76,0xaa,0xc0,0xdf,0xff,0xff]
+ vpcmpeqd k5, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpeqd k5, zmm8, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x76,0x6a,0x7f]
+ vpcmpeqd k5, zmm8, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm8, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x76,0xaa,0x00,0x02,0x00,0x00]
+ vpcmpeqd k5, zmm8, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm8, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x76,0x6a,0x80]
+ vpcmpeqd k5, zmm8, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpcmpeqd k5, zmm8, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x76,0xaa,0xfc,0xfd,0xff,0xff]
+ vpcmpeqd k5, zmm8, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpcmpeqq k4, zmm14, zmm9
+// CHECK: encoding: [0x62,0xd2,0x8d,0x48,0x29,0xe1]
+ vpcmpeqq k4, zmm14, zmm9
+
+// CHECK: vpcmpeqq k4 {k6}, zmm14, zmm9
+// CHECK: encoding: [0x62,0xd2,0x8d,0x4e,0x29,0xe1]
+ vpcmpeqq k4 {k6}, zmm14, zmm9
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x8d,0x48,0x29,0x21]
+ vpcmpeqq k4, zmm14, zmmword ptr [rcx]
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x8d,0x48,0x29,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpcmpeqq k4, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpcmpeqq k4, zmm14, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x8d,0x58,0x29,0x21]
+ vpcmpeqq k4, zmm14, qword ptr [rcx]{1to8}
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x8d,0x48,0x29,0x62,0x7f]
+ vpcmpeqq k4, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x8d,0x48,0x29,0xa2,0x00,0x20,0x00,0x00]
+ vpcmpeqq k4, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x8d,0x48,0x29,0x62,0x80]
+ vpcmpeqq k4, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpeqq k4, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x8d,0x48,0x29,0xa2,0xc0,0xdf,0xff,0xff]
+ vpcmpeqq k4, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpeqq k4, zmm14, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x8d,0x58,0x29,0x62,0x7f]
+ vpcmpeqq k4, zmm14, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpcmpeqq k4, zmm14, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x8d,0x58,0x29,0xa2,0x00,0x04,0x00,0x00]
+ vpcmpeqq k4, zmm14, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpcmpeqq k4, zmm14, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x8d,0x58,0x29,0x62,0x80]
+ vpcmpeqq k4, zmm14, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpcmpeqq k4, zmm14, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x8d,0x58,0x29,0xa2,0xf8,0xfb,0xff,0xff]
+ vpcmpeqq k4, zmm14, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcmpgtd k4, zmm8, zmm8
+// CHECK: encoding: [0x62,0xd1,0x3d,0x48,0x66,0xe0]
+ vpcmpgtd k4, zmm8, zmm8
+
+// CHECK: vpcmpgtd k4 {k7}, zmm8, zmm8
+// CHECK: encoding: [0x62,0xd1,0x3d,0x4f,0x66,0xe0]
+ vpcmpgtd k4 {k7}, zmm8, zmm8
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x66,0x21]
+ vpcmpgtd k4, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x66,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpcmpgtd k4, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpcmpgtd k4, zmm8, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x66,0x21]
+ vpcmpgtd k4, zmm8, dword ptr [rcx]{1to16}
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x66,0x62,0x7f]
+ vpcmpgtd k4, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x66,0xa2,0x00,0x20,0x00,0x00]
+ vpcmpgtd k4, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x66,0x62,0x80]
+ vpcmpgtd k4, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpgtd k4, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x66,0xa2,0xc0,0xdf,0xff,0xff]
+ vpcmpgtd k4, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpgtd k4, zmm8, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x66,0x62,0x7f]
+ vpcmpgtd k4, zmm8, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpcmpgtd k4, zmm8, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x66,0xa2,0x00,0x02,0x00,0x00]
+ vpcmpgtd k4, zmm8, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpcmpgtd k4, zmm8, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x66,0x62,0x80]
+ vpcmpgtd k4, zmm8, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpcmpgtd k4, zmm8, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x66,0xa2,0xfc,0xfd,0xff,0xff]
+ vpcmpgtd k4, zmm8, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpcmpgtq k3, zmm12, zmm26
+// CHECK: encoding: [0x62,0x92,0x9d,0x48,0x37,0xda]
+ vpcmpgtq k3, zmm12, zmm26
+
+// CHECK: vpcmpgtq k3 {k4}, zmm12, zmm26
+// CHECK: encoding: [0x62,0x92,0x9d,0x4c,0x37,0xda]
+ vpcmpgtq k3 {k4}, zmm12, zmm26
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0x37,0x19]
+ vpcmpgtq k3, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x9d,0x48,0x37,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpcmpgtq k3, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpcmpgtq k3, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0x37,0x19]
+ vpcmpgtq k3, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0x37,0x5a,0x7f]
+ vpcmpgtq k3, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0x37,0x9a,0x00,0x20,0x00,0x00]
+ vpcmpgtq k3, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0x37,0x5a,0x80]
+ vpcmpgtq k3, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpcmpgtq k3, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x9d,0x48,0x37,0x9a,0xc0,0xdf,0xff,0xff]
+ vpcmpgtq k3, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpcmpgtq k3, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0x37,0x5a,0x7f]
+ vpcmpgtq k3, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpcmpgtq k3, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0x37,0x9a,0x00,0x04,0x00,0x00]
+ vpcmpgtq k3, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpcmpgtq k3, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0x37,0x5a,0x80]
+ vpcmpgtq k3, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpcmpgtq k3, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x9d,0x58,0x37,0x9a,0xf8,0xfb,0xff,0xff]
+ vpcmpgtq k3, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcmpq k3, zmm25, zmm15, 171
+// CHECK: encoding: [0x62,0xd3,0xb5,0x40,0x1f,0xdf,0xab]
+ vpcmpq k3, zmm25, zmm15, 171
+
+// CHECK: vpcmpq k3 {k4}, zmm25, zmm15, 171
+// CHECK: encoding: [0x62,0xd3,0xb5,0x44,0x1f,0xdf,0xab]
+ vpcmpq k3 {k4}, zmm25, zmm15, 171
+
+// CHECK: vpcmpq k3, zmm25, zmm15, 123
+// CHECK: encoding: [0x62,0xd3,0xb5,0x40,0x1f,0xdf,0x7b]
+ vpcmpq k3, zmm25, zmm15, 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x1f,0x19,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0xb5,0x40,0x1f,0x9c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpcmpq k3, zmm25, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x50,0x1f,0x19,0x7b]
+ vpcmpq k3, zmm25, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x1f,0x5a,0x7f,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x1f,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x1f,0x5a,0x80,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpq k3, zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x40,0x1f,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpq k3, zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpq k3, zmm25, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x50,0x1f,0x5a,0x7f,0x7b]
+ vpcmpq k3, zmm25, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpcmpq k3, zmm25, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x50,0x1f,0x9a,0x00,0x04,0x00,0x00,0x7b]
+ vpcmpq k3, zmm25, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpcmpq k3, zmm25, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x50,0x1f,0x5a,0x80,0x7b]
+ vpcmpq k3, zmm25, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpcmpq k3, zmm25, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0xb5,0x50,0x1f,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
+ vpcmpq k3, zmm25, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpcmpud k3, zmm29, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0xdd,0xab]
+ vpcmpud k3, zmm29, zmm5, 171
+
+// CHECK: vpcmpud k3 {k7}, zmm29, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0x15,0x47,0x1e,0xdd,0xab]
+ vpcmpud k3 {k7}, zmm29, zmm5, 171
+
+// CHECK: vpcmpud k3, zmm29, zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0xdd,0x7b]
+ vpcmpud k3, zmm29, zmm5, 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0x19,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x15,0x40,0x1e,0x9c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpcmpud k3, zmm29, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x50,0x1e,0x19,0x7b]
+ vpcmpud k3, zmm29, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0x5a,0x7f,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0x5a,0x80,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpud k3, zmm29, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x40,0x1e,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpud k3, zmm29, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpud k3, zmm29, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x50,0x1e,0x5a,0x7f,0x7b]
+ vpcmpud k3, zmm29, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpcmpud k3, zmm29, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x50,0x1e,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vpcmpud k3, zmm29, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpcmpud k3, zmm29, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x50,0x1e,0x5a,0x80,0x7b]
+ vpcmpud k3, zmm29, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpcmpud k3, zmm29, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x15,0x50,0x1e,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vpcmpud k3, zmm29, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpcmpuq k2, zmm14, zmm12, 171
+// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd4,0xab]
+ vpcmpuq k2, zmm14, zmm12, 171
+
+// CHECK: vpcmpuq k2 {k3}, zmm14, zmm12, 171
+// CHECK: encoding: [0x62,0xd3,0x8d,0x4b,0x1e,0xd4,0xab]
+ vpcmpuq k2 {k3}, zmm14, zmm12, 171
+
+// CHECK: vpcmpuq k2, zmm14, zmm12, 123
+// CHECK: encoding: [0x62,0xd3,0x8d,0x48,0x1e,0xd4,0x7b]
+ vpcmpuq k2, zmm14, zmm12, 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x11,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rcx], 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x8d,0x48,0x1e,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpcmpuq k2, zmm14, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x11,0x7b]
+ vpcmpuq k2, zmm14, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x52,0x7f,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x52,0x80,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpcmpuq k2, zmm14, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x48,0x1e,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpcmpuq k2, zmm14, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpcmpuq k2, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x52,0x7f,0x7b]
+ vpcmpuq k2, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpcmpuq k2, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vpcmpuq k2, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpcmpuq k2, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x52,0x80,0x7b]
+ vpcmpuq k2, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpcmpuq k2, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x8d,0x58,0x1e,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vpcmpuq k2, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpblendmq zmm24, zmm18, zmm5
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0xc5]
+ vpblendmq zmm24, zmm18, zmm5
+
+// CHECK: vpblendmq zmm24 {k3}, zmm18, zmm5
+// CHECK: encoding: [0x62,0x62,0xed,0x43,0x64,0xc5]
+ vpblendmq zmm24 {k3}, zmm18, zmm5
+
+// CHECK: vpblendmq zmm24 {k3} {z}, zmm18, zmm5
+// CHECK: encoding: [0x62,0x62,0xed,0xc3,0x64,0xc5]
+ vpblendmq zmm24 {k3} {z}, zmm18, zmm5
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0x01]
+ vpblendmq zmm24, zmm18, zmmword ptr [rcx]
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xed,0x40,0x64,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpblendmq zmm24, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpblendmq zmm24, zmm18, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xed,0x50,0x64,0x01]
+ vpblendmq zmm24, zmm18, qword ptr [rcx]{1to8}
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0x42,0x7f]
+ vpblendmq zmm24, zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0x82,0x00,0x20,0x00,0x00]
+ vpblendmq zmm24, zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0x42,0x80]
+ vpblendmq zmm24, zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vpblendmq zmm24, zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xed,0x40,0x64,0x82,0xc0,0xdf,0xff,0xff]
+ vpblendmq zmm24, zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vpblendmq zmm24, zmm18, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xed,0x50,0x64,0x42,0x7f]
+ vpblendmq zmm24, zmm18, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpblendmq zmm24, zmm18, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xed,0x50,0x64,0x82,0x00,0x04,0x00,0x00]
+ vpblendmq zmm24, zmm18, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpblendmq zmm24, zmm18, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xed,0x50,0x64,0x42,0x80]
+ vpblendmq zmm24, zmm18, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpblendmq zmm24, zmm18, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xed,0x50,0x64,0x82,0xf8,0xfb,0xff,0xff]
+ vpblendmq zmm24, zmm18, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpcompressd zmmword ptr [rcx], zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x21]
+ vpcompressd zmmword ptr [rcx], zmm20
+
+// CHECK: vpcompressd zmmword ptr [rcx] {k6}, zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x4e,0x8b,0x21]
+ vpcompressd zmmword ptr [rcx] {k6}, zmm20
+
+// CHECK: vpcompressd zmmword ptr [rax + 8*r14 + 4660], zmm20
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x8b,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpcompressd zmmword ptr [rax + 8*r14 + 4660], zmm20
+
+// CHECK: vpcompressd zmmword ptr [rdx + 508], zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x62,0x7f]
+ vpcompressd zmmword ptr [rdx + 508], zmm20
+
+// CHECK: vpcompressd zmmword ptr [rdx + 512], zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0xa2,0x00,0x02,0x00,0x00]
+ vpcompressd zmmword ptr [rdx + 512], zmm20
+
+// CHECK: vpcompressd zmmword ptr [rdx - 512], zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0x62,0x80]
+ vpcompressd zmmword ptr [rdx - 512], zmm20
+
+// CHECK: vpcompressd zmmword ptr [rdx - 516], zmm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x8b,0xa2,0xfc,0xfd,0xff,0xff]
+ vpcompressd zmmword ptr [rdx - 516], zmm20
+
+// CHECK: vpcompressd zmm24, zmm12
+// CHECK: encoding: [0x62,0x12,0x7d,0x48,0x8b,0xe0]
+ vpcompressd zmm24, zmm12
+
+// CHECK: vpcompressd zmm24 {k5}, zmm12
+// CHECK: encoding: [0x62,0x12,0x7d,0x4d,0x8b,0xe0]
+ vpcompressd zmm24 {k5}, zmm12
+
+// CHECK: vpcompressd zmm24 {k5} {z}, zmm12
+// CHECK: encoding: [0x62,0x12,0x7d,0xcd,0x8b,0xe0]
+ vpcompressd zmm24 {k5} {z}, zmm12
+
+// CHECK: vpermd zmm25, zmm10, zmm8
+// CHECK: encoding: [0x62,0x42,0x2d,0x48,0x36,0xc8]
+ vpermd zmm25, zmm10, zmm8
+
+// CHECK: vpermd zmm25 {k6}, zmm10, zmm8
+// CHECK: encoding: [0x62,0x42,0x2d,0x4e,0x36,0xc8]
+ vpermd zmm25 {k6}, zmm10, zmm8
+
+// CHECK: vpermd zmm25 {k6} {z}, zmm10, zmm8
+// CHECK: encoding: [0x62,0x42,0x2d,0xce,0x36,0xc8]
+ vpermd zmm25 {k6} {z}, zmm10, zmm8
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0x36,0x09]
+ vpermd zmm25, zmm10, zmmword ptr [rcx]
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x2d,0x48,0x36,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpermd zmm25, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermd zmm25, zmm10, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0x36,0x09]
+ vpermd zmm25, zmm10, dword ptr [rcx]{1to16}
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0x36,0x4a,0x7f]
+ vpermd zmm25, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0x36,0x8a,0x00,0x20,0x00,0x00]
+ vpermd zmm25, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0x36,0x4a,0x80]
+ vpermd zmm25, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermd zmm25, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x2d,0x48,0x36,0x8a,0xc0,0xdf,0xff,0xff]
+ vpermd zmm25, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermd zmm25, zmm10, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0x36,0x4a,0x7f]
+ vpermd zmm25, zmm10, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermd zmm25, zmm10, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0x36,0x8a,0x00,0x02,0x00,0x00]
+ vpermd zmm25, zmm10, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermd zmm25, zmm10, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0x36,0x4a,0x80]
+ vpermd zmm25, zmm10, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermd zmm25, zmm10, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x58,0x36,0x8a,0xfc,0xfd,0xff,0xff]
+ vpermd zmm25, zmm10, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermilpd zmm15, zmm8, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0x48,0x05,0xf8,0xab]
+ vpermilpd zmm15, zmm8, 171
+
+// CHECK: vpermilpd zmm15 {k6}, zmm8, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0x4e,0x05,0xf8,0xab]
+ vpermilpd zmm15 {k6}, zmm8, 171
+
+// CHECK: vpermilpd zmm15 {k6} {z}, zmm8, 171
+// CHECK: encoding: [0x62,0x53,0xfd,0xce,0x05,0xf8,0xab]
+ vpermilpd zmm15 {k6} {z}, zmm8, 171
+
+// CHECK: vpermilpd zmm15, zmm8, 123
+// CHECK: encoding: [0x62,0x53,0xfd,0x48,0x05,0xf8,0x7b]
+ vpermilpd zmm15, zmm8, 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x05,0x39,0x7b]
+ vpermilpd zmm15, zmmword ptr [rcx], 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0xfd,0x48,0x05,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpermilpd zmm15, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpermilpd zmm15, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x05,0x39,0x7b]
+ vpermilpd zmm15, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x05,0x7a,0x7f,0x7b]
+ vpermilpd zmm15, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x05,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vpermilpd zmm15, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x05,0x7a,0x80,0x7b]
+ vpermilpd zmm15, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermilpd zmm15, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x05,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermilpd zmm15, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermilpd zmm15, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x05,0x7a,0x7f,0x7b]
+ vpermilpd zmm15, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermilpd zmm15, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x05,0xba,0x00,0x04,0x00,0x00,0x7b]
+ vpermilpd zmm15, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermilpd zmm15, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x05,0x7a,0x80,0x7b]
+ vpermilpd zmm15, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermilpd zmm15, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x05,0xba,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermilpd zmm15, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermilpd zmm23, zmm26, zmm8
+// CHECK: encoding: [0x62,0xc2,0xad,0x40,0x0d,0xf8]
+ vpermilpd zmm23, zmm26, zmm8
+
+// CHECK: vpermilpd zmm23 {k1}, zmm26, zmm8
+// CHECK: encoding: [0x62,0xc2,0xad,0x41,0x0d,0xf8]
+ vpermilpd zmm23 {k1}, zmm26, zmm8
+
+// CHECK: vpermilpd zmm23 {k1} {z}, zmm26, zmm8
+// CHECK: encoding: [0x62,0xc2,0xad,0xc1,0x0d,0xf8]
+ vpermilpd zmm23 {k1} {z}, zmm26, zmm8
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xad,0x40,0x0d,0x39]
+ vpermilpd zmm23, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xad,0x40,0x0d,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpermilpd zmm23, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermilpd zmm23, zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xad,0x50,0x0d,0x39]
+ vpermilpd zmm23, zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xad,0x40,0x0d,0x7a,0x7f]
+ vpermilpd zmm23, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xad,0x40,0x0d,0xba,0x00,0x20,0x00,0x00]
+ vpermilpd zmm23, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xad,0x40,0x0d,0x7a,0x80]
+ vpermilpd zmm23, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermilpd zmm23, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xad,0x40,0x0d,0xba,0xc0,0xdf,0xff,0xff]
+ vpermilpd zmm23, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermilpd zmm23, zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xad,0x50,0x0d,0x7a,0x7f]
+ vpermilpd zmm23, zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermilpd zmm23, zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xad,0x50,0x0d,0xba,0x00,0x04,0x00,0x00]
+ vpermilpd zmm23, zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermilpd zmm23, zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xad,0x50,0x0d,0x7a,0x80]
+ vpermilpd zmm23, zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermilpd zmm23, zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xad,0x50,0x0d,0xba,0xf8,0xfb,0xff,0xff]
+ vpermilpd zmm23, zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermilps zmm25, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0xcf,0xab]
+ vpermilps zmm25, zmm7, 171
+
+// CHECK: vpermilps zmm25 {k2}, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x4a,0x04,0xcf,0xab]
+ vpermilps zmm25 {k2}, zmm7, 171
+
+// CHECK: vpermilps zmm25 {k2} {z}, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0xca,0x04,0xcf,0xab]
+ vpermilps zmm25 {k2} {z}, zmm7, 171
+
+// CHECK: vpermilps zmm25, zmm7, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0xcf,0x7b]
+ vpermilps zmm25, zmm7, 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0x09,0x7b]
+ vpermilps zmm25, zmmword ptr [rcx], 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x7d,0x48,0x04,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpermilps zmm25, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpermilps zmm25, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x04,0x09,0x7b]
+ vpermilps zmm25, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0x4a,0x7f,0x7b]
+ vpermilps zmm25, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vpermilps zmm25, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0x4a,0x80,0x7b]
+ vpermilps zmm25, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermilps zmm25, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x04,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermilps zmm25, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermilps zmm25, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x04,0x4a,0x7f,0x7b]
+ vpermilps zmm25, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpermilps zmm25, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x04,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vpermilps zmm25, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpermilps zmm25, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x04,0x4a,0x80,0x7b]
+ vpermilps zmm25, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpermilps zmm25, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x04,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vpermilps zmm25, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpermilps zmm3, zmm26, zmm17
+// CHECK: encoding: [0x62,0xb2,0x2d,0x40,0x0c,0xd9]
+ vpermilps zmm3, zmm26, zmm17
+
+// CHECK: vpermilps zmm3 {k3}, zmm26, zmm17
+// CHECK: encoding: [0x62,0xb2,0x2d,0x43,0x0c,0xd9]
+ vpermilps zmm3 {k3}, zmm26, zmm17
+
+// CHECK: vpermilps zmm3 {k3} {z}, zmm26, zmm17
+// CHECK: encoding: [0x62,0xb2,0x2d,0xc3,0x0c,0xd9]
+ vpermilps zmm3 {k3} {z}, zmm26, zmm17
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x2d,0x40,0x0c,0x19]
+ vpermilps zmm3, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x2d,0x40,0x0c,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpermilps zmm3, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermilps zmm3, zmm26, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x2d,0x50,0x0c,0x19]
+ vpermilps zmm3, zmm26, dword ptr [rcx]{1to16}
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x2d,0x40,0x0c,0x5a,0x7f]
+ vpermilps zmm3, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x2d,0x40,0x0c,0x9a,0x00,0x20,0x00,0x00]
+ vpermilps zmm3, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x2d,0x40,0x0c,0x5a,0x80]
+ vpermilps zmm3, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermilps zmm3, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x2d,0x40,0x0c,0x9a,0xc0,0xdf,0xff,0xff]
+ vpermilps zmm3, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermilps zmm3, zmm26, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x2d,0x50,0x0c,0x5a,0x7f]
+ vpermilps zmm3, zmm26, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermilps zmm3, zmm26, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x2d,0x50,0x0c,0x9a,0x00,0x02,0x00,0x00]
+ vpermilps zmm3, zmm26, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermilps zmm3, zmm26, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x2d,0x50,0x0c,0x5a,0x80]
+ vpermilps zmm3, zmm26, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermilps zmm3, zmm26, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x2d,0x50,0x0c,0x9a,0xfc,0xfd,0xff,0xff]
+ vpermilps zmm3, zmm26, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermpd zmm28, zmm15, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0x48,0x01,0xe7,0xab]
+ vpermpd zmm28, zmm15, 171
+
+// CHECK: vpermpd zmm28 {k4}, zmm15, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0x4c,0x01,0xe7,0xab]
+ vpermpd zmm28 {k4}, zmm15, 171
+
+// CHECK: vpermpd zmm28 {k4} {z}, zmm15, 171
+// CHECK: encoding: [0x62,0x43,0xfd,0xcc,0x01,0xe7,0xab]
+ vpermpd zmm28 {k4} {z}, zmm15, 171
+
+// CHECK: vpermpd zmm28, zmm15, 123
+// CHECK: encoding: [0x62,0x43,0xfd,0x48,0x01,0xe7,0x7b]
+ vpermpd zmm28, zmm15, 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x01,0x21,0x7b]
+ vpermpd zmm28, zmmword ptr [rcx], 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x01,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpermpd zmm28, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpermpd zmm28, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x01,0x21,0x7b]
+ vpermpd zmm28, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x01,0x62,0x7f,0x7b]
+ vpermpd zmm28, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x01,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpermpd zmm28, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x01,0x62,0x80,0x7b]
+ vpermpd zmm28, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermpd zmm28, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x01,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermpd zmm28, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermpd zmm28, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x01,0x62,0x7f,0x7b]
+ vpermpd zmm28, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermpd zmm28, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x01,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vpermpd zmm28, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermpd zmm28, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x01,0x62,0x80,0x7b]
+ vpermpd zmm28, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermpd zmm28, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x01,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermpd zmm28, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermps zmm22, zmm6, zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x48,0x16,0xf5]
+ vpermps zmm22, zmm6, zmm21
+
+// CHECK: vpermps zmm22 {k5}, zmm6, zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0x4d,0x16,0xf5]
+ vpermps zmm22 {k5}, zmm6, zmm21
+
+// CHECK: vpermps zmm22 {k5} {z}, zmm6, zmm21
+// CHECK: encoding: [0x62,0xa2,0x4d,0xcd,0x16,0xf5]
+ vpermps zmm22 {k5} {z}, zmm6, zmm21
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x16,0x31]
+ vpermps zmm22, zmm6, zmmword ptr [rcx]
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x4d,0x48,0x16,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpermps zmm22, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermps zmm22, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x16,0x31]
+ vpermps zmm22, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x16,0x72,0x7f]
+ vpermps zmm22, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x16,0xb2,0x00,0x20,0x00,0x00]
+ vpermps zmm22, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x16,0x72,0x80]
+ vpermps zmm22, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermps zmm22, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x4d,0x48,0x16,0xb2,0xc0,0xdf,0xff,0xff]
+ vpermps zmm22, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermps zmm22, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x16,0x72,0x7f]
+ vpermps zmm22, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermps zmm22, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x16,0xb2,0x00,0x02,0x00,0x00]
+ vpermps zmm22, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermps zmm22, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x16,0x72,0x80]
+ vpermps zmm22, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermps zmm22, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x4d,0x58,0x16,0xb2,0xfc,0xfd,0xff,0xff]
+ vpermps zmm22, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermq zmm24, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x00,0xc7,0xab]
+ vpermq zmm24, zmm23, 171
+
+// CHECK: vpermq zmm24 {k3}, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xfd,0x4b,0x00,0xc7,0xab]
+ vpermq zmm24 {k3}, zmm23, 171
+
+// CHECK: vpermq zmm24 {k3} {z}, zmm23, 171
+// CHECK: encoding: [0x62,0x23,0xfd,0xcb,0x00,0xc7,0xab]
+ vpermq zmm24 {k3} {z}, zmm23, 171
+
+// CHECK: vpermq zmm24, zmm23, 123
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x00,0xc7,0x7b]
+ vpermq zmm24, zmm23, 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x01,0x7b]
+ vpermq zmm24, zmmword ptr [rcx], 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0xfd,0x48,0x00,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpermq zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpermq zmm24, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x01,0x7b]
+ vpermq zmm24, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x42,0x7f,0x7b]
+ vpermq zmm24, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vpermq zmm24, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x42,0x80,0x7b]
+ vpermq zmm24, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpermq zmm24, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x48,0x00,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vpermq zmm24, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpermq zmm24, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x42,0x7f,0x7b]
+ vpermq zmm24, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpermq zmm24, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x82,0x00,0x04,0x00,0x00,0x7b]
+ vpermq zmm24, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpermq zmm24, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x42,0x80,0x7b]
+ vpermq zmm24, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpermq zmm24, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xfd,0x58,0x00,0x82,0xf8,0xfb,0xff,0xff,0x7b]
+ vpermq zmm24, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x89,0x11]
+ vpexpandd zmm18, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm18 {k2}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x4a,0x89,0x11]
+ vpexpandd zmm18 {k2}, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm18 {k2} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0xca,0x89,0x11]
+ vpexpandd zmm18 {k2} {z}, zmmword ptr [rcx]
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x89,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpexpandd zmm18, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x89,0x52,0x7f]
+ vpexpandd zmm18, zmmword ptr [rdx + 508]
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x89,0x92,0x00,0x02,0x00,0x00]
+ vpexpandd zmm18, zmmword ptr [rdx + 512]
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x89,0x52,0x80]
+ vpexpandd zmm18, zmmword ptr [rdx - 512]
+
+// CHECK: vpexpandd zmm18, zmmword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x89,0x92,0xfc,0xfd,0xff,0xff]
+ vpexpandd zmm18, zmmword ptr [rdx - 516]
+
+// CHECK: vpexpandd zmm12, zmm28
+// CHECK: encoding: [0x62,0x12,0x7d,0x48,0x89,0xe4]
+ vpexpandd zmm12, zmm28
+
+// CHECK: vpexpandd zmm12 {k6}, zmm28
+// CHECK: encoding: [0x62,0x12,0x7d,0x4e,0x89,0xe4]
+ vpexpandd zmm12 {k6}, zmm28
+
+// CHECK: vpexpandd zmm12 {k6} {z}, zmm28
+// CHECK: encoding: [0x62,0x12,0x7d,0xce,0x89,0xe4]
+ vpexpandd zmm12 {k6} {z}, zmm28
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x89,0x09]
+ vpexpandq zmm1, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm1 {k7}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x4f,0x89,0x09]
+ vpexpandq zmm1 {k7}, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm1 {k7} {z}, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xfd,0xcf,0x89,0x09]
+ vpexpandq zmm1 {k7} {z}, zmmword ptr [rcx]
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xfd,0x48,0x89,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpexpandq zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x89,0x4a,0x7f]
+ vpexpandq zmm1, zmmword ptr [rdx + 1016]
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x89,0x8a,0x00,0x04,0x00,0x00]
+ vpexpandq zmm1, zmmword ptr [rdx + 1024]
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x89,0x4a,0x80]
+ vpexpandq zmm1, zmmword ptr [rdx - 1024]
+
+// CHECK: vpexpandq zmm1, zmmword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x48,0x89,0x8a,0xf8,0xfb,0xff,0xff]
+ vpexpandq zmm1, zmmword ptr [rdx - 1032]
+
+// CHECK: vpexpandq zmm17, zmm26
+// CHECK: encoding: [0x62,0x82,0xfd,0x48,0x89,0xca]
+ vpexpandq zmm17, zmm26
+
+// CHECK: vpexpandq zmm17 {k7}, zmm26
+// CHECK: encoding: [0x62,0x82,0xfd,0x4f,0x89,0xca]
+ vpexpandq zmm17 {k7}, zmm26
+
+// CHECK: vpexpandq zmm17 {k7} {z}, zmm26
+// CHECK: encoding: [0x62,0x82,0xfd,0xcf,0x89,0xca]
+ vpexpandq zmm17 {k7} {z}, zmm26
+
+// CHECK: vpmaxsd zmm30, zmm13, zmm9
+// CHECK: encoding: [0x62,0x42,0x15,0x48,0x3d,0xf1]
+ vpmaxsd zmm30, zmm13, zmm9
+
+// CHECK: vpmaxsd zmm30 {k7}, zmm13, zmm9
+// CHECK: encoding: [0x62,0x42,0x15,0x4f,0x3d,0xf1]
+ vpmaxsd zmm30 {k7}, zmm13, zmm9
+
+// CHECK: vpmaxsd zmm30 {k7} {z}, zmm13, zmm9
+// CHECK: encoding: [0x62,0x42,0x15,0xcf,0x3d,0xf1]
+ vpmaxsd zmm30 {k7} {z}, zmm13, zmm9
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x15,0x48,0x3d,0x31]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rcx]
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x15,0x48,0x3d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmaxsd zmm30, zmm13, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x58,0x3d,0x31]
+ vpmaxsd zmm30, zmm13, dword ptr [rcx]{1to16}
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x15,0x48,0x3d,0x72,0x7f]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x15,0x48,0x3d,0xb2,0x00,0x20,0x00,0x00]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x15,0x48,0x3d,0x72,0x80]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxsd zmm30, zmm13, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x15,0x48,0x3d,0xb2,0xc0,0xdf,0xff,0xff]
+ vpmaxsd zmm30, zmm13, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxsd zmm30, zmm13, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x58,0x3d,0x72,0x7f]
+ vpmaxsd zmm30, zmm13, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmaxsd zmm30, zmm13, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x58,0x3d,0xb2,0x00,0x02,0x00,0x00]
+ vpmaxsd zmm30, zmm13, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmaxsd zmm30, zmm13, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x58,0x3d,0x72,0x80]
+ vpmaxsd zmm30, zmm13, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmaxsd zmm30, zmm13, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x15,0x58,0x3d,0xb2,0xfc,0xfd,0xff,0xff]
+ vpmaxsd zmm30, zmm13, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmaxsq zmm3, zmm7, zmm5
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0xdd]
+ vpmaxsq zmm3, zmm7, zmm5
+
+// CHECK: vpmaxsq zmm3 {k3}, zmm7, zmm5
+// CHECK: encoding: [0x62,0xf2,0xc5,0x4b,0x3d,0xdd]
+ vpmaxsq zmm3 {k3}, zmm7, zmm5
+
+// CHECK: vpmaxsq zmm3 {k3} {z}, zmm7, zmm5
+// CHECK: encoding: [0x62,0xf2,0xc5,0xcb,0x3d,0xdd]
+ vpmaxsq zmm3 {k3} {z}, zmm7, zmm5
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0x19]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rcx]
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xc5,0x48,0x3d,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmaxsq zmm3, zmm7, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x58,0x3d,0x19]
+ vpmaxsq zmm3, zmm7, qword ptr [rcx]{1to8}
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0x5a,0x7f]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0x9a,0x00,0x20,0x00,0x00]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0x5a,0x80]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxsq zmm3, zmm7, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xc5,0x48,0x3d,0x9a,0xc0,0xdf,0xff,0xff]
+ vpmaxsq zmm3, zmm7, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxsq zmm3, zmm7, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x58,0x3d,0x5a,0x7f]
+ vpmaxsq zmm3, zmm7, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmaxsq zmm3, zmm7, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x58,0x3d,0x9a,0x00,0x04,0x00,0x00]
+ vpmaxsq zmm3, zmm7, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmaxsq zmm3, zmm7, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x58,0x3d,0x5a,0x80]
+ vpmaxsq zmm3, zmm7, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmaxsq zmm3, zmm7, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xc5,0x58,0x3d,0x9a,0xf8,0xfb,0xff,0xff]
+ vpmaxsq zmm3, zmm7, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmaxud zmm22, zmm27, zmm12
+// CHECK: encoding: [0x62,0xc2,0x25,0x40,0x3f,0xf4]
+ vpmaxud zmm22, zmm27, zmm12
+
+// CHECK: vpmaxud zmm22 {k7}, zmm27, zmm12
+// CHECK: encoding: [0x62,0xc2,0x25,0x47,0x3f,0xf4]
+ vpmaxud zmm22 {k7}, zmm27, zmm12
+
+// CHECK: vpmaxud zmm22 {k7} {z}, zmm27, zmm12
+// CHECK: encoding: [0x62,0xc2,0x25,0xc7,0x3f,0xf4]
+ vpmaxud zmm22 {k7} {z}, zmm27, zmm12
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3f,0x31]
+ vpmaxud zmm22, zmm27, zmmword ptr [rcx]
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x25,0x40,0x3f,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmaxud zmm22, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmaxud zmm22, zmm27, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x25,0x50,0x3f,0x31]
+ vpmaxud zmm22, zmm27, dword ptr [rcx]{1to16}
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3f,0x72,0x7f]
+ vpmaxud zmm22, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3f,0xb2,0x00,0x20,0x00,0x00]
+ vpmaxud zmm22, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3f,0x72,0x80]
+ vpmaxud zmm22, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxud zmm22, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x25,0x40,0x3f,0xb2,0xc0,0xdf,0xff,0xff]
+ vpmaxud zmm22, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxud zmm22, zmm27, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x25,0x50,0x3f,0x72,0x7f]
+ vpmaxud zmm22, zmm27, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmaxud zmm22, zmm27, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x25,0x50,0x3f,0xb2,0x00,0x02,0x00,0x00]
+ vpmaxud zmm22, zmm27, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmaxud zmm22, zmm27, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x25,0x50,0x3f,0x72,0x80]
+ vpmaxud zmm22, zmm27, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmaxud zmm22, zmm27, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x25,0x50,0x3f,0xb2,0xfc,0xfd,0xff,0xff]
+ vpmaxud zmm22, zmm27, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmaxuq zmm1, zmm9, zmm12
+// CHECK: encoding: [0x62,0xd2,0xb5,0x48,0x3f,0xcc]
+ vpmaxuq zmm1, zmm9, zmm12
+
+// CHECK: vpmaxuq zmm1 {k2}, zmm9, zmm12
+// CHECK: encoding: [0x62,0xd2,0xb5,0x4a,0x3f,0xcc]
+ vpmaxuq zmm1 {k2}, zmm9, zmm12
+
+// CHECK: vpmaxuq zmm1 {k2} {z}, zmm9, zmm12
+// CHECK: encoding: [0x62,0xd2,0xb5,0xca,0x3f,0xcc]
+ vpmaxuq zmm1 {k2} {z}, zmm9, zmm12
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x48,0x3f,0x09]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rcx]
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xb5,0x48,0x3f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmaxuq zmm1, zmm9, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x58,0x3f,0x09]
+ vpmaxuq zmm1, zmm9, qword ptr [rcx]{1to8}
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x48,0x3f,0x4a,0x7f]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x48,0x3f,0x8a,0x00,0x20,0x00,0x00]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x48,0x3f,0x4a,0x80]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmaxuq zmm1, zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xb5,0x48,0x3f,0x8a,0xc0,0xdf,0xff,0xff]
+ vpmaxuq zmm1, zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmaxuq zmm1, zmm9, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x58,0x3f,0x4a,0x7f]
+ vpmaxuq zmm1, zmm9, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmaxuq zmm1, zmm9, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x58,0x3f,0x8a,0x00,0x04,0x00,0x00]
+ vpmaxuq zmm1, zmm9, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmaxuq zmm1, zmm9, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x58,0x3f,0x4a,0x80]
+ vpmaxuq zmm1, zmm9, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmaxuq zmm1, zmm9, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xb5,0x58,0x3f,0x8a,0xf8,0xfb,0xff,0xff]
+ vpmaxuq zmm1, zmm9, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpminsd zmm19, zmm17, zmm2
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0xda]
+ vpminsd zmm19, zmm17, zmm2
+
+// CHECK: vpminsd zmm19 {k7}, zmm17, zmm2
+// CHECK: encoding: [0x62,0xe2,0x75,0x47,0x39,0xda]
+ vpminsd zmm19 {k7}, zmm17, zmm2
+
+// CHECK: vpminsd zmm19 {k7} {z}, zmm17, zmm2
+// CHECK: encoding: [0x62,0xe2,0x75,0xc7,0x39,0xda]
+ vpminsd zmm19 {k7} {z}, zmm17, zmm2
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0x19]
+ vpminsd zmm19, zmm17, zmmword ptr [rcx]
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x75,0x40,0x39,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpminsd zmm19, zmm17, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpminsd zmm19, zmm17, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x39,0x19]
+ vpminsd zmm19, zmm17, dword ptr [rcx]{1to16}
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0x5a,0x7f]
+ vpminsd zmm19, zmm17, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0x9a,0x00,0x20,0x00,0x00]
+ vpminsd zmm19, zmm17, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0x5a,0x80]
+ vpminsd zmm19, zmm17, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminsd zmm19, zmm17, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x75,0x40,0x39,0x9a,0xc0,0xdf,0xff,0xff]
+ vpminsd zmm19, zmm17, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminsd zmm19, zmm17, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x39,0x5a,0x7f]
+ vpminsd zmm19, zmm17, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpminsd zmm19, zmm17, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x39,0x9a,0x00,0x02,0x00,0x00]
+ vpminsd zmm19, zmm17, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpminsd zmm19, zmm17, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x39,0x5a,0x80]
+ vpminsd zmm19, zmm17, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpminsd zmm19, zmm17, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x75,0x50,0x39,0x9a,0xfc,0xfd,0xff,0xff]
+ vpminsd zmm19, zmm17, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpminsq zmm21, zmm1, zmm22
+// CHECK: encoding: [0x62,0xa2,0xf5,0x48,0x39,0xee]
+ vpminsq zmm21, zmm1, zmm22
+
+// CHECK: vpminsq zmm21 {k6}, zmm1, zmm22
+// CHECK: encoding: [0x62,0xa2,0xf5,0x4e,0x39,0xee]
+ vpminsq zmm21 {k6}, zmm1, zmm22
+
+// CHECK: vpminsq zmm21 {k6} {z}, zmm1, zmm22
+// CHECK: encoding: [0x62,0xa2,0xf5,0xce,0x39,0xee]
+ vpminsq zmm21 {k6} {z}, zmm1, zmm22
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xf5,0x48,0x39,0x29]
+ vpminsq zmm21, zmm1, zmmword ptr [rcx]
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xf5,0x48,0x39,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpminsq zmm21, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpminsq zmm21, zmm1, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xf5,0x58,0x39,0x29]
+ vpminsq zmm21, zmm1, qword ptr [rcx]{1to8}
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xf5,0x48,0x39,0x6a,0x7f]
+ vpminsq zmm21, zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xf5,0x48,0x39,0xaa,0x00,0x20,0x00,0x00]
+ vpminsq zmm21, zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xf5,0x48,0x39,0x6a,0x80]
+ vpminsq zmm21, zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminsq zmm21, zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xf5,0x48,0x39,0xaa,0xc0,0xdf,0xff,0xff]
+ vpminsq zmm21, zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminsq zmm21, zmm1, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xf5,0x58,0x39,0x6a,0x7f]
+ vpminsq zmm21, zmm1, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpminsq zmm21, zmm1, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xf5,0x58,0x39,0xaa,0x00,0x04,0x00,0x00]
+ vpminsq zmm21, zmm1, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpminsq zmm21, zmm1, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xf5,0x58,0x39,0x6a,0x80]
+ vpminsq zmm21, zmm1, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpminsq zmm21, zmm1, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xf5,0x58,0x39,0xaa,0xf8,0xfb,0xff,0xff]
+ vpminsq zmm21, zmm1, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpminud zmm4, zmm22, zmm3
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0xe3]
+ vpminud zmm4, zmm22, zmm3
+
+// CHECK: vpminud zmm4 {k4}, zmm22, zmm3
+// CHECK: encoding: [0x62,0xf2,0x4d,0x44,0x3b,0xe3]
+ vpminud zmm4 {k4}, zmm22, zmm3
+
+// CHECK: vpminud zmm4 {k4} {z}, zmm22, zmm3
+// CHECK: encoding: [0x62,0xf2,0x4d,0xc4,0x3b,0xe3]
+ vpminud zmm4 {k4} {z}, zmm22, zmm3
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0x21]
+ vpminud zmm4, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x4d,0x40,0x3b,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpminud zmm4, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpminud zmm4, zmm22, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0x3b,0x21]
+ vpminud zmm4, zmm22, dword ptr [rcx]{1to16}
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0x62,0x7f]
+ vpminud zmm4, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0xa2,0x00,0x20,0x00,0x00]
+ vpminud zmm4, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0x62,0x80]
+ vpminud zmm4, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminud zmm4, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x4d,0x40,0x3b,0xa2,0xc0,0xdf,0xff,0xff]
+ vpminud zmm4, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminud zmm4, zmm22, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0x3b,0x62,0x7f]
+ vpminud zmm4, zmm22, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpminud zmm4, zmm22, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0x3b,0xa2,0x00,0x02,0x00,0x00]
+ vpminud zmm4, zmm22, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpminud zmm4, zmm22, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0x3b,0x62,0x80]
+ vpminud zmm4, zmm22, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpminud zmm4, zmm22, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x4d,0x50,0x3b,0xa2,0xfc,0xfd,0xff,0xff]
+ vpminud zmm4, zmm22, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpminuq zmm25, zmm26, zmm27
+// CHECK: encoding: [0x62,0x02,0xad,0x40,0x3b,0xcb]
+ vpminuq zmm25, zmm26, zmm27
+
+// CHECK: vpminuq zmm25 {k6}, zmm26, zmm27
+// CHECK: encoding: [0x62,0x02,0xad,0x46,0x3b,0xcb]
+ vpminuq zmm25 {k6}, zmm26, zmm27
+
+// CHECK: vpminuq zmm25 {k6} {z}, zmm26, zmm27
+// CHECK: encoding: [0x62,0x02,0xad,0xc6,0x3b,0xcb]
+ vpminuq zmm25 {k6} {z}, zmm26, zmm27
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x3b,0x09]
+ vpminuq zmm25, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xad,0x40,0x3b,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpminuq zmm25, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpminuq zmm25, zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x3b,0x09]
+ vpminuq zmm25, zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x3b,0x4a,0x7f]
+ vpminuq zmm25, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x3b,0x8a,0x00,0x20,0x00,0x00]
+ vpminuq zmm25, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x3b,0x4a,0x80]
+ vpminuq zmm25, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpminuq zmm25, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xad,0x40,0x3b,0x8a,0xc0,0xdf,0xff,0xff]
+ vpminuq zmm25, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpminuq zmm25, zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x3b,0x4a,0x7f]
+ vpminuq zmm25, zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpminuq zmm25, zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x3b,0x8a,0x00,0x04,0x00,0x00]
+ vpminuq zmm25, zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpminuq zmm25, zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x3b,0x4a,0x80]
+ vpminuq zmm25, zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpminuq zmm25, zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xad,0x50,0x3b,0x8a,0xf8,0xfb,0xff,0xff]
+ vpminuq zmm25, zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmovsxbd zmm25, xmm10
+// CHECK: encoding: [0x62,0x42,0x7d,0x48,0x21,0xca]
+ vpmovsxbd zmm25, xmm10
+
+// CHECK: vpmovsxbd zmm25 {k1}, xmm10
+// CHECK: encoding: [0x62,0x42,0x7d,0x49,0x21,0xca]
+ vpmovsxbd zmm25 {k1}, xmm10
+
+// CHECK: vpmovsxbd zmm25 {k1} {z}, xmm10
+// CHECK: encoding: [0x62,0x42,0x7d,0xc9,0x21,0xca]
+ vpmovsxbd zmm25 {k1} {z}, xmm10
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x09]
+ vpmovsxbd zmm25, xmmword ptr [rcx]
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x21,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsxbd zmm25, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x4a,0x7f]
+ vpmovsxbd zmm25, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x8a,0x00,0x08,0x00,0x00]
+ vpmovsxbd zmm25, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x4a,0x80]
+ vpmovsxbd zmm25, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovsxbd zmm25, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x21,0x8a,0xf0,0xf7,0xff,0xff]
+ vpmovsxbd zmm25, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovsxbq zmm14, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x22,0xf6]
+ vpmovsxbq zmm14, xmm14
+
+// CHECK: vpmovsxbq zmm14 {k5}, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x4d,0x22,0xf6]
+ vpmovsxbq zmm14 {k5}, xmm14
+
+// CHECK: vpmovsxbq zmm14 {k5} {z}, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0xcd,0x22,0xf6]
+ vpmovsxbq zmm14 {k5} {z}, xmm14
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x31]
+ vpmovsxbq zmm14, qword ptr [rcx]
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x22,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsxbq zmm14, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x72,0x7f]
+ vpmovsxbq zmm14, qword ptr [rdx + 1016]
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0xb2,0x00,0x04,0x00,0x00]
+ vpmovsxbq zmm14, qword ptr [rdx + 1024]
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0x72,0x80]
+ vpmovsxbq zmm14, qword ptr [rdx - 1024]
+
+// CHECK: vpmovsxbq zmm14, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x22,0xb2,0xf8,0xfb,0xff,0xff]
+ vpmovsxbq zmm14, qword ptr [rdx - 1032]
+
+// CHECK: vpmovsxdq zmm11, ymm9
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x25,0xd9]
+ vpmovsxdq zmm11, ymm9
+
+// CHECK: vpmovsxdq zmm11 {k6}, ymm9
+// CHECK: encoding: [0x62,0x52,0x7d,0x4e,0x25,0xd9]
+ vpmovsxdq zmm11 {k6}, ymm9
+
+// CHECK: vpmovsxdq zmm11 {k6} {z}, ymm9
+// CHECK: encoding: [0x62,0x52,0x7d,0xce,0x25,0xd9]
+ vpmovsxdq zmm11 {k6} {z}, ymm9
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x25,0x19]
+ vpmovsxdq zmm11, ymmword ptr [rcx]
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x25,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsxdq zmm11, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x25,0x5a,0x7f]
+ vpmovsxdq zmm11, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x25,0x9a,0x00,0x10,0x00,0x00]
+ vpmovsxdq zmm11, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x25,0x5a,0x80]
+ vpmovsxdq zmm11, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovsxdq zmm11, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x25,0x9a,0xe0,0xef,0xff,0xff]
+ vpmovsxdq zmm11, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovsxwd zmm12, ymm11
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x23,0xe3]
+ vpmovsxwd zmm12, ymm11
+
+// CHECK: vpmovsxwd zmm12 {k2}, ymm11
+// CHECK: encoding: [0x62,0x52,0x7d,0x4a,0x23,0xe3]
+ vpmovsxwd zmm12 {k2}, ymm11
+
+// CHECK: vpmovsxwd zmm12 {k2} {z}, ymm11
+// CHECK: encoding: [0x62,0x52,0x7d,0xca,0x23,0xe3]
+ vpmovsxwd zmm12 {k2} {z}, ymm11
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x23,0x21]
+ vpmovsxwd zmm12, ymmword ptr [rcx]
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x23,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsxwd zmm12, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x23,0x62,0x7f]
+ vpmovsxwd zmm12, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x23,0xa2,0x00,0x10,0x00,0x00]
+ vpmovsxwd zmm12, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x23,0x62,0x80]
+ vpmovsxwd zmm12, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovsxwd zmm12, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x23,0xa2,0xe0,0xef,0xff,0xff]
+ vpmovsxwd zmm12, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovsxwq zmm11, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x48,0x24,0xde]
+ vpmovsxwq zmm11, xmm14
+
+// CHECK: vpmovsxwq zmm11 {k5}, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0x4d,0x24,0xde]
+ vpmovsxwq zmm11 {k5}, xmm14
+
+// CHECK: vpmovsxwq zmm11 {k5} {z}, xmm14
+// CHECK: encoding: [0x62,0x52,0x7d,0xcd,0x24,0xde]
+ vpmovsxwq zmm11 {k5} {z}, xmm14
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x24,0x19]
+ vpmovsxwq zmm11, xmmword ptr [rcx]
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x24,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsxwq zmm11, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x24,0x5a,0x7f]
+ vpmovsxwq zmm11, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x24,0x9a,0x00,0x08,0x00,0x00]
+ vpmovsxwq zmm11, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x24,0x5a,0x80]
+ vpmovsxwq zmm11, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovsxwq zmm11, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x24,0x9a,0xf0,0xf7,0xff,0xff]
+ vpmovsxwq zmm11, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovzxbd zmm25, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x48,0x31,0xc9]
+ vpmovzxbd zmm25, xmm25
+
+// CHECK: vpmovzxbd zmm25 {k4}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x4c,0x31,0xc9]
+ vpmovzxbd zmm25 {k4}, xmm25
+
+// CHECK: vpmovzxbd zmm25 {k4} {z}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0xcc,0x31,0xc9]
+ vpmovzxbd zmm25 {k4} {z}, xmm25
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x31,0x09]
+ vpmovzxbd zmm25, xmmword ptr [rcx]
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x7d,0x48,0x31,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovzxbd zmm25, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x31,0x4a,0x7f]
+ vpmovzxbd zmm25, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x31,0x8a,0x00,0x08,0x00,0x00]
+ vpmovzxbd zmm25, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x31,0x4a,0x80]
+ vpmovzxbd zmm25, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovzxbd zmm25, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x62,0x7d,0x48,0x31,0x8a,0xf0,0xf7,0xff,0xff]
+ vpmovzxbd zmm25, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmovzxbq zmm23, xmm20
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x32,0xfc]
+ vpmovzxbq zmm23, xmm20
+
+// CHECK: vpmovzxbq zmm23 {k3}, xmm20
+// CHECK: encoding: [0x62,0xa2,0x7d,0x4b,0x32,0xfc]
+ vpmovzxbq zmm23 {k3}, xmm20
+
+// CHECK: vpmovzxbq zmm23 {k3} {z}, xmm20
+// CHECK: encoding: [0x62,0xa2,0x7d,0xcb,0x32,0xfc]
+ vpmovzxbq zmm23 {k3} {z}, xmm20
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x32,0x39]
+ vpmovzxbq zmm23, qword ptr [rcx]
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x48,0x32,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpmovzxbq zmm23, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x32,0x7a,0x7f]
+ vpmovzxbq zmm23, qword ptr [rdx + 1016]
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x32,0xba,0x00,0x04,0x00,0x00]
+ vpmovzxbq zmm23, qword ptr [rdx + 1024]
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x32,0x7a,0x80]
+ vpmovzxbq zmm23, qword ptr [rdx - 1024]
+
+// CHECK: vpmovzxbq zmm23, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x48,0x32,0xba,0xf8,0xfb,0xff,0xff]
+ vpmovzxbq zmm23, qword ptr [rdx - 1032]
+
+// CHECK: vpmovzxdq zmm9, ymm22
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x35,0xce]
+ vpmovzxdq zmm9, ymm22
+
+// CHECK: vpmovzxdq zmm9 {k3}, ymm22
+// CHECK: encoding: [0x62,0x32,0x7d,0x4b,0x35,0xce]
+ vpmovzxdq zmm9 {k3}, ymm22
+
+// CHECK: vpmovzxdq zmm9 {k3} {z}, ymm22
+// CHECK: encoding: [0x62,0x32,0x7d,0xcb,0x35,0xce]
+ vpmovzxdq zmm9 {k3} {z}, ymm22
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x35,0x09]
+ vpmovzxdq zmm9, ymmword ptr [rcx]
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x35,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovzxdq zmm9, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x35,0x4a,0x7f]
+ vpmovzxdq zmm9, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x35,0x8a,0x00,0x10,0x00,0x00]
+ vpmovzxdq zmm9, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x35,0x4a,0x80]
+ vpmovzxdq zmm9, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovzxdq zmm9, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x35,0x8a,0xe0,0xef,0xff,0xff]
+ vpmovzxdq zmm9, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovzxwd zmm6, ymm29
+// CHECK: encoding: [0x62,0x92,0x7d,0x48,0x33,0xf5]
+ vpmovzxwd zmm6, ymm29
+
+// CHECK: vpmovzxwd zmm6 {k4}, ymm29
+// CHECK: encoding: [0x62,0x92,0x7d,0x4c,0x33,0xf5]
+ vpmovzxwd zmm6 {k4}, ymm29
+
+// CHECK: vpmovzxwd zmm6 {k4} {z}, ymm29
+// CHECK: encoding: [0x62,0x92,0x7d,0xcc,0x33,0xf5]
+ vpmovzxwd zmm6 {k4} {z}, ymm29
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x33,0x31]
+ vpmovzxwd zmm6, ymmword ptr [rcx]
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x33,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovzxwd zmm6, ymmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rdx + 4064]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x33,0x72,0x7f]
+ vpmovzxwd zmm6, ymmword ptr [rdx + 4064]
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rdx + 4096]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x33,0xb2,0x00,0x10,0x00,0x00]
+ vpmovzxwd zmm6, ymmword ptr [rdx + 4096]
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rdx - 4096]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x33,0x72,0x80]
+ vpmovzxwd zmm6, ymmword ptr [rdx - 4096]
+
+// CHECK: vpmovzxwd zmm6, ymmword ptr [rdx - 4128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x33,0xb2,0xe0,0xef,0xff,0xff]
+ vpmovzxwd zmm6, ymmword ptr [rdx - 4128]
+
+// CHECK: vpmovzxwq zmm12, xmm18
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x34,0xe2]
+ vpmovzxwq zmm12, xmm18
+
+// CHECK: vpmovzxwq zmm12 {k6}, xmm18
+// CHECK: encoding: [0x62,0x32,0x7d,0x4e,0x34,0xe2]
+ vpmovzxwq zmm12 {k6}, xmm18
+
+// CHECK: vpmovzxwq zmm12 {k6} {z}, xmm18
+// CHECK: encoding: [0x62,0x32,0x7d,0xce,0x34,0xe2]
+ vpmovzxwq zmm12 {k6} {z}, xmm18
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x34,0x21]
+ vpmovzxwq zmm12, xmmword ptr [rcx]
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x7d,0x48,0x34,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovzxwq zmm12, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x34,0x62,0x7f]
+ vpmovzxwq zmm12, xmmword ptr [rdx + 2032]
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x34,0xa2,0x00,0x08,0x00,0x00]
+ vpmovzxwq zmm12, xmmword ptr [rdx + 2048]
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x34,0x62,0x80]
+ vpmovzxwq zmm12, xmmword ptr [rdx - 2048]
+
+// CHECK: vpmovzxwq zmm12, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x72,0x7d,0x48,0x34,0xa2,0xf0,0xf7,0xff,0xff]
+ vpmovzxwq zmm12, xmmword ptr [rdx - 2064]
+
+// CHECK: vpmuldq zmm5, zmm22, zmm12
+// CHECK: encoding: [0x62,0xd2,0xcd,0x40,0x28,0xec]
+ vpmuldq zmm5, zmm22, zmm12
+
+// CHECK: vpmuldq zmm5 {k4}, zmm22, zmm12
+// CHECK: encoding: [0x62,0xd2,0xcd,0x44,0x28,0xec]
+ vpmuldq zmm5 {k4}, zmm22, zmm12
+
+// CHECK: vpmuldq zmm5 {k4} {z}, zmm22, zmm12
+// CHECK: encoding: [0x62,0xd2,0xcd,0xc4,0x28,0xec]
+ vpmuldq zmm5 {k4} {z}, zmm22, zmm12
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x28,0x29]
+ vpmuldq zmm5, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xcd,0x40,0x28,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpmuldq zmm5, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmuldq zmm5, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x28,0x29]
+ vpmuldq zmm5, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x28,0x6a,0x7f]
+ vpmuldq zmm5, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x28,0xaa,0x00,0x20,0x00,0x00]
+ vpmuldq zmm5, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x28,0x6a,0x80]
+ vpmuldq zmm5, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmuldq zmm5, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xcd,0x40,0x28,0xaa,0xc0,0xdf,0xff,0xff]
+ vpmuldq zmm5, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmuldq zmm5, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x28,0x6a,0x7f]
+ vpmuldq zmm5, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmuldq zmm5, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x28,0xaa,0x00,0x04,0x00,0x00]
+ vpmuldq zmm5, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmuldq zmm5, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x28,0x6a,0x80]
+ vpmuldq zmm5, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmuldq zmm5, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xcd,0x50,0x28,0xaa,0xf8,0xfb,0xff,0xff]
+ vpmuldq zmm5, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpmulld zmm12, zmm24, zmm2
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0xe2]
+ vpmulld zmm12, zmm24, zmm2
+
+// CHECK: vpmulld zmm12 {k6}, zmm24, zmm2
+// CHECK: encoding: [0x62,0x72,0x3d,0x46,0x40,0xe2]
+ vpmulld zmm12 {k6}, zmm24, zmm2
+
+// CHECK: vpmulld zmm12 {k6} {z}, zmm24, zmm2
+// CHECK: encoding: [0x62,0x72,0x3d,0xc6,0x40,0xe2]
+ vpmulld zmm12 {k6} {z}, zmm24, zmm2
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0x21]
+ vpmulld zmm12, zmm24, zmmword ptr [rcx]
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x3d,0x40,0x40,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpmulld zmm12, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmulld zmm12, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x3d,0x50,0x40,0x21]
+ vpmulld zmm12, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0x62,0x7f]
+ vpmulld zmm12, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0xa2,0x00,0x20,0x00,0x00]
+ vpmulld zmm12, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0x62,0x80]
+ vpmulld zmm12, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmulld zmm12, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x3d,0x40,0x40,0xa2,0xc0,0xdf,0xff,0xff]
+ vpmulld zmm12, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmulld zmm12, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x3d,0x50,0x40,0x62,0x7f]
+ vpmulld zmm12, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpmulld zmm12, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x3d,0x50,0x40,0xa2,0x00,0x02,0x00,0x00]
+ vpmulld zmm12, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpmulld zmm12, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x3d,0x50,0x40,0x62,0x80]
+ vpmulld zmm12, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpmulld zmm12, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x3d,0x50,0x40,0xa2,0xfc,0xfd,0xff,0xff]
+ vpmulld zmm12, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpmuludq zmm8, zmm2, zmm10
+// CHECK: encoding: [0x62,0x51,0xed,0x48,0xf4,0xc2]
+ vpmuludq zmm8, zmm2, zmm10
+
+// CHECK: vpmuludq zmm8 {k7}, zmm2, zmm10
+// CHECK: encoding: [0x62,0x51,0xed,0x4f,0xf4,0xc2]
+ vpmuludq zmm8 {k7}, zmm2, zmm10
+
+// CHECK: vpmuludq zmm8 {k7} {z}, zmm2, zmm10
+// CHECK: encoding: [0x62,0x51,0xed,0xcf,0xf4,0xc2]
+ vpmuludq zmm8 {k7} {z}, zmm2, zmm10
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xed,0x48,0xf4,0x01]
+ vpmuludq zmm8, zmm2, zmmword ptr [rcx]
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xed,0x48,0xf4,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpmuludq zmm8, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpmuludq zmm8, zmm2, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xed,0x58,0xf4,0x01]
+ vpmuludq zmm8, zmm2, qword ptr [rcx]{1to8}
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xed,0x48,0xf4,0x42,0x7f]
+ vpmuludq zmm8, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xed,0x48,0xf4,0x82,0x00,0x20,0x00,0x00]
+ vpmuludq zmm8, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xed,0x48,0xf4,0x42,0x80]
+ vpmuludq zmm8, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vpmuludq zmm8, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xed,0x48,0xf4,0x82,0xc0,0xdf,0xff,0xff]
+ vpmuludq zmm8, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vpmuludq zmm8, zmm2, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xed,0x58,0xf4,0x42,0x7f]
+ vpmuludq zmm8, zmm2, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpmuludq zmm8, zmm2, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xed,0x58,0xf4,0x82,0x00,0x04,0x00,0x00]
+ vpmuludq zmm8, zmm2, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpmuludq zmm8, zmm2, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xed,0x58,0xf4,0x42,0x80]
+ vpmuludq zmm8, zmm2, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpmuludq zmm8, zmm2, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xed,0x58,0xf4,0x82,0xf8,0xfb,0xff,0xff]
+ vpmuludq zmm8, zmm2, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpord zmm29, zmm10, zmm15
+// CHECK: encoding: [0x62,0x41,0x2d,0x48,0xeb,0xef]
+ vpord zmm29, zmm10, zmm15
+
+// CHECK: vpord zmm29 {k4}, zmm10, zmm15
+// CHECK: encoding: [0x62,0x41,0x2d,0x4c,0xeb,0xef]
+ vpord zmm29 {k4}, zmm10, zmm15
+
+// CHECK: vpord zmm29 {k4} {z}, zmm10, zmm15
+// CHECK: encoding: [0x62,0x41,0x2d,0xcc,0xeb,0xef]
+ vpord zmm29 {k4} {z}, zmm10, zmm15
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x2d,0x48,0xeb,0x29]
+ vpord zmm29, zmm10, zmmword ptr [rcx]
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x2d,0x48,0xeb,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpord zmm29, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpord zmm29, zmm10, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x2d,0x58,0xeb,0x29]
+ vpord zmm29, zmm10, dword ptr [rcx]{1to16}
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x2d,0x48,0xeb,0x6a,0x7f]
+ vpord zmm29, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x2d,0x48,0xeb,0xaa,0x00,0x20,0x00,0x00]
+ vpord zmm29, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x2d,0x48,0xeb,0x6a,0x80]
+ vpord zmm29, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vpord zmm29, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x2d,0x48,0xeb,0xaa,0xc0,0xdf,0xff,0xff]
+ vpord zmm29, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vpord zmm29, zmm10, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x2d,0x58,0xeb,0x6a,0x7f]
+ vpord zmm29, zmm10, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpord zmm29, zmm10, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x2d,0x58,0xeb,0xaa,0x00,0x02,0x00,0x00]
+ vpord zmm29, zmm10, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpord zmm29, zmm10, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x2d,0x58,0xeb,0x6a,0x80]
+ vpord zmm29, zmm10, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpord zmm29, zmm10, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x2d,0x58,0xeb,0xaa,0xfc,0xfd,0xff,0xff]
+ vpord zmm29, zmm10, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vporq zmm3, zmm23, zmm26
+// CHECK: encoding: [0x62,0x91,0xc5,0x40,0xeb,0xda]
+ vporq zmm3, zmm23, zmm26
+
+// CHECK: vporq zmm3 {k4}, zmm23, zmm26
+// CHECK: encoding: [0x62,0x91,0xc5,0x44,0xeb,0xda]
+ vporq zmm3 {k4}, zmm23, zmm26
+
+// CHECK: vporq zmm3 {k4} {z}, zmm23, zmm26
+// CHECK: encoding: [0x62,0x91,0xc5,0xc4,0xeb,0xda]
+ vporq zmm3 {k4} {z}, zmm23, zmm26
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0xeb,0x19]
+ vporq zmm3, zmm23, zmmword ptr [rcx]
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xc5,0x40,0xeb,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vporq zmm3, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vporq zmm3, zmm23, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0xeb,0x19]
+ vporq zmm3, zmm23, qword ptr [rcx]{1to8}
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0xeb,0x5a,0x7f]
+ vporq zmm3, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0xeb,0x9a,0x00,0x20,0x00,0x00]
+ vporq zmm3, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0xeb,0x5a,0x80]
+ vporq zmm3, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vporq zmm3, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0xeb,0x9a,0xc0,0xdf,0xff,0xff]
+ vporq zmm3, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vporq zmm3, zmm23, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0xeb,0x5a,0x7f]
+ vporq zmm3, zmm23, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vporq zmm3, zmm23, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0xeb,0x9a,0x00,0x04,0x00,0x00]
+ vporq zmm3, zmm23, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vporq zmm3, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0xeb,0x5a,0x80]
+ vporq zmm3, zmm23, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vporq zmm3, zmm23, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0xeb,0x9a,0xf8,0xfb,0xff,0xff]
+ vporq zmm3, zmm23, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpshufd zmm7, zmm12, 171
+// CHECK: encoding: [0x62,0xd1,0x7d,0x48,0x70,0xfc,0xab]
+ vpshufd zmm7, zmm12, 171
+
+// CHECK: vpshufd zmm7 {k1}, zmm12, 171
+// CHECK: encoding: [0x62,0xd1,0x7d,0x49,0x70,0xfc,0xab]
+ vpshufd zmm7 {k1}, zmm12, 171
+
+// CHECK: vpshufd zmm7 {k1} {z}, zmm12, 171
+// CHECK: encoding: [0x62,0xd1,0x7d,0xc9,0x70,0xfc,0xab]
+ vpshufd zmm7 {k1} {z}, zmm12, 171
+
+// CHECK: vpshufd zmm7, zmm12, 123
+// CHECK: encoding: [0x62,0xd1,0x7d,0x48,0x70,0xfc,0x7b]
+ vpshufd zmm7, zmm12, 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x70,0x39,0x7b]
+ vpshufd zmm7, zmmword ptr [rcx], 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x7d,0x48,0x70,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpshufd zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpshufd zmm7, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x58,0x70,0x39,0x7b]
+ vpshufd zmm7, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x70,0x7a,0x7f,0x7b]
+ vpshufd zmm7, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x70,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vpshufd zmm7, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x70,0x7a,0x80,0x7b]
+ vpshufd zmm7, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpshufd zmm7, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x70,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vpshufd zmm7, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpshufd zmm7, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x58,0x70,0x7a,0x7f,0x7b]
+ vpshufd zmm7, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpshufd zmm7, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x58,0x70,0xba,0x00,0x02,0x00,0x00,0x7b]
+ vpshufd zmm7, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpshufd zmm7, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x58,0x70,0x7a,0x80,0x7b]
+ vpshufd zmm7, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpshufd zmm7, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x7d,0x58,0x70,0xba,0xfc,0xfd,0xff,0xff,0x7b]
+ vpshufd zmm7, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpslld zmm7, zmm22, xmm14
+// CHECK: encoding: [0x62,0xd1,0x4d,0x40,0xf2,0xfe]
+ vpslld zmm7, zmm22, xmm14
+
+// CHECK: vpslld zmm7 {k4}, zmm22, xmm14
+// CHECK: encoding: [0x62,0xd1,0x4d,0x44,0xf2,0xfe]
+ vpslld zmm7 {k4}, zmm22, xmm14
+
+// CHECK: vpslld zmm7 {k4} {z}, zmm22, xmm14
+// CHECK: encoding: [0x62,0xd1,0x4d,0xc4,0xf2,0xfe]
+ vpslld zmm7 {k4} {z}, zmm22, xmm14
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x4d,0x40,0xf2,0x39]
+ vpslld zmm7, zmm22, xmmword ptr [rcx]
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x4d,0x40,0xf2,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpslld zmm7, zmm22, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xf1,0x4d,0x40,0xf2,0x7a,0x7f]
+ vpslld zmm7, zmm22, xmmword ptr [rdx + 2032]
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xf1,0x4d,0x40,0xf2,0xba,0x00,0x08,0x00,0x00]
+ vpslld zmm7, zmm22, xmmword ptr [rdx + 2048]
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xf1,0x4d,0x40,0xf2,0x7a,0x80]
+ vpslld zmm7, zmm22, xmmword ptr [rdx - 2048]
+
+// CHECK: vpslld zmm7, zmm22, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xf1,0x4d,0x40,0xf2,0xba,0xf0,0xf7,0xff,0xff]
+ vpslld zmm7, zmm22, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsllq zmm29, zmm2, xmm27
+// CHECK: encoding: [0x62,0x01,0xed,0x48,0xf3,0xeb]
+ vpsllq zmm29, zmm2, xmm27
+
+// CHECK: vpsllq zmm29 {k5}, zmm2, xmm27
+// CHECK: encoding: [0x62,0x01,0xed,0x4d,0xf3,0xeb]
+ vpsllq zmm29 {k5}, zmm2, xmm27
+
+// CHECK: vpsllq zmm29 {k5} {z}, zmm2, xmm27
+// CHECK: encoding: [0x62,0x01,0xed,0xcd,0xf3,0xeb]
+ vpsllq zmm29 {k5} {z}, zmm2, xmm27
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xed,0x48,0xf3,0x29]
+ vpsllq zmm29, zmm2, xmmword ptr [rcx]
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xed,0x48,0xf3,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpsllq zmm29, zmm2, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x61,0xed,0x48,0xf3,0x6a,0x7f]
+ vpsllq zmm29, zmm2, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x61,0xed,0x48,0xf3,0xaa,0x00,0x08,0x00,0x00]
+ vpsllq zmm29, zmm2, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x61,0xed,0x48,0xf3,0x6a,0x80]
+ vpsllq zmm29, zmm2, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsllq zmm29, zmm2, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x61,0xed,0x48,0xf3,0xaa,0xf0,0xf7,0xff,0xff]
+ vpsllq zmm29, zmm2, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsllvd zmm29, zmm3, zmm15
+// CHECK: encoding: [0x62,0x42,0x65,0x48,0x47,0xef]
+ vpsllvd zmm29, zmm3, zmm15
+
+// CHECK: vpsllvd zmm29 {k7}, zmm3, zmm15
+// CHECK: encoding: [0x62,0x42,0x65,0x4f,0x47,0xef]
+ vpsllvd zmm29 {k7}, zmm3, zmm15
+
+// CHECK: vpsllvd zmm29 {k7} {z}, zmm3, zmm15
+// CHECK: encoding: [0x62,0x42,0x65,0xcf,0x47,0xef]
+ vpsllvd zmm29 {k7} {z}, zmm3, zmm15
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x65,0x48,0x47,0x29]
+ vpsllvd zmm29, zmm3, zmmword ptr [rcx]
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x65,0x48,0x47,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpsllvd zmm29, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsllvd zmm29, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0x47,0x29]
+ vpsllvd zmm29, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x65,0x48,0x47,0x6a,0x7f]
+ vpsllvd zmm29, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x65,0x48,0x47,0xaa,0x00,0x20,0x00,0x00]
+ vpsllvd zmm29, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x65,0x48,0x47,0x6a,0x80]
+ vpsllvd zmm29, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsllvd zmm29, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x65,0x48,0x47,0xaa,0xc0,0xdf,0xff,0xff]
+ vpsllvd zmm29, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsllvd zmm29, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0x47,0x6a,0x7f]
+ vpsllvd zmm29, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsllvd zmm29, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0x47,0xaa,0x00,0x02,0x00,0x00]
+ vpsllvd zmm29, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsllvd zmm29, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0x47,0x6a,0x80]
+ vpsllvd zmm29, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsllvd zmm29, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x65,0x58,0x47,0xaa,0xfc,0xfd,0xff,0xff]
+ vpsllvd zmm29, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsllvq zmm4, zmm29, zmm13
+// CHECK: encoding: [0x62,0xd2,0x95,0x40,0x47,0xe5]
+ vpsllvq zmm4, zmm29, zmm13
+
+// CHECK: vpsllvq zmm4 {k5}, zmm29, zmm13
+// CHECK: encoding: [0x62,0xd2,0x95,0x45,0x47,0xe5]
+ vpsllvq zmm4 {k5}, zmm29, zmm13
+
+// CHECK: vpsllvq zmm4 {k5} {z}, zmm29, zmm13
+// CHECK: encoding: [0x62,0xd2,0x95,0xc5,0x47,0xe5]
+ vpsllvq zmm4 {k5} {z}, zmm29, zmm13
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x47,0x21]
+ vpsllvq zmm4, zmm29, zmmword ptr [rcx]
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x95,0x40,0x47,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpsllvq zmm4, zmm29, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsllvq zmm4, zmm29, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x50,0x47,0x21]
+ vpsllvq zmm4, zmm29, qword ptr [rcx]{1to8}
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x47,0x62,0x7f]
+ vpsllvq zmm4, zmm29, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x47,0xa2,0x00,0x20,0x00,0x00]
+ vpsllvq zmm4, zmm29, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x47,0x62,0x80]
+ vpsllvq zmm4, zmm29, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsllvq zmm4, zmm29, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x95,0x40,0x47,0xa2,0xc0,0xdf,0xff,0xff]
+ vpsllvq zmm4, zmm29, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsllvq zmm4, zmm29, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x50,0x47,0x62,0x7f]
+ vpsllvq zmm4, zmm29, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsllvq zmm4, zmm29, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x50,0x47,0xa2,0x00,0x04,0x00,0x00]
+ vpsllvq zmm4, zmm29, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsllvq zmm4, zmm29, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x50,0x47,0x62,0x80]
+ vpsllvq zmm4, zmm29, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsllvq zmm4, zmm29, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x95,0x50,0x47,0xa2,0xf8,0xfb,0xff,0xff]
+ vpsllvq zmm4, zmm29, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrad zmm19, zmm10, xmm25
+// CHECK: encoding: [0x62,0x81,0x2d,0x48,0xe2,0xd9]
+ vpsrad zmm19, zmm10, xmm25
+
+// CHECK: vpsrad zmm19 {k2}, zmm10, xmm25
+// CHECK: encoding: [0x62,0x81,0x2d,0x4a,0xe2,0xd9]
+ vpsrad zmm19 {k2}, zmm10, xmm25
+
+// CHECK: vpsrad zmm19 {k2} {z}, zmm10, xmm25
+// CHECK: encoding: [0x62,0x81,0x2d,0xca,0xe2,0xd9]
+ vpsrad zmm19 {k2} {z}, zmm10, xmm25
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x48,0xe2,0x19]
+ vpsrad zmm19, zmm10, xmmword ptr [rcx]
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x2d,0x48,0xe2,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpsrad zmm19, zmm10, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x48,0xe2,0x5a,0x7f]
+ vpsrad zmm19, zmm10, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x48,0xe2,0x9a,0x00,0x08,0x00,0x00]
+ vpsrad zmm19, zmm10, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x48,0xe2,0x5a,0x80]
+ vpsrad zmm19, zmm10, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrad zmm19, zmm10, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x48,0xe2,0x9a,0xf0,0xf7,0xff,0xff]
+ vpsrad zmm19, zmm10, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsraq zmm23, zmm23, xmm18
+// CHECK: encoding: [0x62,0xa1,0xc5,0x40,0xe2,0xfa]
+ vpsraq zmm23, zmm23, xmm18
+
+// CHECK: vpsraq zmm23 {k4}, zmm23, xmm18
+// CHECK: encoding: [0x62,0xa1,0xc5,0x44,0xe2,0xfa]
+ vpsraq zmm23 {k4}, zmm23, xmm18
+
+// CHECK: vpsraq zmm23 {k4} {z}, zmm23, xmm18
+// CHECK: encoding: [0x62,0xa1,0xc5,0xc4,0xe2,0xfa]
+ vpsraq zmm23 {k4} {z}, zmm23, xmm18
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x40,0xe2,0x39]
+ vpsraq zmm23, zmm23, xmmword ptr [rcx]
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xc5,0x40,0xe2,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpsraq zmm23, zmm23, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x40,0xe2,0x7a,0x7f]
+ vpsraq zmm23, zmm23, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x40,0xe2,0xba,0x00,0x08,0x00,0x00]
+ vpsraq zmm23, zmm23, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x40,0xe2,0x7a,0x80]
+ vpsraq zmm23, zmm23, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsraq zmm23, zmm23, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0xc5,0x40,0xe2,0xba,0xf0,0xf7,0xff,0xff]
+ vpsraq zmm23, zmm23, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsravd zmm17, zmm5, zmm6
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0xce]
+ vpsravd zmm17, zmm5, zmm6
+
+// CHECK: vpsravd zmm17 {k6}, zmm5, zmm6
+// CHECK: encoding: [0x62,0xe2,0x55,0x4e,0x46,0xce]
+ vpsravd zmm17 {k6}, zmm5, zmm6
+
+// CHECK: vpsravd zmm17 {k6} {z}, zmm5, zmm6
+// CHECK: encoding: [0x62,0xe2,0x55,0xce,0x46,0xce]
+ vpsravd zmm17 {k6} {z}, zmm5, zmm6
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0x09]
+ vpsravd zmm17, zmm5, zmmword ptr [rcx]
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x55,0x48,0x46,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpsravd zmm17, zmm5, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsravd zmm17, zmm5, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x55,0x58,0x46,0x09]
+ vpsravd zmm17, zmm5, dword ptr [rcx]{1to16}
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0x4a,0x7f]
+ vpsravd zmm17, zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0x8a,0x00,0x20,0x00,0x00]
+ vpsravd zmm17, zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0x4a,0x80]
+ vpsravd zmm17, zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsravd zmm17, zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x55,0x48,0x46,0x8a,0xc0,0xdf,0xff,0xff]
+ vpsravd zmm17, zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsravd zmm17, zmm5, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x55,0x58,0x46,0x4a,0x7f]
+ vpsravd zmm17, zmm5, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsravd zmm17, zmm5, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x55,0x58,0x46,0x8a,0x00,0x02,0x00,0x00]
+ vpsravd zmm17, zmm5, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsravd zmm17, zmm5, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x55,0x58,0x46,0x4a,0x80]
+ vpsravd zmm17, zmm5, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsravd zmm17, zmm5, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x55,0x58,0x46,0x8a,0xfc,0xfd,0xff,0xff]
+ vpsravd zmm17, zmm5, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsravq zmm3, zmm8, zmm26
+// CHECK: encoding: [0x62,0x92,0xbd,0x48,0x46,0xda]
+ vpsravq zmm3, zmm8, zmm26
+
+// CHECK: vpsravq zmm3 {k1}, zmm8, zmm26
+// CHECK: encoding: [0x62,0x92,0xbd,0x49,0x46,0xda]
+ vpsravq zmm3 {k1}, zmm8, zmm26
+
+// CHECK: vpsravq zmm3 {k1} {z}, zmm8, zmm26
+// CHECK: encoding: [0x62,0x92,0xbd,0xc9,0x46,0xda]
+ vpsravq zmm3 {k1} {z}, zmm8, zmm26
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0x46,0x19]
+ vpsravq zmm3, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xbd,0x48,0x46,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpsravq zmm3, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsravq zmm3, zmm8, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0x46,0x19]
+ vpsravq zmm3, zmm8, qword ptr [rcx]{1to8}
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0x46,0x5a,0x7f]
+ vpsravq zmm3, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0x46,0x9a,0x00,0x20,0x00,0x00]
+ vpsravq zmm3, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0x46,0x5a,0x80]
+ vpsravq zmm3, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsravq zmm3, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xbd,0x48,0x46,0x9a,0xc0,0xdf,0xff,0xff]
+ vpsravq zmm3, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsravq zmm3, zmm8, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0x46,0x5a,0x7f]
+ vpsravq zmm3, zmm8, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsravq zmm3, zmm8, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0x46,0x9a,0x00,0x04,0x00,0x00]
+ vpsravq zmm3, zmm8, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsravq zmm3, zmm8, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0x46,0x5a,0x80]
+ vpsravq zmm3, zmm8, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsravq zmm3, zmm8, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xbd,0x58,0x46,0x9a,0xf8,0xfb,0xff,0xff]
+ vpsravq zmm3, zmm8, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrld zmm25, zmm19, xmm23
+// CHECK: encoding: [0x62,0x21,0x65,0x40,0xd2,0xcf]
+ vpsrld zmm25, zmm19, xmm23
+
+// CHECK: vpsrld zmm25 {k6}, zmm19, xmm23
+// CHECK: encoding: [0x62,0x21,0x65,0x46,0xd2,0xcf]
+ vpsrld zmm25 {k6}, zmm19, xmm23
+
+// CHECK: vpsrld zmm25 {k6} {z}, zmm19, xmm23
+// CHECK: encoding: [0x62,0x21,0x65,0xc6,0xd2,0xcf]
+ vpsrld zmm25 {k6} {z}, zmm19, xmm23
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x65,0x40,0xd2,0x09]
+ vpsrld zmm25, zmm19, xmmword ptr [rcx]
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x65,0x40,0xd2,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpsrld zmm25, zmm19, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0x61,0x65,0x40,0xd2,0x4a,0x7f]
+ vpsrld zmm25, zmm19, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0x61,0x65,0x40,0xd2,0x8a,0x00,0x08,0x00,0x00]
+ vpsrld zmm25, zmm19, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0x61,0x65,0x40,0xd2,0x4a,0x80]
+ vpsrld zmm25, zmm19, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrld zmm25, zmm19, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0x61,0x65,0x40,0xd2,0x8a,0xf0,0xf7,0xff,0xff]
+ vpsrld zmm25, zmm19, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsrlq zmm19, zmm10, xmm21
+// CHECK: encoding: [0x62,0xa1,0xad,0x48,0xd3,0xdd]
+ vpsrlq zmm19, zmm10, xmm21
+
+// CHECK: vpsrlq zmm19 {k4}, zmm10, xmm21
+// CHECK: encoding: [0x62,0xa1,0xad,0x4c,0xd3,0xdd]
+ vpsrlq zmm19 {k4}, zmm10, xmm21
+
+// CHECK: vpsrlq zmm19 {k4} {z}, zmm10, xmm21
+// CHECK: encoding: [0x62,0xa1,0xad,0xcc,0xd3,0xdd]
+ vpsrlq zmm19 {k4} {z}, zmm10, xmm21
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xad,0x48,0xd3,0x19]
+ vpsrlq zmm19, zmm10, xmmword ptr [rcx]
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xad,0x48,0xd3,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpsrlq zmm19, zmm10, xmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rdx + 2032]
+// CHECK: encoding: [0x62,0xe1,0xad,0x48,0xd3,0x5a,0x7f]
+ vpsrlq zmm19, zmm10, xmmword ptr [rdx + 2032]
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rdx + 2048]
+// CHECK: encoding: [0x62,0xe1,0xad,0x48,0xd3,0x9a,0x00,0x08,0x00,0x00]
+ vpsrlq zmm19, zmm10, xmmword ptr [rdx + 2048]
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rdx - 2048]
+// CHECK: encoding: [0x62,0xe1,0xad,0x48,0xd3,0x5a,0x80]
+ vpsrlq zmm19, zmm10, xmmword ptr [rdx - 2048]
+
+// CHECK: vpsrlq zmm19, zmm10, xmmword ptr [rdx - 2064]
+// CHECK: encoding: [0x62,0xe1,0xad,0x48,0xd3,0x9a,0xf0,0xf7,0xff,0xff]
+ vpsrlq zmm19, zmm10, xmmword ptr [rdx - 2064]
+
+// CHECK: vpsrlvd zmm2, zmm4, zmm11
+// CHECK: encoding: [0x62,0xd2,0x5d,0x48,0x45,0xd3]
+ vpsrlvd zmm2, zmm4, zmm11
+
+// CHECK: vpsrlvd zmm2 {k7}, zmm4, zmm11
+// CHECK: encoding: [0x62,0xd2,0x5d,0x4f,0x45,0xd3]
+ vpsrlvd zmm2 {k7}, zmm4, zmm11
+
+// CHECK: vpsrlvd zmm2 {k7} {z}, zmm4, zmm11
+// CHECK: encoding: [0x62,0xd2,0x5d,0xcf,0x45,0xd3]
+ vpsrlvd zmm2 {k7} {z}, zmm4, zmm11
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0x45,0x11]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x5d,0x48,0x45,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsrlvd zmm2, zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0x45,0x11]
+ vpsrlvd zmm2, zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0x45,0x52,0x7f]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0x45,0x92,0x00,0x20,0x00,0x00]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0x45,0x52,0x80]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsrlvd zmm2, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x5d,0x48,0x45,0x92,0xc0,0xdf,0xff,0xff]
+ vpsrlvd zmm2, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsrlvd zmm2, zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0x45,0x52,0x7f]
+ vpsrlvd zmm2, zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsrlvd zmm2, zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0x45,0x92,0x00,0x02,0x00,0x00]
+ vpsrlvd zmm2, zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsrlvd zmm2, zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0x45,0x52,0x80]
+ vpsrlvd zmm2, zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsrlvd zmm2, zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x5d,0x58,0x45,0x92,0xfc,0xfd,0xff,0xff]
+ vpsrlvd zmm2, zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsrlvq zmm8, zmm28, zmm15
+// CHECK: encoding: [0x62,0x52,0x9d,0x40,0x45,0xc7]
+ vpsrlvq zmm8, zmm28, zmm15
+
+// CHECK: vpsrlvq zmm8 {k5}, zmm28, zmm15
+// CHECK: encoding: [0x62,0x52,0x9d,0x45,0x45,0xc7]
+ vpsrlvq zmm8 {k5}, zmm28, zmm15
+
+// CHECK: vpsrlvq zmm8 {k5} {z}, zmm28, zmm15
+// CHECK: encoding: [0x62,0x52,0x9d,0xc5,0x45,0xc7]
+ vpsrlvq zmm8 {k5} {z}, zmm28, zmm15
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x45,0x01]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rcx]
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x9d,0x40,0x45,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsrlvq zmm8, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x45,0x01]
+ vpsrlvq zmm8, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x45,0x42,0x7f]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x45,0x82,0x00,0x20,0x00,0x00]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x45,0x42,0x80]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsrlvq zmm8, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x9d,0x40,0x45,0x82,0xc0,0xdf,0xff,0xff]
+ vpsrlvq zmm8, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsrlvq zmm8, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x45,0x42,0x7f]
+ vpsrlvq zmm8, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsrlvq zmm8, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x45,0x82,0x00,0x04,0x00,0x00]
+ vpsrlvq zmm8, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsrlvq zmm8, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x45,0x42,0x80]
+ vpsrlvq zmm8, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsrlvq zmm8, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0x9d,0x50,0x45,0x82,0xf8,0xfb,0xff,0xff]
+ vpsrlvq zmm8, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpsrld zmm11, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x25,0x48,0x72,0xd1,0xab]
+ vpsrld zmm11, zmm9, 171
+
+// CHECK: vpsrld zmm11 {k6}, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x25,0x4e,0x72,0xd1,0xab]
+ vpsrld zmm11 {k6}, zmm9, 171
+
+// CHECK: vpsrld zmm11 {k6} {z}, zmm9, 171
+// CHECK: encoding: [0x62,0xd1,0x25,0xce,0x72,0xd1,0xab]
+ vpsrld zmm11 {k6} {z}, zmm9, 171
+
+// CHECK: vpsrld zmm11, zmm9, 123
+// CHECK: encoding: [0x62,0xd1,0x25,0x48,0x72,0xd1,0x7b]
+ vpsrld zmm11, zmm9, 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x48,0x72,0x11,0x7b]
+ vpsrld zmm11, zmmword ptr [rcx], 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x25,0x48,0x72,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpsrld zmm11, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpsrld zmm11, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x58,0x72,0x11,0x7b]
+ vpsrld zmm11, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x48,0x72,0x52,0x7f,0x7b]
+ vpsrld zmm11, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x48,0x72,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpsrld zmm11, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x48,0x72,0x52,0x80,0x7b]
+ vpsrld zmm11, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrld zmm11, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x48,0x72,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrld zmm11, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrld zmm11, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x58,0x72,0x52,0x7f,0x7b]
+ vpsrld zmm11, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpsrld zmm11, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x58,0x72,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpsrld zmm11, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpsrld zmm11, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x58,0x72,0x52,0x80,0x7b]
+ vpsrld zmm11, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpsrld zmm11, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x58,0x72,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpsrld zmm11, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsrlq zmm6, zmm14, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0x48,0x73,0xd6,0xab]
+ vpsrlq zmm6, zmm14, 171
+
+// CHECK: vpsrlq zmm6 {k5}, zmm14, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0x4d,0x73,0xd6,0xab]
+ vpsrlq zmm6 {k5}, zmm14, 171
+
+// CHECK: vpsrlq zmm6 {k5} {z}, zmm14, 171
+// CHECK: encoding: [0x62,0xd1,0xcd,0xcd,0x73,0xd6,0xab]
+ vpsrlq zmm6 {k5} {z}, zmm14, 171
+
+// CHECK: vpsrlq zmm6, zmm14, 123
+// CHECK: encoding: [0x62,0xd1,0xcd,0x48,0x73,0xd6,0x7b]
+ vpsrlq zmm6, zmm14, 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x11,0x7b]
+ vpsrlq zmm6, zmmword ptr [rcx], 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xcd,0x48,0x73,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpsrlq zmm6, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpsrlq zmm6, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x11,0x7b]
+ vpsrlq zmm6, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x52,0x7f,0x7b]
+ vpsrlq zmm6, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpsrlq zmm6, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x52,0x80,0x7b]
+ vpsrlq zmm6, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrlq zmm6, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x48,0x73,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrlq zmm6, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrlq zmm6, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x52,0x7f,0x7b]
+ vpsrlq zmm6, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsrlq zmm6, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vpsrlq zmm6, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsrlq zmm6, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x52,0x80,0x7b]
+ vpsrlq zmm6, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsrlq zmm6, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xcd,0x58,0x73,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsrlq zmm6, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpsubd zmm26, zmm14, zmm23
+// CHECK: encoding: [0x62,0x21,0x0d,0x48,0xfa,0xd7]
+ vpsubd zmm26, zmm14, zmm23
+
+// CHECK: vpsubd zmm26 {k7}, zmm14, zmm23
+// CHECK: encoding: [0x62,0x21,0x0d,0x4f,0xfa,0xd7]
+ vpsubd zmm26 {k7}, zmm14, zmm23
+
+// CHECK: vpsubd zmm26 {k7} {z}, zmm14, zmm23
+// CHECK: encoding: [0x62,0x21,0x0d,0xcf,0xfa,0xd7]
+ vpsubd zmm26 {k7} {z}, zmm14, zmm23
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x0d,0x48,0xfa,0x11]
+ vpsubd zmm26, zmm14, zmmword ptr [rcx]
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x0d,0x48,0xfa,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpsubd zmm26, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsubd zmm26, zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0d,0x58,0xfa,0x11]
+ vpsubd zmm26, zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x0d,0x48,0xfa,0x52,0x7f]
+ vpsubd zmm26, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x0d,0x48,0xfa,0x92,0x00,0x20,0x00,0x00]
+ vpsubd zmm26, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x0d,0x48,0xfa,0x52,0x80]
+ vpsubd zmm26, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsubd zmm26, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x0d,0x48,0xfa,0x92,0xc0,0xdf,0xff,0xff]
+ vpsubd zmm26, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsubd zmm26, zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0d,0x58,0xfa,0x52,0x7f]
+ vpsubd zmm26, zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpsubd zmm26, zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0d,0x58,0xfa,0x92,0x00,0x02,0x00,0x00]
+ vpsubd zmm26, zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpsubd zmm26, zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0d,0x58,0xfa,0x52,0x80]
+ vpsubd zmm26, zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpsubd zmm26, zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0d,0x58,0xfa,0x92,0xfc,0xfd,0xff,0xff]
+ vpsubd zmm26, zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpsubq zmm16, zmm8, zmm23
+// CHECK: encoding: [0x62,0xa1,0xbd,0x48,0xfb,0xc7]
+ vpsubq zmm16, zmm8, zmm23
+
+// CHECK: vpsubq zmm16 {k7}, zmm8, zmm23
+// CHECK: encoding: [0x62,0xa1,0xbd,0x4f,0xfb,0xc7]
+ vpsubq zmm16 {k7}, zmm8, zmm23
+
+// CHECK: vpsubq zmm16 {k7} {z}, zmm8, zmm23
+// CHECK: encoding: [0x62,0xa1,0xbd,0xcf,0xfb,0xc7]
+ vpsubq zmm16 {k7} {z}, zmm8, zmm23
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xbd,0x48,0xfb,0x01]
+ vpsubq zmm16, zmm8, zmmword ptr [rcx]
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xbd,0x48,0xfb,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpsubq zmm16, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpsubq zmm16, zmm8, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xbd,0x58,0xfb,0x01]
+ vpsubq zmm16, zmm8, qword ptr [rcx]{1to8}
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xbd,0x48,0xfb,0x42,0x7f]
+ vpsubq zmm16, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xbd,0x48,0xfb,0x82,0x00,0x20,0x00,0x00]
+ vpsubq zmm16, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xbd,0x48,0xfb,0x42,0x80]
+ vpsubq zmm16, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vpsubq zmm16, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xbd,0x48,0xfb,0x82,0xc0,0xdf,0xff,0xff]
+ vpsubq zmm16, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vpsubq zmm16, zmm8, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xbd,0x58,0xfb,0x42,0x7f]
+ vpsubq zmm16, zmm8, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpsubq zmm16, zmm8, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xbd,0x58,0xfb,0x82,0x00,0x04,0x00,0x00]
+ vpsubq zmm16, zmm8, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpsubq zmm16, zmm8, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xbd,0x58,0xfb,0x42,0x80]
+ vpsubq zmm16, zmm8, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpsubq zmm16, zmm8, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xbd,0x58,0xfb,0x82,0xf8,0xfb,0xff,0xff]
+ vpsubq zmm16, zmm8, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vptestmd k2, zmm24, zmm24
+// CHECK: encoding: [0x62,0x92,0x3d,0x40,0x27,0xd0]
+ vptestmd k2, zmm24, zmm24
+
+// CHECK: vptestmd k2 {k2}, zmm24, zmm24
+// CHECK: encoding: [0x62,0x92,0x3d,0x42,0x27,0xd0]
+ vptestmd k2 {k2}, zmm24, zmm24
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x27,0x11]
+ vptestmd k2, zmm24, zmmword ptr [rcx]
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x3d,0x40,0x27,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vptestmd k2, zmm24, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vptestmd k2, zmm24, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x27,0x11]
+ vptestmd k2, zmm24, dword ptr [rcx]{1to16}
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x27,0x52,0x7f]
+ vptestmd k2, zmm24, zmmword ptr [rdx + 8128]
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x27,0x92,0x00,0x20,0x00,0x00]
+ vptestmd k2, zmm24, zmmword ptr [rdx + 8192]
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x27,0x52,0x80]
+ vptestmd k2, zmm24, zmmword ptr [rdx - 8192]
+
+// CHECK: vptestmd k2, zmm24, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x40,0x27,0x92,0xc0,0xdf,0xff,0xff]
+ vptestmd k2, zmm24, zmmword ptr [rdx - 8256]
+
+// CHECK: vptestmd k2, zmm24, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x27,0x52,0x7f]
+ vptestmd k2, zmm24, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vptestmd k2, zmm24, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x27,0x92,0x00,0x02,0x00,0x00]
+ vptestmd k2, zmm24, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vptestmd k2, zmm24, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x27,0x52,0x80]
+ vptestmd k2, zmm24, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vptestmd k2, zmm24, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x50,0x27,0x92,0xfc,0xfd,0xff,0xff]
+ vptestmd k2, zmm24, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vptestmq k4, zmm15, zmm20
+// CHECK: encoding: [0x62,0xb2,0x85,0x48,0x27,0xe4]
+ vptestmq k4, zmm15, zmm20
+
+// CHECK: vptestmq k4 {k2}, zmm15, zmm20
+// CHECK: encoding: [0x62,0xb2,0x85,0x4a,0x27,0xe4]
+ vptestmq k4 {k2}, zmm15, zmm20
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x85,0x48,0x27,0x21]
+ vptestmq k4, zmm15, zmmword ptr [rcx]
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x85,0x48,0x27,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vptestmq k4, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vptestmq k4, zmm15, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x85,0x58,0x27,0x21]
+ vptestmq k4, zmm15, qword ptr [rcx]{1to8}
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x85,0x48,0x27,0x62,0x7f]
+ vptestmq k4, zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x85,0x48,0x27,0xa2,0x00,0x20,0x00,0x00]
+ vptestmq k4, zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x85,0x48,0x27,0x62,0x80]
+ vptestmq k4, zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vptestmq k4, zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x85,0x48,0x27,0xa2,0xc0,0xdf,0xff,0xff]
+ vptestmq k4, zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vptestmq k4, zmm15, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x85,0x58,0x27,0x62,0x7f]
+ vptestmq k4, zmm15, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vptestmq k4, zmm15, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x85,0x58,0x27,0xa2,0x00,0x04,0x00,0x00]
+ vptestmq k4, zmm15, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vptestmq k4, zmm15, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x85,0x58,0x27,0x62,0x80]
+ vptestmq k4, zmm15, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vptestmq k4, zmm15, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0x85,0x58,0x27,0xa2,0xf8,0xfb,0xff,0xff]
+ vptestmq k4, zmm15, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmm7
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0xdf]
+ vpunpckhdq zmm11, zmm6, zmm7
+
+// CHECK: vpunpckhdq zmm11 {k3}, zmm6, zmm7
+// CHECK: encoding: [0x62,0x71,0x4d,0x4b,0x6a,0xdf]
+ vpunpckhdq zmm11 {k3}, zmm6, zmm7
+
+// CHECK: vpunpckhdq zmm11 {k3} {z}, zmm6, zmm7
+// CHECK: encoding: [0x62,0x71,0x4d,0xcb,0x6a,0xdf]
+ vpunpckhdq zmm11 {k3} {z}, zmm6, zmm7
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0x19]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rcx]
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x4d,0x48,0x6a,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpunpckhdq zmm11, zmm6, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x71,0x4d,0x58,0x6a,0x19]
+ vpunpckhdq zmm11, zmm6, dword ptr [rcx]{1to16}
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0x5a,0x7f]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0x9a,0x00,0x20,0x00,0x00]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0x5a,0x80]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckhdq zmm11, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0x4d,0x48,0x6a,0x9a,0xc0,0xdf,0xff,0xff]
+ vpunpckhdq zmm11, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckhdq zmm11, zmm6, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x71,0x4d,0x58,0x6a,0x5a,0x7f]
+ vpunpckhdq zmm11, zmm6, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpunpckhdq zmm11, zmm6, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x4d,0x58,0x6a,0x9a,0x00,0x02,0x00,0x00]
+ vpunpckhdq zmm11, zmm6, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpunpckhdq zmm11, zmm6, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x71,0x4d,0x58,0x6a,0x5a,0x80]
+ vpunpckhdq zmm11, zmm6, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpunpckhdq zmm11, zmm6, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x71,0x4d,0x58,0x6a,0x9a,0xfc,0xfd,0xff,0xff]
+ vpunpckhdq zmm11, zmm6, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmm26
+// CHECK: encoding: [0x62,0x11,0xcd,0x48,0x6d,0xc2]
+ vpunpckhqdq zmm8, zmm6, zmm26
+
+// CHECK: vpunpckhqdq zmm8 {k6}, zmm6, zmm26
+// CHECK: encoding: [0x62,0x11,0xcd,0x4e,0x6d,0xc2]
+ vpunpckhqdq zmm8 {k6}, zmm6, zmm26
+
+// CHECK: vpunpckhqdq zmm8 {k6} {z}, zmm6, zmm26
+// CHECK: encoding: [0x62,0x11,0xcd,0xce,0x6d,0xc2]
+ vpunpckhqdq zmm8 {k6} {z}, zmm6, zmm26
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xcd,0x48,0x6d,0x01]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rcx]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xcd,0x48,0x6d,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xcd,0x58,0x6d,0x01]
+ vpunpckhqdq zmm8, zmm6, qword ptr [rcx]{1to8}
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xcd,0x48,0x6d,0x42,0x7f]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xcd,0x48,0x6d,0x82,0x00,0x20,0x00,0x00]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xcd,0x48,0x6d,0x42,0x80]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xcd,0x48,0x6d,0x82,0xc0,0xdf,0xff,0xff]
+ vpunpckhqdq zmm8, zmm6, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckhqdq zmm8, zmm6, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xcd,0x58,0x6d,0x42,0x7f]
+ vpunpckhqdq zmm8, zmm6, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpunpckhqdq zmm8, zmm6, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xcd,0x58,0x6d,0x82,0x00,0x04,0x00,0x00]
+ vpunpckhqdq zmm8, zmm6, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpunpckhqdq zmm8, zmm6, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xcd,0x58,0x6d,0x42,0x80]
+ vpunpckhqdq zmm8, zmm6, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpunpckhqdq zmm8, zmm6, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xcd,0x58,0x6d,0x82,0xf8,0xfb,0xff,0xff]
+ vpunpckhqdq zmm8, zmm6, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpunpckldq zmm16, zmm18, zmm13
+// CHECK: encoding: [0x62,0xc1,0x6d,0x40,0x62,0xc5]
+ vpunpckldq zmm16, zmm18, zmm13
+
+// CHECK: vpunpckldq zmm16 {k7}, zmm18, zmm13
+// CHECK: encoding: [0x62,0xc1,0x6d,0x47,0x62,0xc5]
+ vpunpckldq zmm16 {k7}, zmm18, zmm13
+
+// CHECK: vpunpckldq zmm16 {k7} {z}, zmm18, zmm13
+// CHECK: encoding: [0x62,0xc1,0x6d,0xc7,0x62,0xc5]
+ vpunpckldq zmm16 {k7} {z}, zmm18, zmm13
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x62,0x01]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rcx]
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x6d,0x40,0x62,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpunpckldq zmm16, zmm18, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x50,0x62,0x01]
+ vpunpckldq zmm16, zmm18, dword ptr [rcx]{1to16}
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x62,0x42,0x7f]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x62,0x82,0x00,0x20,0x00,0x00]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x62,0x42,0x80]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpckldq zmm16, zmm18, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x62,0x82,0xc0,0xdf,0xff,0xff]
+ vpunpckldq zmm16, zmm18, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpckldq zmm16, zmm18, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x50,0x62,0x42,0x7f]
+ vpunpckldq zmm16, zmm18, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpunpckldq zmm16, zmm18, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x50,0x62,0x82,0x00,0x02,0x00,0x00]
+ vpunpckldq zmm16, zmm18, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpunpckldq zmm16, zmm18, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x50,0x62,0x42,0x80]
+ vpunpckldq zmm16, zmm18, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpunpckldq zmm16, zmm18, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x6d,0x50,0x62,0x82,0xfc,0xfd,0xff,0xff]
+ vpunpckldq zmm16, zmm18, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0x40,0x6c,0xc9]
+ vpunpcklqdq zmm17, zmm16, zmm9
+
+// CHECK: vpunpcklqdq zmm17 {k5}, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0x45,0x6c,0xc9]
+ vpunpcklqdq zmm17 {k5}, zmm16, zmm9
+
+// CHECK: vpunpcklqdq zmm17 {k5} {z}, zmm16, zmm9
+// CHECK: encoding: [0x62,0xc1,0xfd,0xc5,0x6c,0xc9]
+ vpunpcklqdq zmm17 {k5} {z}, zmm16, zmm9
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x40,0x6c,0x09]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rcx]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x40,0x6c,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x50,0x6c,0x09]
+ vpunpcklqdq zmm17, zmm16, qword ptr [rcx]{1to8}
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x40,0x6c,0x4a,0x7f]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx + 8128]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x40,0x6c,0x8a,0x00,0x20,0x00,0x00]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx + 8192]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x40,0x6c,0x4a,0x80]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx - 8192]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x40,0x6c,0x8a,0xc0,0xdf,0xff,0xff]
+ vpunpcklqdq zmm17, zmm16, zmmword ptr [rdx - 8256]
+
+// CHECK: vpunpcklqdq zmm17, zmm16, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x50,0x6c,0x4a,0x7f]
+ vpunpcklqdq zmm17, zmm16, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpunpcklqdq zmm17, zmm16, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x50,0x6c,0x8a,0x00,0x04,0x00,0x00]
+ vpunpcklqdq zmm17, zmm16, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpunpcklqdq zmm17, zmm16, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x50,0x6c,0x4a,0x80]
+ vpunpcklqdq zmm17, zmm16, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpunpcklqdq zmm17, zmm16, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfd,0x50,0x6c,0x8a,0xf8,0xfb,0xff,0xff]
+ vpunpcklqdq zmm17, zmm16, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpxord zmm5, zmm3, zmm25
+// CHECK: encoding: [0x62,0x91,0x65,0x48,0xef,0xe9]
+ vpxord zmm5, zmm3, zmm25
+
+// CHECK: vpxord zmm5 {k3}, zmm3, zmm25
+// CHECK: encoding: [0x62,0x91,0x65,0x4b,0xef,0xe9]
+ vpxord zmm5 {k3}, zmm3, zmm25
+
+// CHECK: vpxord zmm5 {k3} {z}, zmm3, zmm25
+// CHECK: encoding: [0x62,0x91,0x65,0xcb,0xef,0xe9]
+ vpxord zmm5 {k3} {z}, zmm3, zmm25
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0xef,0x29]
+ vpxord zmm5, zmm3, zmmword ptr [rcx]
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x65,0x48,0xef,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpxord zmm5, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpxord zmm5, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0xef,0x29]
+ vpxord zmm5, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0xef,0x6a,0x7f]
+ vpxord zmm5, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0xef,0xaa,0x00,0x20,0x00,0x00]
+ vpxord zmm5, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0xef,0x6a,0x80]
+ vpxord zmm5, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vpxord zmm5, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x65,0x48,0xef,0xaa,0xc0,0xdf,0xff,0xff]
+ vpxord zmm5, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vpxord zmm5, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0xef,0x6a,0x7f]
+ vpxord zmm5, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpxord zmm5, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0xef,0xaa,0x00,0x02,0x00,0x00]
+ vpxord zmm5, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpxord zmm5, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0xef,0x6a,0x80]
+ vpxord zmm5, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpxord zmm5, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x65,0x58,0xef,0xaa,0xfc,0xfd,0xff,0xff]
+ vpxord zmm5, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpxorq zmm10, zmm4, zmm18
+// CHECK: encoding: [0x62,0x31,0xdd,0x48,0xef,0xd2]
+ vpxorq zmm10, zmm4, zmm18
+
+// CHECK: vpxorq zmm10 {k4}, zmm4, zmm18
+// CHECK: encoding: [0x62,0x31,0xdd,0x4c,0xef,0xd2]
+ vpxorq zmm10 {k4}, zmm4, zmm18
+
+// CHECK: vpxorq zmm10 {k4} {z}, zmm4, zmm18
+// CHECK: encoding: [0x62,0x31,0xdd,0xcc,0xef,0xd2]
+ vpxorq zmm10 {k4} {z}, zmm4, zmm18
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xdd,0x48,0xef,0x11]
+ vpxorq zmm10, zmm4, zmmword ptr [rcx]
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xdd,0x48,0xef,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpxorq zmm10, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpxorq zmm10, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xdd,0x58,0xef,0x11]
+ vpxorq zmm10, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xdd,0x48,0xef,0x52,0x7f]
+ vpxorq zmm10, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xdd,0x48,0xef,0x92,0x00,0x20,0x00,0x00]
+ vpxorq zmm10, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xdd,0x48,0xef,0x52,0x80]
+ vpxorq zmm10, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vpxorq zmm10, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xdd,0x48,0xef,0x92,0xc0,0xdf,0xff,0xff]
+ vpxorq zmm10, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vpxorq zmm10, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xdd,0x58,0xef,0x52,0x7f]
+ vpxorq zmm10, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpxorq zmm10, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xdd,0x58,0xef,0x92,0x00,0x04,0x00,0x00]
+ vpxorq zmm10, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpxorq zmm10, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xdd,0x58,0xef,0x52,0x80]
+ vpxorq zmm10, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpxorq zmm10, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xdd,0x58,0xef,0x92,0xf8,0xfb,0xff,0xff]
+ vpxorq zmm10, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrcp14pd zmm26, zmm10
+// CHECK: encoding: [0x62,0x42,0xfd,0x48,0x4c,0xd2]
+ vrcp14pd zmm26, zmm10
+
+// CHECK: vrcp14pd zmm26 {k6}, zmm10
+// CHECK: encoding: [0x62,0x42,0xfd,0x4e,0x4c,0xd2]
+ vrcp14pd zmm26 {k6}, zmm10
+
+// CHECK: vrcp14pd zmm26 {k6} {z}, zmm10
+// CHECK: encoding: [0x62,0x42,0xfd,0xce,0x4c,0xd2]
+ vrcp14pd zmm26 {k6} {z}, zmm10
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x4c,0x11]
+ vrcp14pd zmm26, zmmword ptr [rcx]
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xfd,0x48,0x4c,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vrcp14pd zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrcp14pd zmm26, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x58,0x4c,0x11]
+ vrcp14pd zmm26, qword ptr [rcx]{1to8}
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x4c,0x52,0x7f]
+ vrcp14pd zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x4c,0x92,0x00,0x20,0x00,0x00]
+ vrcp14pd zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x4c,0x52,0x80]
+ vrcp14pd zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vrcp14pd zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xfd,0x48,0x4c,0x92,0xc0,0xdf,0xff,0xff]
+ vrcp14pd zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vrcp14pd zmm26, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x58,0x4c,0x52,0x7f]
+ vrcp14pd zmm26, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vrcp14pd zmm26, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x58,0x4c,0x92,0x00,0x04,0x00,0x00]
+ vrcp14pd zmm26, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vrcp14pd zmm26, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x58,0x4c,0x52,0x80]
+ vrcp14pd zmm26, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vrcp14pd zmm26, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xfd,0x58,0x4c,0x92,0xf8,0xfb,0xff,0xff]
+ vrcp14pd zmm26, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrcp14ps zmm3, zmm27
+// CHECK: encoding: [0x62,0x92,0x7d,0x48,0x4c,0xdb]
+ vrcp14ps zmm3, zmm27
+
+// CHECK: vrcp14ps zmm3 {k5}, zmm27
+// CHECK: encoding: [0x62,0x92,0x7d,0x4d,0x4c,0xdb]
+ vrcp14ps zmm3 {k5}, zmm27
+
+// CHECK: vrcp14ps zmm3 {k5} {z}, zmm27
+// CHECK: encoding: [0x62,0x92,0x7d,0xcd,0x4c,0xdb]
+ vrcp14ps zmm3 {k5} {z}, zmm27
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4c,0x19]
+ vrcp14ps zmm3, zmmword ptr [rcx]
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x4c,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vrcp14ps zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrcp14ps zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4c,0x19]
+ vrcp14ps zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4c,0x5a,0x7f]
+ vrcp14ps zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4c,0x9a,0x00,0x20,0x00,0x00]
+ vrcp14ps zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4c,0x5a,0x80]
+ vrcp14ps zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vrcp14ps zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4c,0x9a,0xc0,0xdf,0xff,0xff]
+ vrcp14ps zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vrcp14ps zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4c,0x5a,0x7f]
+ vrcp14ps zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vrcp14ps zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4c,0x9a,0x00,0x02,0x00,0x00]
+ vrcp14ps zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vrcp14ps zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4c,0x5a,0x80]
+ vrcp14ps zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vrcp14ps zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4c,0x9a,0xfc,0xfd,0xff,0xff]
+ vrcp14ps zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vrcp14sd xmm14, xmm6, xmm7
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0xf7]
+ vrcp14sd xmm14, xmm6, xmm7
+
+// CHECK: vrcp14sd xmm14 {k1}, xmm6, xmm7
+// CHECK: encoding: [0x62,0x72,0xcd,0x09,0x4d,0xf7]
+ vrcp14sd xmm14 {k1}, xmm6, xmm7
+
+// CHECK: vrcp14sd xmm14 {k1} {z}, xmm6, xmm7
+// CHECK: encoding: [0x62,0x72,0xcd,0x89,0x4d,0xf7]
+ vrcp14sd xmm14 {k1} {z}, xmm6, xmm7
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0x31]
+ vrcp14sd xmm14, xmm6, qword ptr [rcx]
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xcd,0x08,0x4d,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vrcp14sd xmm14, xmm6, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0x72,0x7f]
+ vrcp14sd xmm14, xmm6, qword ptr [rdx + 1016]
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0xb2,0x00,0x04,0x00,0x00]
+ vrcp14sd xmm14, xmm6, qword ptr [rdx + 1024]
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0x72,0x80]
+ vrcp14sd xmm14, xmm6, qword ptr [rdx - 1024]
+
+// CHECK: vrcp14sd xmm14, xmm6, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x72,0xcd,0x08,0x4d,0xb2,0xf8,0xfb,0xff,0xff]
+ vrcp14sd xmm14, xmm6, qword ptr [rdx - 1032]
+
+// CHECK: vrcp14ss xmm25, xmm1, xmm21
+// CHECK: encoding: [0x62,0x22,0x75,0x08,0x4d,0xcd]
+ vrcp14ss xmm25, xmm1, xmm21
+
+// CHECK: vrcp14ss xmm25 {k2}, xmm1, xmm21
+// CHECK: encoding: [0x62,0x22,0x75,0x0a,0x4d,0xcd]
+ vrcp14ss xmm25 {k2}, xmm1, xmm21
+
+// CHECK: vrcp14ss xmm25 {k2} {z}, xmm1, xmm21
+// CHECK: encoding: [0x62,0x22,0x75,0x8a,0x4d,0xcd]
+ vrcp14ss xmm25 {k2} {z}, xmm1, xmm21
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x4d,0x09]
+ vrcp14ss xmm25, xmm1, dword ptr [rcx]
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x75,0x08,0x4d,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vrcp14ss xmm25, xmm1, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x4d,0x4a,0x7f]
+ vrcp14ss xmm25, xmm1, dword ptr [rdx + 508]
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x4d,0x8a,0x00,0x02,0x00,0x00]
+ vrcp14ss xmm25, xmm1, dword ptr [rdx + 512]
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x4d,0x4a,0x80]
+ vrcp14ss xmm25, xmm1, dword ptr [rdx - 512]
+
+// CHECK: vrcp14ss xmm25, xmm1, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x62,0x75,0x08,0x4d,0x8a,0xfc,0xfd,0xff,0xff]
+ vrcp14ss xmm25, xmm1, dword ptr [rdx - 516]
+
+// CHECK: vrsqrt14pd zmm14, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0xf4]
+ vrsqrt14pd zmm14, zmm4
+
+// CHECK: vrsqrt14pd zmm14 {k7}, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0x4f,0x4e,0xf4]
+ vrsqrt14pd zmm14 {k7}, zmm4
+
+// CHECK: vrsqrt14pd zmm14 {k7} {z}, zmm4
+// CHECK: encoding: [0x62,0x72,0xfd,0xcf,0x4e,0xf4]
+ vrsqrt14pd zmm14 {k7} {z}, zmm4
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0x31]
+ vrsqrt14pd zmm14, zmmword ptr [rcx]
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xfd,0x48,0x4e,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vrsqrt14pd zmm14, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrsqrt14pd zmm14, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4e,0x31]
+ vrsqrt14pd zmm14, qword ptr [rcx]{1to8}
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0x72,0x7f]
+ vrsqrt14pd zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0xb2,0x00,0x20,0x00,0x00]
+ vrsqrt14pd zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0x72,0x80]
+ vrsqrt14pd zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vrsqrt14pd zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xfd,0x48,0x4e,0xb2,0xc0,0xdf,0xff,0xff]
+ vrsqrt14pd zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vrsqrt14pd zmm14, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4e,0x72,0x7f]
+ vrsqrt14pd zmm14, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vrsqrt14pd zmm14, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4e,0xb2,0x00,0x04,0x00,0x00]
+ vrsqrt14pd zmm14, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vrsqrt14pd zmm14, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4e,0x72,0x80]
+ vrsqrt14pd zmm14, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vrsqrt14pd zmm14, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xfd,0x58,0x4e,0xb2,0xf8,0xfb,0xff,0xff]
+ vrsqrt14pd zmm14, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vrsqrt14ps zmm3, zmm25
+// CHECK: encoding: [0x62,0x92,0x7d,0x48,0x4e,0xd9]
+ vrsqrt14ps zmm3, zmm25
+
+// CHECK: vrsqrt14ps zmm3 {k3}, zmm25
+// CHECK: encoding: [0x62,0x92,0x7d,0x4b,0x4e,0xd9]
+ vrsqrt14ps zmm3 {k3}, zmm25
+
+// CHECK: vrsqrt14ps zmm3 {k3} {z}, zmm25
+// CHECK: encoding: [0x62,0x92,0x7d,0xcb,0x4e,0xd9]
+ vrsqrt14ps zmm3 {k3} {z}, zmm25
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4e,0x19]
+ vrsqrt14ps zmm3, zmmword ptr [rcx]
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x7d,0x48,0x4e,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vrsqrt14ps zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrsqrt14ps zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4e,0x19]
+ vrsqrt14ps zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4e,0x5a,0x7f]
+ vrsqrt14ps zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4e,0x9a,0x00,0x20,0x00,0x00]
+ vrsqrt14ps zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4e,0x5a,0x80]
+ vrsqrt14ps zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vrsqrt14ps zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x48,0x4e,0x9a,0xc0,0xdf,0xff,0xff]
+ vrsqrt14ps zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vrsqrt14ps zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4e,0x5a,0x7f]
+ vrsqrt14ps zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vrsqrt14ps zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4e,0x9a,0x00,0x02,0x00,0x00]
+ vrsqrt14ps zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vrsqrt14ps zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4e,0x5a,0x80]
+ vrsqrt14ps zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vrsqrt14ps zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x7d,0x58,0x4e,0x9a,0xfc,0xfd,0xff,0xff]
+ vrsqrt14ps zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vrsqrt14sd xmm1, xmm21, xmm3
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0xcb]
+ vrsqrt14sd xmm1, xmm21, xmm3
+
+// CHECK: vrsqrt14sd xmm1 {k2}, xmm21, xmm3
+// CHECK: encoding: [0x62,0xf2,0xd5,0x02,0x4f,0xcb]
+ vrsqrt14sd xmm1 {k2}, xmm21, xmm3
+
+// CHECK: vrsqrt14sd xmm1 {k2} {z}, xmm21, xmm3
+// CHECK: encoding: [0x62,0xf2,0xd5,0x82,0x4f,0xcb]
+ vrsqrt14sd xmm1 {k2} {z}, xmm21, xmm3
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0x09]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rcx]
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xd5,0x00,0x4f,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0x4a,0x7f]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rdx + 1016]
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0x8a,0x00,0x04,0x00,0x00]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rdx + 1024]
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0x4a,0x80]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rdx - 1024]
+
+// CHECK: vrsqrt14sd xmm1, xmm21, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x00,0x4f,0x8a,0xf8,0xfb,0xff,0xff]
+ vrsqrt14sd xmm1, xmm21, qword ptr [rdx - 1032]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, xmm18
+// CHECK: encoding: [0x62,0xa2,0x2d,0x00,0x4f,0xda]
+ vrsqrt14ss xmm19, xmm26, xmm18
+
+// CHECK: vrsqrt14ss xmm19 {k3}, xmm26, xmm18
+// CHECK: encoding: [0x62,0xa2,0x2d,0x03,0x4f,0xda]
+ vrsqrt14ss xmm19 {k3}, xmm26, xmm18
+
+// CHECK: vrsqrt14ss xmm19 {k3} {z}, xmm26, xmm18
+// CHECK: encoding: [0x62,0xa2,0x2d,0x83,0x4f,0xda]
+ vrsqrt14ss xmm19 {k3} {z}, xmm26, xmm18
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x00,0x4f,0x19]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rcx]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x2d,0x00,0x4f,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x00,0x4f,0x5a,0x7f]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rdx + 508]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x00,0x4f,0x9a,0x00,0x02,0x00,0x00]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rdx + 512]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x00,0x4f,0x5a,0x80]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rdx - 512]
+
+// CHECK: vrsqrt14ss xmm19, xmm26, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x2d,0x00,0x4f,0x9a,0xfc,0xfd,0xff,0xff]
+ vrsqrt14ss xmm19, xmm26, dword ptr [rdx - 516]
+
+// CHECK: vshufpd zmm1, zmm10, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xad,0x48,0xc6,0xc9,0xab]
+ vshufpd zmm1, zmm10, zmm25, 171
+
+// CHECK: vshufpd zmm1 {k3}, zmm10, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xad,0x4b,0xc6,0xc9,0xab]
+ vshufpd zmm1 {k3}, zmm10, zmm25, 171
+
+// CHECK: vshufpd zmm1 {k3} {z}, zmm10, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0xad,0xcb,0xc6,0xc9,0xab]
+ vshufpd zmm1 {k3} {z}, zmm10, zmm25, 171
+
+// CHECK: vshufpd zmm1, zmm10, zmm25, 123
+// CHECK: encoding: [0x62,0x91,0xad,0x48,0xc6,0xc9,0x7b]
+ vshufpd zmm1, zmm10, zmm25, 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xc6,0x09,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rcx], 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xad,0x48,0xc6,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshufpd zmm1, zmm10, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xc6,0x09,0x7b]
+ vshufpd zmm1, zmm10, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xc6,0x4a,0x7f,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xc6,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xc6,0x4a,0x80,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufpd zmm1, zmm10, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x48,0xc6,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufpd zmm1, zmm10, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufpd zmm1, zmm10, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xc6,0x4a,0x7f,0x7b]
+ vshufpd zmm1, zmm10, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshufpd zmm1, zmm10, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xc6,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vshufpd zmm1, zmm10, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshufpd zmm1, zmm10, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xc6,0x4a,0x80,0x7b]
+ vshufpd zmm1, zmm10, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshufpd zmm1, zmm10, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xad,0x58,0xc6,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vshufpd zmm1, zmm10, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vshufps zmm1, zmm1, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0x74,0x48,0xc6,0xc9,0xab]
+ vshufps zmm1, zmm1, zmm25, 171
+
+// CHECK: vshufps zmm1 {k1}, zmm1, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0x74,0x49,0xc6,0xc9,0xab]
+ vshufps zmm1 {k1}, zmm1, zmm25, 171
+
+// CHECK: vshufps zmm1 {k1} {z}, zmm1, zmm25, 171
+// CHECK: encoding: [0x62,0x91,0x74,0xc9,0xc6,0xc9,0xab]
+ vshufps zmm1 {k1} {z}, zmm1, zmm25, 171
+
+// CHECK: vshufps zmm1, zmm1, zmm25, 123
+// CHECK: encoding: [0x62,0x91,0x74,0x48,0xc6,0xc9,0x7b]
+ vshufps zmm1, zmm1, zmm25, 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x48,0xc6,0x09,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rcx], 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x74,0x48,0xc6,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshufps zmm1, zmm1, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x58,0xc6,0x09,0x7b]
+ vshufps zmm1, zmm1, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x48,0xc6,0x4a,0x7f,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x48,0xc6,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x48,0xc6,0x4a,0x80,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufps zmm1, zmm1, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x48,0xc6,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufps zmm1, zmm1, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufps zmm1, zmm1, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x58,0xc6,0x4a,0x7f,0x7b]
+ vshufps zmm1, zmm1, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshufps zmm1, zmm1, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x58,0xc6,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vshufps zmm1, zmm1, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshufps zmm1, zmm1, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x58,0xc6,0x4a,0x80,0x7b]
+ vshufps zmm1, zmm1, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshufps zmm1, zmm1, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x74,0x58,0xc6,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vshufps zmm1, zmm1, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vsqrtpd zmm9, zmm5
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0xcd]
+ vsqrtpd zmm9, zmm5
+
+// CHECK: vsqrtpd zmm9 {k2}, zmm5
+// CHECK: encoding: [0x62,0x71,0xfd,0x4a,0x51,0xcd]
+ vsqrtpd zmm9 {k2}, zmm5
+
+// CHECK: vsqrtpd zmm9 {k2} {z}, zmm5
+// CHECK: encoding: [0x62,0x71,0xfd,0xca,0x51,0xcd]
+ vsqrtpd zmm9 {k2} {z}, zmm5
+
+// CHECK: vsqrtpd zmm9, zmm5, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0xfd,0x18,0x51,0xcd]
+ vsqrtpd zmm9, zmm5, {rn-sae}
+
+// CHECK: vsqrtpd zmm9, zmm5, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0xcd]
+ vsqrtpd zmm9, zmm5, {ru-sae}
+
+// CHECK: vsqrtpd zmm9, zmm5, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0xfd,0x38,0x51,0xcd]
+ vsqrtpd zmm9, zmm5, {rd-sae}
+
+// CHECK: vsqrtpd zmm9, zmm5, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0xfd,0x78,0x51,0xcd]
+ vsqrtpd zmm9, zmm5, {rz-sae}
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0x09]
+ vsqrtpd zmm9, zmmword ptr [rcx]
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xfd,0x48,0x51,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vsqrtpd zmm9, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsqrtpd zmm9, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0x09]
+ vsqrtpd zmm9, qword ptr [rcx]{1to8}
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0x4a,0x7f]
+ vsqrtpd zmm9, zmmword ptr [rdx + 8128]
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0x8a,0x00,0x20,0x00,0x00]
+ vsqrtpd zmm9, zmmword ptr [rdx + 8192]
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0x4a,0x80]
+ vsqrtpd zmm9, zmmword ptr [rdx - 8192]
+
+// CHECK: vsqrtpd zmm9, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x51,0x8a,0xc0,0xdf,0xff,0xff]
+ vsqrtpd zmm9, zmmword ptr [rdx - 8256]
+
+// CHECK: vsqrtpd zmm9, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0x4a,0x7f]
+ vsqrtpd zmm9, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vsqrtpd zmm9, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0x8a,0x00,0x04,0x00,0x00]
+ vsqrtpd zmm9, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vsqrtpd zmm9, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0x4a,0x80]
+ vsqrtpd zmm9, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vsqrtpd zmm9, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x71,0xfd,0x58,0x51,0x8a,0xf8,0xfb,0xff,0xff]
+ vsqrtpd zmm9, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vsqrtps zmm4, zmm23
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x51,0xe7]
+ vsqrtps zmm4, zmm23
+
+// CHECK: vsqrtps zmm4 {k6}, zmm23
+// CHECK: encoding: [0x62,0xb1,0x7c,0x4e,0x51,0xe7]
+ vsqrtps zmm4 {k6}, zmm23
+
+// CHECK: vsqrtps zmm4 {k6} {z}, zmm23
+// CHECK: encoding: [0x62,0xb1,0x7c,0xce,0x51,0xe7]
+ vsqrtps zmm4 {k6} {z}, zmm23
+
+// CHECK: vsqrtps zmm4, zmm23, {rn-sae}
+// CHECK: encoding: [0x62,0xb1,0x7c,0x18,0x51,0xe7]
+ vsqrtps zmm4, zmm23, {rn-sae}
+
+// CHECK: vsqrtps zmm4, zmm23, {ru-sae}
+// CHECK: encoding: [0x62,0xb1,0x7c,0x58,0x51,0xe7]
+ vsqrtps zmm4, zmm23, {ru-sae}
+
+// CHECK: vsqrtps zmm4, zmm23, {rd-sae}
+// CHECK: encoding: [0x62,0xb1,0x7c,0x38,0x51,0xe7]
+ vsqrtps zmm4, zmm23, {rd-sae}
+
+// CHECK: vsqrtps zmm4, zmm23, {rz-sae}
+// CHECK: encoding: [0x62,0xb1,0x7c,0x78,0x51,0xe7]
+ vsqrtps zmm4, zmm23, {rz-sae}
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x51,0x21]
+ vsqrtps zmm4, zmmword ptr [rcx]
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x51,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vsqrtps zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsqrtps zmm4, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x51,0x21]
+ vsqrtps zmm4, dword ptr [rcx]{1to16}
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x51,0x62,0x7f]
+ vsqrtps zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x51,0xa2,0x00,0x20,0x00,0x00]
+ vsqrtps zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x51,0x62,0x80]
+ vsqrtps zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vsqrtps zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x51,0xa2,0xc0,0xdf,0xff,0xff]
+ vsqrtps zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vsqrtps zmm4, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x51,0x62,0x7f]
+ vsqrtps zmm4, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vsqrtps zmm4, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x51,0xa2,0x00,0x02,0x00,0x00]
+ vsqrtps zmm4, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vsqrtps zmm4, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x51,0x62,0x80]
+ vsqrtps zmm4, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vsqrtps zmm4, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x51,0xa2,0xfc,0xfd,0xff,0xff]
+ vsqrtps zmm4, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vsqrtsd xmm8, xmm24, xmm5
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0xc5]
+ vsqrtsd xmm8, xmm24, xmm5
+
+// CHECK: vsqrtsd xmm8 {k3}, xmm24, xmm5
+// CHECK: encoding: [0x62,0x71,0xbf,0x03,0x51,0xc5]
+ vsqrtsd xmm8 {k3}, xmm24, xmm5
+
+// CHECK: vsqrtsd xmm8 {k3} {z}, xmm24, xmm5
+// CHECK: encoding: [0x62,0x71,0xbf,0x83,0x51,0xc5]
+ vsqrtsd xmm8 {k3} {z}, xmm24, xmm5
+
+// CHECK: vsqrtsd xmm8, xmm24, xmm5, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0xbf,0x10,0x51,0xc5]
+ vsqrtsd xmm8, xmm24, xmm5, {rn-sae}
+
+// CHECK: vsqrtsd xmm8, xmm24, xmm5, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0xbf,0x50,0x51,0xc5]
+ vsqrtsd xmm8, xmm24, xmm5, {ru-sae}
+
+// CHECK: vsqrtsd xmm8, xmm24, xmm5, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0xbf,0x30,0x51,0xc5]
+ vsqrtsd xmm8, xmm24, xmm5, {rd-sae}
+
+// CHECK: vsqrtsd xmm8, xmm24, xmm5, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0xbf,0x70,0x51,0xc5]
+ vsqrtsd xmm8, xmm24, xmm5, {rz-sae}
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0x01]
+ vsqrtsd xmm8, xmm24, qword ptr [rcx]
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xbf,0x00,0x51,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vsqrtsd xmm8, xmm24, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0x42,0x7f]
+ vsqrtsd xmm8, xmm24, qword ptr [rdx + 1016]
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0x82,0x00,0x04,0x00,0x00]
+ vsqrtsd xmm8, xmm24, qword ptr [rdx + 1024]
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0x42,0x80]
+ vsqrtsd xmm8, xmm24, qword ptr [rdx - 1024]
+
+// CHECK: vsqrtsd xmm8, xmm24, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xbf,0x00,0x51,0x82,0xf8,0xfb,0xff,0xff]
+ vsqrtsd xmm8, xmm24, qword ptr [rdx - 1032]
+
+// CHECK: vsqrtss xmm25, xmm14, xmm11
+// CHECK: encoding: [0x62,0x41,0x0e,0x08,0x51,0xcb]
+ vsqrtss xmm25, xmm14, xmm11
+
+// CHECK: vsqrtss xmm25 {k7}, xmm14, xmm11
+// CHECK: encoding: [0x62,0x41,0x0e,0x0f,0x51,0xcb]
+ vsqrtss xmm25 {k7}, xmm14, xmm11
+
+// CHECK: vsqrtss xmm25 {k7} {z}, xmm14, xmm11
+// CHECK: encoding: [0x62,0x41,0x0e,0x8f,0x51,0xcb]
+ vsqrtss xmm25 {k7} {z}, xmm14, xmm11
+
+// CHECK: vsqrtss xmm25, xmm14, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0x41,0x0e,0x18,0x51,0xcb]
+ vsqrtss xmm25, xmm14, xmm11, {rn-sae}
+
+// CHECK: vsqrtss xmm25, xmm14, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0x41,0x0e,0x58,0x51,0xcb]
+ vsqrtss xmm25, xmm14, xmm11, {ru-sae}
+
+// CHECK: vsqrtss xmm25, xmm14, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0x41,0x0e,0x38,0x51,0xcb]
+ vsqrtss xmm25, xmm14, xmm11, {rd-sae}
+
+// CHECK: vsqrtss xmm25, xmm14, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0x41,0x0e,0x78,0x51,0xcb]
+ vsqrtss xmm25, xmm14, xmm11, {rz-sae}
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x0e,0x08,0x51,0x09]
+ vsqrtss xmm25, xmm14, dword ptr [rcx]
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x0e,0x08,0x51,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vsqrtss xmm25, xmm14, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x0e,0x08,0x51,0x4a,0x7f]
+ vsqrtss xmm25, xmm14, dword ptr [rdx + 508]
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x0e,0x08,0x51,0x8a,0x00,0x02,0x00,0x00]
+ vsqrtss xmm25, xmm14, dword ptr [rdx + 512]
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x0e,0x08,0x51,0x4a,0x80]
+ vsqrtss xmm25, xmm14, dword ptr [rdx - 512]
+
+// CHECK: vsqrtss xmm25, xmm14, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x0e,0x08,0x51,0x8a,0xfc,0xfd,0xff,0xff]
+ vsqrtss xmm25, xmm14, dword ptr [rdx - 516]
+
+// CHECK: vsubpd zmm21, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0x40,0x5c,0xe8]
+ vsubpd zmm21, zmm28, zmm8
+
+// CHECK: vsubpd zmm21 {k1}, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0x41,0x5c,0xe8]
+ vsubpd zmm21 {k1}, zmm28, zmm8
+
+// CHECK: vsubpd zmm21 {k1} {z}, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0xc1,0x5c,0xe8]
+ vsubpd zmm21 {k1} {z}, zmm28, zmm8
+
+// CHECK: vsubpd zmm21, zmm28, zmm8, {rn-sae}
+// CHECK: encoding: [0x62,0xc1,0x9d,0x10,0x5c,0xe8]
+ vsubpd zmm21, zmm28, zmm8, {rn-sae}
+
+// CHECK: vsubpd zmm21, zmm28, zmm8, {ru-sae}
+// CHECK: encoding: [0x62,0xc1,0x9d,0x50,0x5c,0xe8]
+ vsubpd zmm21, zmm28, zmm8, {ru-sae}
+
+// CHECK: vsubpd zmm21, zmm28, zmm8, {rd-sae}
+// CHECK: encoding: [0x62,0xc1,0x9d,0x30,0x5c,0xe8]
+ vsubpd zmm21, zmm28, zmm8, {rd-sae}
+
+// CHECK: vsubpd zmm21, zmm28, zmm8, {rz-sae}
+// CHECK: encoding: [0x62,0xc1,0x9d,0x70,0x5c,0xe8]
+ vsubpd zmm21, zmm28, zmm8, {rz-sae}
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x5c,0x29]
+ vsubpd zmm21, zmm28, zmmword ptr [rcx]
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x9d,0x40,0x5c,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vsubpd zmm21, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsubpd zmm21, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x5c,0x29]
+ vsubpd zmm21, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x5c,0x6a,0x7f]
+ vsubpd zmm21, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x5c,0xaa,0x00,0x20,0x00,0x00]
+ vsubpd zmm21, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x5c,0x6a,0x80]
+ vsubpd zmm21, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vsubpd zmm21, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x5c,0xaa,0xc0,0xdf,0xff,0xff]
+ vsubpd zmm21, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vsubpd zmm21, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x5c,0x6a,0x7f]
+ vsubpd zmm21, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vsubpd zmm21, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x5c,0xaa,0x00,0x04,0x00,0x00]
+ vsubpd zmm21, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vsubpd zmm21, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x5c,0x6a,0x80]
+ vsubpd zmm21, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vsubpd zmm21, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x5c,0xaa,0xf8,0xfb,0xff,0xff]
+ vsubpd zmm21, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vsubps zmm19, zmm10, zmm5
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0xdd]
+ vsubps zmm19, zmm10, zmm5
+
+// CHECK: vsubps zmm19 {k7}, zmm10, zmm5
+// CHECK: encoding: [0x62,0xe1,0x2c,0x4f,0x5c,0xdd]
+ vsubps zmm19 {k7}, zmm10, zmm5
+
+// CHECK: vsubps zmm19 {k7} {z}, zmm10, zmm5
+// CHECK: encoding: [0x62,0xe1,0x2c,0xcf,0x5c,0xdd]
+ vsubps zmm19 {k7} {z}, zmm10, zmm5
+
+// CHECK: vsubps zmm19, zmm10, zmm5, {rn-sae}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x18,0x5c,0xdd]
+ vsubps zmm19, zmm10, zmm5, {rn-sae}
+
+// CHECK: vsubps zmm19, zmm10, zmm5, {ru-sae}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0xdd]
+ vsubps zmm19, zmm10, zmm5, {ru-sae}
+
+// CHECK: vsubps zmm19, zmm10, zmm5, {rd-sae}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x38,0x5c,0xdd]
+ vsubps zmm19, zmm10, zmm5, {rd-sae}
+
+// CHECK: vsubps zmm19, zmm10, zmm5, {rz-sae}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x78,0x5c,0xdd]
+ vsubps zmm19, zmm10, zmm5, {rz-sae}
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0x19]
+ vsubps zmm19, zmm10, zmmword ptr [rcx]
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x2c,0x48,0x5c,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vsubps zmm19, zmm10, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsubps zmm19, zmm10, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0x19]
+ vsubps zmm19, zmm10, dword ptr [rcx]{1to16}
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0x5a,0x7f]
+ vsubps zmm19, zmm10, zmmword ptr [rdx + 8128]
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0x9a,0x00,0x20,0x00,0x00]
+ vsubps zmm19, zmm10, zmmword ptr [rdx + 8192]
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0x5a,0x80]
+ vsubps zmm19, zmm10, zmmword ptr [rdx - 8192]
+
+// CHECK: vsubps zmm19, zmm10, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x2c,0x48,0x5c,0x9a,0xc0,0xdf,0xff,0xff]
+ vsubps zmm19, zmm10, zmmword ptr [rdx - 8256]
+
+// CHECK: vsubps zmm19, zmm10, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0x5a,0x7f]
+ vsubps zmm19, zmm10, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vsubps zmm19, zmm10, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0x9a,0x00,0x02,0x00,0x00]
+ vsubps zmm19, zmm10, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vsubps zmm19, zmm10, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0x5a,0x80]
+ vsubps zmm19, zmm10, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vsubps zmm19, zmm10, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe1,0x2c,0x58,0x5c,0x9a,0xfc,0xfd,0xff,0xff]
+ vsubps zmm19, zmm10, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vsubsd xmm24, xmm23, xmm13
+// CHECK: encoding: [0x62,0x41,0xc7,0x00,0x5c,0xc5]
+ vsubsd xmm24, xmm23, xmm13
+
+// CHECK: vsubsd xmm24 {k7}, xmm23, xmm13
+// CHECK: encoding: [0x62,0x41,0xc7,0x07,0x5c,0xc5]
+ vsubsd xmm24 {k7}, xmm23, xmm13
+
+// CHECK: vsubsd xmm24 {k7} {z}, xmm23, xmm13
+// CHECK: encoding: [0x62,0x41,0xc7,0x87,0x5c,0xc5]
+ vsubsd xmm24 {k7} {z}, xmm23, xmm13
+
+// CHECK: vsubsd xmm24, xmm23, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x41,0xc7,0x10,0x5c,0xc5]
+ vsubsd xmm24, xmm23, xmm13, {rn-sae}
+
+// CHECK: vsubsd xmm24, xmm23, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x41,0xc7,0x50,0x5c,0xc5]
+ vsubsd xmm24, xmm23, xmm13, {ru-sae}
+
+// CHECK: vsubsd xmm24, xmm23, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x41,0xc7,0x30,0x5c,0xc5]
+ vsubsd xmm24, xmm23, xmm13, {rd-sae}
+
+// CHECK: vsubsd xmm24, xmm23, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x41,0xc7,0x70,0x5c,0xc5]
+ vsubsd xmm24, xmm23, xmm13, {rz-sae}
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0xc7,0x00,0x5c,0x01]
+ vsubsd xmm24, xmm23, qword ptr [rcx]
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0xc7,0x00,0x5c,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vsubsd xmm24, xmm23, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x61,0xc7,0x00,0x5c,0x42,0x7f]
+ vsubsd xmm24, xmm23, qword ptr [rdx + 1016]
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x61,0xc7,0x00,0x5c,0x82,0x00,0x04,0x00,0x00]
+ vsubsd xmm24, xmm23, qword ptr [rdx + 1024]
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x61,0xc7,0x00,0x5c,0x42,0x80]
+ vsubsd xmm24, xmm23, qword ptr [rdx - 1024]
+
+// CHECK: vsubsd xmm24, xmm23, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x61,0xc7,0x00,0x5c,0x82,0xf8,0xfb,0xff,0xff]
+ vsubsd xmm24, xmm23, qword ptr [rdx - 1032]
+
+// CHECK: vsubss xmm27, xmm20, xmm16
+// CHECK: encoding: [0x62,0x21,0x5e,0x00,0x5c,0xd8]
+ vsubss xmm27, xmm20, xmm16
+
+// CHECK: vsubss xmm27 {k6}, xmm20, xmm16
+// CHECK: encoding: [0x62,0x21,0x5e,0x06,0x5c,0xd8]
+ vsubss xmm27 {k6}, xmm20, xmm16
+
+// CHECK: vsubss xmm27 {k6} {z}, xmm20, xmm16
+// CHECK: encoding: [0x62,0x21,0x5e,0x86,0x5c,0xd8]
+ vsubss xmm27 {k6} {z}, xmm20, xmm16
+
+// CHECK: vsubss xmm27, xmm20, xmm16, {rn-sae}
+// CHECK: encoding: [0x62,0x21,0x5e,0x10,0x5c,0xd8]
+ vsubss xmm27, xmm20, xmm16, {rn-sae}
+
+// CHECK: vsubss xmm27, xmm20, xmm16, {ru-sae}
+// CHECK: encoding: [0x62,0x21,0x5e,0x50,0x5c,0xd8]
+ vsubss xmm27, xmm20, xmm16, {ru-sae}
+
+// CHECK: vsubss xmm27, xmm20, xmm16, {rd-sae}
+// CHECK: encoding: [0x62,0x21,0x5e,0x30,0x5c,0xd8]
+ vsubss xmm27, xmm20, xmm16, {rd-sae}
+
+// CHECK: vsubss xmm27, xmm20, xmm16, {rz-sae}
+// CHECK: encoding: [0x62,0x21,0x5e,0x70,0x5c,0xd8]
+ vsubss xmm27, xmm20, xmm16, {rz-sae}
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x5e,0x00,0x5c,0x19]
+ vsubss xmm27, xmm20, dword ptr [rcx]
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x5e,0x00,0x5c,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vsubss xmm27, xmm20, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x5e,0x00,0x5c,0x5a,0x7f]
+ vsubss xmm27, xmm20, dword ptr [rdx + 508]
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x5e,0x00,0x5c,0x9a,0x00,0x02,0x00,0x00]
+ vsubss xmm27, xmm20, dword ptr [rdx + 512]
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x5e,0x00,0x5c,0x5a,0x80]
+ vsubss xmm27, xmm20, dword ptr [rdx - 512]
+
+// CHECK: vsubss xmm27, xmm20, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x5e,0x00,0x5c,0x9a,0xfc,0xfd,0xff,0xff]
+ vsubss xmm27, xmm20, dword ptr [rdx - 516]
+
+// CHECK: vucomisd xmm21, xmm19
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0x2e,0xeb]
+ vucomisd xmm21, xmm19
+
+// CHECK: vucomisd xmm21, xmm19, {sae}
+// CHECK: encoding: [0x62,0xa1,0xfd,0x18,0x2e,0xeb]
+ vucomisd xmm21, xmm19, {sae}
+
+// CHECK: vucomisd xmm21, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2e,0x29]
+ vucomisd xmm21, qword ptr [rcx]
+
+// CHECK: vucomisd xmm21, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfd,0x08,0x2e,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vucomisd xmm21, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vucomisd xmm21, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2e,0x6a,0x7f]
+ vucomisd xmm21, qword ptr [rdx + 1016]
+
+// CHECK: vucomisd xmm21, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2e,0xaa,0x00,0x04,0x00,0x00]
+ vucomisd xmm21, qword ptr [rdx + 1024]
+
+// CHECK: vucomisd xmm21, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2e,0x6a,0x80]
+ vucomisd xmm21, qword ptr [rdx - 1024]
+
+// CHECK: vucomisd xmm21, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xfd,0x08,0x2e,0xaa,0xf8,0xfb,0xff,0xff]
+ vucomisd xmm21, qword ptr [rdx - 1032]
+
+// CHECK: vucomiss xmm27, xmm29
+// CHECK: encoding: [0x62,0x01,0x7c,0x08,0x2e,0xdd]
+ vucomiss xmm27, xmm29
+
+// CHECK: vucomiss xmm27, xmm29, {sae}
+// CHECK: encoding: [0x62,0x01,0x7c,0x18,0x2e,0xdd]
+ vucomiss xmm27, xmm29, {sae}
+
+// CHECK: vucomiss xmm27, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x2e,0x19]
+ vucomiss xmm27, dword ptr [rcx]
+
+// CHECK: vucomiss xmm27, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x7c,0x08,0x2e,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vucomiss xmm27, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vucomiss xmm27, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x2e,0x5a,0x7f]
+ vucomiss xmm27, dword ptr [rdx + 508]
+
+// CHECK: vucomiss xmm27, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x2e,0x9a,0x00,0x02,0x00,0x00]
+ vucomiss xmm27, dword ptr [rdx + 512]
+
+// CHECK: vucomiss xmm27, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x2e,0x5a,0x80]
+ vucomiss xmm27, dword ptr [rdx - 512]
+
+// CHECK: vucomiss xmm27, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x7c,0x08,0x2e,0x9a,0xfc,0xfd,0xff,0xff]
+ vucomiss xmm27, dword ptr [rdx - 516]
+
+// CHECK: vunpckhpd zmm6, zmm23, zmm12
+// CHECK: encoding: [0x62,0xd1,0xc5,0x40,0x15,0xf4]
+ vunpckhpd zmm6, zmm23, zmm12
+
+// CHECK: vunpckhpd zmm6 {k7}, zmm23, zmm12
+// CHECK: encoding: [0x62,0xd1,0xc5,0x47,0x15,0xf4]
+ vunpckhpd zmm6 {k7}, zmm23, zmm12
+
+// CHECK: vunpckhpd zmm6 {k7} {z}, zmm23, zmm12
+// CHECK: encoding: [0x62,0xd1,0xc5,0xc7,0x15,0xf4]
+ vunpckhpd zmm6 {k7} {z}, zmm23, zmm12
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0x15,0x31]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rcx]
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xc5,0x40,0x15,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vunpckhpd zmm6, zmm23, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0x15,0x31]
+ vunpckhpd zmm6, zmm23, qword ptr [rcx]{1to8}
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0x15,0x72,0x7f]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0x15,0xb2,0x00,0x20,0x00,0x00]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0x15,0x72,0x80]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpckhpd zmm6, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0xc5,0x40,0x15,0xb2,0xc0,0xdf,0xff,0xff]
+ vunpckhpd zmm6, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpckhpd zmm6, zmm23, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0x15,0x72,0x7f]
+ vunpckhpd zmm6, zmm23, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vunpckhpd zmm6, zmm23, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0x15,0xb2,0x00,0x04,0x00,0x00]
+ vunpckhpd zmm6, zmm23, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vunpckhpd zmm6, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0x15,0x72,0x80]
+ vunpckhpd zmm6, zmm23, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vunpckhpd zmm6, zmm23, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf1,0xc5,0x50,0x15,0xb2,0xf8,0xfb,0xff,0xff]
+ vunpckhpd zmm6, zmm23, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vunpckhps zmm29, zmm2, zmm4
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0xec]
+ vunpckhps zmm29, zmm2, zmm4
+
+// CHECK: vunpckhps zmm29 {k4}, zmm2, zmm4
+// CHECK: encoding: [0x62,0x61,0x6c,0x4c,0x15,0xec]
+ vunpckhps zmm29 {k4}, zmm2, zmm4
+
+// CHECK: vunpckhps zmm29 {k4} {z}, zmm2, zmm4
+// CHECK: encoding: [0x62,0x61,0x6c,0xcc,0x15,0xec]
+ vunpckhps zmm29 {k4} {z}, zmm2, zmm4
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0x29]
+ vunpckhps zmm29, zmm2, zmmword ptr [rcx]
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x6c,0x48,0x15,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vunpckhps zmm29, zmm2, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vunpckhps zmm29, zmm2, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x6c,0x58,0x15,0x29]
+ vunpckhps zmm29, zmm2, dword ptr [rcx]{1to16}
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0x6a,0x7f]
+ vunpckhps zmm29, zmm2, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0xaa,0x00,0x20,0x00,0x00]
+ vunpckhps zmm29, zmm2, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0x6a,0x80]
+ vunpckhps zmm29, zmm2, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpckhps zmm29, zmm2, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x6c,0x48,0x15,0xaa,0xc0,0xdf,0xff,0xff]
+ vunpckhps zmm29, zmm2, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpckhps zmm29, zmm2, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x6c,0x58,0x15,0x6a,0x7f]
+ vunpckhps zmm29, zmm2, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vunpckhps zmm29, zmm2, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x6c,0x58,0x15,0xaa,0x00,0x02,0x00,0x00]
+ vunpckhps zmm29, zmm2, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vunpckhps zmm29, zmm2, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x6c,0x58,0x15,0x6a,0x80]
+ vunpckhps zmm29, zmm2, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vunpckhps zmm29, zmm2, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x6c,0x58,0x15,0xaa,0xfc,0xfd,0xff,0xff]
+ vunpckhps zmm29, zmm2, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vunpcklpd zmm18, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0x40,0x14,0xd0]
+ vunpcklpd zmm18, zmm28, zmm8
+
+// CHECK: vunpcklpd zmm18 {k1}, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0x41,0x14,0xd0]
+ vunpcklpd zmm18 {k1}, zmm28, zmm8
+
+// CHECK: vunpcklpd zmm18 {k1} {z}, zmm28, zmm8
+// CHECK: encoding: [0x62,0xc1,0x9d,0xc1,0x14,0xd0]
+ vunpcklpd zmm18 {k1} {z}, zmm28, zmm8
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x14,0x11]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rcx]
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0x9d,0x40,0x14,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vunpcklpd zmm18, zmm28, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x14,0x11]
+ vunpcklpd zmm18, zmm28, qword ptr [rcx]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x14,0x52,0x7f]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x14,0x92,0x00,0x20,0x00,0x00]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x14,0x52,0x80]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpcklpd zmm18, zmm28, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x14,0x92,0xc0,0xdf,0xff,0xff]
+ vunpcklpd zmm18, zmm28, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpcklpd zmm18, zmm28, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x14,0x52,0x7f]
+ vunpcklpd zmm18, zmm28, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm28, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x14,0x92,0x00,0x04,0x00,0x00]
+ vunpcklpd zmm18, zmm28, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm28, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x14,0x52,0x80]
+ vunpcklpd zmm18, zmm28, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vunpcklpd zmm18, zmm28, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0x9d,0x50,0x14,0x92,0xf8,0xfb,0xff,0xff]
+ vunpcklpd zmm18, zmm28, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vunpcklps zmm25, zmm14, zmm6
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0xce]
+ vunpcklps zmm25, zmm14, zmm6
+
+// CHECK: vunpcklps zmm25 {k6}, zmm14, zmm6
+// CHECK: encoding: [0x62,0x61,0x0c,0x4e,0x14,0xce]
+ vunpcklps zmm25 {k6}, zmm14, zmm6
+
+// CHECK: vunpcklps zmm25 {k6} {z}, zmm14, zmm6
+// CHECK: encoding: [0x62,0x61,0x0c,0xce,0x14,0xce]
+ vunpcklps zmm25 {k6} {z}, zmm14, zmm6
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0x09]
+ vunpcklps zmm25, zmm14, zmmword ptr [rcx]
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x0c,0x48,0x14,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vunpcklps zmm25, zmm14, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vunpcklps zmm25, zmm14, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0c,0x58,0x14,0x09]
+ vunpcklps zmm25, zmm14, dword ptr [rcx]{1to16}
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0x4a,0x7f]
+ vunpcklps zmm25, zmm14, zmmword ptr [rdx + 8128]
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0x8a,0x00,0x20,0x00,0x00]
+ vunpcklps zmm25, zmm14, zmmword ptr [rdx + 8192]
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0x4a,0x80]
+ vunpcklps zmm25, zmm14, zmmword ptr [rdx - 8192]
+
+// CHECK: vunpcklps zmm25, zmm14, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x61,0x0c,0x48,0x14,0x8a,0xc0,0xdf,0xff,0xff]
+ vunpcklps zmm25, zmm14, zmmword ptr [rdx - 8256]
+
+// CHECK: vunpcklps zmm25, zmm14, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0c,0x58,0x14,0x4a,0x7f]
+ vunpcklps zmm25, zmm14, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vunpcklps zmm25, zmm14, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0c,0x58,0x14,0x8a,0x00,0x02,0x00,0x00]
+ vunpcklps zmm25, zmm14, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vunpcklps zmm25, zmm14, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0c,0x58,0x14,0x4a,0x80]
+ vunpcklps zmm25, zmm14, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vunpcklps zmm25, zmm14, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x61,0x0c,0x58,0x14,0x8a,0xfc,0xfd,0xff,0xff]
+ vunpcklps zmm25, zmm14, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpternlogd zmm10, zmm13, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0x15,0x48,0x25,0xd2,0xab]
+ vpternlogd zmm10, zmm13, zmm10, 171
+
+// CHECK: vpternlogd zmm10 {k7}, zmm13, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0x15,0x4f,0x25,0xd2,0xab]
+ vpternlogd zmm10 {k7}, zmm13, zmm10, 171
+
+// CHECK: vpternlogd zmm10 {k7} {z}, zmm13, zmm10, 171
+// CHECK: encoding: [0x62,0x53,0x15,0xcf,0x25,0xd2,0xab]
+ vpternlogd zmm10 {k7} {z}, zmm13, zmm10, 171
+
+// CHECK: vpternlogd zmm10, zmm13, zmm10, 123
+// CHECK: encoding: [0x62,0x53,0x15,0x48,0x25,0xd2,0x7b]
+ vpternlogd zmm10, zmm13, zmm10, 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0x15,0x48,0x25,0x11,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rcx], 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0x15,0x48,0x25,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpternlogd zmm10, zmm13, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x15,0x58,0x25,0x11,0x7b]
+ vpternlogd zmm10, zmm13, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0x15,0x48,0x25,0x52,0x7f,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0x15,0x48,0x25,0x92,0x00,0x20,0x00,0x00,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0x15,0x48,0x25,0x52,0x80,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpternlogd zmm10, zmm13, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0x15,0x48,0x25,0x92,0xc0,0xdf,0xff,0xff,0x7b]
+ vpternlogd zmm10, zmm13, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpternlogd zmm10, zmm13, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x15,0x58,0x25,0x52,0x7f,0x7b]
+ vpternlogd zmm10, zmm13, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpternlogd zmm10, zmm13, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x15,0x58,0x25,0x92,0x00,0x02,0x00,0x00,0x7b]
+ vpternlogd zmm10, zmm13, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpternlogd zmm10, zmm13, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x15,0x58,0x25,0x52,0x80,0x7b]
+ vpternlogd zmm10, zmm13, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpternlogd zmm10, zmm13, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x73,0x15,0x58,0x25,0x92,0xfc,0xfd,0xff,0xff,0x7b]
+ vpternlogd zmm10, zmm13, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmm13, 171
+// CHECK: encoding: [0x62,0xc3,0x9d,0x48,0x25,0xc5,0xab]
+ vpternlogq zmm16, zmm12, zmm13, 171
+
+// CHECK: vpternlogq zmm16 {k2}, zmm12, zmm13, 171
+// CHECK: encoding: [0x62,0xc3,0x9d,0x4a,0x25,0xc5,0xab]
+ vpternlogq zmm16 {k2}, zmm12, zmm13, 171
+
+// CHECK: vpternlogq zmm16 {k2} {z}, zmm12, zmm13, 171
+// CHECK: encoding: [0x62,0xc3,0x9d,0xca,0x25,0xc5,0xab]
+ vpternlogq zmm16 {k2} {z}, zmm12, zmm13, 171
+
+// CHECK: vpternlogq zmm16, zmm12, zmm13, 123
+// CHECK: encoding: [0x62,0xc3,0x9d,0x48,0x25,0xc5,0x7b]
+ vpternlogq zmm16, zmm12, zmm13, 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x48,0x25,0x01,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rcx], 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xa3,0x9d,0x48,0x25,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpternlogq zmm16, zmm12, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x58,0x25,0x01,0x7b]
+ vpternlogq zmm16, zmm12, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x48,0x25,0x42,0x7f,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x48,0x25,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x48,0x25,0x42,0x80,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpternlogq zmm16, zmm12, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x48,0x25,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vpternlogq zmm16, zmm12, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpternlogq zmm16, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x58,0x25,0x42,0x7f,0x7b]
+ vpternlogq zmm16, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpternlogq zmm16, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x58,0x25,0x82,0x00,0x04,0x00,0x00,0x7b]
+ vpternlogq zmm16, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpternlogq zmm16, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x58,0x25,0x42,0x80,0x7b]
+ vpternlogq zmm16, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpternlogq zmm16, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xe3,0x9d,0x58,0x25,0x82,0xf8,0xfb,0xff,0xff,0x7b]
+ vpternlogq zmm16, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpmovqb xmm23, zmm14
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x32,0xf7]
+ vpmovqb xmm23, zmm14
+
+// CHECK: vpmovqb xmm23 {k2}, zmm14
+// CHECK: encoding: [0x62,0x32,0x7e,0x4a,0x32,0xf7]
+ vpmovqb xmm23 {k2}, zmm14
+
+// CHECK: vpmovqb xmm23 {k2} {z}, zmm14
+// CHECK: encoding: [0x62,0x32,0x7e,0xca,0x32,0xf7]
+ vpmovqb xmm23 {k2} {z}, zmm14
+
+// CHECK: vpmovsqb xmm20, zmm25
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x22,0xcc]
+ vpmovsqb xmm20, zmm25
+
+// CHECK: vpmovsqb xmm20 {k1}, zmm25
+// CHECK: encoding: [0x62,0x22,0x7e,0x49,0x22,0xcc]
+ vpmovsqb xmm20 {k1}, zmm25
+
+// CHECK: vpmovsqb xmm20 {k1} {z}, zmm25
+// CHECK: encoding: [0x62,0x22,0x7e,0xc9,0x22,0xcc]
+ vpmovsqb xmm20 {k1} {z}, zmm25
+
+// CHECK: vpmovusqb xmm8, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0x48,0x12,0xd0]
+ vpmovusqb xmm8, zmm2
+
+// CHECK: vpmovusqb xmm8 {k4}, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0x4c,0x12,0xd0]
+ vpmovusqb xmm8 {k4}, zmm2
+
+// CHECK: vpmovusqb xmm8 {k4} {z}, zmm2
+// CHECK: encoding: [0x62,0xd2,0x7e,0xcc,0x12,0xd0]
+ vpmovusqb xmm8 {k4} {z}, zmm2
+
+// CHECK: vpmovqw xmm21, zmm19
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x34,0xdd]
+ vpmovqw xmm21, zmm19
+
+// CHECK: vpmovqw xmm21 {k2}, zmm19
+// CHECK: encoding: [0x62,0xa2,0x7e,0x4a,0x34,0xdd]
+ vpmovqw xmm21 {k2}, zmm19
+
+// CHECK: vpmovqw xmm21 {k2} {z}, zmm19
+// CHECK: encoding: [0x62,0xa2,0x7e,0xca,0x34,0xdd]
+ vpmovqw xmm21 {k2} {z}, zmm19
+
+// CHECK: vpmovsqw xmm16, zmm4
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x24,0xe0]
+ vpmovsqw xmm16, zmm4
+
+// CHECK: vpmovsqw xmm16 {k6}, zmm4
+// CHECK: encoding: [0x62,0xb2,0x7e,0x4e,0x24,0xe0]
+ vpmovsqw xmm16 {k6}, zmm4
+
+// CHECK: vpmovsqw xmm16 {k6} {z}, zmm4
+// CHECK: encoding: [0x62,0xb2,0x7e,0xce,0x24,0xe0]
+ vpmovsqw xmm16 {k6} {z}, zmm4
+
+// CHECK: vpmovusqw xmm29, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0x48,0x14,0xcd]
+ vpmovusqw xmm29, zmm1
+
+// CHECK: vpmovusqw xmm29 {k2}, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0x4a,0x14,0xcd]
+ vpmovusqw xmm29 {k2}, zmm1
+
+// CHECK: vpmovusqw xmm29 {k2} {z}, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0xca,0x14,0xcd]
+ vpmovusqw xmm29 {k2} {z}, zmm1
+
+// CHECK: vpmovqd ymm28, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x35,0xec]
+ vpmovqd ymm28, zmm29
+
+// CHECK: vpmovqd ymm28 {k2}, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0x4a,0x35,0xec]
+ vpmovqd ymm28 {k2}, zmm29
+
+// CHECK: vpmovqd ymm28 {k2} {z}, zmm29
+// CHECK: encoding: [0x62,0x02,0x7e,0xca,0x35,0xec]
+ vpmovqd ymm28 {k2} {z}, zmm29
+
+// CHECK: vpmovsqd ymm22, zmm9
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x25,0xce]
+ vpmovsqd ymm22, zmm9
+
+// CHECK: vpmovsqd ymm22 {k4}, zmm9
+// CHECK: encoding: [0x62,0x32,0x7e,0x4c,0x25,0xce]
+ vpmovsqd ymm22 {k4}, zmm9
+
+// CHECK: vpmovsqd ymm22 {k4} {z}, zmm9
+// CHECK: encoding: [0x62,0x32,0x7e,0xcc,0x25,0xce]
+ vpmovsqd ymm22 {k4} {z}, zmm9
+
+// CHECK: vpmovusqd ymm2, zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x15,0xd2]
+ vpmovusqd ymm2, zmm26
+
+// CHECK: vpmovusqd ymm2 {k7}, zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x4f,0x15,0xd2]
+ vpmovusqd ymm2 {k7}, zmm26
+
+// CHECK: vpmovusqd ymm2 {k7} {z}, zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0xcf,0x15,0xd2]
+ vpmovusqd ymm2 {k7} {z}, zmm26
+
+// CHECK: vpmovdb xmm1, zmm11
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x31,0xd9]
+ vpmovdb xmm1, zmm11
+
+// CHECK: vpmovdb xmm1 {k7}, zmm11
+// CHECK: encoding: [0x62,0x72,0x7e,0x4f,0x31,0xd9]
+ vpmovdb xmm1 {k7}, zmm11
+
+// CHECK: vpmovdb xmm1 {k7} {z}, zmm11
+// CHECK: encoding: [0x62,0x72,0x7e,0xcf,0x31,0xd9]
+ vpmovdb xmm1 {k7} {z}, zmm11
+
+// CHECK: vpmovsdb xmm27, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0x48,0x21,0xcb]
+ vpmovsdb xmm27, zmm1
+
+// CHECK: vpmovsdb xmm27 {k7}, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0x4f,0x21,0xcb]
+ vpmovsdb xmm27 {k7}, zmm1
+
+// CHECK: vpmovsdb xmm27 {k7} {z}, zmm1
+// CHECK: encoding: [0x62,0x92,0x7e,0xcf,0x21,0xcb]
+ vpmovsdb xmm27 {k7} {z}, zmm1
+
+// CHECK: vpmovusdb xmm3, zmm19
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x11,0xdb]
+ vpmovusdb xmm3, zmm19
+
+// CHECK: vpmovusdb xmm3 {k2}, zmm19
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4a,0x11,0xdb]
+ vpmovusdb xmm3 {k2}, zmm19
+
+// CHECK: vpmovusdb xmm3 {k2} {z}, zmm19
+// CHECK: encoding: [0x62,0xe2,0x7e,0xca,0x11,0xdb]
+ vpmovusdb xmm3 {k2} {z}, zmm19
+
+// CHECK: vpmovdw ymm9, zmm10
+// CHECK: encoding: [0x62,0x52,0x7e,0x48,0x33,0xd1]
+ vpmovdw ymm9, zmm10
+
+// CHECK: vpmovdw ymm9 {k4}, zmm10
+// CHECK: encoding: [0x62,0x52,0x7e,0x4c,0x33,0xd1]
+ vpmovdw ymm9 {k4}, zmm10
+
+// CHECK: vpmovdw ymm9 {k4} {z}, zmm10
+// CHECK: encoding: [0x62,0x52,0x7e,0xcc,0x33,0xd1]
+ vpmovdw ymm9 {k4} {z}, zmm10
+
+// CHECK: vpmovsdw ymm24, zmm24
+// CHECK: encoding: [0x62,0x02,0x7e,0x48,0x23,0xc0]
+ vpmovsdw ymm24, zmm24
+
+// CHECK: vpmovsdw ymm24 {k6}, zmm24
+// CHECK: encoding: [0x62,0x02,0x7e,0x4e,0x23,0xc0]
+ vpmovsdw ymm24 {k6}, zmm24
+
+// CHECK: vpmovsdw ymm24 {k6} {z}, zmm24
+// CHECK: encoding: [0x62,0x02,0x7e,0xce,0x23,0xc0]
+ vpmovsdw ymm24 {k6} {z}, zmm24
+
+// CHECK: vpmovusdw ymm15, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7e,0x48,0x13,0xcf]
+ vpmovusdw ymm15, zmm17
+
+// CHECK: vpmovusdw ymm15 {k7}, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7e,0x4f,0x13,0xcf]
+ vpmovusdw ymm15 {k7}, zmm17
+
+// CHECK: vpmovusdw ymm15 {k7} {z}, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7e,0xcf,0x13,0xcf]
+ vpmovusdw ymm15 {k7} {z}, zmm17
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0xcc,0xab]
+ vshuff32x4 zmm17, zmm11, zmm4, 171
+
+// CHECK: vshuff32x4 zmm17 {k6}, zmm11, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0x25,0x4e,0x23,0xcc,0xab]
+ vshuff32x4 zmm17 {k6}, zmm11, zmm4, 171
+
+// CHECK: vshuff32x4 zmm17 {k6} {z}, zmm11, zmm4, 171
+// CHECK: encoding: [0x62,0xe3,0x25,0xce,0x23,0xcc,0xab]
+ vshuff32x4 zmm17 {k6} {z}, zmm11, zmm4, 171
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmm4, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0xcc,0x7b]
+ vshuff32x4 zmm17, zmm11, zmm4, 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0x09,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rcx], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xa3,0x25,0x48,0x23,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x58,0x23,0x09,0x7b]
+ vshuff32x4 zmm17, zmm11, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0x4a,0x7f,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0x4a,0x80,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x48,0x23,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshuff32x4 zmm17, zmm11, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x58,0x23,0x4a,0x7f,0x7b]
+ vshuff32x4 zmm17, zmm11, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x58,0x23,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vshuff32x4 zmm17, zmm11, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x58,0x23,0x4a,0x80,0x7b]
+ vshuff32x4 zmm17, zmm11, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshuff32x4 zmm17, zmm11, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xe3,0x25,0x58,0x23,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vshuff32x4 zmm17, zmm11, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmm24, 171
+// CHECK: encoding: [0x62,0x93,0x9d,0x48,0x23,0xf0,0xab]
+ vshuff64x2 zmm6, zmm12, zmm24, 171
+
+// CHECK: vshuff64x2 zmm6 {k3}, zmm12, zmm24, 171
+// CHECK: encoding: [0x62,0x93,0x9d,0x4b,0x23,0xf0,0xab]
+ vshuff64x2 zmm6 {k3}, zmm12, zmm24, 171
+
+// CHECK: vshuff64x2 zmm6 {k3} {z}, zmm12, zmm24, 171
+// CHECK: encoding: [0x62,0x93,0x9d,0xcb,0x23,0xf0,0xab]
+ vshuff64x2 zmm6 {k3} {z}, zmm12, zmm24, 171
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmm24, 123
+// CHECK: encoding: [0x62,0x93,0x9d,0x48,0x23,0xf0,0x7b]
+ vshuff64x2 zmm6, zmm12, zmm24, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x48,0x23,0x31,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rcx], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x9d,0x48,0x23,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x58,0x23,0x31,0x7b]
+ vshuff64x2 zmm6, zmm12, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x48,0x23,0x72,0x7f,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x48,0x23,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x48,0x23,0x72,0x80,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x48,0x23,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vshuff64x2 zmm6, zmm12, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x58,0x23,0x72,0x7f,0x7b]
+ vshuff64x2 zmm6, zmm12, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x58,0x23,0xb2,0x00,0x04,0x00,0x00,0x7b]
+ vshuff64x2 zmm6, zmm12, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x58,0x23,0x72,0x80,0x7b]
+ vshuff64x2 zmm6, zmm12, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshuff64x2 zmm6, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf3,0x9d,0x58,0x23,0xb2,0xf8,0xfb,0xff,0xff,0x7b]
+ vshuff64x2 zmm6, zmm12, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0xdd,0xab]
+ vshufi32x4 zmm3, zmm24, zmm5, 171
+
+// CHECK: vshufi32x4 zmm3 {k4}, zmm24, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x44,0x43,0xdd,0xab]
+ vshufi32x4 zmm3 {k4}, zmm24, zmm5, 171
+
+// CHECK: vshufi32x4 zmm3 {k4} {z}, zmm24, zmm5, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0xc4,0x43,0xdd,0xab]
+ vshufi32x4 zmm3 {k4} {z}, zmm24, zmm5, 171
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmm5, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0xdd,0x7b]
+ vshufi32x4 zmm3, zmm24, zmm5, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0x19,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rcx], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x3d,0x40,0x43,0x9c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x43,0x19,0x7b]
+ vshufi32x4 zmm3, zmm24, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0x5a,0x7f,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0x9a,0x00,0x20,0x00,0x00,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0x5a,0x80,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x40,0x43,0x9a,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufi32x4 zmm3, zmm24, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x43,0x5a,0x7f,0x7b]
+ vshufi32x4 zmm3, zmm24, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x43,0x9a,0x00,0x02,0x00,0x00,0x7b]
+ vshufi32x4 zmm3, zmm24, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x43,0x5a,0x80,0x7b]
+ vshufi32x4 zmm3, zmm24, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vshufi32x4 zmm3, zmm24, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x50,0x43,0x9a,0xfc,0xfd,0xff,0xff,0x7b]
+ vshufi32x4 zmm3, zmm24, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmm9, 171
+// CHECK: encoding: [0x62,0x43,0x8d,0x48,0x43,0xf1,0xab]
+ vshufi64x2 zmm30, zmm14, zmm9, 171
+
+// CHECK: vshufi64x2 zmm30 {k1}, zmm14, zmm9, 171
+// CHECK: encoding: [0x62,0x43,0x8d,0x49,0x43,0xf1,0xab]
+ vshufi64x2 zmm30 {k1}, zmm14, zmm9, 171
+
+// CHECK: vshufi64x2 zmm30 {k1} {z}, zmm14, zmm9, 171
+// CHECK: encoding: [0x62,0x43,0x8d,0xc9,0x43,0xf1,0xab]
+ vshufi64x2 zmm30 {k1} {z}, zmm14, zmm9, 171
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmm9, 123
+// CHECK: encoding: [0x62,0x43,0x8d,0x48,0x43,0xf1,0x7b]
+ vshufi64x2 zmm30, zmm14, zmm9, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x48,0x43,0x31,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rcx], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x8d,0x48,0x43,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x58,0x43,0x31,0x7b]
+ vshufi64x2 zmm30, zmm14, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x48,0x43,0x72,0x7f,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x48,0x43,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x48,0x43,0x72,0x80,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x48,0x43,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vshufi64x2 zmm30, zmm14, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x58,0x43,0x72,0x7f,0x7b]
+ vshufi64x2 zmm30, zmm14, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x58,0x43,0xb2,0x00,0x04,0x00,0x00,0x7b]
+ vshufi64x2 zmm30, zmm14, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x58,0x43,0x72,0x80,0x7b]
+ vshufi64x2 zmm30, zmm14, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vshufi64x2 zmm30, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0x8d,0x58,0x43,0xb2,0xf8,0xfb,0xff,0xff,0x7b]
+ vshufi64x2 zmm30, zmm14, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpermq zmm18, zmm22, zmm19
+// CHECK: encoding: [0x62,0xa2,0xcd,0x40,0x36,0xd3]
+ vpermq zmm18, zmm22, zmm19
+
+// CHECK: vpermq zmm18 {k7}, zmm22, zmm19
+// CHECK: encoding: [0x62,0xa2,0xcd,0x47,0x36,0xd3]
+ vpermq zmm18 {k7}, zmm22, zmm19
+
+// CHECK: vpermq zmm18 {k7} {z}, zmm22, zmm19
+// CHECK: encoding: [0x62,0xa2,0xcd,0xc7,0x36,0xd3]
+ vpermq zmm18 {k7} {z}, zmm22, zmm19
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x36,0x11]
+ vpermq zmm18, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x40,0x36,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpermq zmm18, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermq zmm18, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x36,0x11]
+ vpermq zmm18, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x36,0x52,0x7f]
+ vpermq zmm18, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x36,0x92,0x00,0x20,0x00,0x00]
+ vpermq zmm18, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x36,0x52,0x80]
+ vpermq zmm18, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermq zmm18, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x36,0x92,0xc0,0xdf,0xff,0xff]
+ vpermq zmm18, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermq zmm18, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x36,0x52,0x7f]
+ vpermq zmm18, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermq zmm18, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x36,0x92,0x00,0x04,0x00,0x00]
+ vpermq zmm18, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermq zmm18, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x36,0x52,0x80]
+ vpermq zmm18, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermq zmm18, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x36,0x92,0xf8,0xfb,0xff,0xff]
+ vpermq zmm18, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermpd zmm27, zmm12, zmm2
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0xda]
+ vpermpd zmm27, zmm12, zmm2
+
+// CHECK: vpermpd zmm27 {k3}, zmm12, zmm2
+// CHECK: encoding: [0x62,0x62,0x9d,0x4b,0x16,0xda]
+ vpermpd zmm27 {k3}, zmm12, zmm2
+
+// CHECK: vpermpd zmm27 {k3} {z}, zmm12, zmm2
+// CHECK: encoding: [0x62,0x62,0x9d,0xcb,0x16,0xda]
+ vpermpd zmm27 {k3} {z}, zmm12, zmm2
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0x19]
+ vpermpd zmm27, zmm12, zmmword ptr [rcx]
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x9d,0x48,0x16,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpermpd zmm27, zmm12, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermpd zmm27, zmm12, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0x9d,0x58,0x16,0x19]
+ vpermpd zmm27, zmm12, qword ptr [rcx]{1to8}
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0x5a,0x7f]
+ vpermpd zmm27, zmm12, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0x9a,0x00,0x20,0x00,0x00]
+ vpermpd zmm27, zmm12, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0x5a,0x80]
+ vpermpd zmm27, zmm12, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermpd zmm27, zmm12, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x9d,0x48,0x16,0x9a,0xc0,0xdf,0xff,0xff]
+ vpermpd zmm27, zmm12, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermpd zmm27, zmm12, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0x9d,0x58,0x16,0x5a,0x7f]
+ vpermpd zmm27, zmm12, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermpd zmm27, zmm12, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x9d,0x58,0x16,0x9a,0x00,0x04,0x00,0x00]
+ vpermpd zmm27, zmm12, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermpd zmm27, zmm12, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0x9d,0x58,0x16,0x5a,0x80]
+ vpermpd zmm27, zmm12, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermpd zmm27, zmm12, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0x9d,0x58,0x16,0x9a,0xf8,0xfb,0xff,0xff]
+ vpermpd zmm27, zmm12, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermt2d zmm19, zmm15, zmm25
+// CHECK: encoding: [0x62,0x82,0x05,0x48,0x7e,0xd9]
+ vpermt2d zmm19, zmm15, zmm25
+
+// CHECK: vpermt2d zmm19 {k2}, zmm15, zmm25
+// CHECK: encoding: [0x62,0x82,0x05,0x4a,0x7e,0xd9]
+ vpermt2d zmm19 {k2}, zmm15, zmm25
+
+// CHECK: vpermt2d zmm19 {k2} {z}, zmm15, zmm25
+// CHECK: encoding: [0x62,0x82,0x05,0xca,0x7e,0xd9]
+ vpermt2d zmm19 {k2} {z}, zmm15, zmm25
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x05,0x48,0x7e,0x19]
+ vpermt2d zmm19, zmm15, zmmword ptr [rcx]
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x05,0x48,0x7e,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpermt2d zmm19, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermt2d zmm19, zmm15, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x05,0x58,0x7e,0x19]
+ vpermt2d zmm19, zmm15, dword ptr [rcx]{1to16}
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0x05,0x48,0x7e,0x5a,0x7f]
+ vpermt2d zmm19, zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0x05,0x48,0x7e,0x9a,0x00,0x20,0x00,0x00]
+ vpermt2d zmm19, zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0x05,0x48,0x7e,0x5a,0x80]
+ vpermt2d zmm19, zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2d zmm19, zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0x05,0x48,0x7e,0x9a,0xc0,0xdf,0xff,0xff]
+ vpermt2d zmm19, zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2d zmm19, zmm15, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x05,0x58,0x7e,0x5a,0x7f]
+ vpermt2d zmm19, zmm15, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermt2d zmm19, zmm15, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x05,0x58,0x7e,0x9a,0x00,0x02,0x00,0x00]
+ vpermt2d zmm19, zmm15, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermt2d zmm19, zmm15, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x05,0x58,0x7e,0x5a,0x80]
+ vpermt2d zmm19, zmm15, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermt2d zmm19, zmm15, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xe2,0x05,0x58,0x7e,0x9a,0xfc,0xfd,0xff,0xff]
+ vpermt2d zmm19, zmm15, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermt2q zmm2, zmm21, zmm4
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0xd4]
+ vpermt2q zmm2, zmm21, zmm4
+
+// CHECK: vpermt2q zmm2 {k7}, zmm21, zmm4
+// CHECK: encoding: [0x62,0xf2,0xd5,0x47,0x7e,0xd4]
+ vpermt2q zmm2 {k7}, zmm21, zmm4
+
+// CHECK: vpermt2q zmm2 {k7} {z}, zmm21, zmm4
+// CHECK: encoding: [0x62,0xf2,0xd5,0xc7,0x7e,0xd4]
+ vpermt2q zmm2 {k7} {z}, zmm21, zmm4
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0x11]
+ vpermt2q zmm2, zmm21, zmmword ptr [rcx]
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xd5,0x40,0x7e,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpermt2q zmm2, zmm21, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermt2q zmm2, zmm21, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xd5,0x50,0x7e,0x11]
+ vpermt2q zmm2, zmm21, qword ptr [rcx]{1to8}
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0x52,0x7f]
+ vpermt2q zmm2, zmm21, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0x92,0x00,0x20,0x00,0x00]
+ vpermt2q zmm2, zmm21, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0x52,0x80]
+ vpermt2q zmm2, zmm21, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2q zmm2, zmm21, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xd5,0x40,0x7e,0x92,0xc0,0xdf,0xff,0xff]
+ vpermt2q zmm2, zmm21, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2q zmm2, zmm21, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xd5,0x50,0x7e,0x52,0x7f]
+ vpermt2q zmm2, zmm21, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermt2q zmm2, zmm21, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xd5,0x50,0x7e,0x92,0x00,0x04,0x00,0x00]
+ vpermt2q zmm2, zmm21, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermt2q zmm2, zmm21, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xd5,0x50,0x7e,0x52,0x80]
+ vpermt2q zmm2, zmm21, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermt2q zmm2, zmm21, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xd5,0x50,0x7e,0x92,0xf8,0xfb,0xff,0xff]
+ vpermt2q zmm2, zmm21, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermt2ps zmm7, zmm15, zmm7
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0xff]
+ vpermt2ps zmm7, zmm15, zmm7
+
+// CHECK: vpermt2ps zmm7 {k7}, zmm15, zmm7
+// CHECK: encoding: [0x62,0xf2,0x05,0x4f,0x7f,0xff]
+ vpermt2ps zmm7 {k7}, zmm15, zmm7
+
+// CHECK: vpermt2ps zmm7 {k7} {z}, zmm15, zmm7
+// CHECK: encoding: [0x62,0xf2,0x05,0xcf,0x7f,0xff]
+ vpermt2ps zmm7 {k7} {z}, zmm15, zmm7
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0x39]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rcx]
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x05,0x48,0x7f,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermt2ps zmm7, zmm15, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x05,0x58,0x7f,0x39]
+ vpermt2ps zmm7, zmm15, dword ptr [rcx]{1to16}
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0x7a,0x7f]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0xba,0x00,0x20,0x00,0x00]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0x7a,0x80]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2ps zmm7, zmm15, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x05,0x48,0x7f,0xba,0xc0,0xdf,0xff,0xff]
+ vpermt2ps zmm7, zmm15, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2ps zmm7, zmm15, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x05,0x58,0x7f,0x7a,0x7f]
+ vpermt2ps zmm7, zmm15, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermt2ps zmm7, zmm15, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x05,0x58,0x7f,0xba,0x00,0x02,0x00,0x00]
+ vpermt2ps zmm7, zmm15, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermt2ps zmm7, zmm15, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x05,0x58,0x7f,0x7a,0x80]
+ vpermt2ps zmm7, zmm15, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermt2ps zmm7, zmm15, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x05,0x58,0x7f,0xba,0xfc,0xfd,0xff,0xff]
+ vpermt2ps zmm7, zmm15, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermt2pd zmm12, zmm22, zmm25
+// CHECK: encoding: [0x62,0x12,0xcd,0x40,0x7f,0xe1]
+ vpermt2pd zmm12, zmm22, zmm25
+
+// CHECK: vpermt2pd zmm12 {k1}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x12,0xcd,0x41,0x7f,0xe1]
+ vpermt2pd zmm12 {k1}, zmm22, zmm25
+
+// CHECK: vpermt2pd zmm12 {k1} {z}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x12,0xcd,0xc1,0x7f,0xe1]
+ vpermt2pd zmm12 {k1} {z}, zmm22, zmm25
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0x7f,0x21]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0xcd,0x40,0x7f,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermt2pd zmm12, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0x7f,0x21]
+ vpermt2pd zmm12, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0x7f,0x62,0x7f]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0x7f,0xa2,0x00,0x20,0x00,0x00]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0x7f,0x62,0x80]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermt2pd zmm12, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0xcd,0x40,0x7f,0xa2,0xc0,0xdf,0xff,0xff]
+ vpermt2pd zmm12, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermt2pd zmm12, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0x7f,0x62,0x7f]
+ vpermt2pd zmm12, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermt2pd zmm12, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0x7f,0xa2,0x00,0x04,0x00,0x00]
+ vpermt2pd zmm12, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermt2pd zmm12, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0x7f,0x62,0x80]
+ vpermt2pd zmm12, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermt2pd zmm12, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x72,0xcd,0x50,0x7f,0xa2,0xf8,0xfb,0xff,0xff]
+ vpermt2pd zmm12, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: valignq zmm25, zmm17, zmm16, 171
+// CHECK: encoding: [0x62,0x23,0xf5,0x40,0x03,0xc8,0xab]
+ valignq zmm25, zmm17, zmm16, 171
+
+// CHECK: valignq zmm25 {k7}, zmm17, zmm16, 171
+// CHECK: encoding: [0x62,0x23,0xf5,0x47,0x03,0xc8,0xab]
+ valignq zmm25 {k7}, zmm17, zmm16, 171
+
+// CHECK: valignq zmm25 {k7} {z}, zmm17, zmm16, 171
+// CHECK: encoding: [0x62,0x23,0xf5,0xc7,0x03,0xc8,0xab]
+ valignq zmm25 {k7} {z}, zmm17, zmm16, 171
+
+// CHECK: valignq zmm25, zmm17, zmm16, 123
+// CHECK: encoding: [0x62,0x23,0xf5,0x40,0x03,0xc8,0x7b]
+ valignq zmm25, zmm17, zmm16, 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x40,0x03,0x09,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rcx], 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0xf5,0x40,0x03,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: valignq zmm25, zmm17, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x50,0x03,0x09,0x7b]
+ valignq zmm25, zmm17, qword ptr [rcx]{1to8}, 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x40,0x03,0x4a,0x7f,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rdx + 8128], 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x40,0x03,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rdx + 8192], 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x40,0x03,0x4a,0x80,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rdx - 8192], 123
+
+// CHECK: valignq zmm25, zmm17, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x40,0x03,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ valignq zmm25, zmm17, zmmword ptr [rdx - 8256], 123
+
+// CHECK: valignq zmm25, zmm17, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x50,0x03,0x4a,0x7f,0x7b]
+ valignq zmm25, zmm17, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: valignq zmm25, zmm17, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x50,0x03,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ valignq zmm25, zmm17, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: valignq zmm25, zmm17, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x50,0x03,0x4a,0x80,0x7b]
+ valignq zmm25, zmm17, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: valignq zmm25, zmm17, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x63,0xf5,0x50,0x03,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ valignq zmm25, zmm17, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vcvtsd2usi eax, xmm11
+// CHECK: encoding: [0x62,0xd1,0x7f,0x08,0x79,0xc3]
+ vcvtsd2usi eax, xmm11
+
+// CHECK: vcvtsd2usi eax, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x18,0x79,0xc3]
+ vcvtsd2usi eax, xmm11, {rn-sae}
+
+// CHECK: vcvtsd2usi eax, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x58,0x79,0xc3]
+ vcvtsd2usi eax, xmm11, {ru-sae}
+
+// CHECK: vcvtsd2usi eax, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x38,0x79,0xc3]
+ vcvtsd2usi eax, xmm11, {rd-sae}
+
+// CHECK: vcvtsd2usi eax, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x78,0x79,0xc3]
+ vcvtsd2usi eax, xmm11, {rz-sae}
+
+// CHECK: vcvtsd2usi eax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x01]
+ vcvtsd2usi eax, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsd2usi eax, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi eax, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi eax, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x42,0x80]
+ vcvtsd2usi eax, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi eax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi eax, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi ebp, xmm11
+// CHECK: encoding: [0x62,0xd1,0x7f,0x08,0x79,0xeb]
+ vcvtsd2usi ebp, xmm11
+
+// CHECK: vcvtsd2usi ebp, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x18,0x79,0xeb]
+ vcvtsd2usi ebp, xmm11, {rn-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x58,0x79,0xeb]
+ vcvtsd2usi ebp, xmm11, {ru-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x38,0x79,0xeb]
+ vcvtsd2usi ebp, xmm11, {rd-sae}
+
+// CHECK: vcvtsd2usi ebp, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0x7f,0x78,0x79,0xeb]
+ vcvtsd2usi ebp, xmm11, {rz-sae}
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x29]
+ vcvtsd2usi ebp, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x79,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsd2usi ebp, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x6a,0x7f]
+ vcvtsd2usi ebp, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0xaa,0x00,0x04,0x00,0x00]
+ vcvtsd2usi ebp, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0x6a,0x80]
+ vcvtsd2usi ebp, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi ebp, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x79,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi ebp, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi r13d, xmm11
+// CHECK: encoding: [0x62,0x51,0x7f,0x08,0x79,0xeb]
+ vcvtsd2usi r13d, xmm11
+
+// CHECK: vcvtsd2usi r13d, xmm11, {rn-sae}
+// CHECK: encoding: [0x62,0x51,0x7f,0x18,0x79,0xeb]
+ vcvtsd2usi r13d, xmm11, {rn-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm11, {ru-sae}
+// CHECK: encoding: [0x62,0x51,0x7f,0x58,0x79,0xeb]
+ vcvtsd2usi r13d, xmm11, {ru-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm11, {rd-sae}
+// CHECK: encoding: [0x62,0x51,0x7f,0x38,0x79,0xeb]
+ vcvtsd2usi r13d, xmm11, {rd-sae}
+
+// CHECK: vcvtsd2usi r13d, xmm11, {rz-sae}
+// CHECK: encoding: [0x62,0x51,0x7f,0x78,0x79,0xeb]
+ vcvtsd2usi r13d, xmm11, {rz-sae}
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x29]
+ vcvtsd2usi r13d, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x79,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsd2usi r13d, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x6a,0x7f]
+ vcvtsd2usi r13d, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0xaa,0x00,0x04,0x00,0x00]
+ vcvtsd2usi r13d, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0x6a,0x80]
+ vcvtsd2usi r13d, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi r13d, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x79,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi r13d, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi rax, xmm13
+// CHECK: encoding: [0x62,0xd1,0xff,0x08,0x79,0xc5]
+ vcvtsd2usi rax, xmm13
+
+// CHECK: vcvtsd2usi rax, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x18,0x79,0xc5]
+ vcvtsd2usi rax, xmm13, {rn-sae}
+
+// CHECK: vcvtsd2usi rax, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x58,0x79,0xc5]
+ vcvtsd2usi rax, xmm13, {ru-sae}
+
+// CHECK: vcvtsd2usi rax, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x38,0x79,0xc5]
+ vcvtsd2usi rax, xmm13, {rd-sae}
+
+// CHECK: vcvtsd2usi rax, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0xd1,0xff,0x78,0x79,0xc5]
+ vcvtsd2usi rax, xmm13, {rz-sae}
+
+// CHECK: vcvtsd2usi rax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x01]
+ vcvtsd2usi rax, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsd2usi rax, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi rax, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi rax, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x42,0x80]
+ vcvtsd2usi rax, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi rax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi rax, qword ptr [rdx - 1032]
+
+// CHECK: vcvtsd2usi r8, xmm13
+// CHECK: encoding: [0x62,0x51,0xff,0x08,0x79,0xc5]
+ vcvtsd2usi r8, xmm13
+
+// CHECK: vcvtsd2usi r8, xmm13, {rn-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x18,0x79,0xc5]
+ vcvtsd2usi r8, xmm13, {rn-sae}
+
+// CHECK: vcvtsd2usi r8, xmm13, {ru-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x58,0x79,0xc5]
+ vcvtsd2usi r8, xmm13, {ru-sae}
+
+// CHECK: vcvtsd2usi r8, xmm13, {rd-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x38,0x79,0xc5]
+ vcvtsd2usi r8, xmm13, {rd-sae}
+
+// CHECK: vcvtsd2usi r8, xmm13, {rz-sae}
+// CHECK: encoding: [0x62,0x51,0xff,0x78,0x79,0xc5]
+ vcvtsd2usi r8, xmm13, {rz-sae}
+
+// CHECK: vcvtsd2usi r8, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x01]
+ vcvtsd2usi r8, qword ptr [rcx]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtsd2usi r8, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x42,0x7f]
+ vcvtsd2usi r8, qword ptr [rdx + 1016]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x82,0x00,0x04,0x00,0x00]
+ vcvtsd2usi r8, qword ptr [rdx + 1024]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x42,0x80]
+ vcvtsd2usi r8, qword ptr [rdx - 1024]
+
+// CHECK: vcvtsd2usi r8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x79,0x82,0xf8,0xfb,0xff,0xff]
+ vcvtsd2usi r8, qword ptr [rdx - 1032]
+
+// CHECK: vcvtss2usi eax, xmm1
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xc1]
+ vcvtss2usi eax, xmm1
+
+// CHECK: vcvtss2usi eax, xmm1, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x18,0x79,0xc1]
+ vcvtss2usi eax, xmm1, {rn-sae}
+
+// CHECK: vcvtss2usi eax, xmm1, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x58,0x79,0xc1]
+ vcvtss2usi eax, xmm1, {ru-sae}
+
+// CHECK: vcvtss2usi eax, xmm1, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x38,0x79,0xc1]
+ vcvtss2usi eax, xmm1, {rd-sae}
+
+// CHECK: vcvtss2usi eax, xmm1, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x78,0x79,0xc1]
+ vcvtss2usi eax, xmm1, {rz-sae}
+
+// CHECK: vcvtss2usi eax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x01]
+ vcvtss2usi eax, dword ptr [rcx]
+
+// CHECK: vcvtss2usi eax, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtss2usi eax, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x42,0x7f]
+ vcvtss2usi eax, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi eax, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x42,0x80]
+ vcvtss2usi eax, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi eax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi eax, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi ebp, xmm1
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xe9]
+ vcvtss2usi ebp, xmm1
+
+// CHECK: vcvtss2usi ebp, xmm1, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x18,0x79,0xe9]
+ vcvtss2usi ebp, xmm1, {rn-sae}
+
+// CHECK: vcvtss2usi ebp, xmm1, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x58,0x79,0xe9]
+ vcvtss2usi ebp, xmm1, {ru-sae}
+
+// CHECK: vcvtss2usi ebp, xmm1, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x38,0x79,0xe9]
+ vcvtss2usi ebp, xmm1, {rd-sae}
+
+// CHECK: vcvtss2usi ebp, xmm1, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0x7e,0x78,0x79,0xe9]
+ vcvtss2usi ebp, xmm1, {rz-sae}
+
+// CHECK: vcvtss2usi ebp, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x29]
+ vcvtss2usi ebp, dword ptr [rcx]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x79,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtss2usi ebp, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x6a,0x7f]
+ vcvtss2usi ebp, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xaa,0x00,0x02,0x00,0x00]
+ vcvtss2usi ebp, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0x6a,0x80]
+ vcvtss2usi ebp, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi ebp, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x79,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi ebp, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi r13d, xmm1
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0xe9]
+ vcvtss2usi r13d, xmm1
+
+// CHECK: vcvtss2usi r13d, xmm1, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0x7e,0x18,0x79,0xe9]
+ vcvtss2usi r13d, xmm1, {rn-sae}
+
+// CHECK: vcvtss2usi r13d, xmm1, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0x7e,0x58,0x79,0xe9]
+ vcvtss2usi r13d, xmm1, {ru-sae}
+
+// CHECK: vcvtss2usi r13d, xmm1, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0x7e,0x38,0x79,0xe9]
+ vcvtss2usi r13d, xmm1, {rd-sae}
+
+// CHECK: vcvtss2usi r13d, xmm1, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0x7e,0x78,0x79,0xe9]
+ vcvtss2usi r13d, xmm1, {rz-sae}
+
+// CHECK: vcvtss2usi r13d, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x29]
+ vcvtss2usi r13d, dword ptr [rcx]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x79,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtss2usi r13d, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x6a,0x7f]
+ vcvtss2usi r13d, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0xaa,0x00,0x02,0x00,0x00]
+ vcvtss2usi r13d, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0x6a,0x80]
+ vcvtss2usi r13d, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi r13d, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x79,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi r13d, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi rax, xmm3
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0xc3]
+ vcvtss2usi rax, xmm3
+
+// CHECK: vcvtss2usi rax, xmm3, {rn-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x18,0x79,0xc3]
+ vcvtss2usi rax, xmm3, {rn-sae}
+
+// CHECK: vcvtss2usi rax, xmm3, {ru-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x58,0x79,0xc3]
+ vcvtss2usi rax, xmm3, {ru-sae}
+
+// CHECK: vcvtss2usi rax, xmm3, {rd-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x38,0x79,0xc3]
+ vcvtss2usi rax, xmm3, {rd-sae}
+
+// CHECK: vcvtss2usi rax, xmm3, {rz-sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x78,0x79,0xc3]
+ vcvtss2usi rax, xmm3, {rz-sae}
+
+// CHECK: vcvtss2usi rax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x01]
+ vcvtss2usi rax, dword ptr [rcx]
+
+// CHECK: vcvtss2usi rax, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xfe,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtss2usi rax, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x42,0x7f]
+ vcvtss2usi rax, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi rax, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x42,0x80]
+ vcvtss2usi rax, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi rax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi rax, dword ptr [rdx - 516]
+
+// CHECK: vcvtss2usi r8, xmm3
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0xc3]
+ vcvtss2usi r8, xmm3
+
+// CHECK: vcvtss2usi r8, xmm3, {rn-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x18,0x79,0xc3]
+ vcvtss2usi r8, xmm3, {rn-sae}
+
+// CHECK: vcvtss2usi r8, xmm3, {ru-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x58,0x79,0xc3]
+ vcvtss2usi r8, xmm3, {ru-sae}
+
+// CHECK: vcvtss2usi r8, xmm3, {rd-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x38,0x79,0xc3]
+ vcvtss2usi r8, xmm3, {rd-sae}
+
+// CHECK: vcvtss2usi r8, xmm3, {rz-sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x78,0x79,0xc3]
+ vcvtss2usi r8, xmm3, {rz-sae}
+
+// CHECK: vcvtss2usi r8, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x01]
+ vcvtss2usi r8, dword ptr [rcx]
+
+// CHECK: vcvtss2usi r8, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xfe,0x08,0x79,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvtss2usi r8, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x42,0x7f]
+ vcvtss2usi r8, dword ptr [rdx + 508]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x82,0x00,0x02,0x00,0x00]
+ vcvtss2usi r8, dword ptr [rdx + 512]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x42,0x80]
+ vcvtss2usi r8, dword ptr [rdx - 512]
+
+// CHECK: vcvtss2usi r8, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x79,0x82,0xfc,0xfd,0xff,0xff]
+ vcvtss2usi r8, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, eax
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0xd0]
+ vcvtusi2sd xmm26, xmm17, eax
+
+// CHECK: vcvtusi2sd xmm26, xmm17, ebp
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0xd5]
+ vcvtusi2sd xmm26, xmm17, ebp
+
+// CHECK: vcvtusi2sd xmm26, xmm17, r13d
+// CHECK: encoding: [0x62,0x41,0x77,0x00,0x7b,0xd5]
+ vcvtusi2sd xmm26, xmm17, r13d
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0x11]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rcx]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x21,0x77,0x00,0x7b,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0x52,0x7f]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rdx + 508]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0x92,0x00,0x02,0x00,0x00]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rdx + 512]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0x52,0x80]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rdx - 512]
+
+// CHECK: vcvtusi2sd xmm26, xmm17, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x61,0x77,0x00,0x7b,0x92,0xfc,0xfd,0xff,0xff]
+ vcvtusi2sd xmm26, xmm17, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, rax
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, rax
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rn-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xcf,0x18,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rn-sae}, rax
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {ru-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xcf,0x58,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {ru-sae}, rax
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rd-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xcf,0x38,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rd-sae}, rax
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rz-sae}, rax
+// CHECK: encoding: [0x62,0x71,0xcf,0x78,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rz-sae}, rax
+
+// CHECK: vcvtusi2sd xmm11, xmm6, r8
+// CHECK: encoding: [0x62,0x51,0xcf,0x08,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, r8
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rn-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xcf,0x18,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rn-sae}, r8
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {ru-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xcf,0x58,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {ru-sae}, r8
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rd-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xcf,0x38,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rd-sae}, r8
+
+// CHECK: vcvtusi2sd xmm11, xmm6, {rz-sae}, r8
+// CHECK: encoding: [0x62,0x51,0xcf,0x78,0x7b,0xd8]
+ vcvtusi2sd xmm11, xmm6, {rz-sae}, r8
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0x19]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rcx]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xcf,0x08,0x7b,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0x5a,0x7f]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rdx + 1016]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0x9a,0x00,0x04,0x00,0x00]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rdx + 1024]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0x5a,0x80]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rdx - 1024]
+
+// CHECK: vcvtusi2sd xmm11, xmm6, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xcf,0x08,0x7b,0x9a,0xf8,0xfb,0xff,0xff]
+ vcvtusi2sd xmm11, xmm6, qword ptr [rdx - 1032]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, eax
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0xc8]
+ vcvtusi2ss xmm9, xmm7, eax
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rn-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x46,0x18,0x7b,0xc8]
+ vcvtusi2ss xmm9, xmm7, {rn-sae}, eax
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {ru-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x46,0x58,0x7b,0xc8]
+ vcvtusi2ss xmm9, xmm7, {ru-sae}, eax
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rd-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x46,0x38,0x7b,0xc8]
+ vcvtusi2ss xmm9, xmm7, {rd-sae}, eax
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rz-sae}, eax
+// CHECK: encoding: [0x62,0x71,0x46,0x78,0x7b,0xc8]
+ vcvtusi2ss xmm9, xmm7, {rz-sae}, eax
+
+// CHECK: vcvtusi2ss xmm9, xmm7, ebp
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, ebp
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rn-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x46,0x18,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rn-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {ru-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x46,0x58,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {ru-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rd-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x46,0x38,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rd-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rz-sae}, ebp
+// CHECK: encoding: [0x62,0x71,0x46,0x78,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rz-sae}, ebp
+
+// CHECK: vcvtusi2ss xmm9, xmm7, r13d
+// CHECK: encoding: [0x62,0x51,0x46,0x08,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, r13d
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rn-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x46,0x18,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rn-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {ru-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x46,0x58,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {ru-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rd-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x46,0x38,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rd-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm9, xmm7, {rz-sae}, r13d
+// CHECK: encoding: [0x62,0x51,0x46,0x78,0x7b,0xcd]
+ vcvtusi2ss xmm9, xmm7, {rz-sae}, r13d
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0x09]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rcx]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x46,0x08,0x7b,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0x4a,0x7f]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rdx + 508]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0x8a,0x00,0x02,0x00,0x00]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rdx + 512]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0x4a,0x80]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rdx - 512]
+
+// CHECK: vcvtusi2ss xmm9, xmm7, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x46,0x08,0x7b,0x8a,0xfc,0xfd,0xff,0xff]
+ vcvtusi2ss xmm9, xmm7, dword ptr [rdx - 516]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, rax
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rn-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x18,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rn-sae}, rax
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {ru-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x58,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {ru-sae}, rax
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rd-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x38,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rd-sae}, rax
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rz-sae}, rax
+// CHECK: encoding: [0x62,0xe1,0xae,0x78,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rz-sae}, rax
+
+// CHECK: vcvtusi2ss xmm21, xmm10, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x08,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, r8
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rn-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x18,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rn-sae}, r8
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {ru-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x58,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {ru-sae}, r8
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rd-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x38,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rd-sae}, r8
+
+// CHECK: vcvtusi2ss xmm21, xmm10, {rz-sae}, r8
+// CHECK: encoding: [0x62,0xc1,0xae,0x78,0x7b,0xe8]
+ vcvtusi2ss xmm21, xmm10, {rz-sae}, r8
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0x29]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rcx]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xae,0x08,0x7b,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0x6a,0x7f]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rdx + 1016]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0xaa,0x00,0x04,0x00,0x00]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rdx + 1024]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0x6a,0x80]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rdx - 1024]
+
+// CHECK: vcvtusi2ss xmm21, xmm10, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xe1,0xae,0x08,0x7b,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvtusi2ss xmm21, xmm10, qword ptr [rdx - 1032]
+
+// CHECK: vscalefpd zmm7, zmm4, zmm16
+// CHECK: encoding: [0x62,0xb2,0xdd,0x48,0x2c,0xf8]
+ vscalefpd zmm7, zmm4, zmm16
+
+// CHECK: vscalefpd zmm7 {k5}, zmm4, zmm16
+// CHECK: encoding: [0x62,0xb2,0xdd,0x4d,0x2c,0xf8]
+ vscalefpd zmm7 {k5}, zmm4, zmm16
+
+// CHECK: vscalefpd zmm7 {k5} {z}, zmm4, zmm16
+// CHECK: encoding: [0x62,0xb2,0xdd,0xcd,0x2c,0xf8]
+ vscalefpd zmm7 {k5} {z}, zmm4, zmm16
+
+// CHECK: vscalefpd zmm7, zmm4, zmm16, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0xdd,0x18,0x2c,0xf8]
+ vscalefpd zmm7, zmm4, zmm16, {rn-sae}
+
+// CHECK: vscalefpd zmm7, zmm4, zmm16, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0xdd,0x58,0x2c,0xf8]
+ vscalefpd zmm7, zmm4, zmm16, {ru-sae}
+
+// CHECK: vscalefpd zmm7, zmm4, zmm16, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0xdd,0x38,0x2c,0xf8]
+ vscalefpd zmm7, zmm4, zmm16, {rd-sae}
+
+// CHECK: vscalefpd zmm7, zmm4, zmm16, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0xdd,0x78,0x2c,0xf8]
+ vscalefpd zmm7, zmm4, zmm16, {rz-sae}
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x48,0x2c,0x39]
+ vscalefpd zmm7, zmm4, zmmword ptr [rcx]
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0xdd,0x48,0x2c,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vscalefpd zmm7, zmm4, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vscalefpd zmm7, zmm4, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x58,0x2c,0x39]
+ vscalefpd zmm7, zmm4, qword ptr [rcx]{1to8}
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x48,0x2c,0x7a,0x7f]
+ vscalefpd zmm7, zmm4, zmmword ptr [rdx + 8128]
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x48,0x2c,0xba,0x00,0x20,0x00,0x00]
+ vscalefpd zmm7, zmm4, zmmword ptr [rdx + 8192]
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x48,0x2c,0x7a,0x80]
+ vscalefpd zmm7, zmm4, zmmword ptr [rdx - 8192]
+
+// CHECK: vscalefpd zmm7, zmm4, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0xdd,0x48,0x2c,0xba,0xc0,0xdf,0xff,0xff]
+ vscalefpd zmm7, zmm4, zmmword ptr [rdx - 8256]
+
+// CHECK: vscalefpd zmm7, zmm4, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x58,0x2c,0x7a,0x7f]
+ vscalefpd zmm7, zmm4, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vscalefpd zmm7, zmm4, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x58,0x2c,0xba,0x00,0x04,0x00,0x00]
+ vscalefpd zmm7, zmm4, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vscalefpd zmm7, zmm4, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x58,0x2c,0x7a,0x80]
+ vscalefpd zmm7, zmm4, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vscalefpd zmm7, zmm4, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xf2,0xdd,0x58,0x2c,0xba,0xf8,0xfb,0xff,0xff]
+ vscalefpd zmm7, zmm4, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vscalefps zmm4, zmm11, zmm19
+// CHECK: encoding: [0x62,0xb2,0x25,0x48,0x2c,0xe3]
+ vscalefps zmm4, zmm11, zmm19
+
+// CHECK: vscalefps zmm4 {k2}, zmm11, zmm19
+// CHECK: encoding: [0x62,0xb2,0x25,0x4a,0x2c,0xe3]
+ vscalefps zmm4 {k2}, zmm11, zmm19
+
+// CHECK: vscalefps zmm4 {k2} {z}, zmm11, zmm19
+// CHECK: encoding: [0x62,0xb2,0x25,0xca,0x2c,0xe3]
+ vscalefps zmm4 {k2} {z}, zmm11, zmm19
+
+// CHECK: vscalefps zmm4, zmm11, zmm19, {rn-sae}
+// CHECK: encoding: [0x62,0xb2,0x25,0x18,0x2c,0xe3]
+ vscalefps zmm4, zmm11, zmm19, {rn-sae}
+
+// CHECK: vscalefps zmm4, zmm11, zmm19, {ru-sae}
+// CHECK: encoding: [0x62,0xb2,0x25,0x58,0x2c,0xe3]
+ vscalefps zmm4, zmm11, zmm19, {ru-sae}
+
+// CHECK: vscalefps zmm4, zmm11, zmm19, {rd-sae}
+// CHECK: encoding: [0x62,0xb2,0x25,0x38,0x2c,0xe3]
+ vscalefps zmm4, zmm11, zmm19, {rd-sae}
+
+// CHECK: vscalefps zmm4, zmm11, zmm19, {rz-sae}
+// CHECK: encoding: [0x62,0xb2,0x25,0x78,0x2c,0xe3]
+ vscalefps zmm4, zmm11, zmm19, {rz-sae}
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x25,0x48,0x2c,0x21]
+ vscalefps zmm4, zmm11, zmmword ptr [rcx]
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x25,0x48,0x2c,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vscalefps zmm4, zmm11, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vscalefps zmm4, zmm11, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x25,0x58,0x2c,0x21]
+ vscalefps zmm4, zmm11, dword ptr [rcx]{1to16}
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x25,0x48,0x2c,0x62,0x7f]
+ vscalefps zmm4, zmm11, zmmword ptr [rdx + 8128]
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x25,0x48,0x2c,0xa2,0x00,0x20,0x00,0x00]
+ vscalefps zmm4, zmm11, zmmword ptr [rdx + 8192]
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x25,0x48,0x2c,0x62,0x80]
+ vscalefps zmm4, zmm11, zmmword ptr [rdx - 8192]
+
+// CHECK: vscalefps zmm4, zmm11, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x25,0x48,0x2c,0xa2,0xc0,0xdf,0xff,0xff]
+ vscalefps zmm4, zmm11, zmmword ptr [rdx - 8256]
+
+// CHECK: vscalefps zmm4, zmm11, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x25,0x58,0x2c,0x62,0x7f]
+ vscalefps zmm4, zmm11, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vscalefps zmm4, zmm11, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x25,0x58,0x2c,0xa2,0x00,0x02,0x00,0x00]
+ vscalefps zmm4, zmm11, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vscalefps zmm4, zmm11, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x25,0x58,0x2c,0x62,0x80]
+ vscalefps zmm4, zmm11, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vscalefps zmm4, zmm11, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x25,0x58,0x2c,0xa2,0xfc,0xfd,0xff,0xff]
+ vscalefps zmm4, zmm11, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vscalefsd xmm29, xmm19, xmm22
+// CHECK: encoding: [0x62,0x22,0xe5,0x00,0x2d,0xee]
+ vscalefsd xmm29, xmm19, xmm22
+
+// CHECK: vscalefsd xmm29 {k4}, xmm19, xmm22
+// CHECK: encoding: [0x62,0x22,0xe5,0x04,0x2d,0xee]
+ vscalefsd xmm29 {k4}, xmm19, xmm22
+
+// CHECK: vscalefsd xmm29 {k4} {z}, xmm19, xmm22
+// CHECK: encoding: [0x62,0x22,0xe5,0x84,0x2d,0xee]
+ vscalefsd xmm29 {k4} {z}, xmm19, xmm22
+
+// CHECK: vscalefsd xmm29, xmm19, xmm22, {rn-sae}
+// CHECK: encoding: [0x62,0x22,0xe5,0x10,0x2d,0xee]
+ vscalefsd xmm29, xmm19, xmm22, {rn-sae}
+
+// CHECK: vscalefsd xmm29, xmm19, xmm22, {ru-sae}
+// CHECK: encoding: [0x62,0x22,0xe5,0x50,0x2d,0xee]
+ vscalefsd xmm29, xmm19, xmm22, {ru-sae}
+
+// CHECK: vscalefsd xmm29, xmm19, xmm22, {rd-sae}
+// CHECK: encoding: [0x62,0x22,0xe5,0x30,0x2d,0xee]
+ vscalefsd xmm29, xmm19, xmm22, {rd-sae}
+
+// CHECK: vscalefsd xmm29, xmm19, xmm22, {rz-sae}
+// CHECK: encoding: [0x62,0x22,0xe5,0x70,0x2d,0xee]
+ vscalefsd xmm29, xmm19, xmm22, {rz-sae}
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xe5,0x00,0x2d,0x29]
+ vscalefsd xmm29, xmm19, qword ptr [rcx]
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xe5,0x00,0x2d,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vscalefsd xmm29, xmm19, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x62,0xe5,0x00,0x2d,0x6a,0x7f]
+ vscalefsd xmm29, xmm19, qword ptr [rdx + 1016]
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x62,0xe5,0x00,0x2d,0xaa,0x00,0x04,0x00,0x00]
+ vscalefsd xmm29, xmm19, qword ptr [rdx + 1024]
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x62,0xe5,0x00,0x2d,0x6a,0x80]
+ vscalefsd xmm29, xmm19, qword ptr [rdx - 1024]
+
+// CHECK: vscalefsd xmm29, xmm19, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x62,0xe5,0x00,0x2d,0xaa,0xf8,0xfb,0xff,0xff]
+ vscalefsd xmm29, xmm19, qword ptr [rdx - 1032]
+
+// CHECK: vscalefss xmm20, xmm12, xmm6
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0xe6]
+ vscalefss xmm20, xmm12, xmm6
+
+// CHECK: vscalefss xmm20 {k2}, xmm12, xmm6
+// CHECK: encoding: [0x62,0xe2,0x1d,0x0a,0x2d,0xe6]
+ vscalefss xmm20 {k2}, xmm12, xmm6
+
+// CHECK: vscalefss xmm20 {k2} {z}, xmm12, xmm6
+// CHECK: encoding: [0x62,0xe2,0x1d,0x8a,0x2d,0xe6]
+ vscalefss xmm20 {k2} {z}, xmm12, xmm6
+
+// CHECK: vscalefss xmm20, xmm12, xmm6, {rn-sae}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x18,0x2d,0xe6]
+ vscalefss xmm20, xmm12, xmm6, {rn-sae}
+
+// CHECK: vscalefss xmm20, xmm12, xmm6, {ru-sae}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x58,0x2d,0xe6]
+ vscalefss xmm20, xmm12, xmm6, {ru-sae}
+
+// CHECK: vscalefss xmm20, xmm12, xmm6, {rd-sae}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x38,0x2d,0xe6]
+ vscalefss xmm20, xmm12, xmm6, {rd-sae}
+
+// CHECK: vscalefss xmm20, xmm12, xmm6, {rz-sae}
+// CHECK: encoding: [0x62,0xe2,0x1d,0x78,0x2d,0xe6]
+ vscalefss xmm20, xmm12, xmm6, {rz-sae}
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0x21]
+ vscalefss xmm20, xmm12, dword ptr [rcx]
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0x1d,0x08,0x2d,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vscalefss xmm20, xmm12, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0x62,0x7f]
+ vscalefss xmm20, xmm12, dword ptr [rdx + 508]
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0xa2,0x00,0x02,0x00,0x00]
+ vscalefss xmm20, xmm12, dword ptr [rdx + 512]
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0x62,0x80]
+ vscalefss xmm20, xmm12, dword ptr [rdx - 512]
+
+// CHECK: vscalefss xmm20, xmm12, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xe2,0x1d,0x08,0x2d,0xa2,0xfc,0xfd,0xff,0xff]
+ vscalefss xmm20, xmm12, dword ptr [rdx - 516]
+
+// CHECK: vfixupimmps zmm4, zmm8, zmm7, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0xe7,0xab]
+ vfixupimmps zmm4, zmm8, zmm7, 171
+
+// CHECK: vfixupimmps zmm4 {k7}, zmm8, zmm7, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x4f,0x54,0xe7,0xab]
+ vfixupimmps zmm4 {k7}, zmm8, zmm7, 171
+
+// CHECK: vfixupimmps zmm4 {k7} {z}, zmm8, zmm7, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0xcf,0x54,0xe7,0xab]
+ vfixupimmps zmm4 {k7} {z}, zmm8, zmm7, 171
+
+// CHECK: vfixupimmps zmm4, zmm8, zmm7, {sae}, 171
+// CHECK: encoding: [0x62,0xf3,0x3d,0x18,0x54,0xe7,0xab]
+ vfixupimmps zmm4, zmm8, zmm7, {sae}, 171
+
+// CHECK: vfixupimmps zmm4, zmm8, zmm7, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0xe7,0x7b]
+ vfixupimmps zmm4, zmm8, zmm7, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmm7, {sae}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x18,0x54,0xe7,0x7b]
+ vfixupimmps zmm4, zmm8, zmm7, {sae}, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0x21,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rcx], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x3d,0x48,0x54,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x58,0x54,0x21,0x7b]
+ vfixupimmps zmm4, zmm8, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0x62,0x7f,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0x62,0x80,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x48,0x54,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vfixupimmps zmm4, zmm8, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vfixupimmps zmm4, zmm8, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x58,0x54,0x62,0x7f,0x7b]
+ vfixupimmps zmm4, zmm8, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x58,0x54,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vfixupimmps zmm4, zmm8, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x58,0x54,0x62,0x80,0x7b]
+ vfixupimmps zmm4, zmm8, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vfixupimmps zmm4, zmm8, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf3,0x3d,0x58,0x54,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vfixupimmps zmm4, zmm8, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0xfd,0xab]
+ vfixupimmpd zmm15, zmm5, zmm5, 171
+
+// CHECK: vfixupimmpd zmm15 {k5}, zmm5, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0xd5,0x4d,0x54,0xfd,0xab]
+ vfixupimmpd zmm15 {k5}, zmm5, zmm5, 171
+
+// CHECK: vfixupimmpd zmm15 {k5} {z}, zmm5, zmm5, 171
+// CHECK: encoding: [0x62,0x73,0xd5,0xcd,0x54,0xfd,0xab]
+ vfixupimmpd zmm15 {k5} {z}, zmm5, zmm5, 171
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmm5, {sae}, 171
+// CHECK: encoding: [0x62,0x73,0xd5,0x18,0x54,0xfd,0xab]
+ vfixupimmpd zmm15, zmm5, zmm5, {sae}, 171
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmm5, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0xfd,0x7b]
+ vfixupimmpd zmm15, zmm5, zmm5, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmm5, {sae}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x18,0x54,0xfd,0x7b]
+ vfixupimmpd zmm15, zmm5, zmm5, {sae}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0x39,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rcx], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0xd5,0x48,0x54,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x58,0x54,0x39,0x7b]
+ vfixupimmpd zmm15, zmm5, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0x7a,0x7f,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0xba,0x00,0x20,0x00,0x00,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0x7a,0x80,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x48,0x54,0xba,0xc0,0xdf,0xff,0xff,0x7b]
+ vfixupimmpd zmm15, zmm5, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x58,0x54,0x7a,0x7f,0x7b]
+ vfixupimmpd zmm15, zmm5, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x58,0x54,0xba,0x00,0x04,0x00,0x00,0x7b]
+ vfixupimmpd zmm15, zmm5, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x58,0x54,0x7a,0x80,0x7b]
+ vfixupimmpd zmm15, zmm5, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vfixupimmpd zmm15, zmm5, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xd5,0x58,0x54,0xba,0xf8,0xfb,0xff,0xff,0x7b]
+ vfixupimmpd zmm15, zmm5, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vfixupimmss xmm25, xmm24, xmm7, 171
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0xcf,0xab]
+ vfixupimmss xmm25, xmm24, xmm7, 171
+
+// CHECK: vfixupimmss xmm25 {k4}, xmm24, xmm7, 171
+// CHECK: encoding: [0x62,0x63,0x3d,0x04,0x55,0xcf,0xab]
+ vfixupimmss xmm25 {k4}, xmm24, xmm7, 171
+
+// CHECK: vfixupimmss xmm25 {k4} {z}, xmm24, xmm7, 171
+// CHECK: encoding: [0x62,0x63,0x3d,0x84,0x55,0xcf,0xab]
+ vfixupimmss xmm25 {k4} {z}, xmm24, xmm7, 171
+
+// CHECK: vfixupimmss xmm25, xmm24, xmm7, {sae}, 171
+// CHECK: encoding: [0x62,0x63,0x3d,0x10,0x55,0xcf,0xab]
+ vfixupimmss xmm25, xmm24, xmm7, {sae}, 171
+
+// CHECK: vfixupimmss xmm25, xmm24, xmm7, 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0xcf,0x7b]
+ vfixupimmss xmm25, xmm24, xmm7, 123
+
+// CHECK: vfixupimmss xmm25, xmm24, xmm7, {sae}, 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x10,0x55,0xcf,0x7b]
+ vfixupimmss xmm25, xmm24, xmm7, {sae}, 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0x09,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rcx], 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x3d,0x00,0x55,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0x4a,0x7f,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rdx + 508], 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rdx + 512], 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0x4a,0x80,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rdx - 512], 123
+
+// CHECK: vfixupimmss xmm25, xmm24, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0x63,0x3d,0x00,0x55,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vfixupimmss xmm25, xmm24, dword ptr [rdx - 516], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, xmm16, 171
+// CHECK: encoding: [0x62,0x23,0x9d,0x08,0x55,0xc0,0xab]
+ vfixupimmsd xmm24, xmm12, xmm16, 171
+
+// CHECK: vfixupimmsd xmm24 {k2}, xmm12, xmm16, 171
+// CHECK: encoding: [0x62,0x23,0x9d,0x0a,0x55,0xc0,0xab]
+ vfixupimmsd xmm24 {k2}, xmm12, xmm16, 171
+
+// CHECK: vfixupimmsd xmm24 {k2} {z}, xmm12, xmm16, 171
+// CHECK: encoding: [0x62,0x23,0x9d,0x8a,0x55,0xc0,0xab]
+ vfixupimmsd xmm24 {k2} {z}, xmm12, xmm16, 171
+
+// CHECK: vfixupimmsd xmm24, xmm12, xmm16, {sae}, 171
+// CHECK: encoding: [0x62,0x23,0x9d,0x18,0x55,0xc0,0xab]
+ vfixupimmsd xmm24, xmm12, xmm16, {sae}, 171
+
+// CHECK: vfixupimmsd xmm24, xmm12, xmm16, 123
+// CHECK: encoding: [0x62,0x23,0x9d,0x08,0x55,0xc0,0x7b]
+ vfixupimmsd xmm24, xmm12, xmm16, 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, xmm16, {sae}, 123
+// CHECK: encoding: [0x62,0x23,0x9d,0x18,0x55,0xc0,0x7b]
+ vfixupimmsd xmm24, xmm12, xmm16, {sae}, 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x55,0x01,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rcx], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x9d,0x08,0x55,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x55,0x42,0x7f,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rdx + 1016], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x55,0x82,0x00,0x04,0x00,0x00,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rdx + 1024], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x55,0x42,0x80,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rdx - 1024], 123
+
+// CHECK: vfixupimmsd xmm24, xmm12, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0x63,0x9d,0x08,0x55,0x82,0xf8,0xfb,0xff,0xff,0x7b]
+ vfixupimmsd xmm24, xmm12, qword ptr [rdx - 1032], 123
+
+// CHECK: vpslld zmm27, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xf5,0xab]
+ vpslld zmm27, zmm5, 171
+
+// CHECK: vpslld zmm27 {k1}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0x41,0x72,0xf5,0xab]
+ vpslld zmm27 {k1}, zmm5, 171
+
+// CHECK: vpslld zmm27 {k1} {z}, zmm5, 171
+// CHECK: encoding: [0x62,0xf1,0x25,0xc1,0x72,0xf5,0xab]
+ vpslld zmm27 {k1} {z}, zmm5, 171
+
+// CHECK: vpslld zmm27, zmm5, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xf5,0x7b]
+ vpslld zmm27, zmm5, 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x31,0x7b]
+ vpslld zmm27, zmmword ptr [rcx], 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x25,0x40,0x72,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpslld zmm27, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpslld zmm27, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x31,0x7b]
+ vpslld zmm27, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x72,0x7f,0x7b]
+ vpslld zmm27, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vpslld zmm27, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0x72,0x80,0x7b]
+ vpslld zmm27, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpslld zmm27, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x40,0x72,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpslld zmm27, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpslld zmm27, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x72,0x7f,0x7b]
+ vpslld zmm27, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpslld zmm27, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0xb2,0x00,0x02,0x00,0x00,0x7b]
+ vpslld zmm27, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpslld zmm27, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0x72,0x80,0x7b]
+ vpslld zmm27, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpslld zmm27, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x25,0x50,0x72,0xb2,0xfc,0xfd,0xff,0xff,0x7b]
+ vpslld zmm27, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsllq zmm4, zmm6, 171
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0xf6,0xab]
+ vpsllq zmm4, zmm6, 171
+
+// CHECK: vpsllq zmm4 {k4}, zmm6, 171
+// CHECK: encoding: [0x62,0xf1,0xdd,0x4c,0x73,0xf6,0xab]
+ vpsllq zmm4 {k4}, zmm6, 171
+
+// CHECK: vpsllq zmm4 {k4} {z}, zmm6, 171
+// CHECK: encoding: [0x62,0xf1,0xdd,0xcc,0x73,0xf6,0xab]
+ vpsllq zmm4 {k4} {z}, zmm6, 171
+
+// CHECK: vpsllq zmm4, zmm6, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0xf6,0x7b]
+ vpsllq zmm4, zmm6, 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0x31,0x7b]
+ vpsllq zmm4, zmmword ptr [rcx], 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xdd,0x48,0x73,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpsllq zmm4, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpsllq zmm4, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x73,0x31,0x7b]
+ vpsllq zmm4, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0x72,0x7f,0x7b]
+ vpsllq zmm4, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0xb2,0x00,0x20,0x00,0x00,0x7b]
+ vpsllq zmm4, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0x72,0x80,0x7b]
+ vpsllq zmm4, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsllq zmm4, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x48,0x73,0xb2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsllq zmm4, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsllq zmm4, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x73,0x72,0x7f,0x7b]
+ vpsllq zmm4, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsllq zmm4, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x73,0xb2,0x00,0x04,0x00,0x00,0x7b]
+ vpsllq zmm4, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsllq zmm4, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x73,0x72,0x80,0x7b]
+ vpsllq zmm4, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsllq zmm4, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xdd,0x58,0x73,0xb2,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsllq zmm4, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vpsrad zmm8, zmm20, 171
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x72,0xe4,0xab]
+ vpsrad zmm8, zmm20, 171
+
+// CHECK: vpsrad zmm8 {k2}, zmm20, 171
+// CHECK: encoding: [0x62,0xb1,0x3d,0x4a,0x72,0xe4,0xab]
+ vpsrad zmm8 {k2}, zmm20, 171
+
+// CHECK: vpsrad zmm8 {k2} {z}, zmm20, 171
+// CHECK: encoding: [0x62,0xb1,0x3d,0xca,0x72,0xe4,0xab]
+ vpsrad zmm8 {k2} {z}, zmm20, 171
+
+// CHECK: vpsrad zmm8, zmm20, 123
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x72,0xe4,0x7b]
+ vpsrad zmm8, zmm20, 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x72,0x21,0x7b]
+ vpsrad zmm8, zmmword ptr [rcx], 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x3d,0x48,0x72,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpsrad zmm8, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpsrad zmm8, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x72,0x21,0x7b]
+ vpsrad zmm8, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x72,0x62,0x7f,0x7b]
+ vpsrad zmm8, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x72,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpsrad zmm8, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x72,0x62,0x80,0x7b]
+ vpsrad zmm8, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsrad zmm8, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x48,0x72,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsrad zmm8, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsrad zmm8, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x72,0x62,0x7f,0x7b]
+ vpsrad zmm8, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vpsrad zmm8, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x72,0xa2,0x00,0x02,0x00,0x00,0x7b]
+ vpsrad zmm8, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vpsrad zmm8, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x72,0x62,0x80,0x7b]
+ vpsrad zmm8, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vpsrad zmm8, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x3d,0x58,0x72,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
+ vpsrad zmm8, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vpsraq zmm3, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0x48,0x72,0xe2,0xab]
+ vpsraq zmm3, zmm18, 171
+
+// CHECK: vpsraq zmm3 {k6}, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0x4e,0x72,0xe2,0xab]
+ vpsraq zmm3 {k6}, zmm18, 171
+
+// CHECK: vpsraq zmm3 {k6} {z}, zmm18, 171
+// CHECK: encoding: [0x62,0xb1,0xe5,0xce,0x72,0xe2,0xab]
+ vpsraq zmm3 {k6} {z}, zmm18, 171
+
+// CHECK: vpsraq zmm3, zmm18, 123
+// CHECK: encoding: [0x62,0xb1,0xe5,0x48,0x72,0xe2,0x7b]
+ vpsraq zmm3, zmm18, 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x48,0x72,0x21,0x7b]
+ vpsraq zmm3, zmmword ptr [rcx], 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xe5,0x48,0x72,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vpsraq zmm3, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vpsraq zmm3, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x58,0x72,0x21,0x7b]
+ vpsraq zmm3, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x48,0x72,0x62,0x7f,0x7b]
+ vpsraq zmm3, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x48,0x72,0xa2,0x00,0x20,0x00,0x00,0x7b]
+ vpsraq zmm3, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x48,0x72,0x62,0x80,0x7b]
+ vpsraq zmm3, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vpsraq zmm3, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x48,0x72,0xa2,0xc0,0xdf,0xff,0xff,0x7b]
+ vpsraq zmm3, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vpsraq zmm3, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x58,0x72,0x62,0x7f,0x7b]
+ vpsraq zmm3, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vpsraq zmm3, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x58,0x72,0xa2,0x00,0x04,0x00,0x00,0x7b]
+ vpsraq zmm3, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vpsraq zmm3, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x58,0x72,0x62,0x80,0x7b]
+ vpsraq zmm3, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vpsraq zmm3, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xe5,0x58,0x72,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
+ vpsraq zmm3, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vprolvd zmm28, zmm1, zmm10
+// CHECK: encoding: [0x62,0x42,0x75,0x48,0x15,0xe2]
+ vprolvd zmm28, zmm1, zmm10
+
+// CHECK: vprolvd zmm28 {k6}, zmm1, zmm10
+// CHECK: encoding: [0x62,0x42,0x75,0x4e,0x15,0xe2]
+ vprolvd zmm28 {k6}, zmm1, zmm10
+
+// CHECK: vprolvd zmm28 {k6} {z}, zmm1, zmm10
+// CHECK: encoding: [0x62,0x42,0x75,0xce,0x15,0xe2]
+ vprolvd zmm28 {k6} {z}, zmm1, zmm10
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x75,0x48,0x15,0x21]
+ vprolvd zmm28, zmm1, zmmword ptr [rcx]
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x75,0x48,0x15,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vprolvd zmm28, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vprolvd zmm28, zmm1, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x75,0x58,0x15,0x21]
+ vprolvd zmm28, zmm1, dword ptr [rcx]{1to16}
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x75,0x48,0x15,0x62,0x7f]
+ vprolvd zmm28, zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x75,0x48,0x15,0xa2,0x00,0x20,0x00,0x00]
+ vprolvd zmm28, zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x75,0x48,0x15,0x62,0x80]
+ vprolvd zmm28, zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vprolvd zmm28, zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x75,0x48,0x15,0xa2,0xc0,0xdf,0xff,0xff]
+ vprolvd zmm28, zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vprolvd zmm28, zmm1, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x75,0x58,0x15,0x62,0x7f]
+ vprolvd zmm28, zmm1, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vprolvd zmm28, zmm1, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x75,0x58,0x15,0xa2,0x00,0x02,0x00,0x00]
+ vprolvd zmm28, zmm1, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vprolvd zmm28, zmm1, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x75,0x58,0x15,0x62,0x80]
+ vprolvd zmm28, zmm1, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vprolvd zmm28, zmm1, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x75,0x58,0x15,0xa2,0xfc,0xfd,0xff,0xff]
+ vprolvd zmm28, zmm1, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vprold zmm19, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0x65,0x40,0x72,0xcb,0xab]
+ vprold zmm19, zmm27, 171
+
+// CHECK: vprold zmm19 {k4}, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0x65,0x44,0x72,0xcb,0xab]
+ vprold zmm19 {k4}, zmm27, 171
+
+// CHECK: vprold zmm19 {k4} {z}, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0x65,0xc4,0x72,0xcb,0xab]
+ vprold zmm19 {k4} {z}, zmm27, 171
+
+// CHECK: vprold zmm19, zmm27, 123
+// CHECK: encoding: [0x62,0x91,0x65,0x40,0x72,0xcb,0x7b]
+ vprold zmm19, zmm27, 123
+
+// CHECK: vprold zmm19, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x40,0x72,0x09,0x7b]
+ vprold zmm19, zmmword ptr [rcx], 123
+
+// CHECK: vprold zmm19, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x65,0x40,0x72,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vprold zmm19, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vprold zmm19, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x50,0x72,0x09,0x7b]
+ vprold zmm19, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vprold zmm19, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x40,0x72,0x4a,0x7f,0x7b]
+ vprold zmm19, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprold zmm19, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x40,0x72,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vprold zmm19, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprold zmm19, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x40,0x72,0x4a,0x80,0x7b]
+ vprold zmm19, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprold zmm19, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x40,0x72,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vprold zmm19, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprold zmm19, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x50,0x72,0x4a,0x7f,0x7b]
+ vprold zmm19, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vprold zmm19, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x50,0x72,0x8a,0x00,0x02,0x00,0x00,0x7b]
+ vprold zmm19, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vprold zmm19, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x50,0x72,0x4a,0x80,0x7b]
+ vprold zmm19, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vprold zmm19, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x65,0x50,0x72,0x8a,0xfc,0xfd,0xff,0xff,0x7b]
+ vprold zmm19, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vprolvq zmm25, zmm1, zmm22
+// CHECK: encoding: [0x62,0x22,0xf5,0x48,0x15,0xce]
+ vprolvq zmm25, zmm1, zmm22
+
+// CHECK: vprolvq zmm25 {k7}, zmm1, zmm22
+// CHECK: encoding: [0x62,0x22,0xf5,0x4f,0x15,0xce]
+ vprolvq zmm25 {k7}, zmm1, zmm22
+
+// CHECK: vprolvq zmm25 {k7} {z}, zmm1, zmm22
+// CHECK: encoding: [0x62,0x22,0xf5,0xcf,0x15,0xce]
+ vprolvq zmm25 {k7} {z}, zmm1, zmm22
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0xf5,0x48,0x15,0x09]
+ vprolvq zmm25, zmm1, zmmword ptr [rcx]
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0xf5,0x48,0x15,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vprolvq zmm25, zmm1, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vprolvq zmm25, zmm1, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0x62,0xf5,0x58,0x15,0x09]
+ vprolvq zmm25, zmm1, qword ptr [rcx]{1to8}
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0xf5,0x48,0x15,0x4a,0x7f]
+ vprolvq zmm25, zmm1, zmmword ptr [rdx + 8128]
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0xf5,0x48,0x15,0x8a,0x00,0x20,0x00,0x00]
+ vprolvq zmm25, zmm1, zmmword ptr [rdx + 8192]
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0xf5,0x48,0x15,0x4a,0x80]
+ vprolvq zmm25, zmm1, zmmword ptr [rdx - 8192]
+
+// CHECK: vprolvq zmm25, zmm1, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0xf5,0x48,0x15,0x8a,0xc0,0xdf,0xff,0xff]
+ vprolvq zmm25, zmm1, zmmword ptr [rdx - 8256]
+
+// CHECK: vprolvq zmm25, zmm1, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0x62,0xf5,0x58,0x15,0x4a,0x7f]
+ vprolvq zmm25, zmm1, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vprolvq zmm25, zmm1, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xf5,0x58,0x15,0x8a,0x00,0x04,0x00,0x00]
+ vprolvq zmm25, zmm1, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vprolvq zmm25, zmm1, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0x62,0xf5,0x58,0x15,0x4a,0x80]
+ vprolvq zmm25, zmm1, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vprolvq zmm25, zmm1, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0x62,0xf5,0x58,0x15,0x8a,0xf8,0xfb,0xff,0xff]
+ vprolvq zmm25, zmm1, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vprolq zmm17, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0x72,0xca,0xab]
+ vprolq zmm17, zmm10, 171
+
+// CHECK: vprolq zmm17 {k4}, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0xf5,0x44,0x72,0xca,0xab]
+ vprolq zmm17 {k4}, zmm10, 171
+
+// CHECK: vprolq zmm17 {k4} {z}, zmm10, 171
+// CHECK: encoding: [0x62,0xd1,0xf5,0xc4,0x72,0xca,0xab]
+ vprolq zmm17 {k4} {z}, zmm10, 171
+
+// CHECK: vprolq zmm17, zmm10, 123
+// CHECK: encoding: [0x62,0xd1,0xf5,0x40,0x72,0xca,0x7b]
+ vprolq zmm17, zmm10, 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x40,0x72,0x09,0x7b]
+ vprolq zmm17, zmmword ptr [rcx], 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xf5,0x40,0x72,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vprolq zmm17, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vprolq zmm17, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x50,0x72,0x09,0x7b]
+ vprolq zmm17, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x40,0x72,0x4a,0x7f,0x7b]
+ vprolq zmm17, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x40,0x72,0x8a,0x00,0x20,0x00,0x00,0x7b]
+ vprolq zmm17, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x40,0x72,0x4a,0x80,0x7b]
+ vprolq zmm17, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprolq zmm17, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x40,0x72,0x8a,0xc0,0xdf,0xff,0xff,0x7b]
+ vprolq zmm17, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprolq zmm17, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x50,0x72,0x4a,0x7f,0x7b]
+ vprolq zmm17, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vprolq zmm17, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x50,0x72,0x8a,0x00,0x04,0x00,0x00,0x7b]
+ vprolq zmm17, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vprolq zmm17, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x50,0x72,0x4a,0x80,0x7b]
+ vprolq zmm17, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vprolq zmm17, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xf5,0x50,0x72,0x8a,0xf8,0xfb,0xff,0xff,0x7b]
+ vprolq zmm17, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vprorvd zmm1, zmm8, zmm13
+// CHECK: encoding: [0x62,0xd2,0x3d,0x48,0x14,0xcd]
+ vprorvd zmm1, zmm8, zmm13
+
+// CHECK: vprorvd zmm1 {k2}, zmm8, zmm13
+// CHECK: encoding: [0x62,0xd2,0x3d,0x4a,0x14,0xcd]
+ vprorvd zmm1 {k2}, zmm8, zmm13
+
+// CHECK: vprorvd zmm1 {k2} {z}, zmm8, zmm13
+// CHECK: encoding: [0x62,0xd2,0x3d,0xca,0x14,0xcd]
+ vprorvd zmm1 {k2} {z}, zmm8, zmm13
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x14,0x09]
+ vprorvd zmm1, zmm8, zmmword ptr [rcx]
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb2,0x3d,0x48,0x14,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vprorvd zmm1, zmm8, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vprorvd zmm1, zmm8, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x14,0x09]
+ vprorvd zmm1, zmm8, dword ptr [rcx]{1to16}
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x14,0x4a,0x7f]
+ vprorvd zmm1, zmm8, zmmword ptr [rdx + 8128]
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x14,0x8a,0x00,0x20,0x00,0x00]
+ vprorvd zmm1, zmm8, zmmword ptr [rdx + 8192]
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x14,0x4a,0x80]
+ vprorvd zmm1, zmm8, zmmword ptr [rdx - 8192]
+
+// CHECK: vprorvd zmm1, zmm8, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf2,0x3d,0x48,0x14,0x8a,0xc0,0xdf,0xff,0xff]
+ vprorvd zmm1, zmm8, zmmword ptr [rdx - 8256]
+
+// CHECK: vprorvd zmm1, zmm8, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x14,0x4a,0x7f]
+ vprorvd zmm1, zmm8, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vprorvd zmm1, zmm8, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x14,0x8a,0x00,0x02,0x00,0x00]
+ vprorvd zmm1, zmm8, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vprorvd zmm1, zmm8, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x14,0x4a,0x80]
+ vprorvd zmm1, zmm8, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vprorvd zmm1, zmm8, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf2,0x3d,0x58,0x14,0x8a,0xfc,0xfd,0xff,0xff]
+ vprorvd zmm1, zmm8, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vprord zmm7, zmm15, 171
+// CHECK: encoding: [0x62,0xd1,0x45,0x48,0x72,0xc7,0xab]
+ vprord zmm7, zmm15, 171
+
+// CHECK: vprord zmm7 {k1}, zmm15, 171
+// CHECK: encoding: [0x62,0xd1,0x45,0x49,0x72,0xc7,0xab]
+ vprord zmm7 {k1}, zmm15, 171
+
+// CHECK: vprord zmm7 {k1} {z}, zmm15, 171
+// CHECK: encoding: [0x62,0xd1,0x45,0xc9,0x72,0xc7,0xab]
+ vprord zmm7 {k1} {z}, zmm15, 171
+
+// CHECK: vprord zmm7, zmm15, 123
+// CHECK: encoding: [0x62,0xd1,0x45,0x48,0x72,0xc7,0x7b]
+ vprord zmm7, zmm15, 123
+
+// CHECK: vprord zmm7, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x48,0x72,0x01,0x7b]
+ vprord zmm7, zmmword ptr [rcx], 123
+
+// CHECK: vprord zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0x45,0x48,0x72,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vprord zmm7, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vprord zmm7, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x58,0x72,0x01,0x7b]
+ vprord zmm7, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vprord zmm7, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x48,0x72,0x42,0x7f,0x7b]
+ vprord zmm7, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprord zmm7, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x48,0x72,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vprord zmm7, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprord zmm7, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x48,0x72,0x42,0x80,0x7b]
+ vprord zmm7, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprord zmm7, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x48,0x72,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vprord zmm7, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprord zmm7, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x58,0x72,0x42,0x7f,0x7b]
+ vprord zmm7, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vprord zmm7, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x58,0x72,0x82,0x00,0x02,0x00,0x00,0x7b]
+ vprord zmm7, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vprord zmm7, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x58,0x72,0x42,0x80,0x7b]
+ vprord zmm7, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vprord zmm7, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0xf1,0x45,0x58,0x72,0x82,0xfc,0xfd,0xff,0xff,0x7b]
+ vprord zmm7, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vprorvq zmm21, zmm23, zmm24
+// CHECK: encoding: [0x62,0x82,0xc5,0x40,0x14,0xe8]
+ vprorvq zmm21, zmm23, zmm24
+
+// CHECK: vprorvq zmm21 {k7}, zmm23, zmm24
+// CHECK: encoding: [0x62,0x82,0xc5,0x47,0x14,0xe8]
+ vprorvq zmm21 {k7}, zmm23, zmm24
+
+// CHECK: vprorvq zmm21 {k7} {z}, zmm23, zmm24
+// CHECK: encoding: [0x62,0x82,0xc5,0xc7,0x14,0xe8]
+ vprorvq zmm21 {k7} {z}, zmm23, zmm24
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x14,0x29]
+ vprorvq zmm21, zmm23, zmmword ptr [rcx]
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xc5,0x40,0x14,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vprorvq zmm21, zmm23, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vprorvq zmm21, zmm23, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x14,0x29]
+ vprorvq zmm21, zmm23, qword ptr [rcx]{1to8}
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x14,0x6a,0x7f]
+ vprorvq zmm21, zmm23, zmmword ptr [rdx + 8128]
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x14,0xaa,0x00,0x20,0x00,0x00]
+ vprorvq zmm21, zmm23, zmmword ptr [rdx + 8192]
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x14,0x6a,0x80]
+ vprorvq zmm21, zmm23, zmmword ptr [rdx - 8192]
+
+// CHECK: vprorvq zmm21, zmm23, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xc5,0x40,0x14,0xaa,0xc0,0xdf,0xff,0xff]
+ vprorvq zmm21, zmm23, zmmword ptr [rdx - 8256]
+
+// CHECK: vprorvq zmm21, zmm23, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x14,0x6a,0x7f]
+ vprorvq zmm21, zmm23, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vprorvq zmm21, zmm23, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x14,0xaa,0x00,0x04,0x00,0x00]
+ vprorvq zmm21, zmm23, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vprorvq zmm21, zmm23, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x14,0x6a,0x80]
+ vprorvq zmm21, zmm23, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vprorvq zmm21, zmm23, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xc5,0x50,0x14,0xaa,0xf8,0xfb,0xff,0xff]
+ vprorvq zmm21, zmm23, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vprorq zmm16, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0xfd,0x40,0x72,0xc3,0xab]
+ vprorq zmm16, zmm27, 171
+
+// CHECK: vprorq zmm16 {k3}, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0xfd,0x43,0x72,0xc3,0xab]
+ vprorq zmm16 {k3}, zmm27, 171
+
+// CHECK: vprorq zmm16 {k3} {z}, zmm27, 171
+// CHECK: encoding: [0x62,0x91,0xfd,0xc3,0x72,0xc3,0xab]
+ vprorq zmm16 {k3} {z}, zmm27, 171
+
+// CHECK: vprorq zmm16, zmm27, 123
+// CHECK: encoding: [0x62,0x91,0xfd,0x40,0x72,0xc3,0x7b]
+ vprorq zmm16, zmm27, 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x40,0x72,0x01,0x7b]
+ vprorq zmm16, zmmword ptr [rcx], 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb1,0xfd,0x40,0x72,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vprorq zmm16, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vprorq zmm16, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x50,0x72,0x01,0x7b]
+ vprorq zmm16, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x40,0x72,0x42,0x7f,0x7b]
+ vprorq zmm16, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x40,0x72,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vprorq zmm16, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x40,0x72,0x42,0x80,0x7b]
+ vprorq zmm16, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vprorq zmm16, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x40,0x72,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vprorq zmm16, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vprorq zmm16, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x50,0x72,0x42,0x7f,0x7b]
+ vprorq zmm16, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vprorq zmm16, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x50,0x72,0x82,0x00,0x04,0x00,0x00,0x7b]
+ vprorq zmm16, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vprorq zmm16, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x50,0x72,0x42,0x80,0x7b]
+ vprorq zmm16, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vprorq zmm16, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0xf1,0xfd,0x50,0x72,0x82,0xf8,0xfb,0xff,0xff,0x7b]
+ vprorq zmm16, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vrndscalepd zmm13, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0xfd,0x48,0x09,0xea,0xab]
+ vrndscalepd zmm13, zmm26, 171
+
+// CHECK: vrndscalepd zmm13 {k2}, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0xfd,0x4a,0x09,0xea,0xab]
+ vrndscalepd zmm13 {k2}, zmm26, 171
+
+// CHECK: vrndscalepd zmm13 {k2} {z}, zmm26, 171
+// CHECK: encoding: [0x62,0x13,0xfd,0xca,0x09,0xea,0xab]
+ vrndscalepd zmm13 {k2} {z}, zmm26, 171
+
+// CHECK: vrndscalepd zmm13, zmm26, {sae}, 171
+// CHECK: encoding: [0x62,0x13,0xfd,0x18,0x09,0xea,0xab]
+ vrndscalepd zmm13, zmm26, {sae}, 171
+
+// CHECK: vrndscalepd zmm13, zmm26, 123
+// CHECK: encoding: [0x62,0x13,0xfd,0x48,0x09,0xea,0x7b]
+ vrndscalepd zmm13, zmm26, 123
+
+// CHECK: vrndscalepd zmm13, zmm26, {sae}, 123
+// CHECK: encoding: [0x62,0x13,0xfd,0x18,0x09,0xea,0x7b]
+ vrndscalepd zmm13, zmm26, {sae}, 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x09,0x29,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rcx], 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x33,0xfd,0x48,0x09,0xac,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vrndscalepd zmm13, qword ptr [rcx]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x09,0x29,0x7b]
+ vrndscalepd zmm13, qword ptr [rcx]{1to8}, 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x09,0x6a,0x7f,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x09,0xaa,0x00,0x20,0x00,0x00,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x09,0x6a,0x80,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vrndscalepd zmm13, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x09,0xaa,0xc0,0xdf,0xff,0xff,0x7b]
+ vrndscalepd zmm13, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vrndscalepd zmm13, qword ptr [rdx + 1016]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x09,0x6a,0x7f,0x7b]
+ vrndscalepd zmm13, qword ptr [rdx + 1016]{1to8}, 123
+
+// CHECK: vrndscalepd zmm13, qword ptr [rdx + 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x09,0xaa,0x00,0x04,0x00,0x00,0x7b]
+ vrndscalepd zmm13, qword ptr [rdx + 1024]{1to8}, 123
+
+// CHECK: vrndscalepd zmm13, qword ptr [rdx - 1024]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x09,0x6a,0x80,0x7b]
+ vrndscalepd zmm13, qword ptr [rdx - 1024]{1to8}, 123
+
+// CHECK: vrndscalepd zmm13, qword ptr [rdx - 1032]{1to8}, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x58,0x09,0xaa,0xf8,0xfb,0xff,0xff,0x7b]
+ vrndscalepd zmm13, qword ptr [rdx - 1032]{1to8}, 123
+
+// CHECK: vrndscaleps zmm24, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0xc7,0xab]
+ vrndscaleps zmm24, zmm7, 171
+
+// CHECK: vrndscaleps zmm24 {k1}, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x49,0x08,0xc7,0xab]
+ vrndscaleps zmm24 {k1}, zmm7, 171
+
+// CHECK: vrndscaleps zmm24 {k1} {z}, zmm7, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0xc9,0x08,0xc7,0xab]
+ vrndscaleps zmm24 {k1} {z}, zmm7, 171
+
+// CHECK: vrndscaleps zmm24, zmm7, {sae}, 171
+// CHECK: encoding: [0x62,0x63,0x7d,0x18,0x08,0xc7,0xab]
+ vrndscaleps zmm24, zmm7, {sae}, 171
+
+// CHECK: vrndscaleps zmm24, zmm7, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0xc7,0x7b]
+ vrndscaleps zmm24, zmm7, 123
+
+// CHECK: vrndscaleps zmm24, zmm7, {sae}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x18,0x08,0xc7,0x7b]
+ vrndscaleps zmm24, zmm7, {sae}, 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0x01,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rcx], 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0x7d,0x48,0x08,0x84,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vrndscaleps zmm24, dword ptr [rcx]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x08,0x01,0x7b]
+ vrndscaleps zmm24, dword ptr [rcx]{1to16}, 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rdx + 8128], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0x42,0x7f,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rdx + 8128], 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rdx + 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0x82,0x00,0x20,0x00,0x00,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rdx + 8192], 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rdx - 8192], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0x42,0x80,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rdx - 8192], 123
+
+// CHECK: vrndscaleps zmm24, zmmword ptr [rdx - 8256], 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x48,0x08,0x82,0xc0,0xdf,0xff,0xff,0x7b]
+ vrndscaleps zmm24, zmmword ptr [rdx - 8256], 123
+
+// CHECK: vrndscaleps zmm24, dword ptr [rdx + 508]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x08,0x42,0x7f,0x7b]
+ vrndscaleps zmm24, dword ptr [rdx + 508]{1to16}, 123
+
+// CHECK: vrndscaleps zmm24, dword ptr [rdx + 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x08,0x82,0x00,0x02,0x00,0x00,0x7b]
+ vrndscaleps zmm24, dword ptr [rdx + 512]{1to16}, 123
+
+// CHECK: vrndscaleps zmm24, dword ptr [rdx - 512]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x08,0x42,0x80,0x7b]
+ vrndscaleps zmm24, dword ptr [rdx - 512]{1to16}, 123
+
+// CHECK: vrndscaleps zmm24, dword ptr [rdx - 516]{1to16}, 123
+// CHECK: encoding: [0x62,0x63,0x7d,0x58,0x08,0x82,0xfc,0xfd,0xff,0xff,0x7b]
+ vrndscaleps zmm24, dword ptr [rdx - 516]{1to16}, 123
+
+// CHECK: vrndscalesd xmm26, xmm7, xmm18, 171
+// CHECK: encoding: [0x62,0x23,0xc5,0x08,0x0b,0xd2,0xab]
+ vrndscalesd xmm26, xmm7, xmm18, 171
+
+// CHECK: vrndscalesd xmm26 {k1}, xmm7, xmm18, 171
+// CHECK: encoding: [0x62,0x23,0xc5,0x09,0x0b,0xd2,0xab]
+ vrndscalesd xmm26 {k1}, xmm7, xmm18, 171
+
+// CHECK: vrndscalesd xmm26 {k1} {z}, xmm7, xmm18, 171
+// CHECK: encoding: [0x62,0x23,0xc5,0x89,0x0b,0xd2,0xab]
+ vrndscalesd xmm26 {k1} {z}, xmm7, xmm18, 171
+
+// CHECK: vrndscalesd xmm26, xmm7, xmm18, {sae}, 171
+// CHECK: encoding: [0x62,0x23,0xc5,0x18,0x0b,0xd2,0xab]
+ vrndscalesd xmm26, xmm7, xmm18, {sae}, 171
+
+// CHECK: vrndscalesd xmm26, xmm7, xmm18, 123
+// CHECK: encoding: [0x62,0x23,0xc5,0x08,0x0b,0xd2,0x7b]
+ vrndscalesd xmm26, xmm7, xmm18, 123
+
+// CHECK: vrndscalesd xmm26, xmm7, xmm18, {sae}, 123
+// CHECK: encoding: [0x62,0x23,0xc5,0x18,0x0b,0xd2,0x7b]
+ vrndscalesd xmm26, xmm7, xmm18, {sae}, 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rcx], 123
+// CHECK: encoding: [0x62,0x63,0xc5,0x08,0x0b,0x11,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rcx], 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0x23,0xc5,0x08,0x0b,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rdx + 1016], 123
+// CHECK: encoding: [0x62,0x63,0xc5,0x08,0x0b,0x52,0x7f,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rdx + 1016], 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rdx + 1024], 123
+// CHECK: encoding: [0x62,0x63,0xc5,0x08,0x0b,0x92,0x00,0x04,0x00,0x00,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rdx + 1024], 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rdx - 1024], 123
+// CHECK: encoding: [0x62,0x63,0xc5,0x08,0x0b,0x52,0x80,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rdx - 1024], 123
+
+// CHECK: vrndscalesd xmm26, xmm7, qword ptr [rdx - 1032], 123
+// CHECK: encoding: [0x62,0x63,0xc5,0x08,0x0b,0x92,0xf8,0xfb,0xff,0xff,0x7b]
+ vrndscalesd xmm26, xmm7, qword ptr [rdx - 1032], 123
+
+// CHECK: vrndscaless xmm7, xmm23, xmm6, 171
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0xfe,0xab]
+ vrndscaless xmm7, xmm23, xmm6, 171
+
+// CHECK: vrndscaless xmm7 {k4}, xmm23, xmm6, 171
+// CHECK: encoding: [0x62,0xf3,0x45,0x04,0x0a,0xfe,0xab]
+ vrndscaless xmm7 {k4}, xmm23, xmm6, 171
+
+// CHECK: vrndscaless xmm7 {k4} {z}, xmm23, xmm6, 171
+// CHECK: encoding: [0x62,0xf3,0x45,0x84,0x0a,0xfe,0xab]
+ vrndscaless xmm7 {k4} {z}, xmm23, xmm6, 171
+
+// CHECK: vrndscaless xmm7, xmm23, xmm6, {sae}, 171
+// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x0a,0xfe,0xab]
+ vrndscaless xmm7, xmm23, xmm6, {sae}, 171
+
+// CHECK: vrndscaless xmm7, xmm23, xmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0xfe,0x7b]
+ vrndscaless xmm7, xmm23, xmm6, 123
+
+// CHECK: vrndscaless xmm7, xmm23, xmm6, {sae}, 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x10,0x0a,0xfe,0x7b]
+ vrndscaless xmm7, xmm23, xmm6, {sae}, 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rcx], 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0x39,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rcx], 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rax + 8*r14 + 4660], 123
+// CHECK: encoding: [0x62,0xb3,0x45,0x00,0x0a,0xbc,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rax + 8*r14 + 4660], 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rdx + 508], 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0x7a,0x7f,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rdx + 508], 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rdx + 512], 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0xba,0x00,0x02,0x00,0x00,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rdx + 512], 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rdx - 512], 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0x7a,0x80,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rdx - 512], 123
+
+// CHECK: vrndscaless xmm7, xmm23, dword ptr [rdx - 516], 123
+// CHECK: encoding: [0x62,0xf3,0x45,0x00,0x0a,0xba,0xfc,0xfd,0xff,0xff,0x7b]
+ vrndscaless xmm7, xmm23, dword ptr [rdx - 516], 123
+
+// CHECK: vpcompressq zmmword ptr [rcx], zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x8b,0x19]
+ vpcompressq zmmword ptr [rcx], zmm19
+
+// CHECK: vpcompressq zmmword ptr [rcx] {k3}, zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x4b,0x8b,0x19]
+ vpcompressq zmmword ptr [rcx] {k3}, zmm19
+
+// CHECK: vpcompressq zmmword ptr [rax + 8*r14 + 4660], zmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x48,0x8b,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vpcompressq zmmword ptr [rax + 8*r14 + 4660], zmm19
+
+// CHECK: vpcompressq zmmword ptr [rdx + 1016], zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x8b,0x5a,0x7f]
+ vpcompressq zmmword ptr [rdx + 1016], zmm19
+
+// CHECK: vpcompressq zmmword ptr [rdx + 1024], zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x8b,0x9a,0x00,0x04,0x00,0x00]
+ vpcompressq zmmword ptr [rdx + 1024], zmm19
+
+// CHECK: vpcompressq zmmword ptr [rdx - 1024], zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x8b,0x5a,0x80]
+ vpcompressq zmmword ptr [rdx - 1024], zmm19
+
+// CHECK: vpcompressq zmmword ptr [rdx - 1032], zmm19
+// CHECK: encoding: [0x62,0xe2,0xfd,0x48,0x8b,0x9a,0xf8,0xfb,0xff,0xff]
+ vpcompressq zmmword ptr [rdx - 1032], zmm19
+
+// CHECK: vpcompressq zmm12, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0x48,0x8b,0xc4]
+ vpcompressq zmm12, zmm8
+
+// CHECK: vpcompressq zmm12 {k6}, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0x4e,0x8b,0xc4]
+ vpcompressq zmm12 {k6}, zmm8
+
+// CHECK: vpcompressq zmm12 {k6} {z}, zmm8
+// CHECK: encoding: [0x62,0x52,0xfd,0xce,0x8b,0xc4]
+ vpcompressq zmm12 {k6} {z}, zmm8
+
+// CHECK: kandw k5, k4, k6
+// CHECK: encoding: [0xc5,0xdc,0x41,0xee]
+ kandw k5, k4, k6
+
+// CHECK: kandnw k5, k4, k6
+// CHECK: encoding: [0xc5,0xdc,0x42,0xee]
+ kandnw k5, k4, k6
+
+// CHECK: korw k2, k3, k5
+// CHECK: encoding: [0xc5,0xe4,0x45,0xd5]
+ korw k2, k3, k5
+
+// CHECK: kxnorw k2, k6, k7
+// CHECK: encoding: [0xc5,0xcc,0x46,0xd7]
+ kxnorw k2, k6, k7
+
+// CHECK: kxorw k3, k4, k6
+// CHECK: encoding: [0xc5,0xdc,0x47,0xde]
+ kxorw k3, k4, k6
+
+// CHECK: knotw k4, k3
+// CHECK: encoding: [0xc5,0xf8,0x44,0xe3]
+ knotw k4, k3
+
+// CHECK: kortestw k3, k6
+// CHECK: encoding: [0xc5,0xf8,0x98,0xde]
+ kortestw k3, k6
+
+// CHECK: kshiftrw k3, k5, 171
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x30,0xdd,0xab]
+ kshiftrw k3, k5, 171
+
+// CHECK: kshiftrw k3, k5, 123
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x30,0xdd,0x7b]
+ kshiftrw k3, k5, 123
+
+// CHECK: kshiftlw k3, k3, 171
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x32,0xdb,0xab]
+ kshiftlw k3, k3, 171
+
+// CHECK: kshiftlw k3, k3, 123
+// CHECK: encoding: [0xc4,0xe3,0xf9,0x32,0xdb,0x7b]
+ kshiftlw k3, k3, 123
+
+// CHECK: kmovw k2, k5
+// CHECK: encoding: [0xc5,0xf8,0x90,0xd5]
+ kmovw k2, k5
+
+// CHECK: kmovw k2, word ptr [rcx]
+// CHECK: encoding: [0xc5,0xf8,0x90,0x11]
+ kmovw k2, word ptr [rcx]
+
+// CHECK: kmovw k2, word ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0xc4,0xa1,0x78,0x90,0x94,0xf0,0x34,0x12,0x00,0x00]
+ kmovw k2, word ptr [rax + 8*r14 + 4660]
+
+// CHECK: kmovw word ptr [rcx], k5
+// CHECK: encoding: [0xc5,0xf8,0x91,0x29]
+ kmovw word ptr [rcx], k5
+
+// CHECK: kmovw word ptr [rax + 8*r14 + 4660], k5
+// CHECK: encoding: [0xc4,0xa1,0x78,0x91,0xac,0xf0,0x34,0x12,0x00,0x00]
+ kmovw word ptr [rax + 8*r14 + 4660], k5
+
+// CHECK: kmovw k3, eax
+// CHECK: encoding: [0xc5,0xf8,0x92,0xd8]
+ kmovw k3, eax
+
+// CHECK: kmovw k3, ebp
+// CHECK: encoding: [0xc5,0xf8,0x92,0xdd]
+ kmovw k3, ebp
+
+// CHECK: kmovw k3, r13d
+// CHECK: encoding: [0xc4,0xc1,0x78,0x92,0xdd]
+ kmovw k3, r13d
+
+// CHECK: kmovw eax, k3
+// CHECK: encoding: [0xc5,0xf8,0x93,0xc3]
+ kmovw eax, k3
+
+// CHECK: kmovw ebp, k3
+// CHECK: encoding: [0xc5,0xf8,0x93,0xeb]
+ kmovw ebp, k3
+
+// CHECK: kmovw r13d, k3
+// CHECK: encoding: [0xc5,0x78,0x93,0xeb]
+ kmovw r13d, k3
+
+// CHECK: kunpckbw k2, k3, k7
+// CHECK: encoding: [0xc5,0xe5,0x4b,0xd7]
+ kunpckbw k2, k3, k7
+
+// CHECK: vcvtps2ph ymmword ptr [rcx], zmm6, 171
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0x31,0xab]
+ vcvtps2ph ymmword ptr [rcx], zmm6, 171
+
+// CHECK: vcvtps2ph ymmword ptr [rcx] {k1}, zmm6, 171
+// CHECK: encoding: [0x62,0xf3,0x7d,0x49,0x1d,0x31,0xab]
+ vcvtps2ph ymmword ptr [rcx] {k1}, zmm6, 171
+
+// CHECK: vcvtps2ph ymmword ptr [rcx], zmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0x31,0x7b]
+ vcvtps2ph ymmword ptr [rcx], zmm6, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rax + 8*r14 + 4660], zmm6, 123
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x1d,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vcvtps2ph ymmword ptr [rax + 8*r14 + 4660], zmm6, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx + 4064], zmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0x72,0x7f,0x7b]
+ vcvtps2ph ymmword ptr [rdx + 4064], zmm6, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx + 4096], zmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0xb2,0x00,0x10,0x00,0x00,0x7b]
+ vcvtps2ph ymmword ptr [rdx + 4096], zmm6, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx - 4096], zmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0x72,0x80,0x7b]
+ vcvtps2ph ymmword ptr [rdx - 4096], zmm6, 123
+
+// CHECK: vcvtps2ph ymmword ptr [rdx - 4128], zmm6, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x1d,0xb2,0xe0,0xef,0xff,0xff,0x7b]
+ vcvtps2ph ymmword ptr [rdx - 4128], zmm6, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rcx], zmm22, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x31,0xab]
+ vextractf32x4 xmmword ptr [rcx], zmm22, 171
+
+// CHECK: vextractf32x4 xmmword ptr [rcx] {k3}, zmm22, 171
+// CHECK: encoding: [0x62,0xe3,0x7d,0x4b,0x19,0x31,0xab]
+ vextractf32x4 xmmword ptr [rcx] {k3}, zmm22, 171
+
+// CHECK: vextractf32x4 xmmword ptr [rcx], zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x31,0x7b]
+ vextractf32x4 xmmword ptr [rcx], zmm22, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rax + 8*r14 + 4660], zmm22, 123
+// CHECK: encoding: [0x62,0xa3,0x7d,0x48,0x19,0xb4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vextractf32x4 xmmword ptr [rax + 8*r14 + 4660], zmm22, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx + 2032], zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x72,0x7f,0x7b]
+ vextractf32x4 xmmword ptr [rdx + 2032], zmm22, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx + 2048], zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0xb2,0x00,0x08,0x00,0x00,0x7b]
+ vextractf32x4 xmmword ptr [rdx + 2048], zmm22, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx - 2048], zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0x72,0x80,0x7b]
+ vextractf32x4 xmmword ptr [rdx - 2048], zmm22, 123
+
+// CHECK: vextractf32x4 xmmword ptr [rdx - 2064], zmm22, 123
+// CHECK: encoding: [0x62,0xe3,0x7d,0x48,0x19,0xb2,0xf0,0xf7,0xff,0xff,0x7b]
+ vextractf32x4 xmmword ptr [rdx - 2064], zmm22, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rcx], zmm12, 171
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0x21,0xab]
+ vextractf64x4 ymmword ptr [rcx], zmm12, 171
+
+// CHECK: vextractf64x4 ymmword ptr [rcx] {k7}, zmm12, 171
+// CHECK: encoding: [0x62,0x73,0xfd,0x4f,0x1b,0x21,0xab]
+ vextractf64x4 ymmword ptr [rcx] {k7}, zmm12, 171
+
+// CHECK: vextractf64x4 ymmword ptr [rcx], zmm12, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0x21,0x7b]
+ vextractf64x4 ymmword ptr [rcx], zmm12, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rax + 8*r14 + 4660], zmm12, 123
+// CHECK: encoding: [0x62,0x33,0xfd,0x48,0x1b,0xa4,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vextractf64x4 ymmword ptr [rax + 8*r14 + 4660], zmm12, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx + 4064], zmm12, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0x62,0x7f,0x7b]
+ vextractf64x4 ymmword ptr [rdx + 4064], zmm12, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx + 4096], zmm12, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0xa2,0x00,0x10,0x00,0x00,0x7b]
+ vextractf64x4 ymmword ptr [rdx + 4096], zmm12, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx - 4096], zmm12, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0x62,0x80,0x7b]
+ vextractf64x4 ymmword ptr [rdx - 4096], zmm12, 123
+
+// CHECK: vextractf64x4 ymmword ptr [rdx - 4128], zmm12, 123
+// CHECK: encoding: [0x62,0x73,0xfd,0x48,0x1b,0xa2,0xe0,0xef,0xff,0xff,0x7b]
+ vextractf64x4 ymmword ptr [rdx - 4128], zmm12, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rcx], zmm1, 171
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x09,0xab]
+ vextracti32x4 xmmword ptr [rcx], zmm1, 171
+
+// CHECK: vextracti32x4 xmmword ptr [rcx] {k3}, zmm1, 171
+// CHECK: encoding: [0x62,0xf3,0x7d,0x4b,0x39,0x09,0xab]
+ vextracti32x4 xmmword ptr [rcx] {k3}, zmm1, 171
+
+// CHECK: vextracti32x4 xmmword ptr [rcx], zmm1, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x09,0x7b]
+ vextracti32x4 xmmword ptr [rcx], zmm1, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rax + 8*r14 + 4660], zmm1, 123
+// CHECK: encoding: [0x62,0xb3,0x7d,0x48,0x39,0x8c,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vextracti32x4 xmmword ptr [rax + 8*r14 + 4660], zmm1, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx + 2032], zmm1, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x4a,0x7f,0x7b]
+ vextracti32x4 xmmword ptr [rdx + 2032], zmm1, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx + 2048], zmm1, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x8a,0x00,0x08,0x00,0x00,0x7b]
+ vextracti32x4 xmmword ptr [rdx + 2048], zmm1, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx - 2048], zmm1, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x4a,0x80,0x7b]
+ vextracti32x4 xmmword ptr [rdx - 2048], zmm1, 123
+
+// CHECK: vextracti32x4 xmmword ptr [rdx - 2064], zmm1, 123
+// CHECK: encoding: [0x62,0xf3,0x7d,0x48,0x39,0x8a,0xf0,0xf7,0xff,0xff,0x7b]
+ vextracti32x4 xmmword ptr [rdx - 2064], zmm1, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rcx], zmm2, 171
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x11,0xab]
+ vextracti64x4 ymmword ptr [rcx], zmm2, 171
+
+// CHECK: vextracti64x4 ymmword ptr [rcx] {k2}, zmm2, 171
+// CHECK: encoding: [0x62,0xf3,0xfd,0x4a,0x3b,0x11,0xab]
+ vextracti64x4 ymmword ptr [rcx] {k2}, zmm2, 171
+
+// CHECK: vextracti64x4 ymmword ptr [rcx], zmm2, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x11,0x7b]
+ vextracti64x4 ymmword ptr [rcx], zmm2, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rax + 8*r14 + 4660], zmm2, 123
+// CHECK: encoding: [0x62,0xb3,0xfd,0x48,0x3b,0x94,0xf0,0x34,0x12,0x00,0x00,0x7b]
+ vextracti64x4 ymmword ptr [rax + 8*r14 + 4660], zmm2, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx + 4064], zmm2, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x52,0x7f,0x7b]
+ vextracti64x4 ymmword ptr [rdx + 4064], zmm2, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx + 4096], zmm2, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x92,0x00,0x10,0x00,0x00,0x7b]
+ vextracti64x4 ymmword ptr [rdx + 4096], zmm2, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx - 4096], zmm2, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x52,0x80,0x7b]
+ vextracti64x4 ymmword ptr [rdx - 4096], zmm2, 123
+
+// CHECK: vextracti64x4 ymmword ptr [rdx - 4128], zmm2, 123
+// CHECK: encoding: [0x62,0xf3,0xfd,0x48,0x3b,0x92,0xe0,0xef,0xff,0xff,0x7b]
+ vextracti64x4 ymmword ptr [rdx - 4128], zmm2, 123
+
+// CHECK: vmovapd zmmword ptr [rcx], zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x29,0x19]
+ vmovapd zmmword ptr [rcx], zmm27
+
+// CHECK: vmovapd zmmword ptr [rcx] {k1}, zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x49,0x29,0x19]
+ vmovapd zmmword ptr [rcx] {k1}, zmm27
+
+// CHECK: vmovapd zmmword ptr [rax + 8*r14 + 4660], zmm27
+// CHECK: encoding: [0x62,0x21,0xfd,0x48,0x29,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vmovapd zmmword ptr [rax + 8*r14 + 4660], zmm27
+
+// CHECK: vmovapd zmmword ptr [rdx + 8128], zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x29,0x5a,0x7f]
+ vmovapd zmmword ptr [rdx + 8128], zmm27
+
+// CHECK: vmovapd zmmword ptr [rdx + 8192], zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x29,0x9a,0x00,0x20,0x00,0x00]
+ vmovapd zmmword ptr [rdx + 8192], zmm27
+
+// CHECK: vmovapd zmmword ptr [rdx - 8192], zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x29,0x5a,0x80]
+ vmovapd zmmword ptr [rdx - 8192], zmm27
+
+// CHECK: vmovapd zmmword ptr [rdx - 8256], zmm27
+// CHECK: encoding: [0x62,0x61,0xfd,0x48,0x29,0x9a,0xc0,0xdf,0xff,0xff]
+ vmovapd zmmword ptr [rdx - 8256], zmm27
+
+// CHECK: vmovaps zmmword ptr [rcx], zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x29,0x09]
+ vmovaps zmmword ptr [rcx], zmm17
+
+// CHECK: vmovaps zmmword ptr [rcx] {k5}, zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x4d,0x29,0x09]
+ vmovaps zmmword ptr [rcx] {k5}, zmm17
+
+// CHECK: vmovaps zmmword ptr [rax + 8*r14 + 4660], zmm17
+// CHECK: encoding: [0x62,0xa1,0x7c,0x48,0x29,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vmovaps zmmword ptr [rax + 8*r14 + 4660], zmm17
+
+// CHECK: vmovaps zmmword ptr [rdx + 8128], zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x29,0x4a,0x7f]
+ vmovaps zmmword ptr [rdx + 8128], zmm17
+
+// CHECK: vmovaps zmmword ptr [rdx + 8192], zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x29,0x8a,0x00,0x20,0x00,0x00]
+ vmovaps zmmword ptr [rdx + 8192], zmm17
+
+// CHECK: vmovaps zmmword ptr [rdx - 8192], zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x29,0x4a,0x80]
+ vmovaps zmmword ptr [rdx - 8192], zmm17
+
+// CHECK: vmovaps zmmword ptr [rdx - 8256], zmm17
+// CHECK: encoding: [0x62,0xe1,0x7c,0x48,0x29,0x8a,0xc0,0xdf,0xff,0xff]
+ vmovaps zmmword ptr [rdx - 8256], zmm17
+
+// CHECK: vmovdqa32 zmmword ptr [rcx], zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x7f,0x19]
+ vmovdqa32 zmmword ptr [rcx], zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rcx] {k1}, zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x49,0x7f,0x19]
+ vmovdqa32 zmmword ptr [rcx] {k1}, zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rax + 8*r14 + 4660], zmm3
+// CHECK: encoding: [0x62,0xb1,0x7d,0x48,0x7f,0x9c,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqa32 zmmword ptr [rax + 8*r14 + 4660], zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rdx + 8128], zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x7f,0x5a,0x7f]
+ vmovdqa32 zmmword ptr [rdx + 8128], zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rdx + 8192], zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x7f,0x9a,0x00,0x20,0x00,0x00]
+ vmovdqa32 zmmword ptr [rdx + 8192], zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rdx - 8192], zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x7f,0x5a,0x80]
+ vmovdqa32 zmmword ptr [rdx - 8192], zmm3
+
+// CHECK: vmovdqa32 zmmword ptr [rdx - 8256], zmm3
+// CHECK: encoding: [0x62,0xf1,0x7d,0x48,0x7f,0x9a,0xc0,0xdf,0xff,0xff]
+ vmovdqa32 zmmword ptr [rdx - 8256], zmm3
+
+// CHECK: vmovdqa64 zmmword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x11]
+ vmovdqa64 zmmword ptr [rcx], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rcx] {k1}, zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x49,0x7f,0x11]
+ vmovdqa64 zmmword ptr [rcx] {k1}, zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rax + 8*r14 + 4660], zmm18
+// CHECK: encoding: [0x62,0xa1,0xfd,0x48,0x7f,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqa64 zmmword ptr [rax + 8*r14 + 4660], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rdx + 8128], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x52,0x7f]
+ vmovdqa64 zmmword ptr [rdx + 8128], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rdx + 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x92,0x00,0x20,0x00,0x00]
+ vmovdqa64 zmmword ptr [rdx + 8192], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rdx - 8192], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x52,0x80]
+ vmovdqa64 zmmword ptr [rdx - 8192], zmm18
+
+// CHECK: vmovdqa64 zmmword ptr [rdx - 8256], zmm18
+// CHECK: encoding: [0x62,0xe1,0xfd,0x48,0x7f,0x92,0xc0,0xdf,0xff,0xff]
+ vmovdqa64 zmmword ptr [rdx - 8256], zmm18
+
+// CHECK: vmovdqu32 zmmword ptr [rcx], zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x7f,0x11]
+ vmovdqu32 zmmword ptr [rcx], zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rcx] {k7}, zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x4f,0x7f,0x11]
+ vmovdqu32 zmmword ptr [rcx] {k7}, zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rax + 8*r14 + 4660], zmm2
+// CHECK: encoding: [0x62,0xb1,0x7e,0x48,0x7f,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqu32 zmmword ptr [rax + 8*r14 + 4660], zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rdx + 8128], zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x7f,0x52,0x7f]
+ vmovdqu32 zmmword ptr [rdx + 8128], zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rdx + 8192], zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x7f,0x92,0x00,0x20,0x00,0x00]
+ vmovdqu32 zmmword ptr [rdx + 8192], zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rdx - 8192], zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x7f,0x52,0x80]
+ vmovdqu32 zmmword ptr [rdx - 8192], zmm2
+
+// CHECK: vmovdqu32 zmmword ptr [rdx - 8256], zmm2
+// CHECK: encoding: [0x62,0xf1,0x7e,0x48,0x7f,0x92,0xc0,0xdf,0xff,0xff]
+ vmovdqu32 zmmword ptr [rdx - 8256], zmm2
+
+// CHECK: vmovdqu64 zmmword ptr [rcx], zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x7f,0x39]
+ vmovdqu64 zmmword ptr [rcx], zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rcx] {k1}, zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x49,0x7f,0x39]
+ vmovdqu64 zmmword ptr [rcx] {k1}, zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rax + 8*r14 + 4660], zmm7
+// CHECK: encoding: [0x62,0xb1,0xfe,0x48,0x7f,0xbc,0xf0,0x34,0x12,0x00,0x00]
+ vmovdqu64 zmmword ptr [rax + 8*r14 + 4660], zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rdx + 8128], zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x7f,0x7a,0x7f]
+ vmovdqu64 zmmword ptr [rdx + 8128], zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rdx + 8192], zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x7f,0xba,0x00,0x20,0x00,0x00]
+ vmovdqu64 zmmword ptr [rdx + 8192], zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rdx - 8192], zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x7f,0x7a,0x80]
+ vmovdqu64 zmmword ptr [rdx - 8192], zmm7
+
+// CHECK: vmovdqu64 zmmword ptr [rdx - 8256], zmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x48,0x7f,0xba,0xc0,0xdf,0xff,0xff]
+ vmovdqu64 zmmword ptr [rdx - 8256], zmm7
+
+// CHECK: vmovupd zmmword ptr [rcx], zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x01]
+ vmovupd zmmword ptr [rcx], zmm8
+
+// CHECK: vmovupd zmmword ptr [rcx] {k4}, zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x4c,0x11,0x01]
+ vmovupd zmmword ptr [rcx] {k4}, zmm8
+
+// CHECK: vmovupd zmmword ptr [rax + 8*r14 + 4660], zmm8
+// CHECK: encoding: [0x62,0x31,0xfd,0x48,0x11,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vmovupd zmmword ptr [rax + 8*r14 + 4660], zmm8
+
+// CHECK: vmovupd zmmword ptr [rdx + 8128], zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x42,0x7f]
+ vmovupd zmmword ptr [rdx + 8128], zmm8
+
+// CHECK: vmovupd zmmword ptr [rdx + 8192], zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x82,0x00,0x20,0x00,0x00]
+ vmovupd zmmword ptr [rdx + 8192], zmm8
+
+// CHECK: vmovupd zmmword ptr [rdx - 8192], zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x42,0x80]
+ vmovupd zmmword ptr [rdx - 8192], zmm8
+
+// CHECK: vmovupd zmmword ptr [rdx - 8256], zmm8
+// CHECK: encoding: [0x62,0x71,0xfd,0x48,0x11,0x82,0xc0,0xdf,0xff,0xff]
+ vmovupd zmmword ptr [rdx - 8256], zmm8
+
+// CHECK: vmovups zmmword ptr [rcx], zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x11,0x21]
+ vmovups zmmword ptr [rcx], zmm4
+
+// CHECK: vmovups zmmword ptr [rcx] {k1}, zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x49,0x11,0x21]
+ vmovups zmmword ptr [rcx] {k1}, zmm4
+
+// CHECK: vmovups zmmword ptr [rax + 8*r14 + 4660], zmm4
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x11,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vmovups zmmword ptr [rax + 8*r14 + 4660], zmm4
+
+// CHECK: vmovups zmmword ptr [rdx + 8128], zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x11,0x62,0x7f]
+ vmovups zmmword ptr [rdx + 8128], zmm4
+
+// CHECK: vmovups zmmword ptr [rdx + 8192], zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x11,0xa2,0x00,0x20,0x00,0x00]
+ vmovups zmmword ptr [rdx + 8192], zmm4
+
+// CHECK: vmovups zmmword ptr [rdx - 8192], zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x11,0x62,0x80]
+ vmovups zmmword ptr [rdx - 8192], zmm4
+
+// CHECK: vmovups zmmword ptr [rdx - 8256], zmm4
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x11,0xa2,0xc0,0xdf,0xff,0xff]
+ vmovups zmmword ptr [rdx - 8256], zmm4
+
+// CHECK: vpmovqb qword ptr [rcx], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x32,0x31]
+ vpmovqb qword ptr [rcx], zmm14
+
+// CHECK: vpmovqb qword ptr [rcx] {k2}, zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x4a,0x32,0x31]
+ vpmovqb qword ptr [rcx] {k2}, zmm14
+
+// CHECK: vpmovqb qword ptr [rax + 8*r14 + 4660], zmm14
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x32,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovqb qword ptr [rax + 8*r14 + 4660], zmm14
+
+// CHECK: vpmovqb qword ptr [rdx + 1016], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x32,0x72,0x7f]
+ vpmovqb qword ptr [rdx + 1016], zmm14
+
+// CHECK: vpmovqb qword ptr [rdx + 1024], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x32,0xb2,0x00,0x04,0x00,0x00]
+ vpmovqb qword ptr [rdx + 1024], zmm14
+
+// CHECK: vpmovqb qword ptr [rdx - 1024], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x32,0x72,0x80]
+ vpmovqb qword ptr [rdx - 1024], zmm14
+
+// CHECK: vpmovqb qword ptr [rdx - 1032], zmm14
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x32,0xb2,0xf8,0xfb,0xff,0xff]
+ vpmovqb qword ptr [rdx - 1032], zmm14
+
+// CHECK: vpmovsqb qword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x11]
+ vpmovsqb qword ptr [rcx], zmm18
+
+// CHECK: vpmovsqb qword ptr [rcx] {k6}, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4e,0x22,0x11]
+ vpmovsqb qword ptr [rcx] {k6}, zmm18
+
+// CHECK: vpmovsqb qword ptr [rax + 8*r14 + 4660], zmm18
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x22,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsqb qword ptr [rax + 8*r14 + 4660], zmm18
+
+// CHECK: vpmovsqb qword ptr [rdx + 1016], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x52,0x7f]
+ vpmovsqb qword ptr [rdx + 1016], zmm18
+
+// CHECK: vpmovsqb qword ptr [rdx + 1024], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x92,0x00,0x04,0x00,0x00]
+ vpmovsqb qword ptr [rdx + 1024], zmm18
+
+// CHECK: vpmovsqb qword ptr [rdx - 1024], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x52,0x80]
+ vpmovsqb qword ptr [rdx - 1024], zmm18
+
+// CHECK: vpmovsqb qword ptr [rdx - 1032], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x22,0x92,0xf8,0xfb,0xff,0xff]
+ vpmovsqb qword ptr [rdx - 1032], zmm18
+
+// CHECK: vpmovusqb qword ptr [rcx], zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x12,0x29]
+ vpmovusqb qword ptr [rcx], zmm13
+
+// CHECK: vpmovusqb qword ptr [rcx] {k2}, zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x4a,0x12,0x29]
+ vpmovusqb qword ptr [rcx] {k2}, zmm13
+
+// CHECK: vpmovusqb qword ptr [rax + 8*r14 + 4660], zmm13
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x12,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpmovusqb qword ptr [rax + 8*r14 + 4660], zmm13
+
+// CHECK: vpmovusqb qword ptr [rdx + 1016], zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x12,0x6a,0x7f]
+ vpmovusqb qword ptr [rdx + 1016], zmm13
+
+// CHECK: vpmovusqb qword ptr [rdx + 1024], zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x12,0xaa,0x00,0x04,0x00,0x00]
+ vpmovusqb qword ptr [rdx + 1024], zmm13
+
+// CHECK: vpmovusqb qword ptr [rdx - 1024], zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x12,0x6a,0x80]
+ vpmovusqb qword ptr [rdx - 1024], zmm13
+
+// CHECK: vpmovusqb qword ptr [rdx - 1032], zmm13
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x12,0xaa,0xf8,0xfb,0xff,0xff]
+ vpmovusqb qword ptr [rdx - 1032], zmm13
+
+// CHECK: vpmovqw xmmword ptr [rcx], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0x31]
+ vpmovqw xmmword ptr [rcx], zmm22
+
+// CHECK: vpmovqw xmmword ptr [rcx] {k6}, zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4e,0x34,0x31]
+ vpmovqw xmmword ptr [rcx] {k6}, zmm22
+
+// CHECK: vpmovqw xmmword ptr [rax + 8*r14 + 4660], zmm22
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x34,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovqw xmmword ptr [rax + 8*r14 + 4660], zmm22
+
+// CHECK: vpmovqw xmmword ptr [rdx + 2032], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0x72,0x7f]
+ vpmovqw xmmword ptr [rdx + 2032], zmm22
+
+// CHECK: vpmovqw xmmword ptr [rdx + 2048], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0xb2,0x00,0x08,0x00,0x00]
+ vpmovqw xmmword ptr [rdx + 2048], zmm22
+
+// CHECK: vpmovqw xmmword ptr [rdx - 2048], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0x72,0x80]
+ vpmovqw xmmword ptr [rdx - 2048], zmm22
+
+// CHECK: vpmovqw xmmword ptr [rdx - 2064], zmm22
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x34,0xb2,0xf0,0xf7,0xff,0xff]
+ vpmovqw xmmword ptr [rdx - 2064], zmm22
+
+// CHECK: vpmovsqw xmmword ptr [rcx], zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x24,0x11]
+ vpmovsqw xmmword ptr [rcx], zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rcx] {k2}, zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x4a,0x24,0x11]
+ vpmovsqw xmmword ptr [rcx] {k2}, zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rax + 8*r14 + 4660], zmm26
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x24,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsqw xmmword ptr [rax + 8*r14 + 4660], zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rdx + 2032], zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x24,0x52,0x7f]
+ vpmovsqw xmmword ptr [rdx + 2032], zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rdx + 2048], zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x24,0x92,0x00,0x08,0x00,0x00]
+ vpmovsqw xmmword ptr [rdx + 2048], zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rdx - 2048], zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x24,0x52,0x80]
+ vpmovsqw xmmword ptr [rdx - 2048], zmm26
+
+// CHECK: vpmovsqw xmmword ptr [rdx - 2064], zmm26
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x24,0x92,0xf0,0xf7,0xff,0xff]
+ vpmovsqw xmmword ptr [rdx - 2064], zmm26
+
+// CHECK: vpmovusqw xmmword ptr [rcx], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x14,0x31]
+ vpmovusqw xmmword ptr [rcx], zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rcx] {k7}, zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x14,0x31]
+ vpmovusqw xmmword ptr [rcx] {k7}, zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rax + 8*r14 + 4660], zmm6
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x14,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovusqw xmmword ptr [rax + 8*r14 + 4660], zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rdx + 2032], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x14,0x72,0x7f]
+ vpmovusqw xmmword ptr [rdx + 2032], zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rdx + 2048], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x14,0xb2,0x00,0x08,0x00,0x00]
+ vpmovusqw xmmword ptr [rdx + 2048], zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rdx - 2048], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x14,0x72,0x80]
+ vpmovusqw xmmword ptr [rdx - 2048], zmm6
+
+// CHECK: vpmovusqw xmmword ptr [rdx - 2064], zmm6
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x14,0xb2,0xf0,0xf7,0xff,0xff]
+ vpmovusqw xmmword ptr [rdx - 2064], zmm6
+
+// CHECK: vpmovqd ymmword ptr [rcx], zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x35,0x11]
+ vpmovqd ymmword ptr [rcx], zmm10
+
+// CHECK: vpmovqd ymmword ptr [rcx] {k5}, zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x4d,0x35,0x11]
+ vpmovqd ymmword ptr [rcx] {k5}, zmm10
+
+// CHECK: vpmovqd ymmword ptr [rax + 8*r14 + 4660], zmm10
+// CHECK: encoding: [0x62,0x32,0x7e,0x48,0x35,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpmovqd ymmword ptr [rax + 8*r14 + 4660], zmm10
+
+// CHECK: vpmovqd ymmword ptr [rdx + 4064], zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x35,0x52,0x7f]
+ vpmovqd ymmword ptr [rdx + 4064], zmm10
+
+// CHECK: vpmovqd ymmword ptr [rdx + 4096], zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x35,0x92,0x00,0x10,0x00,0x00]
+ vpmovqd ymmword ptr [rdx + 4096], zmm10
+
+// CHECK: vpmovqd ymmword ptr [rdx - 4096], zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x35,0x52,0x80]
+ vpmovqd ymmword ptr [rdx - 4096], zmm10
+
+// CHECK: vpmovqd ymmword ptr [rdx - 4128], zmm10
+// CHECK: encoding: [0x62,0x72,0x7e,0x48,0x35,0x92,0xe0,0xef,0xff,0xff]
+ vpmovqd ymmword ptr [rdx - 4128], zmm10
+
+// CHECK: vpmovsqd ymmword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x25,0x11]
+ vpmovsqd ymmword ptr [rcx], zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rcx] {k5}, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4d,0x25,0x11]
+ vpmovsqd ymmword ptr [rcx] {k5}, zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rax + 8*r14 + 4660], zmm18
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x25,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsqd ymmword ptr [rax + 8*r14 + 4660], zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rdx + 4064], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x25,0x52,0x7f]
+ vpmovsqd ymmword ptr [rdx + 4064], zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rdx + 4096], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x25,0x92,0x00,0x10,0x00,0x00]
+ vpmovsqd ymmword ptr [rdx + 4096], zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rdx - 4096], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x25,0x52,0x80]
+ vpmovsqd ymmword ptr [rdx - 4096], zmm18
+
+// CHECK: vpmovsqd ymmword ptr [rdx - 4128], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x25,0x92,0xe0,0xef,0xff,0xff]
+ vpmovsqd ymmword ptr [rdx - 4128], zmm18
+
+// CHECK: vpmovusqd ymmword ptr [rcx], zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x09]
+ vpmovusqd ymmword ptr [rcx], zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rcx] {k4}, zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4c,0x15,0x09]
+ vpmovusqd ymmword ptr [rcx] {k4}, zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rax + 8*r14 + 4660], zmm17
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x15,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpmovusqd ymmword ptr [rax + 8*r14 + 4660], zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rdx + 4064], zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x4a,0x7f]
+ vpmovusqd ymmword ptr [rdx + 4064], zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rdx + 4096], zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x8a,0x00,0x10,0x00,0x00]
+ vpmovusqd ymmword ptr [rdx + 4096], zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rdx - 4096], zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x4a,0x80]
+ vpmovusqd ymmword ptr [rdx - 4096], zmm17
+
+// CHECK: vpmovusqd ymmword ptr [rdx - 4128], zmm17
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x15,0x8a,0xe0,0xef,0xff,0xff]
+ vpmovusqd ymmword ptr [rdx - 4128], zmm17
+
+// CHECK: vpmovdb xmmword ptr [rcx], zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x31,0x29]
+ vpmovdb xmmword ptr [rcx], zmm29
+
+// CHECK: vpmovdb xmmword ptr [rcx] {k4}, zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x4c,0x31,0x29]
+ vpmovdb xmmword ptr [rcx] {k4}, zmm29
+
+// CHECK: vpmovdb xmmword ptr [rax + 8*r14 + 4660], zmm29
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x31,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpmovdb xmmword ptr [rax + 8*r14 + 4660], zmm29
+
+// CHECK: vpmovdb xmmword ptr [rdx + 2032], zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x31,0x6a,0x7f]
+ vpmovdb xmmword ptr [rdx + 2032], zmm29
+
+// CHECK: vpmovdb xmmword ptr [rdx + 2048], zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x31,0xaa,0x00,0x08,0x00,0x00]
+ vpmovdb xmmword ptr [rdx + 2048], zmm29
+
+// CHECK: vpmovdb xmmword ptr [rdx - 2048], zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x31,0x6a,0x80]
+ vpmovdb xmmword ptr [rdx - 2048], zmm29
+
+// CHECK: vpmovdb xmmword ptr [rdx - 2064], zmm29
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x31,0xaa,0xf0,0xf7,0xff,0xff]
+ vpmovdb xmmword ptr [rdx - 2064], zmm29
+
+// CHECK: vpmovsdb xmmword ptr [rcx], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x21,0x21]
+ vpmovsdb xmmword ptr [rcx], zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rcx] {k5}, zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x4d,0x21,0x21]
+ vpmovsdb xmmword ptr [rcx] {k5}, zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rax + 8*r14 + 4660], zmm28
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x21,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsdb xmmword ptr [rax + 8*r14 + 4660], zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rdx + 2032], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x21,0x62,0x7f]
+ vpmovsdb xmmword ptr [rdx + 2032], zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rdx + 2048], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x21,0xa2,0x00,0x08,0x00,0x00]
+ vpmovsdb xmmword ptr [rdx + 2048], zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rdx - 2048], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x21,0x62,0x80]
+ vpmovsdb xmmword ptr [rdx - 2048], zmm28
+
+// CHECK: vpmovsdb xmmword ptr [rdx - 2064], zmm28
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x21,0xa2,0xf0,0xf7,0xff,0xff]
+ vpmovsdb xmmword ptr [rdx - 2064], zmm28
+
+// CHECK: vpmovusdb xmmword ptr [rcx], zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x11,0x31]
+ vpmovusdb xmmword ptr [rcx], zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rcx] {k1}, zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x49,0x11,0x31]
+ vpmovusdb xmmword ptr [rcx] {k1}, zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rax + 8*r14 + 4660], zmm30
+// CHECK: encoding: [0x62,0x22,0x7e,0x48,0x11,0xb4,0xf0,0x34,0x12,0x00,0x00]
+ vpmovusdb xmmword ptr [rax + 8*r14 + 4660], zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rdx + 2032], zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x11,0x72,0x7f]
+ vpmovusdb xmmword ptr [rdx + 2032], zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rdx + 2048], zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x11,0xb2,0x00,0x08,0x00,0x00]
+ vpmovusdb xmmword ptr [rdx + 2048], zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rdx - 2048], zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x11,0x72,0x80]
+ vpmovusdb xmmword ptr [rdx - 2048], zmm30
+
+// CHECK: vpmovusdb xmmword ptr [rdx - 2064], zmm30
+// CHECK: encoding: [0x62,0x62,0x7e,0x48,0x11,0xb2,0xf0,0xf7,0xff,0xff]
+ vpmovusdb xmmword ptr [rdx - 2064], zmm30
+
+// CHECK: vpmovdw ymmword ptr [rcx], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x29]
+ vpmovdw ymmword ptr [rcx], zmm5
+
+// CHECK: vpmovdw ymmword ptr [rcx] {k7}, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4f,0x33,0x29]
+ vpmovdw ymmword ptr [rcx] {k7}, zmm5
+
+// CHECK: vpmovdw ymmword ptr [rax + 8*r14 + 4660], zmm5
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x33,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpmovdw ymmword ptr [rax + 8*r14 + 4660], zmm5
+
+// CHECK: vpmovdw ymmword ptr [rdx + 4064], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x6a,0x7f]
+ vpmovdw ymmword ptr [rdx + 4064], zmm5
+
+// CHECK: vpmovdw ymmword ptr [rdx + 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xaa,0x00,0x10,0x00,0x00]
+ vpmovdw ymmword ptr [rdx + 4096], zmm5
+
+// CHECK: vpmovdw ymmword ptr [rdx - 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0x6a,0x80]
+ vpmovdw ymmword ptr [rdx - 4096], zmm5
+
+// CHECK: vpmovdw ymmword ptr [rdx - 4128], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x33,0xaa,0xe0,0xef,0xff,0xff]
+ vpmovdw ymmword ptr [rdx - 4128], zmm5
+
+// CHECK: vpmovsdw ymmword ptr [rcx], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x23,0x11]
+ vpmovsdw ymmword ptr [rcx], zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rcx] {k7}, zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x4f,0x23,0x11]
+ vpmovsdw ymmword ptr [rcx] {k7}, zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rax + 8*r14 + 4660], zmm18
+// CHECK: encoding: [0x62,0xa2,0x7e,0x48,0x23,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpmovsdw ymmword ptr [rax + 8*r14 + 4660], zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rdx + 4064], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x23,0x52,0x7f]
+ vpmovsdw ymmword ptr [rdx + 4064], zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rdx + 4096], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x23,0x92,0x00,0x10,0x00,0x00]
+ vpmovsdw ymmword ptr [rdx + 4096], zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rdx - 4096], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x23,0x52,0x80]
+ vpmovsdw ymmword ptr [rdx - 4096], zmm18
+
+// CHECK: vpmovsdw ymmword ptr [rdx - 4128], zmm18
+// CHECK: encoding: [0x62,0xe2,0x7e,0x48,0x23,0x92,0xe0,0xef,0xff,0xff]
+ vpmovsdw ymmword ptr [rdx - 4128], zmm18
+
+// CHECK: vpmovusdw ymmword ptr [rcx], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x29]
+ vpmovusdw ymmword ptr [rcx], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rcx] {k4}, zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x4c,0x13,0x29]
+ vpmovusdw ymmword ptr [rcx] {k4}, zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rax + 8*r14 + 4660], zmm5
+// CHECK: encoding: [0x62,0xb2,0x7e,0x48,0x13,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpmovusdw ymmword ptr [rax + 8*r14 + 4660], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx + 4064], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x7f]
+ vpmovusdw ymmword ptr [rdx + 4064], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx + 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0x00,0x10,0x00,0x00]
+ vpmovusdw ymmword ptr [rdx + 4096], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx - 4096], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0x6a,0x80]
+ vpmovusdw ymmword ptr [rdx - 4096], zmm5
+
+// CHECK: vpmovusdw ymmword ptr [rdx - 4128], zmm5
+// CHECK: encoding: [0x62,0xf2,0x7e,0x48,0x13,0xaa,0xe0,0xef,0xff,0xff]
+ vpmovusdw ymmword ptr [rdx - 4128], zmm5
+
+// CHECK: vcvttpd2udq ymm20, zmm14
+// CHECK: encoding: [0x62,0xc1,0xfc,0x48,0x78,0xe6]
+ vcvttpd2udq ymm20, zmm14
+
+// CHECK: vcvttpd2udq ymm20 {k3}, zmm14
+// CHECK: encoding: [0x62,0xc1,0xfc,0x4b,0x78,0xe6]
+ vcvttpd2udq ymm20 {k3}, zmm14
+
+// CHECK: vcvttpd2udq ymm20 {k3} {z}, zmm14
+// CHECK: encoding: [0x62,0xc1,0xfc,0xcb,0x78,0xe6]
+ vcvttpd2udq ymm20 {k3} {z}, zmm14
+
+// CHECK: vcvttpd2udq ymm20, zmm14, {sae}
+// CHECK: encoding: [0x62,0xc1,0xfc,0x18,0x78,0xe6]
+ vcvttpd2udq ymm20, zmm14, {sae}
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x21]
+ vcvttpd2udq ymm20, zmmword ptr [rcx]
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa1,0xfc,0x48,0x78,0xa4,0xf0,0x34,0x12,0x00,0x00]
+ vcvttpd2udq ymm20, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttpd2udq ymm20, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x21]
+ vcvttpd2udq ymm20, qword ptr [rcx]{1to8}
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x62,0x7f]
+ vcvttpd2udq ymm20, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0xa2,0x00,0x20,0x00,0x00]
+ vcvttpd2udq ymm20, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0x62,0x80]
+ vcvttpd2udq ymm20, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttpd2udq ymm20, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe1,0xfc,0x48,0x78,0xa2,0xc0,0xdf,0xff,0xff]
+ vcvttpd2udq ymm20, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttpd2udq ymm20, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x62,0x7f]
+ vcvttpd2udq ymm20, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vcvttpd2udq ymm20, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0xa2,0x00,0x04,0x00,0x00]
+ vcvttpd2udq ymm20, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vcvttpd2udq ymm20, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0x62,0x80]
+ vcvttpd2udq ymm20, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vcvttpd2udq ymm20, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe1,0xfc,0x58,0x78,0xa2,0xf8,0xfb,0xff,0xff]
+ vcvttpd2udq ymm20, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vcvttps2udq zmm5, zmm20
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x78,0xec]
+ vcvttps2udq zmm5, zmm20
+
+// CHECK: vcvttps2udq zmm5 {k2}, zmm20
+// CHECK: encoding: [0x62,0xb1,0x7c,0x4a,0x78,0xec]
+ vcvttps2udq zmm5 {k2}, zmm20
+
+// CHECK: vcvttps2udq zmm5 {k2} {z}, zmm20
+// CHECK: encoding: [0x62,0xb1,0x7c,0xca,0x78,0xec]
+ vcvttps2udq zmm5 {k2} {z}, zmm20
+
+// CHECK: vcvttps2udq zmm5, zmm20, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7c,0x18,0x78,0xec]
+ vcvttps2udq zmm5, zmm20, {sae}
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x78,0x29]
+ vcvttps2udq zmm5, zmmword ptr [rcx]
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7c,0x48,0x78,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvttps2udq zmm5, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttps2udq zmm5, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x78,0x29]
+ vcvttps2udq zmm5, dword ptr [rcx]{1to16}
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x78,0x6a,0x7f]
+ vcvttps2udq zmm5, zmmword ptr [rdx + 8128]
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x78,0xaa,0x00,0x20,0x00,0x00]
+ vcvttps2udq zmm5, zmmword ptr [rdx + 8192]
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x78,0x6a,0x80]
+ vcvttps2udq zmm5, zmmword ptr [rdx - 8192]
+
+// CHECK: vcvttps2udq zmm5, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xf1,0x7c,0x48,0x78,0xaa,0xc0,0xdf,0xff,0xff]
+ vcvttps2udq zmm5, zmmword ptr [rdx - 8256]
+
+// CHECK: vcvttps2udq zmm5, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x78,0x6a,0x7f]
+ vcvttps2udq zmm5, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vcvttps2udq zmm5, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x78,0xaa,0x00,0x02,0x00,0x00]
+ vcvttps2udq zmm5, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vcvttps2udq zmm5, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x78,0x6a,0x80]
+ vcvttps2udq zmm5, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vcvttps2udq zmm5, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0xf1,0x7c,0x58,0x78,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvttps2udq zmm5, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vcvttsd2usi eax, xmm23
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xc7]
+ vcvttsd2usi eax, xmm23
+
+// CHECK: vcvttsd2usi eax, xmm23, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7f,0x18,0x78,0xc7]
+ vcvttsd2usi eax, xmm23, {sae}
+
+// CHECK: vcvttsd2usi eax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x01]
+ vcvttsd2usi eax, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttsd2usi eax, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi eax, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi eax, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x42,0x80]
+ vcvttsd2usi eax, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi eax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi eax, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi ebp, xmm23
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xef]
+ vcvttsd2usi ebp, xmm23
+
+// CHECK: vcvttsd2usi ebp, xmm23, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7f,0x18,0x78,0xef]
+ vcvttsd2usi ebp, xmm23, {sae}
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x29]
+ vcvttsd2usi ebp, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7f,0x08,0x78,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvttsd2usi ebp, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x6a,0x7f]
+ vcvttsd2usi ebp, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0xaa,0x00,0x04,0x00,0x00]
+ vcvttsd2usi ebp, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0x6a,0x80]
+ vcvttsd2usi ebp, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi ebp, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0x7f,0x08,0x78,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi ebp, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi r13d, xmm23
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x78,0xef]
+ vcvttsd2usi r13d, xmm23
+
+// CHECK: vcvttsd2usi r13d, xmm23, {sae}
+// CHECK: encoding: [0x62,0x31,0x7f,0x18,0x78,0xef]
+ vcvttsd2usi r13d, xmm23, {sae}
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x29]
+ vcvttsd2usi r13d, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7f,0x08,0x78,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvttsd2usi r13d, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x6a,0x7f]
+ vcvttsd2usi r13d, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0xaa,0x00,0x04,0x00,0x00]
+ vcvttsd2usi r13d, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0x6a,0x80]
+ vcvttsd2usi r13d, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi r13d, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0x7f,0x08,0x78,0xaa,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi r13d, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi rax, xmm19
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x78,0xc3]
+ vcvttsd2usi rax, xmm19
+
+// CHECK: vcvttsd2usi rax, xmm19, {sae}
+// CHECK: encoding: [0x62,0xb1,0xff,0x18,0x78,0xc3]
+ vcvttsd2usi rax, xmm19, {sae}
+
+// CHECK: vcvttsd2usi rax, qword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x01]
+ vcvttsd2usi rax, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xff,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttsd2usi rax, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi rax, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi rax, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x42,0x80]
+ vcvttsd2usi rax, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi rax, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0xf1,0xff,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi rax, qword ptr [rdx - 1032]
+
+// CHECK: vcvttsd2usi r8, xmm19
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x78,0xc3]
+ vcvttsd2usi r8, xmm19
+
+// CHECK: vcvttsd2usi r8, xmm19, {sae}
+// CHECK: encoding: [0x62,0x31,0xff,0x18,0x78,0xc3]
+ vcvttsd2usi r8, xmm19, {sae}
+
+// CHECK: vcvttsd2usi r8, qword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x01]
+ vcvttsd2usi r8, qword ptr [rcx]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xff,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttsd2usi r8, qword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx + 1016]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x42,0x7f]
+ vcvttsd2usi r8, qword ptr [rdx + 1016]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx + 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x82,0x00,0x04,0x00,0x00]
+ vcvttsd2usi r8, qword ptr [rdx + 1024]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx - 1024]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x42,0x80]
+ vcvttsd2usi r8, qword ptr [rdx - 1024]
+
+// CHECK: vcvttsd2usi r8, qword ptr [rdx - 1032]
+// CHECK: encoding: [0x62,0x71,0xff,0x08,0x78,0x82,0xf8,0xfb,0xff,0xff]
+ vcvttsd2usi r8, qword ptr [rdx - 1032]
+
+// CHECK: vcvttss2usi eax, xmm21
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xc5]
+ vcvttss2usi eax, xmm21
+
+// CHECK: vcvttss2usi eax, xmm21, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x78,0xc5]
+ vcvttss2usi eax, xmm21, {sae}
+
+// CHECK: vcvttss2usi eax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x01]
+ vcvttss2usi eax, dword ptr [rcx]
+
+// CHECK: vcvttss2usi eax, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttss2usi eax, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x42,0x7f]
+ vcvttss2usi eax, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi eax, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x42,0x80]
+ vcvttss2usi eax, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi eax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi eax, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi ebp, xmm21
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xed]
+ vcvttss2usi ebp, xmm21
+
+// CHECK: vcvttss2usi ebp, xmm21, {sae}
+// CHECK: encoding: [0x62,0xb1,0x7e,0x18,0x78,0xed]
+ vcvttss2usi ebp, xmm21, {sae}
+
+// CHECK: vcvttss2usi ebp, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x29]
+ vcvttss2usi ebp, dword ptr [rcx]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0x7e,0x08,0x78,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvttss2usi ebp, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x6a,0x7f]
+ vcvttss2usi ebp, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0xaa,0x00,0x02,0x00,0x00]
+ vcvttss2usi ebp, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0x6a,0x80]
+ vcvttss2usi ebp, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi ebp, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0x7e,0x08,0x78,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi ebp, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi r13d, xmm21
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x78,0xed]
+ vcvttss2usi r13d, xmm21
+
+// CHECK: vcvttss2usi r13d, xmm21, {sae}
+// CHECK: encoding: [0x62,0x31,0x7e,0x18,0x78,0xed]
+ vcvttss2usi r13d, xmm21, {sae}
+
+// CHECK: vcvttss2usi r13d, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x29]
+ vcvttss2usi r13d, dword ptr [rcx]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0x7e,0x08,0x78,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vcvttss2usi r13d, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x6a,0x7f]
+ vcvttss2usi r13d, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0xaa,0x00,0x02,0x00,0x00]
+ vcvttss2usi r13d, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0x6a,0x80]
+ vcvttss2usi r13d, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi r13d, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0x7e,0x08,0x78,0xaa,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi r13d, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi rax, xmm7
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0xc7]
+ vcvttss2usi rax, xmm7
+
+// CHECK: vcvttss2usi rax, xmm7, {sae}
+// CHECK: encoding: [0x62,0xf1,0xfe,0x18,0x78,0xc7]
+ vcvttss2usi rax, xmm7, {sae}
+
+// CHECK: vcvttss2usi rax, dword ptr [rcx]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x01]
+ vcvttss2usi rax, dword ptr [rcx]
+
+// CHECK: vcvttss2usi rax, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xb1,0xfe,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttss2usi rax, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x42,0x7f]
+ vcvttss2usi rax, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi rax, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x42,0x80]
+ vcvttss2usi rax, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi rax, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0xf1,0xfe,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi rax, dword ptr [rdx - 516]
+
+// CHECK: vcvttss2usi r8, xmm7
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0xc7]
+ vcvttss2usi r8, xmm7
+
+// CHECK: vcvttss2usi r8, xmm7, {sae}
+// CHECK: encoding: [0x62,0x71,0xfe,0x18,0x78,0xc7]
+ vcvttss2usi r8, xmm7, {sae}
+
+// CHECK: vcvttss2usi r8, dword ptr [rcx]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x01]
+ vcvttss2usi r8, dword ptr [rcx]
+
+// CHECK: vcvttss2usi r8, dword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x31,0xfe,0x08,0x78,0x84,0xf0,0x34,0x12,0x00,0x00]
+ vcvttss2usi r8, dword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx + 508]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x42,0x7f]
+ vcvttss2usi r8, dword ptr [rdx + 508]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx + 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x82,0x00,0x02,0x00,0x00]
+ vcvttss2usi r8, dword ptr [rdx + 512]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx - 512]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x42,0x80]
+ vcvttss2usi r8, dword ptr [rdx - 512]
+
+// CHECK: vcvttss2usi r8, dword ptr [rdx - 516]
+// CHECK: encoding: [0x62,0x71,0xfe,0x08,0x78,0x82,0xfc,0xfd,0xff,0xff]
+ vcvttss2usi r8, dword ptr [rdx - 516]
+
+// CHECK: vpermi2d zmm9, zmm3, zmm9
+// CHECK: encoding: [0x62,0x52,0x65,0x48,0x76,0xc9]
+ vpermi2d zmm9, zmm3, zmm9
+
+// CHECK: vpermi2d zmm9 {k1}, zmm3, zmm9
+// CHECK: encoding: [0x62,0x52,0x65,0x49,0x76,0xc9]
+ vpermi2d zmm9 {k1}, zmm3, zmm9
+
+// CHECK: vpermi2d zmm9 {k1} {z}, zmm3, zmm9
+// CHECK: encoding: [0x62,0x52,0x65,0xc9,0x76,0xc9]
+ vpermi2d zmm9 {k1} {z}, zmm3, zmm9
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x76,0x09]
+ vpermi2d zmm9, zmm3, zmmword ptr [rcx]
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x32,0x65,0x48,0x76,0x8c,0xf0,0x34,0x12,0x00,0x00]
+ vpermi2d zmm9, zmm3, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermi2d zmm9, zmm3, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x76,0x09]
+ vpermi2d zmm9, zmm3, dword ptr [rcx]{1to16}
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x76,0x4a,0x7f]
+ vpermi2d zmm9, zmm3, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x76,0x8a,0x00,0x20,0x00,0x00]
+ vpermi2d zmm9, zmm3, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x76,0x4a,0x80]
+ vpermi2d zmm9, zmm3, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2d zmm9, zmm3, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x72,0x65,0x48,0x76,0x8a,0xc0,0xdf,0xff,0xff]
+ vpermi2d zmm9, zmm3, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2d zmm9, zmm3, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x76,0x4a,0x7f]
+ vpermi2d zmm9, zmm3, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermi2d zmm9, zmm3, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x76,0x8a,0x00,0x02,0x00,0x00]
+ vpermi2d zmm9, zmm3, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermi2d zmm9, zmm3, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x76,0x4a,0x80]
+ vpermi2d zmm9, zmm3, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermi2d zmm9, zmm3, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x72,0x65,0x58,0x76,0x8a,0xfc,0xfd,0xff,0xff]
+ vpermi2d zmm9, zmm3, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermi2q zmm21, zmm22, zmm25
+// CHECK: encoding: [0x62,0x82,0xcd,0x40,0x76,0xe9]
+ vpermi2q zmm21, zmm22, zmm25
+
+// CHECK: vpermi2q zmm21 {k2}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x82,0xcd,0x42,0x76,0xe9]
+ vpermi2q zmm21 {k2}, zmm22, zmm25
+
+// CHECK: vpermi2q zmm21 {k2} {z}, zmm22, zmm25
+// CHECK: encoding: [0x62,0x82,0xcd,0xc2,0x76,0xe9]
+ vpermi2q zmm21 {k2} {z}, zmm22, zmm25
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x76,0x29]
+ vpermi2q zmm21, zmm22, zmmword ptr [rcx]
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xcd,0x40,0x76,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpermi2q zmm21, zmm22, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermi2q zmm21, zmm22, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x76,0x29]
+ vpermi2q zmm21, zmm22, qword ptr [rcx]{1to8}
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x76,0x6a,0x7f]
+ vpermi2q zmm21, zmm22, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x76,0xaa,0x00,0x20,0x00,0x00]
+ vpermi2q zmm21, zmm22, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x76,0x6a,0x80]
+ vpermi2q zmm21, zmm22, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2q zmm21, zmm22, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xcd,0x40,0x76,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermi2q zmm21, zmm22, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2q zmm21, zmm22, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x76,0x6a,0x7f]
+ vpermi2q zmm21, zmm22, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermi2q zmm21, zmm22, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x76,0xaa,0x00,0x04,0x00,0x00]
+ vpermi2q zmm21, zmm22, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermi2q zmm21, zmm22, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x76,0x6a,0x80]
+ vpermi2q zmm21, zmm22, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermi2q zmm21, zmm22, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xcd,0x50,0x76,0xaa,0xf8,0xfb,0xff,0xff]
+ vpermi2q zmm21, zmm22, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vpermi2ps zmm26, zmm26, zmm1
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0xd1]
+ vpermi2ps zmm26, zmm26, zmm1
+
+// CHECK: vpermi2ps zmm26 {k5}, zmm26, zmm1
+// CHECK: encoding: [0x62,0x62,0x2d,0x45,0x77,0xd1]
+ vpermi2ps zmm26 {k5}, zmm26, zmm1
+
+// CHECK: vpermi2ps zmm26 {k5} {z}, zmm26, zmm1
+// CHECK: encoding: [0x62,0x62,0x2d,0xc5,0x77,0xd1]
+ vpermi2ps zmm26 {k5} {z}, zmm26, zmm1
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0x11]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rcx]
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0x22,0x2d,0x40,0x77,0x94,0xf0,0x34,0x12,0x00,0x00]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermi2ps zmm26, zmm26, dword ptr [rcx]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x50,0x77,0x11]
+ vpermi2ps zmm26, zmm26, dword ptr [rcx]{1to16}
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0x52,0x7f]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0x92,0x00,0x20,0x00,0x00]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0x52,0x80]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2ps zmm26, zmm26, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0x62,0x2d,0x40,0x77,0x92,0xc0,0xdf,0xff,0xff]
+ vpermi2ps zmm26, zmm26, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2ps zmm26, zmm26, dword ptr [rdx + 508]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x50,0x77,0x52,0x7f]
+ vpermi2ps zmm26, zmm26, dword ptr [rdx + 508]{1to16}
+
+// CHECK: vpermi2ps zmm26, zmm26, dword ptr [rdx + 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x50,0x77,0x92,0x00,0x02,0x00,0x00]
+ vpermi2ps zmm26, zmm26, dword ptr [rdx + 512]{1to16}
+
+// CHECK: vpermi2ps zmm26, zmm26, dword ptr [rdx - 512]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x50,0x77,0x52,0x80]
+ vpermi2ps zmm26, zmm26, dword ptr [rdx - 512]{1to16}
+
+// CHECK: vpermi2ps zmm26, zmm26, dword ptr [rdx - 516]{1to16}
+// CHECK: encoding: [0x62,0x62,0x2d,0x50,0x77,0x92,0xfc,0xfd,0xff,0xff]
+ vpermi2ps zmm26, zmm26, dword ptr [rdx - 516]{1to16}
+
+// CHECK: vpermi2pd zmm21, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0x40,0x77,0xed]
+ vpermi2pd zmm21, zmm27, zmm21
+
+// CHECK: vpermi2pd zmm21 {k4}, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0x44,0x77,0xed]
+ vpermi2pd zmm21 {k4}, zmm27, zmm21
+
+// CHECK: vpermi2pd zmm21 {k4} {z}, zmm27, zmm21
+// CHECK: encoding: [0x62,0xa2,0xa5,0xc4,0x77,0xed]
+ vpermi2pd zmm21 {k4} {z}, zmm27, zmm21
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rcx]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0x77,0x29]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rcx]
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+// CHECK: encoding: [0x62,0xa2,0xa5,0x40,0x77,0xac,0xf0,0x34,0x12,0x00,0x00]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rax + 8*r14 + 4660]
+
+// CHECK: vpermi2pd zmm21, zmm27, qword ptr [rcx]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0x29]
+ vpermi2pd zmm21, zmm27, qword ptr [rcx]{1to8}
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rdx + 8128]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0x77,0x6a,0x7f]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rdx + 8128]
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rdx + 8192]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0x77,0xaa,0x00,0x20,0x00,0x00]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rdx + 8192]
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rdx - 8192]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0x77,0x6a,0x80]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rdx - 8192]
+
+// CHECK: vpermi2pd zmm21, zmm27, zmmword ptr [rdx - 8256]
+// CHECK: encoding: [0x62,0xe2,0xa5,0x40,0x77,0xaa,0xc0,0xdf,0xff,0xff]
+ vpermi2pd zmm21, zmm27, zmmword ptr [rdx - 8256]
+
+// CHECK: vpermi2pd zmm21, zmm27, qword ptr [rdx + 1016]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0x6a,0x7f]
+ vpermi2pd zmm21, zmm27, qword ptr [rdx + 1016]{1to8}
+
+// CHECK: vpermi2pd zmm21, zmm27, qword ptr [rdx + 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0xaa,0x00,0x04,0x00,0x00]
+ vpermi2pd zmm21, zmm27, qword ptr [rdx + 1024]{1to8}
+
+// CHECK: vpermi2pd zmm21, zmm27, qword ptr [rdx - 1024]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0x6a,0x80]
+ vpermi2pd zmm21, zmm27, qword ptr [rdx - 1024]{1to8}
+
+// CHECK: vpermi2pd zmm21, zmm27, qword ptr [rdx - 1032]{1to8}
+// CHECK: encoding: [0x62,0xe2,0xa5,0x50,0x77,0xaa,0xf8,0xfb,0xff,0xff]
+ vpermi2pd zmm21, zmm27, qword ptr [rdx - 1032]{1to8}
+
+// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [r14 + 8*ymm16 + 123]
+// CHECK: encoding: [0x62,0xd2,0xfd,0x41,0x92,0xb4,0xc6,0x7b,0x00,0x00,0x00]
+ vgatherdpd zmm6 {k1},ZMMWORD PTR [r14+ymm16*8+0x7b]
+
+// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [r9 + ymm16 + 256]
+// CHECK: encoding: [0x62,0xd2,0xfd,0x41,0x92,0x74,0x01,0x20]
+ vgatherdpd zmm6{k1},ZMMWORD PTR [r9+ymm16*1+0x100]
+
+// CHECK: vgatherdpd zmm6 {k1}, zmmword ptr [rcx + 4*ymm16 + 1024]
+// CHECK: encoding: [0x62,0xf2,0xfd,0x41,0x92,0xb4,0x81,0x00,0x04,0x00,0x00]
+ vgatherdpd zmm6{k1},ZMMWORD PTR [rcx+ymm16*4+0x400]
+
+// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [r14 + 8*zmm19 + 123]
+// CHECK: encoding: [0x62,0x52,0x7d,0x41,0x92,0x8c,0xde,0x7b,0x00,0x00,0x00]
+ vgatherdps zmm9{k1},ZMMWORD PTR [r14+zmm19*8+0x7b]
+
+// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [r9 + zmm19 + 256]
+// CHECK: encoding: [0x62,0x52,0x7d,0x41,0x92,0x4c,0x19,0x40]
+ vgatherdps zmm9{k1},ZMMWORD PTR [r9+zmm19*1+0x100]
+
+// CHECK: vgatherdps zmm9 {k1}, zmmword ptr [rcx + 4*zmm19 + 1024]
+// CHECK: encoding: [0x62,0x72,0x7d,0x41,0x92,0x8c,0x99,0x00,0x04,0x00,0x00]
+ vgatherdps zmm9{k1},ZMMWORD PTR [rcx+zmm19*4+0x400]
+
+// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [r14 + 8*zmm2 + 123]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x93,0xac,0xd6,0x7b,0x00,0x00,0x00]
+ vgatherqpd zmm29{k1},ZMMWORD PTR [r14+zmm2*8+0x7b]
+
+// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [r9 + zmm2 + 256]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x93,0x6c,0x11,0x20]
+ vgatherqpd zmm29{k1},ZMMWORD PTR [r9+zmm2*1+0x100]
+
+// CHECK: vgatherqpd zmm29 {k1}, zmmword ptr [rcx + 4*zmm2 + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x93,0xac,0x91,0x00,0x04,0x00,0x00]
+ vgatherqpd zmm29{k1},ZMMWORD PTR [rcx+zmm2*4+0x400]
+
+// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [r14 + 8*zmm4 + 123]
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0x93,0x94,0xe6,0x7b,0x00,0x00,0x00]
+ vgatherqps ymm18{k1},ZMMWORD PTR [r14+zmm4*8+0x7b]
+
+// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [r9 + zmm4 + 256]
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0x93,0x54,0x21,0x40]
+ vgatherqps ymm18{k1},ZMMWORD PTR [r9+zmm4*1+0x100]
+
+// CHECK: vgatherqps ymm18 {k1}, zmmword ptr [rcx + 4*zmm4 + 1024]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0x93,0x94,0xa1,0x00,0x04,0x00,0x00]
+ vgatherqps ymm18{k1},ZMMWORD PTR [rcx+zmm4*4+0x400]
+
+// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [r14 + 8*zmm11 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x90,0x8c,0xde,0x7b,0x00,0x00,0x00]
+ vpgatherdd zmm17{k1},ZMMWORD PTR [r14+zmm11*8+0x7b]
+
+// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [r9 + zmm11 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x49,0x90,0x4c,0x19,0x40]
+ vpgatherdd zmm17{k1},ZMMWORD PTR [r9+zmm11*1+0x100]
+
+// CHECK: vpgatherdd zmm17 {k1}, zmmword ptr [rcx + 4*zmm11 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x49,0x90,0x8c,0x99,0x00,0x04,0x00,0x00]
+ vpgatherdd zmm17{k1},ZMMWORD PTR [rcx+zmm11*4+0x400]
+
+// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [r14 + 8*ymm14 + 123]
+// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x90,0x84,0xf6,0x7b,0x00,0x00,0x00]
+ vpgatherdq zmm8{k1},ZMMWORD PTR [r14+ymm14*8+0x7b]
+
+// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [r9 + ymm14 + 256]
+// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x90,0x44,0x31,0x20]
+ vpgatherdq zmm8{k1},ZMMWORD PTR [r9+ymm14*1+0x100]
+
+// CHECK: vpgatherdq zmm8 {k1}, zmmword ptr [rcx + 4*ymm14 + 1024]
+// CHECK: encoding: [0x62,0x32,0xfd,0x49,0x90,0x84,0xb1,0x00,0x04,0x00,0x00]
+ vpgatherdq zmm8{k1},ZMMWORD PTR [rcx+ymm14*4+0x400]
+
+// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [r14 + 8*zmm17 + 123]
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x91,0x9c,0xce,0x7b,0x00,0x00,0x00]
+ vpgatherqd ymm3{k1},ZMMWORD PTR [r14+zmm17*8+0x7b]
+
+// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [r9 + zmm17 + 256]
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x91,0x5c,0x09,0x40]
+ vpgatherqd ymm3{k1},ZMMWORD PTR [r9+zmm17*1+0x100]
+
+// CHECK: vpgatherqd ymm3 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0x91,0x9c,0x89,0x00,0x04,0x00,0x00]
+ vpgatherqd ymm3{k1},ZMMWORD PTR [rcx+zmm17*4+0x400]
+
+// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [r14 + 8*zmm21 + 123]
+// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x91,0x8c,0xee,0x7b,0x00,0x00,0x00]
+ vpgatherqq zmm17{k1},ZMMWORD PTR [r14+zmm21*8+0x7b]
+
+// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [r9 + zmm21 + 256]
+// CHECK: encoding: [0x62,0xc2,0xfd,0x41,0x91,0x4c,0x29,0x20]
+ vpgatherqq zmm17{k1},ZMMWORD PTR [r9+zmm21*1+0x100]
+
+// CHECK: vpgatherqq zmm17 {k1}, zmmword ptr [rcx + 4*zmm21 + 1024]
+// CHECK: encoding: [0x62,0xe2,0xfd,0x41,0x91,0x8c,0xa9,0x00,0x04,0x00,0x00]
+ vpgatherqq zmm17{k1},ZMMWORD PTR [rcx+zmm21*4+0x400]
+
+// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm16 + 123] {k1}, zmm19
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x9c,0xc6,0x7b,0x00,0x00,0x00]
+ vpscatterdd ZMMWORD PTR [r14+zmm16*8+0x7b]{k1},zmm19
+
+// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm16 + 123] {k1}, zmm19
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x9c,0xc6,0x7b,0x00,0x00,0x00]
+ vpscatterdd ZMMWORD PTR [r14+zmm16*8+0x7b]{k1},zmm19
+
+// CHECK: vpscatterdd zmmword ptr [r9 + zmm16 + 256] {k1}, zmm19
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa0,0x5c,0x01,0x40]
+ vpscatterdd ZMMWORD PTR [r9+zmm16*1+0x100]{k1},zmm19
+
+// CHECK: vpscatterdd zmmword ptr [rcx + 4*zmm16 + 1024] {k1}, zmm19
+// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa0,0x9c,0x81,0x00,0x04,0x00,0x00]
+ vpscatterdd ZMMWORD PTR [rcx+zmm16*4+0x400]{k1},zmm19
+
+// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm6 + 123] {k1}, zmm5
+// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0xac,0xf6,0x7b,0x00,0x00,0x00]
+ vpscatterdq ZMMWORD PTR [r14+ymm6*8+0x7b]{k1},zmm5
+
+// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm6 + 123] {k1}, zmm5
+// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0xac,0xf6,0x7b,0x00,0x00,0x00]
+ vpscatterdq ZMMWORD PTR [r14+ymm6*8+0x7b]{k1},zmm5
+
+// CHECK: vpscatterdq zmmword ptr [r9 + ymm6 + 256] {k1}, zmm5
+// CHECK: encoding: [0x62,0xd2,0xfd,0x49,0xa0,0x6c,0x31,0x20]
+ vpscatterdq ZMMWORD PTR [r9+ymm6*1+0x100]{k1},zmm5
+
+// CHECK: vpscatterdq zmmword ptr [rcx + 4*ymm6 + 1024] {k1}, zmm5
+// CHECK: encoding: [0x62,0xf2,0xfd,0x49,0xa0,0xac,0xb1,0x00,0x04,0x00,0x00]
+ vpscatterdq ZMMWORD PTR [rcx+ymm6*4+0x400]{k1},zmm5
+
+// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm2 + 123] {k1}, ymm20
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0xa4,0xd6,0x7b,0x00,0x00,0x00]
+ vpscatterqd ZMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20
+
+// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm2 + 123] {k1}, ymm20
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0xa4,0xd6,0x7b,0x00,0x00,0x00]
+ vpscatterqd ZMMWORD PTR [r14+zmm2*8+0x7b]{k1},ymm20
+
+// CHECK: vpscatterqd zmmword ptr [r9 + zmm2 + 256] {k1}, ymm20
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa1,0x64,0x11,0x40]
+ vpscatterqd ZMMWORD PTR [r9+zmm2*1+0x100]{k1},ymm20
+
+// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm2 + 1024] {k1}, ymm20
+// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0xa1,0xa4,0x91,0x00,0x04,0x00,0x00]
+ vpscatterqd ZMMWORD PTR [rcx+zmm2*4+0x400]{k1},ymm20
+
+// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm20 + 123] {k1}, zmm14
+// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0xb4,0xe6,0x7b,0x00,0x00,0x00]
+ vpscatterqq ZMMWORD PTR [r14+zmm20*8+0x7b]{k1},zmm14
+
+// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm20 + 123] {k1}, zmm14
+// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0xb4,0xe6,0x7b,0x00,0x00,0x00]
+ vpscatterqq ZMMWORD PTR [r14+zmm20*8+0x7b]{k1},zmm14
+
+// CHECK: vpscatterqq zmmword ptr [r9 + zmm20 + 256] {k1}, zmm14
+// CHECK: encoding: [0x62,0x52,0xfd,0x41,0xa1,0x74,0x21,0x20]
+ vpscatterqq ZMMWORD PTR [r9+zmm20*1+0x100]{k1},zmm14
+
+// CHECK: vpscatterqq zmmword ptr [rcx + 4*zmm20 + 1024] {k1}, zmm14
+// CHECK: encoding: [0x62,0x72,0xfd,0x41,0xa1,0xb4,0xa1,0x00,0x04,0x00,0x00]
+ vpscatterqq ZMMWORD PTR [rcx+zmm20*4+0x400]{k1},zmm14
+
+// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm24 + 123] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00]
+ vscatterdpd ZMMWORD PTR [r14+ymm24*8+0x7b]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm24 + 123] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xc6,0x7b,0x00,0x00,0x00]
+ vscatterdpd ZMMWORD PTR [r14+ymm24*8+0x7b]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [r9 + ymm24 + 256] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x54,0x01,0x20]
+ vscatterdpd ZMMWORD PTR [r9+ymm24*1+0x100]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [rcx + 4*ymm24 + 1024] {k1}, zmm18
+// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa2,0x94,0x81,0x00,0x04,0x00,0x00]
+ vscatterdpd ZMMWORD PTR [rcx+ymm24*4+0x400]{k1},zmm18
+
+// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm19 + 123] {k1}, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00]
+ vscatterdps ZMMWORD PTR [r14+zmm19*8+0x7b]{k1},zmm17
+
+// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm19 + 123] {k1}, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x8c,0xde,0x7b,0x00,0x00,0x00]
+ vscatterdps ZMMWORD PTR [r14+zmm19*8+0x7b]{k1},zmm17
+
+// CHECK: vscatterdps zmmword ptr [r9 + zmm19 + 256] {k1}, zmm17
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa2,0x4c,0x19,0x40]
+ vscatterdps ZMMWORD PTR [r9+zmm19*1+0x100]{k1},zmm17
+
+// CHECK: vscatterdps zmmword ptr [rcx + 4*zmm19 + 1024] {k1}, zmm17
+// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa2,0x8c,0x99,0x00,0x04,0x00,0x00]
+ vscatterdps ZMMWORD PTR [rcx+zmm19*4+0x400]{k1},zmm17
+
+// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm28 + 123] {k1}, zmm22
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00]
+ vscatterqpd ZMMWORD PTR [r14+zmm28*8+0x7b]{k1},zmm22
+
+// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm28 + 123] {k1}, zmm22
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0xb4,0xe6,0x7b,0x00,0x00,0x00]
+ vscatterqpd ZMMWORD PTR [r14+zmm28*8+0x7b]{k1},zmm22
+
+// CHECK: vscatterqpd zmmword ptr [r9 + zmm28 + 256] {k1}, zmm22
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa3,0x74,0x21,0x20]
+ vscatterqpd ZMMWORD PTR [r9+zmm28*1+0x100]{k1},zmm22
+
+// CHECK: vscatterqpd zmmword ptr [rcx + 4*zmm28 + 1024] {k1}, zmm22
+// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa3,0xb4,0xa1,0x00,0x04,0x00,0x00]
+ vscatterqpd ZMMWORD PTR [rcx+zmm28*4+0x400]{k1},zmm22
+
+// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm27 + 123] {k1}, ymm6
+// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00]
+ vscatterqps ZMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6
+
+// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm27 + 123] {k1}, ymm6
+// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0xb4,0xde,0x7b,0x00,0x00,0x00]
+ vscatterqps ZMMWORD PTR [r14+zmm27*8+0x7b]{k1},ymm6
+
+// CHECK: vscatterqps zmmword ptr [r9 + zmm27 + 256] {k1}, ymm6
+// CHECK: encoding: [0x62,0x92,0x7d,0x41,0xa3,0x74,0x19,0x40]
+ vscatterqps ZMMWORD PTR [r9+zmm27*1+0x100]{k1},ymm6
+
+// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm27 + 1024] {k1}, ymm6
+// CHECK: encoding: [0x62,0xb2,0x7d,0x41,0xa3,0xb4,0x99,0x00,0x04,0x00,0x00]
+ vscatterqps ZMMWORD PTR [rcx+zmm27*4+0x400]{k1},ymm6
+
+// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm27 - 123] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xde,0x85,0xff,0xff,0xff]
+ vscatterdpd ZMMWORD PTR [r14+ymm27*8-0x7b]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [r14 + 8*ymm27 - 123] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x94,0xde,0x85,0xff,0xff,0xff]
+ vscatterdpd ZMMWORD PTR [r14+ymm27*8-0x7b]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [r9 + ymm27 + 256] {k1}, zmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x41,0xa2,0x54,0x19,0x20]
+ vscatterdpd ZMMWORD PTR [r9+ymm27*1+0x100]{k1},zmm18
+
+// CHECK: vscatterdpd zmmword ptr [rcx + 4*ymm27 + 1024] {k1}, zmm18
+// CHECK: encoding: [0x62,0xa2,0xfd,0x41,0xa2,0x94,0x99,0x00,0x04,0x00,0x00]
+ vscatterdpd ZMMWORD PTR [rcx+ymm27*4+0x400]{k1},zmm18
+
+// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm17 - 123] {k1}, zmm1
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x8c,0xce,0x85,0xff,0xff,0xff]
+ vscatterdps ZMMWORD PTR [r14+zmm17*8-0x7b]{k1},zmm1
+
+// CHECK: vscatterdps zmmword ptr [r14 + 8*zmm17 - 123] {k1}, zmm1
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x8c,0xce,0x85,0xff,0xff,0xff]
+ vscatterdps ZMMWORD PTR [r14+zmm17*8-0x7b]{k1},zmm1
+
+// CHECK: vscatterdps zmmword ptr [r9 + zmm17 + 256] {k1}, zmm1
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0xa2,0x4c,0x09,0x40]
+ vscatterdps ZMMWORD PTR [r9+zmm17*1+0x100]{k1},zmm1
+
+// CHECK: vscatterdps zmmword ptr [rcx + 4*zmm17 + 1024] {k1}, zmm1
+// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0xa2,0x8c,0x89,0x00,0x04,0x00,0x00]
+ vscatterdps ZMMWORD PTR [rcx+zmm17*4+0x400]{k1},zmm1
+
+// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm25 - 123] {k1}, zmm8
+// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x84,0xce,0x85,0xff,0xff,0xff]
+ vscatterqpd ZMMWORD PTR [r14+zmm25*8-0x7b]{k1},zmm8
+
+// CHECK: vscatterqpd zmmword ptr [r14 + 8*zmm25 - 123] {k1}, zmm8
+// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x84,0xce,0x85,0xff,0xff,0xff]
+ vscatterqpd ZMMWORD PTR [r14+zmm25*8-0x7b]{k1},zmm8
+
+// CHECK: vscatterqpd zmmword ptr [r9 + zmm25 + 256] {k1}, zmm8
+// CHECK: encoding: [0x62,0x12,0xfd,0x41,0xa3,0x44,0x09,0x20]
+ vscatterqpd ZMMWORD PTR [r9+zmm25*1+0x100]{k1},zmm8
+
+// CHECK: vscatterqpd zmmword ptr [rcx + 4*zmm25 + 1024] {k1}, zmm8
+// CHECK: encoding: [0x62,0x32,0xfd,0x41,0xa3,0x84,0x89,0x00,0x04,0x00,0x00]
+ vscatterqpd ZMMWORD PTR [rcx+zmm25*4+0x400]{k1},zmm8
+
+// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm10 - 123] {k1}, ymm13
+// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0xac,0xd6,0x85,0xff,0xff,0xff]
+ vscatterqps ZMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13
+
+// CHECK: vscatterqps zmmword ptr [r14 + 8*zmm10 - 123] {k1}, ymm13
+// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0xac,0xd6,0x85,0xff,0xff,0xff]
+ vscatterqps ZMMWORD PTR [r14+zmm10*8-0x7b]{k1},ymm13
+
+// CHECK: vscatterqps zmmword ptr [r9 + zmm10 + 256] {k1}, ymm13
+// CHECK: encoding: [0x62,0x12,0x7d,0x49,0xa3,0x6c,0x11,0x40]
+ vscatterqps ZMMWORD PTR [r9+zmm10*1+0x100]{k1},ymm13
+
+// CHECK: vscatterqps zmmword ptr [rcx + 4*zmm10 + 1024] {k1}, ymm13
+// CHECK: encoding: [0x62,0x32,0x7d,0x49,0xa3,0xac,0x91,0x00,0x04,0x00,0x00]
+ vscatterqps ZMMWORD PTR [rcx+zmm10*4+0x400]{k1},ymm13
+
+// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [r14 + 8*ymm5 - 123]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x92,0xb4,0xee,0x85,0xff,0xff,0xff]
+ vgatherdpd zmm30{k1},ZMMWORD PTR [r14+ymm5*8-0x7b]
+
+// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [r9 + ymm5 + 256]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x92,0x74,0x29,0x20]
+ vgatherdpd zmm30{k1},ZMMWORD PTR [r9+ymm5*1+0x100]
+
+// CHECK: vgatherdpd zmm30 {k1}, zmmword ptr [rcx + 4*ymm5 + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x92,0xb4,0xa9,0x00,0x04,0x00,0x00]
+ vgatherdpd zmm30{k1},ZMMWORD PTR [rcx+ymm5*4+0x400]
+
+// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [r14 + 8*zmm26 - 123]
+// CHECK: encoding: [0x62,0x12,0x7d,0x41,0x92,0x84,0xd6,0x85,0xff,0xff,0xff]
+ vgatherdps zmm8{k1},ZMMWORD PTR [r14+zmm26*8-0x7b]
+
+// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [r9 + zmm26 + 256]
+// CHECK: encoding: [0x62,0x12,0x7d,0x41,0x92,0x44,0x11,0x40]
+ vgatherdps zmm8{k1},ZMMWORD PTR [r9+zmm26*1+0x100]
+
+// CHECK: vgatherdps zmm8 {k1}, zmmword ptr [rcx + 4*zmm26 + 1024]
+// CHECK: encoding: [0x62,0x32,0x7d,0x41,0x92,0x84,0x91,0x00,0x04,0x00,0x00]
+ vgatherdps zmm8{k1},ZMMWORD PTR [rcx+zmm26*4+0x400]
+
+// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [r14 + 8*zmm13 - 123]
+// CHECK: encoding: [0x62,0x02,0xfd,0x49,0x93,0x9c,0xee,0x85,0xff,0xff,0xff]
+ vgatherqpd zmm27{k1},ZMMWORD PTR [r14+zmm13*8-0x7b]
+
+// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [r9 + zmm13 + 256]
+// CHECK: encoding: [0x62,0x02,0xfd,0x49,0x93,0x5c,0x29,0x20]
+ vgatherqpd zmm27{k1},ZMMWORD PTR [r9+zmm13*1+0x100]
+
+// CHECK: vgatherqpd zmm27 {k1}, zmmword ptr [rcx + 4*zmm13 + 1024]
+// CHECK: encoding: [0x62,0x22,0xfd,0x49,0x93,0x9c,0xa9,0x00,0x04,0x00,0x00]
+ vgatherqpd zmm27{k1},ZMMWORD PTR [rcx+zmm13*4+0x400]
+
+// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [r14 + 8*zmm14 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x93,0x9c,0xf6,0x85,0xff,0xff,0xff]
+ vgatherqps ymm27{k1},ZMMWORD PTR [r14+zmm14*8-0x7b]
+
+// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [r9 + zmm14 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x49,0x93,0x5c,0x31,0x40]
+ vgatherqps ymm27{k1},ZMMWORD PTR [r9+zmm14*1+0x100]
+
+// CHECK: vgatherqps ymm27 {k1}, zmmword ptr [rcx + 4*zmm14 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x49,0x93,0x9c,0xb1,0x00,0x04,0x00,0x00]
+ vgatherqps ymm27{k1},ZMMWORD PTR [rcx+zmm14*4+0x400]
+
+// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [r14 + 8*zmm16 - 123]
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x90,0xbc,0xc6,0x85,0xff,0xff,0xff]
+ vpgatherdd zmm7{k1},ZMMWORD PTR [r14+zmm16*8-0x7b]
+
+// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [r9 + zmm16 + 256]
+// CHECK: encoding: [0x62,0xd2,0x7d,0x41,0x90,0x7c,0x01,0x40]
+ vpgatherdd zmm7{k1},ZMMWORD PTR [r9+zmm16*1+0x100]
+
+// CHECK: vpgatherdd zmm7 {k1}, zmmword ptr [rcx + 4*zmm16 + 1024]
+// CHECK: encoding: [0x62,0xf2,0x7d,0x41,0x90,0xbc,0x81,0x00,0x04,0x00,0x00]
+ vpgatherdd zmm7{k1},ZMMWORD PTR [rcx+zmm16*4+0x400]
+
+// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [r14 + 8*ymm7 - 123]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x90,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherdq zmm25{k1},ZMMWORD PTR [r14+ymm7*8-0x7b]
+
+// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [r9 + ymm7 + 256]
+// CHECK: encoding: [0x62,0x42,0xfd,0x49,0x90,0x4c,0x39,0x20]
+ vpgatherdq zmm25{k1},ZMMWORD PTR [r9+ymm7*1+0x100]
+
+// CHECK: vpgatherdq zmm25 {k1}, zmmword ptr [rcx + 4*ymm7 + 1024]
+// CHECK: encoding: [0x62,0x62,0xfd,0x49,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdq zmm25{k1},ZMMWORD PTR [rcx+ymm7*4+0x400]
+
+// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [r14 + 8*zmm17 - 123]
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0x91,0x9c,0xce,0x85,0xff,0xff,0xff]
+ vpgatherqd ymm19{k1},ZMMWORD PTR [r14+zmm17*8-0x7b]
+
+// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [r9 + zmm17 + 256]
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0x91,0x5c,0x09,0x40]
+ vpgatherqd ymm19{k1},ZMMWORD PTR [r9+zmm17*1+0x100]
+
+// CHECK: vpgatherqd ymm19 {k1}, zmmword ptr [rcx + 4*zmm17 + 1024]
+// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0x91,0x9c,0x89,0x00,0x04,0x00,0x00]
+ vpgatherqd ymm19{k1},ZMMWORD PTR [rcx+zmm17*4+0x400]
+
+// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [r14 + 8*zmm13 - 123]
+// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x91,0x94,0xee,0x85,0xff,0xff,0xff]
+ vpgatherqq zmm10{k1},ZMMWORD PTR [r14+zmm13*8-0x7b]
+
+// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [r9 + zmm13 + 256]
+// CHECK: encoding: [0x62,0x12,0xfd,0x49,0x91,0x54,0x29,0x20]
+ vpgatherqq zmm10{k1},ZMMWORD PTR [r9+zmm13*1+0x100]
+
+// CHECK: vpgatherqq zmm10 {k1}, zmmword ptr [rcx + 4*zmm13 + 1024]
+// CHECK: encoding: [0x62,0x32,0xfd,0x49,0x91,0x94,0xa9,0x00,0x04,0x00,0x00]
+ vpgatherqq zmm10{k1},ZMMWORD PTR [rcx+zmm13*4+0x400]
+
+// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm4 - 123] {k1}, zmm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0xbc,0xe6,0x85,0xff,0xff,0xff]
+ vpscatterdd ZMMWORD PTR [r14+zmm4*8-0x7b]{k1},zmm23
+
+// CHECK: vpscatterdd zmmword ptr [r14 + 8*zmm4 - 123] {k1}, zmm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0xbc,0xe6,0x85,0xff,0xff,0xff]
+ vpscatterdd ZMMWORD PTR [r14+zmm4*8-0x7b]{k1},zmm23
+
+// CHECK: vpscatterdd zmmword ptr [r9 + zmm4 + 256] {k1}, zmm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x49,0xa0,0x7c,0x21,0x40]
+ vpscatterdd ZMMWORD PTR [r9+zmm4*1+0x100]{k1},zmm23
+
+// CHECK: vpscatterdd zmmword ptr [rcx + 4*zmm4 + 1024] {k1}, zmm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x49,0xa0,0xbc,0xa1,0x00,0x04,0x00,0x00]
+ vpscatterdd ZMMWORD PTR [rcx+zmm4*4+0x400]{k1},zmm23
+
+// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm25 - 123] {k1}, zmm1
+// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x8c,0xce,0x85,0xff,0xff,0xff]
+ vpscatterdq ZMMWORD PTR [r14+ymm25*8-0x7b]{k1},zmm1
+
+// CHECK: vpscatterdq zmmword ptr [r14 + 8*ymm25 - 123] {k1}, zmm1
+// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x8c,0xce,0x85,0xff,0xff,0xff]
+ vpscatterdq ZMMWORD PTR [r14+ymm25*8-0x7b]{k1},zmm1
+
+// CHECK: vpscatterdq zmmword ptr [r9 + ymm25 + 256] {k1}, zmm1
+// CHECK: encoding: [0x62,0x92,0xfd,0x41,0xa0,0x4c,0x09,0x20]
+ vpscatterdq ZMMWORD PTR [r9+ymm25*1+0x100]{k1},zmm1
+
+// CHECK: vpscatterdq zmmword ptr [rcx + 4*ymm25 + 1024] {k1}, zmm1
+// CHECK: encoding: [0x62,0xb2,0xfd,0x41,0xa0,0x8c,0x89,0x00,0x04,0x00,0x00]
+ vpscatterdq ZMMWORD PTR [rcx+ymm25*4+0x400]{k1},zmm1
+
+// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm22 - 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0xbc,0xf6,0x85,0xff,0xff,0xff]
+ vpscatterqd ZMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23
+
+// CHECK: vpscatterqd zmmword ptr [r14 + 8*zmm22 - 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0xbc,0xf6,0x85,0xff,0xff,0xff]
+ vpscatterqd ZMMWORD PTR [r14+zmm22*8-0x7b]{k1},ymm23
+
+// CHECK: vpscatterqd zmmword ptr [r9 + zmm22 + 256] {k1}, ymm23
+// CHECK: encoding: [0x62,0xc2,0x7d,0x41,0xa1,0x7c,0x31,0x40]
+ vpscatterqd ZMMWORD PTR [r9+zmm22*1+0x100]{k1},ymm23
+
+// CHECK: vpscatterqd zmmword ptr [rcx + 4*zmm22 + 1024] {k1}, ymm23
+// CHECK: encoding: [0x62,0xe2,0x7d,0x41,0xa1,0xbc,0xb1,0x00,0x04,0x00,0x00]
+ vpscatterqd ZMMWORD PTR [rcx+zmm22*4+0x400]{k1},ymm23
+
+// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm8 - 123] {k1}, zmm2
+// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x94,0xc6,0x85,0xff,0xff,0xff]
+ vpscatterqq ZMMWORD PTR [r14+zmm8*8-0x7b]{k1},zmm2
+
+// CHECK: vpscatterqq zmmword ptr [r14 + 8*zmm8 - 123] {k1}, zmm2
+// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x94,0xc6,0x85,0xff,0xff,0xff]
+ vpscatterqq ZMMWORD PTR [r14+zmm8*8-0x7b]{k1},zmm2
+
+// CHECK: vpscatterqq zmmword ptr [r9 + zmm8 + 256] {k1}, zmm2
+// CHECK: encoding: [0x62,0x92,0xfd,0x49,0xa1,0x54,0x01,0x20]
+ vpscatterqq ZMMWORD PTR [r9+zmm8*1+0x100]{k1},zmm2
+
+// CHECK: vpscatterqq zmmword ptr [rcx + 4*zmm8 + 1024] {k1}, zmm2
+// CHECK: encoding: [0x62,0xb2,0xfd,0x49,0xa1,0x94,0x81,0x00,0x04,0x00,0x00]
+ vpscatterqq ZMMWORD PTR [rcx+zmm8*4+0x400]{k1},zmm2
diff --git a/test/MC/X86/intel-syntax-x86-64-avx.s b/test/MC/X86/intel-syntax-x86-64-avx.s
new file mode 100644
index 000000000000..eff0974c1a0f
--- /dev/null
+++ b/test/MC/X86/intel-syntax-x86-64-avx.s
@@ -0,0 +1,65 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
+
+// CHECK: vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+// CHECK: encoding: [0xc4,0xe2,0xf9,0x92,0x14,0x4f]
+ vgatherdpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+
+// CHECK: vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+// CHECK: encoding: [0xc4,0xe2,0xf9,0x93,0x14,0x4f]
+ vgatherqpd xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+
+// CHECK: vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
+// CHECK: encoding: [0xc4,0xe2,0xfd,0x92,0x14,0x4f]
+ vgatherdpd ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
+
+// CHECK: vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
+// CHECK: encoding: [0xc4,0xe2,0xfd,0x93,0x14,0x4f]
+ vgatherqpd ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
+
+// CHECK: vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x39,0x92,0x14,0x4f]
+ vgatherdps xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
+
+// CHECK: vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x39,0x93,0x14,0x4f]
+ vgatherqps xmm10, qword ptr [r15 + 2*xmm9], xmm8
+
+// CHECK: vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
+// CHECK: encoding: [0xc4,0x02,0x3d,0x92,0x14,0x4f]
+ vgatherdps ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
+
+// CHECK: vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x3d,0x93,0x14,0x4f]
+ vgatherqps xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
+
+// CHECK: vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+// CHECK: encoding: [0xc4,0xe2,0xf9,0x90,0x14,0x4f]
+ vpgatherdq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+
+// CHECK: vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+// CHECK: encoding: [0xc4,0xe2,0xf9,0x91,0x14,0x4f]
+ vpgatherqq xmm2, xmmword ptr [rdi + 2*xmm1], xmm0
+
+// CHECK: vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
+// CHECK: encoding: [0xc4,0xe2,0xfd,0x90,0x14,0x4f]
+ vpgatherdq ymm2, ymmword ptr [rdi + 2*xmm1], ymm0
+
+// CHECK: vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
+// CHECK: encoding: [0xc4,0xe2,0xfd,0x91,0x14,0x4f]
+ vpgatherqq ymm2, ymmword ptr [rdi + 2*ymm1], ymm0
+
+// CHECK: vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x39,0x90,0x14,0x4f]
+ vpgatherdd xmm10, xmmword ptr [r15 + 2*xmm9], xmm8
+
+// CHECK: vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x39,0x91,0x14,0x4f]
+ vpgatherqd xmm10, qword ptr [r15 + 2*xmm9], xmm8
+
+// CHECK: vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
+// CHECK: encoding: [0xc4,0x02,0x3d,0x90,0x14,0x4f]
+ vpgatherdd ymm10, ymmword ptr [r15 + 2*ymm9], ymm8
+
+// CHECK: vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
+// CHECK: encoding: [0xc4,0x02,0x3d,0x91,0x14,0x4f]
+ vpgatherqd xmm10, xmmword ptr [r15 + 2*ymm9], xmm8
diff --git a/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s b/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s
index 80e26f1ef026..caff5978d5d2 100644
--- a/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s
+++ b/test/MC/X86/intel-syntax-x86-64-avx512f_vl.s
@@ -223,3 +223,900 @@
// CHECK: vcmpps k4, ymm19, dword ptr [rdx - 516]{1to8}, 123
// CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
vcmpps k4,ymm19,DWORD PTR [rdx-0x204]{1to8},0x7b
+
+// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherdpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x4c,0x39,0x20]
+ vgatherdpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x92,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0xbc,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherdpd ymm23 {k1}, ymmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x7c,0x39,0x20]
+ vgatherdpd ymm23 {k1}, ymmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdpd ymm23 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x92,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdpd ymm23 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0xbc,0xfe,0x85,0xff,0xff,0xff]
+ vgatherdpd xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x92,0x7c,0x39,0x20]
+ vgatherdpd xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdpd xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x92,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdpd xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x94,0xfe,0x85,0xff,0xff,0xff]
+ vgatherdpd ymm18 {k1}, ymmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x92,0x54,0x39,0x20]
+ vgatherdpd ymm18 {k1}, ymmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdpd ymm18 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x92,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdpd ymm18 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x92,0x94,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherdps xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x92,0x54,0x39,0x40]
+ vgatherdps xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdps xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x92,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdps xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x92,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherdps ymm27 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x92,0x5c,0x39,0x40]
+ vgatherdps ymm27 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherdps ymm27 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x92,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdps ymm27 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x92,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vgatherdps xmm29 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x92,0x6c,0x39,0x40]
+ vgatherdps xmm29 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherdps xmm29 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0x92,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdps xmm29 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x92,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vgatherdps ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x92,0x6c,0x39,0x40]
+ vgatherdps ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherdps ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x92,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vgatherdps ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherqpd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x4c,0x39,0x20]
+ vgatherqpd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherqpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x93,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqpd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x93,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherqpd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x93,0x6c,0x39,0x20]
+ vgatherqpd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherqpd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x93,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqpd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x94,0xfe,0x85,0xff,0xff,0xff]
+ vgatherqpd xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x93,0x54,0x39,0x20]
+ vgatherqpd xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherqpd xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x93,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqpd xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x93,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vgatherqpd ymm21 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x93,0x6c,0x39,0x20]
+ vgatherqpd ymm21 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherqpd ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x93,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqpd ymm21 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vgatherqps xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherqps xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vgatherqps xmm21 {k1}, qword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0x6c,0x39,0x40]
+ vgatherqps xmm21 {k1}, qword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherqps xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x93,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqps xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x93,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vgatherqps xmm19 {k1}, xmmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x93,0x5c,0x39,0x40]
+ vgatherqps xmm19 {k1}, xmmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherqps xmm19 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x93,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqps xmm19 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vgatherqps xmm22 {k1}, qword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vgatherqps xmm22 {k1}, qword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vgatherqps xmm22 {k1}, qword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x93,0x74,0x39,0x40]
+ vgatherqps xmm22 {k1}, qword ptr [r9 + xmm31 + 256]
+
+// CHECK: vgatherqps xmm22 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x93,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqps xmm22 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x93,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vgatherqps xmm30 {k1}, xmmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x93,0x74,0x39,0x40]
+ vgatherqps xmm30 {k1}, xmmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vgatherqps xmm30 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x93,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vgatherqps xmm30 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherdd xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x4c,0x39,0x40]
+ vpgatherdd xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdd xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x90,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherdd ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0x90,0x5c,0x39,0x40]
+ vpgatherdd ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherdd ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0x90,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdd ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherdd xmm22 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x90,0x74,0x39,0x40]
+ vpgatherdd xmm22 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdd xmm22 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x90,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdd xmm22 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x90,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherdd ymm29 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x90,0x6c,0x39,0x40]
+ vpgatherdd ymm29 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherdd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x90,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdd ymm29 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x90,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherdq xmm17 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x90,0x4c,0x39,0x20]
+ vpgatherdq xmm17 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdq xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdq xmm17 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x90,0x94,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherdq ymm26 {k1}, ymmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x90,0x54,0x39,0x20]
+ vpgatherdq ymm26 {k1}, ymmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdq ymm26 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x90,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdq ymm26 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0x90,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherdq xmm25 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0x90,0x4c,0x39,0x20]
+ vpgatherdq xmm25 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdq xmm25 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0xfd,0x01,0x90,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdq xmm25 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x90,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherdq ymm22 {k1}, ymmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x90,0x74,0x39,0x20]
+ vpgatherdq ymm22 {k1}, ymmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherdq ymm22 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x90,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherdq ymm22 {k1}, ymmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherqd xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x91,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherqd xmm21 {k1}, qword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vpgatherqd xmm21 {k1}, qword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0x91,0x6c,0x39,0x40]
+ vpgatherqd xmm21 {k1}, qword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherqd xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0x91,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqd xmm21 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherqd xmm25 {k1}, xmmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x4c,0x39,0x40]
+ vpgatherqd xmm25 {k1}, xmmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherqd xmm25 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x91,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqd xmm25 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherqd xmm30 {k1}, qword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x91,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherqd xmm30 {k1}, qword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vpgatherqd xmm30 {k1}, qword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0x91,0x74,0x39,0x40]
+ vpgatherqd xmm30 {k1}, qword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherqd xmm30 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0x91,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqd xmm30 {k1}, qword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherqd xmm28 {k1}, xmmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0x91,0x64,0x39,0x40]
+ vpgatherqd xmm28 {k1}, xmmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherqd xmm28 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0x91,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqd xmm28 {k1}, xmmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x94,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherqq xmm18 {k1}, xmmword ptr [r14 + 8*xmm31 + 123]
+
+// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x54,0x39,0x20]
+ vpgatherqq xmm18 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherqq xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x91,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqq xmm18 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x91,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vpgatherqq ymm19 {k1}, ymmword ptr [r14 + 8*ymm31 + 123]
+
+// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0x91,0x5c,0x39,0x20]
+ vpgatherqq ymm19 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherqq ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0x91,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqq ymm19 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0xbc,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherqq xmm23 {k1}, xmmword ptr [r14 + 8*xmm31 - 123]
+
+// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256]
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0x91,0x7c,0x39,0x20]
+ vpgatherqq xmm23 {k1}, xmmword ptr [r9 + xmm31 + 256]
+
+// CHECK: vpgatherqq xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0x91,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqq xmm23 {k1}, xmmword ptr [rcx + 4*xmm31 + 1024]
+
+// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x91,0x94,0xfe,0x85,0xff,0xff,0xff]
+ vpgatherqq ymm26 {k1}, ymmword ptr [r14 + 8*ymm31 - 123]
+
+// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [r9 + ymm31 + 256]
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0x91,0x54,0x39,0x20]
+ vpgatherqq ymm26 {k1}, ymmword ptr [r9 + ymm31 + 256]
+
+// CHECK: vpgatherqq ymm26 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0x91,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vpgatherqq ymm26 {k1}, ymmword ptr [rcx + 4*ymm31 + 1024]
+
+// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20
+
+// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm20
+
+// CHECK: vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm20
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x64,0x39,0x40]
+ vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm20
+
+// CHECK: vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm20
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm20
+
+// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28
+
+// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm28
+
+// CHECK: vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x64,0x39,0x40]
+ vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm28
+
+// CHECK: vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm28
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm28
+
+// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17
+
+// CHECK: vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm17
+
+// CHECK: vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm17
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa0,0x4c,0x39,0x40]
+ vpscatterdd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm17
+
+// CHECK: vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm17
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa0,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm17
+
+// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x84,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24
+
+// CHECK: vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x84,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm24
+
+// CHECK: vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa0,0x44,0x39,0x40]
+ vpscatterdd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm24
+
+// CHECK: vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm24
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa0,0x84,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm24
+
+// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+
+// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+
+// CHECK: vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa0,0x6c,0x39,0x20]
+ vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21
+
+// CHECK: vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa0,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21
+
+// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28
+
+// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterdq ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm28
+
+// CHECK: vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa0,0x64,0x39,0x20]
+ vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm28
+
+// CHECK: vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm28
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm28
+
+// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+
+// CHECK: vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+
+// CHECK: vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa0,0x64,0x39,0x20]
+ vpscatterdq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+
+// CHECK: vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+
+// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20
+
+// CHECK: vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterdq ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm20
+
+// CHECK: vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm20
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa0,0x64,0x39,0x20]
+ vpscatterdq ymmword ptr [r9 + xmm31 + 256] {k1}, ymm20
+
+// CHECK: vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm20
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa0,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterdq ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm20
+
+// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqd qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0x74,0x39,0x40]
+ vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa1,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22
+
+// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x84,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24
+
+// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x84,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqd xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm24
+
+// CHECK: vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x44,0x39,0x40]
+ vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm24
+
+// CHECK: vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm24
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa1,0x84,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm24
+
+// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0xb4,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqd qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22
+// CHECK: encoding: [0x62,0x82,0x7d,0x01,0xa1,0x74,0x39,0x40]
+ vpscatterqd qword ptr [r9 + xmm31 + 256] {k1}, xmm22
+
+// CHECK: vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22
+// CHECK: encoding: [0x62,0xa2,0x7d,0x01,0xa1,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqd qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm22
+
+// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29
+
+// CHECK: vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqd xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm29
+
+// CHECK: vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm29
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa1,0x6c,0x39,0x40]
+ vpscatterqd xmmword ptr [r9 + ymm31 + 256] {k1}, xmm29
+
+// CHECK: vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm29
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa1,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqd xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm29
+
+// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+
+// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqq xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+
+// CHECK: vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x64,0x39,0x20]
+ vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+
+// CHECK: vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa1,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+
+// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19
+
+// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x9c,0xfe,0x7b,0x00,0x00,0x00]
+ vpscatterqq ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm19
+
+// CHECK: vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x5c,0x39,0x20]
+ vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm19
+
+// CHECK: vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa1,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm19
+
+// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x84,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24
+
+// CHECK: vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x84,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqq xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm24
+
+// CHECK: vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0xfd,0x01,0xa1,0x44,0x39,0x20]
+ vpscatterqq xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24
+
+// CHECK: vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24
+// CHECK: encoding: [0x62,0x22,0xfd,0x01,0xa1,0x84,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqq xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24
+
+// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17
+
+// CHECK: vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vpscatterqq ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm17
+
+// CHECK: vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm17
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa1,0x4c,0x39,0x20]
+ vpscatterqq ymmword ptr [r9 + ymm31 + 256] {k1}, ymm17
+
+// CHECK: vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm17
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa1,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vpscatterqq ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm17
+
+// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18
+
+// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x94,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm18
+
+// CHECK: vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm18
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x54,0x39,0x20]
+ vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm18
+
+// CHECK: vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm18
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm18
+
+// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30
+
+// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0xb4,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdpd ymmword ptr [r14 + 8*xmm31 + 123] {k1}, ymm30
+
+// CHECK: vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm30
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x74,0x39,0x20]
+ vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm30
+
+// CHECK: vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm30
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0xb4,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm30
+
+// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+
+// CHECK: vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+
+// CHECK: vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa2,0x5c,0x39,0x20]
+ vscatterdpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19
+
+// CHECK: vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa2,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19
+
+// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x94,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26
+
+// CHECK: vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x94,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdpd ymmword ptr [r14 + 8*xmm31 - 123] {k1}, ymm26
+
+// CHECK: vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm26
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa2,0x54,0x39,0x20]
+ vscatterdpd ymmword ptr [r9 + xmm31 + 256] {k1}, ymm26
+
+// CHECK: vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm26
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa2,0x94,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdpd ymmword ptr [rcx + 4*xmm31 + 1024] {k1}, ymm26
+
+// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24
+
+// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x84,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdps xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm24
+
+// CHECK: vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x44,0x39,0x40]
+ vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm24
+
+// CHECK: vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa2,0x84,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm24
+
+// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+
+// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0xbc,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterdps ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+
+// CHECK: vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa2,0x7c,0x39,0x40]
+ vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23
+
+// CHECK: vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23
+// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0xa2,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23
+
+// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+
+// CHECK: vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0xa4,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdps xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm28
+
+// CHECK: vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa2,0x64,0x39,0x40]
+ vscatterdps xmmword ptr [r9 + xmm31 + 256] {k1}, xmm28
+
+// CHECK: vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa2,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdps xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+
+// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25
+
+// CHECK: vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x8c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterdps ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm25
+
+// CHECK: vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa2,0x4c,0x39,0x40]
+ vscatterdps ymmword ptr [r9 + ymm31 + 256] {k1}, ymm25
+
+// CHECK: vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm25
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa2,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vscatterdps ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm25
+
+// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+
+// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0xac,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqpd xmmword ptr [r14 + 8*xmm31 + 123] {k1}, xmm21
+
+// CHECK: vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x6c,0x39,0x20]
+ vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm21
+
+// CHECK: vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa3,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm21
+
+// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+
+// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0xbc,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqpd ymmword ptr [r14 + 8*ymm31 + 123] {k1}, ymm23
+
+// CHECK: vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23
+// CHECK: encoding: [0x62,0x82,0xfd,0x21,0xa3,0x7c,0x39,0x20]
+ vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm23
+
+// CHECK: vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23
+// CHECK: encoding: [0x62,0xa2,0xfd,0x21,0xa3,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm23
+
+// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+
+// CHECK: vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqpd xmmword ptr [r14 + 8*xmm31 - 123] {k1}, xmm19
+
+// CHECK: vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19
+// CHECK: encoding: [0x62,0x82,0xfd,0x01,0xa3,0x5c,0x39,0x20]
+ vscatterqpd xmmword ptr [r9 + xmm31 + 256] {k1}, xmm19
+
+// CHECK: vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19
+// CHECK: encoding: [0x62,0xa2,0xfd,0x01,0xa3,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqpd xmmword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm19
+
+// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29
+
+// CHECK: vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0xac,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqpd ymmword ptr [r14 + 8*ymm31 - 123] {k1}, ymm29
+
+// CHECK: vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm29
+// CHECK: encoding: [0x62,0x02,0xfd,0x21,0xa3,0x6c,0x39,0x20]
+ vscatterqpd ymmword ptr [r9 + ymm31 + 256] {k1}, ymm29
+
+// CHECK: vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm29
+// CHECK: encoding: [0x62,0x22,0xfd,0x21,0xa3,0xac,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqpd ymmword ptr [rcx + 4*ymm31 + 1024] {k1}, ymm29
+
+// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+
+// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0xa4,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqps qword ptr [r14 + 8*xmm31 + 123] {k1}, xmm28
+
+// CHECK: vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm28
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x64,0x39,0x40]
+ vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm28
+
+// CHECK: vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa3,0xa4,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm28
+
+// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25
+
+// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x8c,0xfe,0x7b,0x00,0x00,0x00]
+ vscatterqps xmmword ptr [r14 + 8*ymm31 + 123] {k1}, xmm25
+
+// CHECK: vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm25
+// CHECK: encoding: [0x62,0x02,0x7d,0x21,0xa3,0x4c,0x39,0x40]
+ vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm25
+
+// CHECK: vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm25
+// CHECK: encoding: [0x62,0x22,0x7d,0x21,0xa3,0x8c,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm25
+
+// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27
+
+// CHECK: vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x9c,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqps qword ptr [r14 + 8*xmm31 - 123] {k1}, xmm27
+
+// CHECK: vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm27
+// CHECK: encoding: [0x62,0x02,0x7d,0x01,0xa3,0x5c,0x39,0x40]
+ vscatterqps qword ptr [r9 + xmm31 + 256] {k1}, xmm27
+
+// CHECK: vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm27
+// CHECK: encoding: [0x62,0x22,0x7d,0x01,0xa3,0x9c,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqps qword ptr [rcx + 4*xmm31 + 1024] {k1}, xmm27
+
+// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0xbc,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23
+
+// CHECK: vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0xbc,0xfe,0x85,0xff,0xff,0xff]
+ vscatterqps xmmword ptr [r14 + 8*ymm31 - 123] {k1}, xmm23
+
+// CHECK: vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm23
+// CHECK: encoding: [0x62,0x82,0x7d,0x21,0xa3,0x7c,0x39,0x40]
+ vscatterqps xmmword ptr [r9 + ymm31 + 256] {k1}, xmm23
+
+// CHECK: vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm23
+// CHECK: encoding: [0x62,0xa2,0x7d,0x21,0xa3,0xbc,0xb9,0x00,0x04,0x00,0x00]
+ vscatterqps xmmword ptr [rcx + 4*ymm31 + 1024] {k1}, xmm23
+
diff --git a/test/MC/X86/intel-syntax.s b/test/MC/X86/intel-syntax.s
index c7ec77eadfee..795893673f81 100644
--- a/test/MC/X86/intel-syntax.s
+++ b/test/MC/X86/intel-syntax.s
@@ -1,4 +1,6 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s | FileCheck %s
+// RUN: llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s > %t 2> %t.err
+// RUN: FileCheck < %t %s
+// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
_test:
xor EAX, EAX
@@ -72,8 +74,8 @@ _main:
// CHECK: vshufpd $1, %xmm2, %xmm1, %xmm0
vshufpd XMM0, XMM1, XMM2, 1
// CHECK: vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1
- vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8
-// CHECK: movsd -8, %xmm5
+ vpgatherdd XMM10, XMMWORD PTR [R15 + 2*XMM9], XMM8
+// CHECK: movsd -8, %xmm5
movsd XMM5, QWORD PTR [-8]
// CHECK: movl %ecx, (%eax)
mov [eax], ecx
@@ -751,3 +753,44 @@ loopnz _foo
sidt fword ptr [eax]
// CHECK: sidtq (%eax)
+
+ins byte ptr [eax], dx
+// CHECK: insb %dx, %es:(%edi)
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)DI will be used for the location
+// CHECK-STDERR-NEXT: ins byte ptr [eax], dx
+outs dx, word ptr [eax]
+// CHECK: outsw (%esi), %dx
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)SI will be used for the location
+// CHECK-STDERR-NEXT: outs dx, word ptr [eax]
+lods dword ptr [eax]
+// CHECK: lodsl (%esi), %eax
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)SI will be used for the location
+// CHECK-STDERR-NEXT: lods dword ptr [eax]
+stos qword ptr [eax]
+// CHECK: stosq %rax, %es:(%edi)
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)DI will be used for the location
+// CHECK-STDERR-NEXT: stos qword ptr [eax]
+scas byte ptr [eax]
+// CHECK: scasb %es:(%edi), %al
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)DI will be used for the location
+// CHECK-STDERR-NEXT: scas byte ptr [eax]
+cmps word ptr [eax], word ptr [ebx]
+// CHECK: cmpsw %es:(%edi), (%esi)
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)SI will be used for the location
+// CHECK-STDERR-NEXT: cmps word ptr [eax], word ptr [ebx]
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)DI will be used for the location
+// CHECK-STDERR-NEXT: cmps word ptr [eax], word ptr [ebx]
+movs dword ptr [eax], dword ptr [ebx]
+// CHECK: movsl (%esi), %es:(%edi)
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)DI will be used for the location
+// CHECK-STDERR-NEXT: movs dword ptr [eax], dword ptr [ebx]
+// CHECK-STDERR: memory operand is only for determining the size, ES:(R|E)SI will be used for the location
+// CHECK-STDERR-NEXT: movs dword ptr [eax], dword ptr [ebx]
+
+movsd qword ptr [rax], xmm0
+// CHECK: movsd %xmm0, (%rax)
+// CHECK-STDERR-NOT: movsd qword ptr [rax], xmm0
+
+xlat byte ptr [eax]
+// CHECK: xlatb
+// CHECK-STDERR: memory operand is only for determining the size, (R|E)BX will be used for the location
diff --git a/test/MC/X86/invalid_opcode.s b/test/MC/X86/invalid_opcode.s
new file mode 100644
index 000000000000..42e3affbfc6d
--- /dev/null
+++ b/test/MC/X86/invalid_opcode.s
@@ -0,0 +1,4 @@
+# RUN: llvm-mc -triple=x86_64 -filetype=obj %s -o - | llvm-objdump -d - | FileCheck %s
+
+# CHECK: 0: ff ff <unknown>
+.word 0xffff
diff --git a/test/MC/X86/mpx-encodings.s b/test/MC/X86/mpx-encodings.s
index 6fe4e0f328ec..7688879e8aa4 100644
--- a/test/MC/X86/mpx-encodings.s
+++ b/test/MC/X86/mpx-encodings.s
@@ -1,38 +1,41 @@
-// RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s | FileCheck %s
+// RUN: llvm-mc -triple x86_64-- -mattr=+mpx --show-encoding %s |\
+// RUN: FileCheck %s --check-prefixes=CHECK,ENCODING
+
+// RUN: llvm-mc -triple x86_64-- -mattr=+mpx -filetype=obj %s |\
+// RUN: llvm-objdump -d - -mattr=+mpx | FileCheck %s
// CHECK: bndmk (%rax), %bnd0
-// CHECK: encoding: [0xf3,0x48,0x0f,0x1b,0x00]
+// ENCODING: encoding: [0xf3,0x48,0x0f,0x1b,0x00]
bndmk (%rax), %bnd0
// CHECK: bndmk 1024(%rax), %bnd1
-// CHECK: encoding: [0xf3,0x48,0x0f,0x1b,0x88,0x00,0x04,0x00,0x00]
+// ENCODING: encoding: [0xf3,0x48,0x0f,0x1b,0x88,0x00,0x04,0x00,0x00]
bndmk 1024(%rax), %bnd1
// CHECK: bndmov %bnd2, %bnd1
-// CHECK: encoding: [0x66,0x0f,0x1b,0xd1]
+// ENCODING: encoding: [0x66,0x0f,0x1b,0xd1]
bndmov %bnd2, %bnd1
// CHECK: bndmov %bnd1, 1024(%r9)
-// CHECK: encoding: [0x66,0x49,0x0f,0x1b,0x89,0x00,0x04,0x00,0x00]
+// ENCODING: encoding: [0x66,0x49,0x0f,0x1b,0x89,0x00,0x04,0x00,0x00]
bndmov %bnd1, 1024(%r9)
// CHECK: bndstx %bnd1, 1024(%rax)
-// CHECK: encoding: [0x0f,0x1b,0x88,0x00,0x04,0x00,0x00]
+// ENCODING: encoding: [0x0f,0x1b,0x88,0x00,0x04,0x00,0x00]
bndstx %bnd1, 1024(%rax)
// CHECK: bndldx 1024(%r8), %bnd1
-// CHECK: encoding: [0x41,0x0f,0x1a,0x88,0x00,0x04,0x00,0x00]
+// ENCODING: encoding: [0x41,0x0f,0x1a,0x88,0x00,0x04,0x00,0x00]
bndldx 1024(%r8), %bnd1
// CHECK: bndcl 121(%r10), %bnd1
-// CHECK: encoding: [0xf3,0x49,0x0f,0x1a,0x4a,0x79]
+// ENCODING: encoding: [0xf3,0x49,0x0f,0x1a,0x4a,0x79]
bndcl 121(%r10), %bnd1
// CHECK: bndcn 121(%rcx), %bnd3
-// CHECK: encoding: [0xf2,0x48,0x0f,0x1b,0x59,0x79]
+// ENCODING: encoding: [0xf2,0x48,0x0f,0x1b,0x59,0x79]
bndcn 121(%rcx), %bnd3
// CHECK: bndcu %rdx, %bnd3
-// CHECK: encoding: [0xf2,0x48,0x0f,0x1a,0xda]
+// ENCODING: encoding: [0xf2,0x48,0x0f,0x1a,0xda]
bndcu %rdx, %bnd3
-
diff --git a/test/MC/X86/pr28547.s b/test/MC/X86/pr28547.s
new file mode 100644
index 000000000000..cb90c5a60c1c
--- /dev/null
+++ b/test/MC/X86/pr28547.s
@@ -0,0 +1,5 @@
+// RUN: llvm-mc -triple x86_64-unknown-unknown %s
+ .intel_syntax
+ones:
+ .float +1.0, +1.0, +1.0, +1.0
+ vmovaps xmm15, xmmword ptr [rip+ones] # +1.0, +1.0, +1.0, +1.0
diff --git a/test/MC/X86/reloc-directive.s b/test/MC/X86/reloc-directive.s
new file mode 100644
index 000000000000..901427a6ab6c
--- /dev/null
+++ b/test/MC/X86/reloc-directive.s
@@ -0,0 +1,40 @@
+# RUN: llvm-mc -triple i686-pc-win32 < %s -show-encoding \
+# RUN: | FileCheck -check-prefix=ASM %s
+# RUN: llvm-mc -triple i686-pc-win32 < %s -show-encoding \
+# RUN: -filetype=obj | llvm-readobj -sections -section-data -r | \
+# RUN: FileCheck -check-prefix=OBJ-32 %s
+# RUN: llvm-mc -triple x86_64-pc-win32 < %s -show-encoding \
+# RUN: -filetype=obj | llvm-readobj -sections -section-data -r | \
+# RUN: FileCheck -check-prefix=OBJ-64 %s
+ .text
+foo:
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .long 0
+ .reloc 4, dir32, foo # ASM: .reloc 4, dir32, foo
+ .reloc 0, secrel32, foo+4 # ASM: .reloc 0, secrel32, foo+4
+ .reloc 8, secidx, foo+8 # ASM: .reloc 8, secidx, foo+8
+ .reloc 12, dir32, foo@secrel32 # ASM: .reloc 12, dir32, foo@SECREL32
+ .reloc 16, dir32, foo@imgrel # ASM: .reloc 16, dir32, foo@IMGREL
+
+# OBJ-32-LABEL: Name: .text
+# OBJ-32: 0000: 04000000 00000000 00000000
+# OBJ-32-LABEL: }
+# OBJ-32-LABEL: Relocations [
+# OBJ-32: 0x4 IMAGE_REL_I386_DIR32 foo
+# OBJ-32: 0x0 IMAGE_REL_I386_SECREL foo
+# OBJ-32: 0x8 IMAGE_REL_I386_SECTION foo
+# OBJ-32: 0xC IMAGE_REL_I386_SECREL foo
+# OBJ-32: 0x10 IMAGE_REL_I386_DIR32NB foo
+
+# OBJ-64-LABEL: Name: .text
+# OBJ-64: 0000: 04000000 00000000 00000000
+# OBJ-64-LABEL: }
+# OBJ-64-LABEL: Relocations [
+# OBJ-64: 0x4 IMAGE_REL_AMD64_ADDR32 foo
+# OBJ-64: 0x0 IMAGE_REL_AMD64_SECREL foo
+# OBJ-64: 0x8 IMAGE_REL_AMD64_SECTION foo
+# OBJ-64: 0xC IMAGE_REL_AMD64_SECREL foo
+# OBJ-64: 0x10 IMAGE_REL_AMD64_ADDR32NB foo
diff --git a/test/MC/X86/x86-32.s b/test/MC/X86/x86-32.s
index 56fd658a76ee..127d6c7c77c6 100644
--- a/test/MC/X86/x86-32.s
+++ b/test/MC/X86/x86-32.s
@@ -593,6 +593,55 @@ popfl
setnaeb %bl // CHECK: setb %bl
+// PR8114
+
+out %al, (%dx)
+// CHECK: outb %al, %dx
+outb %al, (%dx)
+// CHECK: outb %al, %dx
+out %ax, (%dx)
+// CHECK: outw %ax, %dx
+outw %ax, (%dx)
+// CHECK: outw %ax, %dx
+out %eax, (%dx)
+// CHECK: outl %eax, %dx
+outl %eax, (%dx)
+// CHECK: outl %eax, %dx
+
+
+in (%dx), %al
+// CHECK: inb %dx, %al
+inb (%dx), %al
+// CHECK: inb %dx, %al
+in (%dx), %ax
+// CHECK: inw %dx, %ax
+inw (%dx), %ax
+// CHECK: inw %dx, %ax
+in (%dx), %eax
+// CHECK: inl %dx, %eax
+inl (%dx), %eax
+// CHECK: inl %dx, %eax
+
+//PR15455
+
+outs (%esi), (%dx)
+// CHECK: outsw (%esi), %dx
+outsb (%esi), (%dx)
+// CHECK: outsb (%esi), %dx
+outsw (%esi), (%dx)
+// CHECK: outsw (%esi), %dx
+outsl (%esi), (%dx)
+// CHECK: outsl (%esi), %dx
+
+ins (%dx), %es:(%edi)
+// CHECK: insw %dx, %es:(%edi)
+insb (%dx), %es:(%edi)
+// CHECK: insb %dx, %es:(%edi)
+insw (%dx), %es:(%edi)
+// CHECK: insw %dx, %es:(%edi)
+insl (%dx), %es:(%edi)
+// CHECK: insl %dx, %es:(%edi)
+
// CHECK: lcalll $31438, $31438
// CHECK: lcalll $31438, $31438
// CHECK: ljmpl $31438, $31438
diff --git a/test/MC/X86/x86-64-avx512bw.s b/test/MC/X86/x86-64-avx512bw.s
index b5ba2af64f0b..e1f42161103f 100644
--- a/test/MC/X86/x86-64-avx512bw.s
+++ b/test/MC/X86/x86-64-avx512bw.s
@@ -2081,147 +2081,147 @@
vpsravw -8256(%rdx), %zmm29, %zmm19
// CHECK: vpacksswb %zmm18, %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xa1,0x95,0x40,0x63,0xea]
+// CHECK: encoding: [0x62,0xa1,0x15,0x40,0x63,0xea]
vpacksswb %zmm18, %zmm29, %zmm21
// CHECK: vpacksswb %zmm18, %zmm29, %zmm21 {%k1}
-// CHECK: encoding: [0x62,0xa1,0x95,0x41,0x63,0xea]
+// CHECK: encoding: [0x62,0xa1,0x15,0x41,0x63,0xea]
vpacksswb %zmm18, %zmm29, %zmm21 {%k1}
// CHECK: vpacksswb %zmm18, %zmm29, %zmm21 {%k1} {z}
-// CHECK: encoding: [0x62,0xa1,0x95,0xc1,0x63,0xea]
+// CHECK: encoding: [0x62,0xa1,0x15,0xc1,0x63,0xea]
vpacksswb %zmm18, %zmm29, %zmm21 {%k1} {z}
// CHECK: vpacksswb (%rcx), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x63,0x29]
+// CHECK: encoding: [0x62,0xe1,0x15,0x40,0x63,0x29]
vpacksswb (%rcx), %zmm29, %zmm21
// CHECK: vpacksswb 291(%rax,%r14,8), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xa1,0x95,0x40,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x15,0x40,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %zmm29, %zmm21
// CHECK: vpacksswb 8128(%rdx), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x63,0x6a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x15,0x40,0x63,0x6a,0x7f]
vpacksswb 8128(%rdx), %zmm29, %zmm21
// CHECK: vpacksswb 8192(%rdx), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x63,0xaa,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x15,0x40,0x63,0xaa,0x00,0x20,0x00,0x00]
vpacksswb 8192(%rdx), %zmm29, %zmm21
// CHECK: vpacksswb -8192(%rdx), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x63,0x6a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x15,0x40,0x63,0x6a,0x80]
vpacksswb -8192(%rdx), %zmm29, %zmm21
// CHECK: vpacksswb -8256(%rdx), %zmm29, %zmm21
-// CHECK: encoding: [0x62,0xe1,0x95,0x40,0x63,0xaa,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x15,0x40,0x63,0xaa,0xc0,0xdf,0xff,0xff]
vpacksswb -8256(%rdx), %zmm29, %zmm21
// CHECK: vpackuswb %zmm28, %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x01,0xbd,0x40,0x67,0xe4]
+// CHECK: encoding: [0x62,0x01,0x3d,0x40,0x67,0xe4]
vpackuswb %zmm28, %zmm24, %zmm28
// CHECK: vpackuswb %zmm28, %zmm24, %zmm28 {%k6}
-// CHECK: encoding: [0x62,0x01,0xbd,0x46,0x67,0xe4]
+// CHECK: encoding: [0x62,0x01,0x3d,0x46,0x67,0xe4]
vpackuswb %zmm28, %zmm24, %zmm28 {%k6}
// CHECK: vpackuswb %zmm28, %zmm24, %zmm28 {%k6} {z}
-// CHECK: encoding: [0x62,0x01,0xbd,0xc6,0x67,0xe4]
+// CHECK: encoding: [0x62,0x01,0x3d,0xc6,0x67,0xe4]
vpackuswb %zmm28, %zmm24, %zmm28 {%k6} {z}
// CHECK: vpackuswb (%rcx), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x61,0xbd,0x40,0x67,0x21]
+// CHECK: encoding: [0x62,0x61,0x3d,0x40,0x67,0x21]
vpackuswb (%rcx), %zmm24, %zmm28
// CHECK: vpackuswb 291(%rax,%r14,8), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x21,0xbd,0x40,0x67,0xa4,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x3d,0x40,0x67,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %zmm24, %zmm28
// CHECK: vpackuswb 8128(%rdx), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x61,0xbd,0x40,0x67,0x62,0x7f]
+// CHECK: encoding: [0x62,0x61,0x3d,0x40,0x67,0x62,0x7f]
vpackuswb 8128(%rdx), %zmm24, %zmm28
// CHECK: vpackuswb 8192(%rdx), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x61,0xbd,0x40,0x67,0xa2,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x3d,0x40,0x67,0xa2,0x00,0x20,0x00,0x00]
vpackuswb 8192(%rdx), %zmm24, %zmm28
// CHECK: vpackuswb -8192(%rdx), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x61,0xbd,0x40,0x67,0x62,0x80]
+// CHECK: encoding: [0x62,0x61,0x3d,0x40,0x67,0x62,0x80]
vpackuswb -8192(%rdx), %zmm24, %zmm28
// CHECK: vpackuswb -8256(%rdx), %zmm24, %zmm28
-// CHECK: encoding: [0x62,0x61,0xbd,0x40,0x67,0xa2,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x3d,0x40,0x67,0xa2,0xc0,0xdf,0xff,0xff]
vpackuswb -8256(%rdx), %zmm24, %zmm28
// CHECK: vpacksswb %zmm24, %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x01,0x95,0x40,0x63,0xd0]
+// CHECK: encoding: [0x62,0x01,0x15,0x40,0x63,0xd0]
vpacksswb %zmm24, %zmm29, %zmm26
// CHECK: vpacksswb %zmm24, %zmm29, %zmm26 {%k6}
-// CHECK: encoding: [0x62,0x01,0x95,0x46,0x63,0xd0]
+// CHECK: encoding: [0x62,0x01,0x15,0x46,0x63,0xd0]
vpacksswb %zmm24, %zmm29, %zmm26 {%k6}
// CHECK: vpacksswb %zmm24, %zmm29, %zmm26 {%k6} {z}
-// CHECK: encoding: [0x62,0x01,0x95,0xc6,0x63,0xd0]
+// CHECK: encoding: [0x62,0x01,0x15,0xc6,0x63,0xd0]
vpacksswb %zmm24, %zmm29, %zmm26 {%k6} {z}
// CHECK: vpacksswb (%rcx), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x61,0x95,0x40,0x63,0x11]
+// CHECK: encoding: [0x62,0x61,0x15,0x40,0x63,0x11]
vpacksswb (%rcx), %zmm29, %zmm26
// CHECK: vpacksswb 4660(%rax,%r14,8), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x21,0x95,0x40,0x63,0x94,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x15,0x40,0x63,0x94,0xf0,0x34,0x12,0x00,0x00]
vpacksswb 4660(%rax,%r14,8), %zmm29, %zmm26
// CHECK: vpacksswb 8128(%rdx), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x61,0x95,0x40,0x63,0x52,0x7f]
+// CHECK: encoding: [0x62,0x61,0x15,0x40,0x63,0x52,0x7f]
vpacksswb 8128(%rdx), %zmm29, %zmm26
// CHECK: vpacksswb 8192(%rdx), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x61,0x95,0x40,0x63,0x92,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x15,0x40,0x63,0x92,0x00,0x20,0x00,0x00]
vpacksswb 8192(%rdx), %zmm29, %zmm26
// CHECK: vpacksswb -8192(%rdx), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x61,0x95,0x40,0x63,0x52,0x80]
+// CHECK: encoding: [0x62,0x61,0x15,0x40,0x63,0x52,0x80]
vpacksswb -8192(%rdx), %zmm29, %zmm26
// CHECK: vpacksswb -8256(%rdx), %zmm29, %zmm26
-// CHECK: encoding: [0x62,0x61,0x95,0x40,0x63,0x92,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x15,0x40,0x63,0x92,0xc0,0xdf,0xff,0xff]
vpacksswb -8256(%rdx), %zmm29, %zmm26
// CHECK: vpackuswb %zmm23, %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xa1,0x9d,0x40,0x67,0xd7]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x40,0x67,0xd7]
vpackuswb %zmm23, %zmm28, %zmm18
// CHECK: vpackuswb %zmm23, %zmm28, %zmm18 {%k4}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x44,0x67,0xd7]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x44,0x67,0xd7]
vpackuswb %zmm23, %zmm28, %zmm18 {%k4}
// CHECK: vpackuswb %zmm23, %zmm28, %zmm18 {%k4} {z}
-// CHECK: encoding: [0x62,0xa1,0x9d,0xc4,0x67,0xd7]
+// CHECK: encoding: [0x62,0xa1,0x1d,0xc4,0x67,0xd7]
vpackuswb %zmm23, %zmm28, %zmm18 {%k4} {z}
// CHECK: vpackuswb (%rcx), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x67,0x11]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0x67,0x11]
vpackuswb (%rcx), %zmm28, %zmm18
// CHECK: vpackuswb 4660(%rax,%r14,8), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xa1,0x9d,0x40,0x67,0x94,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x40,0x67,0x94,0xf0,0x34,0x12,0x00,0x00]
vpackuswb 4660(%rax,%r14,8), %zmm28, %zmm18
// CHECK: vpackuswb 8128(%rdx), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x67,0x52,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0x67,0x52,0x7f]
vpackuswb 8128(%rdx), %zmm28, %zmm18
// CHECK: vpackuswb 8192(%rdx), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x67,0x92,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0x67,0x92,0x00,0x20,0x00,0x00]
vpackuswb 8192(%rdx), %zmm28, %zmm18
// CHECK: vpackuswb -8192(%rdx), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x67,0x52,0x80]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0x67,0x52,0x80]
vpackuswb -8192(%rdx), %zmm28, %zmm18
// CHECK: vpackuswb -8256(%rdx), %zmm28, %zmm18
-// CHECK: encoding: [0x62,0xe1,0x9d,0x40,0x67,0x92,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x40,0x67,0x92,0xc0,0xdf,0xff,0xff]
vpackuswb -8256(%rdx), %zmm28, %zmm18
// CHECK: vpackssdw %zmm22, %zmm27, %zmm24
@@ -2281,39 +2281,39 @@
vpackssdw -516(%rdx){1to16}, %zmm27, %zmm24
// CHECK: vpacksswb %zmm23, %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x21,0xed,0x40,0x63,0xe7]
+// CHECK: encoding: [0x62,0x21,0x6d,0x40,0x63,0xe7]
vpacksswb %zmm23, %zmm18, %zmm28
// CHECK: vpacksswb %zmm23, %zmm18, %zmm28 {%k3}
-// CHECK: encoding: [0x62,0x21,0xed,0x43,0x63,0xe7]
+// CHECK: encoding: [0x62,0x21,0x6d,0x43,0x63,0xe7]
vpacksswb %zmm23, %zmm18, %zmm28 {%k3}
// CHECK: vpacksswb %zmm23, %zmm18, %zmm28 {%k3} {z}
-// CHECK: encoding: [0x62,0x21,0xed,0xc3,0x63,0xe7]
+// CHECK: encoding: [0x62,0x21,0x6d,0xc3,0x63,0xe7]
vpacksswb %zmm23, %zmm18, %zmm28 {%k3} {z}
// CHECK: vpacksswb (%rcx), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x61,0xed,0x40,0x63,0x21]
+// CHECK: encoding: [0x62,0x61,0x6d,0x40,0x63,0x21]
vpacksswb (%rcx), %zmm18, %zmm28
// CHECK: vpacksswb 291(%rax,%r14,8), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x21,0xed,0x40,0x63,0xa4,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x6d,0x40,0x63,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %zmm18, %zmm28
// CHECK: vpacksswb 8128(%rdx), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x61,0xed,0x40,0x63,0x62,0x7f]
+// CHECK: encoding: [0x62,0x61,0x6d,0x40,0x63,0x62,0x7f]
vpacksswb 8128(%rdx), %zmm18, %zmm28
// CHECK: vpacksswb 8192(%rdx), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x61,0xed,0x40,0x63,0xa2,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x6d,0x40,0x63,0xa2,0x00,0x20,0x00,0x00]
vpacksswb 8192(%rdx), %zmm18, %zmm28
// CHECK: vpacksswb -8192(%rdx), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x61,0xed,0x40,0x63,0x62,0x80]
+// CHECK: encoding: [0x62,0x61,0x6d,0x40,0x63,0x62,0x80]
vpacksswb -8192(%rdx), %zmm18, %zmm28
// CHECK: vpacksswb -8256(%rdx), %zmm18, %zmm28
-// CHECK: encoding: [0x62,0x61,0xed,0x40,0x63,0xa2,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x6d,0x40,0x63,0xa2,0xc0,0xdf,0xff,0xff]
vpacksswb -8256(%rdx), %zmm18, %zmm28
// CHECK: vpackusdw %zmm21, %zmm29, %zmm18
@@ -2373,39 +2373,39 @@
vpackusdw -516(%rdx){1to16}, %zmm29, %zmm18
// CHECK: vpackuswb %zmm27, %zmm18, %zmm23
-// CHECK: encoding: [0x62,0x81,0xed,0x40,0x67,0xfb]
+// CHECK: encoding: [0x62,0x81,0x6d,0x40,0x67,0xfb]
vpackuswb %zmm27, %zmm18, %zmm23
// CHECK: vpackuswb %zmm27, %zmm18, %zmm23 {%k5}
-// CHECK: encoding: [0x62,0x81,0xed,0x45,0x67,0xfb]
+// CHECK: encoding: [0x62,0x81,0x6d,0x45,0x67,0xfb]
vpackuswb %zmm27, %zmm18, %zmm23 {%k5}
// CHECK: vpackuswb %zmm27, %zmm18, %zmm23 {%k5} {z}
-// CHECK: encoding: [0x62,0x81,0xed,0xc5,0x67,0xfb]
+// CHECK: encoding: [0x62,0x81,0x6d,0xc5,0x67,0xfb]
vpackuswb %zmm27, %zmm18, %zmm23 {%k5} {z}
// CHECK: vpackuswb (%rcx), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xe1,0xed,0x40,0x67,0x39]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x67,0x39]
vpackuswb (%rcx), %zmm18, %zmm23
// CHECK: vpackuswb 291(%rax,%r14,8), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xa1,0xed,0x40,0x67,0xbc,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x6d,0x40,0x67,0xbc,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %zmm18, %zmm23
// CHECK: vpackuswb 8128(%rdx), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xe1,0xed,0x40,0x67,0x7a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x67,0x7a,0x7f]
vpackuswb 8128(%rdx), %zmm18, %zmm23
// CHECK: vpackuswb 8192(%rdx), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xe1,0xed,0x40,0x67,0xba,0x00,0x20,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x67,0xba,0x00,0x20,0x00,0x00]
vpackuswb 8192(%rdx), %zmm18, %zmm23
// CHECK: vpackuswb -8192(%rdx), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xe1,0xed,0x40,0x67,0x7a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x67,0x7a,0x80]
vpackuswb -8192(%rdx), %zmm18, %zmm23
// CHECK: vpackuswb -8256(%rdx), %zmm18, %zmm23
-// CHECK: encoding: [0x62,0xe1,0xed,0x40,0x67,0xba,0xc0,0xdf,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x40,0x67,0xba,0xc0,0xdf,0xff,0xff]
vpackuswb -8256(%rdx), %zmm18, %zmm23
// CHECK: vpaddsb %zmm20, %zmm19, %zmm19
diff --git a/test/MC/X86/x86-64-avx512bw_vl.s b/test/MC/X86/x86-64-avx512bw_vl.s
index 1c3784a61527..191cff2258f8 100644
--- a/test/MC/X86/x86-64-avx512bw_vl.s
+++ b/test/MC/X86/x86-64-avx512bw_vl.s
@@ -2449,291 +2449,291 @@
vpsravw -4128(%rdx), %ymm28, %ymm20
// CHECK: vpacksswb %xmm20, %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xa1,0x95,0x00,0x63,0xcc]
+// CHECK: encoding: [0x62,0xa1,0x15,0x00,0x63,0xcc]
vpacksswb %xmm20, %xmm29, %xmm17
// CHECK: vpacksswb %xmm20, %xmm29, %xmm17 {%k3}
-// CHECK: encoding: [0x62,0xa1,0x95,0x03,0x63,0xcc]
+// CHECK: encoding: [0x62,0xa1,0x15,0x03,0x63,0xcc]
vpacksswb %xmm20, %xmm29, %xmm17 {%k3}
// CHECK: vpacksswb %xmm20, %xmm29, %xmm17 {%k3} {z}
-// CHECK: encoding: [0x62,0xa1,0x95,0x83,0x63,0xcc]
+// CHECK: encoding: [0x62,0xa1,0x15,0x83,0x63,0xcc]
vpacksswb %xmm20, %xmm29, %xmm17 {%k3} {z}
// CHECK: vpacksswb (%rcx), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xe1,0x95,0x00,0x63,0x09]
+// CHECK: encoding: [0x62,0xe1,0x15,0x00,0x63,0x09]
vpacksswb (%rcx), %xmm29, %xmm17
// CHECK: vpacksswb 291(%rax,%r14,8), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xa1,0x95,0x00,0x63,0x8c,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x15,0x00,0x63,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %xmm29, %xmm17
// CHECK: vpacksswb 2032(%rdx), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xe1,0x95,0x00,0x63,0x4a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x15,0x00,0x63,0x4a,0x7f]
vpacksswb 2032(%rdx), %xmm29, %xmm17
// CHECK: vpacksswb 2048(%rdx), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xe1,0x95,0x00,0x63,0x8a,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x15,0x00,0x63,0x8a,0x00,0x08,0x00,0x00]
vpacksswb 2048(%rdx), %xmm29, %xmm17
// CHECK: vpacksswb -2048(%rdx), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xe1,0x95,0x00,0x63,0x4a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x15,0x00,0x63,0x4a,0x80]
vpacksswb -2048(%rdx), %xmm29, %xmm17
// CHECK: vpacksswb -2064(%rdx), %xmm29, %xmm17
-// CHECK: encoding: [0x62,0xe1,0x95,0x00,0x63,0x8a,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x15,0x00,0x63,0x8a,0xf0,0xf7,0xff,0xff]
vpacksswb -2064(%rdx), %xmm29, %xmm17
// CHECK: vpacksswb %ymm21, %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x21,0xad,0x20,0x63,0xed]
+// CHECK: encoding: [0x62,0x21,0x2d,0x20,0x63,0xed]
vpacksswb %ymm21, %ymm26, %ymm29
// CHECK: vpacksswb %ymm21, %ymm26, %ymm29 {%k2}
-// CHECK: encoding: [0x62,0x21,0xad,0x22,0x63,0xed]
+// CHECK: encoding: [0x62,0x21,0x2d,0x22,0x63,0xed]
vpacksswb %ymm21, %ymm26, %ymm29 {%k2}
// CHECK: vpacksswb %ymm21, %ymm26, %ymm29 {%k2} {z}
-// CHECK: encoding: [0x62,0x21,0xad,0xa2,0x63,0xed]
+// CHECK: encoding: [0x62,0x21,0x2d,0xa2,0x63,0xed]
vpacksswb %ymm21, %ymm26, %ymm29 {%k2} {z}
// CHECK: vpacksswb (%rcx), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x61,0xad,0x20,0x63,0x29]
+// CHECK: encoding: [0x62,0x61,0x2d,0x20,0x63,0x29]
vpacksswb (%rcx), %ymm26, %ymm29
// CHECK: vpacksswb 291(%rax,%r14,8), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x21,0xad,0x20,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x2d,0x20,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %ymm26, %ymm29
// CHECK: vpacksswb 4064(%rdx), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x61,0xad,0x20,0x63,0x6a,0x7f]
+// CHECK: encoding: [0x62,0x61,0x2d,0x20,0x63,0x6a,0x7f]
vpacksswb 4064(%rdx), %ymm26, %ymm29
// CHECK: vpacksswb 4096(%rdx), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x61,0xad,0x20,0x63,0xaa,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x2d,0x20,0x63,0xaa,0x00,0x10,0x00,0x00]
vpacksswb 4096(%rdx), %ymm26, %ymm29
// CHECK: vpacksswb -4096(%rdx), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x61,0xad,0x20,0x63,0x6a,0x80]
+// CHECK: encoding: [0x62,0x61,0x2d,0x20,0x63,0x6a,0x80]
vpacksswb -4096(%rdx), %ymm26, %ymm29
// CHECK: vpacksswb -4128(%rdx), %ymm26, %ymm29
-// CHECK: encoding: [0x62,0x61,0xad,0x20,0x63,0xaa,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x2d,0x20,0x63,0xaa,0xe0,0xef,0xff,0xff]
vpacksswb -4128(%rdx), %ymm26, %ymm29
// CHECK: vpackuswb %xmm24, %xmm26, %xmm20
-// CHECK: encoding: [0x62,0x81,0xad,0x00,0x67,0xe0]
+// CHECK: encoding: [0x62,0x81,0x2d,0x00,0x67,0xe0]
vpackuswb %xmm24, %xmm26, %xmm20
// CHECK: vpackuswb %xmm24, %xmm26, %xmm20 {%k4}
-// CHECK: encoding: [0x62,0x81,0xad,0x04,0x67,0xe0]
+// CHECK: encoding: [0x62,0x81,0x2d,0x04,0x67,0xe0]
vpackuswb %xmm24, %xmm26, %xmm20 {%k4}
// CHECK: vpackuswb %xmm24, %xmm26, %xmm20 {%k4} {z}
-// CHECK: encoding: [0x62,0x81,0xad,0x84,0x67,0xe0]
+// CHECK: encoding: [0x62,0x81,0x2d,0x84,0x67,0xe0]
vpackuswb %xmm24, %xmm26, %xmm20 {%k4} {z}
// CHECK: vpackuswb (%rcx), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x00,0x67,0x21]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x00,0x67,0x21]
vpackuswb (%rcx), %xmm26, %xmm20
// CHECK: vpackuswb 291(%rax,%r14,8), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xa1,0xad,0x00,0x67,0xa4,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x2d,0x00,0x67,0xa4,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %xmm26, %xmm20
// CHECK: vpackuswb 2032(%rdx), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x00,0x67,0x62,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x00,0x67,0x62,0x7f]
vpackuswb 2032(%rdx), %xmm26, %xmm20
// CHECK: vpackuswb 2048(%rdx), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x00,0x67,0xa2,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x00,0x67,0xa2,0x00,0x08,0x00,0x00]
vpackuswb 2048(%rdx), %xmm26, %xmm20
// CHECK: vpackuswb -2048(%rdx), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x00,0x67,0x62,0x80]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x00,0x67,0x62,0x80]
vpackuswb -2048(%rdx), %xmm26, %xmm20
// CHECK: vpackuswb -2064(%rdx), %xmm26, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x00,0x67,0xa2,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x00,0x67,0xa2,0xf0,0xf7,0xff,0xff]
vpackuswb -2064(%rdx), %xmm26, %xmm20
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19 {%k2}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x22,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x22,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19 {%k2}
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19 {%k2} {z}
-// CHECK: encoding: [0x62,0xa1,0x9d,0xa2,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0xa2,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19 {%k2} {z}
// CHECK: vpackuswb (%rcx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x19]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x19]
vpackuswb (%rcx), %ymm28, %ymm19
// CHECK: vpackuswb 291(%rax,%r14,8), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x67,0x9c,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x67,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %ymm28, %ymm19
// CHECK: vpackuswb 4064(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x5a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x5a,0x7f]
vpackuswb 4064(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb 4096(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x9a,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x9a,0x00,0x10,0x00,0x00]
vpackuswb 4096(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb -4096(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x5a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x5a,0x80]
vpackuswb -4096(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb -4128(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x9a,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x9a,0xe0,0xef,0xff,0xff]
vpackuswb -4128(%rdx), %ymm28, %ymm19
// CHECK: vpacksswb %xmm25, %xmm18, %xmm19
-// CHECK: encoding: [0x62,0x81,0xed,0x00,0x63,0xd9]
+// CHECK: encoding: [0x62,0x81,0x6d,0x00,0x63,0xd9]
vpacksswb %xmm25, %xmm18, %xmm19
// CHECK: vpacksswb %xmm25, %xmm18, %xmm19 {%k4}
-// CHECK: encoding: [0x62,0x81,0xed,0x04,0x63,0xd9]
+// CHECK: encoding: [0x62,0x81,0x6d,0x04,0x63,0xd9]
vpacksswb %xmm25, %xmm18, %xmm19 {%k4}
// CHECK: vpacksswb %xmm25, %xmm18, %xmm19 {%k4} {z}
-// CHECK: encoding: [0x62,0x81,0xed,0x84,0x63,0xd9]
+// CHECK: encoding: [0x62,0x81,0x6d,0x84,0x63,0xd9]
vpacksswb %xmm25, %xmm18, %xmm19 {%k4} {z}
// CHECK: vpacksswb (%rcx), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xe1,0xed,0x00,0x63,0x19]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0x63,0x19]
vpacksswb (%rcx), %xmm18, %xmm19
// CHECK: vpacksswb 4660(%rax,%r14,8), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xa1,0xed,0x00,0x63,0x9c,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x6d,0x00,0x63,0x9c,0xf0,0x34,0x12,0x00,0x00]
vpacksswb 4660(%rax,%r14,8), %xmm18, %xmm19
// CHECK: vpacksswb 2032(%rdx), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xe1,0xed,0x00,0x63,0x5a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0x63,0x5a,0x7f]
vpacksswb 2032(%rdx), %xmm18, %xmm19
// CHECK: vpacksswb 2048(%rdx), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xe1,0xed,0x00,0x63,0x9a,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0x63,0x9a,0x00,0x08,0x00,0x00]
vpacksswb 2048(%rdx), %xmm18, %xmm19
// CHECK: vpacksswb -2048(%rdx), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xe1,0xed,0x00,0x63,0x5a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0x63,0x5a,0x80]
vpacksswb -2048(%rdx), %xmm18, %xmm19
// CHECK: vpacksswb -2064(%rdx), %xmm18, %xmm19
-// CHECK: encoding: [0x62,0xe1,0xed,0x00,0x63,0x9a,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x6d,0x00,0x63,0x9a,0xf0,0xf7,0xff,0xff]
vpacksswb -2064(%rdx), %xmm18, %xmm19
// CHECK: vpacksswb %ymm19, %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xa1,0xcd,0x20,0x63,0xf3]
+// CHECK: encoding: [0x62,0xa1,0x4d,0x20,0x63,0xf3]
vpacksswb %ymm19, %ymm22, %ymm22
// CHECK: vpacksswb %ymm19, %ymm22, %ymm22 {%k7}
-// CHECK: encoding: [0x62,0xa1,0xcd,0x27,0x63,0xf3]
+// CHECK: encoding: [0x62,0xa1,0x4d,0x27,0x63,0xf3]
vpacksswb %ymm19, %ymm22, %ymm22 {%k7}
// CHECK: vpacksswb %ymm19, %ymm22, %ymm22 {%k7} {z}
-// CHECK: encoding: [0x62,0xa1,0xcd,0xa7,0x63,0xf3]
+// CHECK: encoding: [0x62,0xa1,0x4d,0xa7,0x63,0xf3]
vpacksswb %ymm19, %ymm22, %ymm22 {%k7} {z}
// CHECK: vpacksswb (%rcx), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xe1,0xcd,0x20,0x63,0x31]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x20,0x63,0x31]
vpacksswb (%rcx), %ymm22, %ymm22
// CHECK: vpacksswb 4660(%rax,%r14,8), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xa1,0xcd,0x20,0x63,0xb4,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x4d,0x20,0x63,0xb4,0xf0,0x34,0x12,0x00,0x00]
vpacksswb 4660(%rax,%r14,8), %ymm22, %ymm22
// CHECK: vpacksswb 4064(%rdx), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xe1,0xcd,0x20,0x63,0x72,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x20,0x63,0x72,0x7f]
vpacksswb 4064(%rdx), %ymm22, %ymm22
// CHECK: vpacksswb 4096(%rdx), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xe1,0xcd,0x20,0x63,0xb2,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x20,0x63,0xb2,0x00,0x10,0x00,0x00]
vpacksswb 4096(%rdx), %ymm22, %ymm22
// CHECK: vpacksswb -4096(%rdx), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xe1,0xcd,0x20,0x63,0x72,0x80]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x20,0x63,0x72,0x80]
vpacksswb -4096(%rdx), %ymm22, %ymm22
// CHECK: vpacksswb -4128(%rdx), %ymm22, %ymm22
-// CHECK: encoding: [0x62,0xe1,0xcd,0x20,0x63,0xb2,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x4d,0x20,0x63,0xb2,0xe0,0xef,0xff,0xff]
vpacksswb -4128(%rdx), %ymm22, %ymm22
// CHECK: vpackuswb %xmm23, %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xa1,0x9d,0x00,0x67,0xff]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x00,0x67,0xff]
vpackuswb %xmm23, %xmm28, %xmm23
// CHECK: vpackuswb %xmm23, %xmm28, %xmm23 {%k3}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x03,0x67,0xff]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x03,0x67,0xff]
vpackuswb %xmm23, %xmm28, %xmm23 {%k3}
// CHECK: vpackuswb %xmm23, %xmm28, %xmm23 {%k3} {z}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x83,0x67,0xff]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x83,0x67,0xff]
vpackuswb %xmm23, %xmm28, %xmm23 {%k3} {z}
// CHECK: vpackuswb (%rcx), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x67,0x39]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0x67,0x39]
vpackuswb (%rcx), %xmm28, %xmm23
// CHECK: vpackuswb 4660(%rax,%r14,8), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xa1,0x9d,0x00,0x67,0xbc,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x00,0x67,0xbc,0xf0,0x34,0x12,0x00,0x00]
vpackuswb 4660(%rax,%r14,8), %xmm28, %xmm23
// CHECK: vpackuswb 2032(%rdx), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x67,0x7a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0x67,0x7a,0x7f]
vpackuswb 2032(%rdx), %xmm28, %xmm23
// CHECK: vpackuswb 2048(%rdx), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x67,0xba,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0x67,0xba,0x00,0x08,0x00,0x00]
vpackuswb 2048(%rdx), %xmm28, %xmm23
// CHECK: vpackuswb -2048(%rdx), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x67,0x7a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0x67,0x7a,0x80]
vpackuswb -2048(%rdx), %xmm28, %xmm23
// CHECK: vpackuswb -2064(%rdx), %xmm28, %xmm23
-// CHECK: encoding: [0x62,0xe1,0x9d,0x00,0x67,0xba,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x00,0x67,0xba,0xf0,0xf7,0xff,0xff]
vpackuswb -2064(%rdx), %xmm28, %xmm23
// CHECK: vpackuswb %ymm27, %ymm26, %ymm20
-// CHECK: encoding: [0x62,0x81,0xad,0x20,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x2d,0x20,0x67,0xe3]
vpackuswb %ymm27, %ymm26, %ymm20
// CHECK: vpackuswb %ymm27, %ymm26, %ymm20 {%k6}
-// CHECK: encoding: [0x62,0x81,0xad,0x26,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x2d,0x26,0x67,0xe3]
vpackuswb %ymm27, %ymm26, %ymm20 {%k6}
// CHECK: vpackuswb %ymm27, %ymm26, %ymm20 {%k6} {z}
-// CHECK: encoding: [0x62,0x81,0xad,0xa6,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x2d,0xa6,0x67,0xe3]
vpackuswb %ymm27, %ymm26, %ymm20 {%k6} {z}
// CHECK: vpackuswb (%rcx), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x20,0x67,0x21]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0x67,0x21]
vpackuswb (%rcx), %ymm26, %ymm20
// CHECK: vpackuswb 4660(%rax,%r14,8), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xa1,0xad,0x20,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x2d,0x20,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
vpackuswb 4660(%rax,%r14,8), %ymm26, %ymm20
// CHECK: vpackuswb 4064(%rdx), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x20,0x67,0x62,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0x67,0x62,0x7f]
vpackuswb 4064(%rdx), %ymm26, %ymm20
// CHECK: vpackuswb 4096(%rdx), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x20,0x67,0xa2,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0x67,0xa2,0x00,0x10,0x00,0x00]
vpackuswb 4096(%rdx), %ymm26, %ymm20
// CHECK: vpackuswb -4096(%rdx), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x20,0x67,0x62,0x80]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0x67,0x62,0x80]
vpackuswb -4096(%rdx), %ymm26, %ymm20
// CHECK: vpackuswb -4128(%rdx), %ymm26, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xad,0x20,0x67,0xa2,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x2d,0x20,0x67,0xa2,0xe0,0xef,0xff,0xff]
vpackuswb -4128(%rdx), %ymm26, %ymm20
// CHECK: vpackssdw %xmm26, %xmm26, %xmm30
@@ -2849,75 +2849,75 @@
vpackssdw -516(%rdx){1to8}, %ymm22, %ymm28
// CHECK: vpacksswb %xmm21, %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x21,0x9d,0x00,0x63,0xcd]
+// CHECK: encoding: [0x62,0x21,0x1d,0x00,0x63,0xcd]
vpacksswb %xmm21, %xmm28, %xmm25
// CHECK: vpacksswb %xmm21, %xmm28, %xmm25 {%k5}
-// CHECK: encoding: [0x62,0x21,0x9d,0x05,0x63,0xcd]
+// CHECK: encoding: [0x62,0x21,0x1d,0x05,0x63,0xcd]
vpacksswb %xmm21, %xmm28, %xmm25 {%k5}
// CHECK: vpacksswb %xmm21, %xmm28, %xmm25 {%k5} {z}
-// CHECK: encoding: [0x62,0x21,0x9d,0x85,0x63,0xcd]
+// CHECK: encoding: [0x62,0x21,0x1d,0x85,0x63,0xcd]
vpacksswb %xmm21, %xmm28, %xmm25 {%k5} {z}
// CHECK: vpacksswb (%rcx), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x61,0x9d,0x00,0x63,0x09]
+// CHECK: encoding: [0x62,0x61,0x1d,0x00,0x63,0x09]
vpacksswb (%rcx), %xmm28, %xmm25
// CHECK: vpacksswb 291(%rax,%r14,8), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x21,0x9d,0x00,0x63,0x8c,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x1d,0x00,0x63,0x8c,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %xmm28, %xmm25
// CHECK: vpacksswb 2032(%rdx), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x61,0x9d,0x00,0x63,0x4a,0x7f]
+// CHECK: encoding: [0x62,0x61,0x1d,0x00,0x63,0x4a,0x7f]
vpacksswb 2032(%rdx), %xmm28, %xmm25
// CHECK: vpacksswb 2048(%rdx), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x61,0x9d,0x00,0x63,0x8a,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x1d,0x00,0x63,0x8a,0x00,0x08,0x00,0x00]
vpacksswb 2048(%rdx), %xmm28, %xmm25
// CHECK: vpacksswb -2048(%rdx), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x61,0x9d,0x00,0x63,0x4a,0x80]
+// CHECK: encoding: [0x62,0x61,0x1d,0x00,0x63,0x4a,0x80]
vpacksswb -2048(%rdx), %xmm28, %xmm25
// CHECK: vpacksswb -2064(%rdx), %xmm28, %xmm25
-// CHECK: encoding: [0x62,0x61,0x9d,0x00,0x63,0x8a,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x1d,0x00,0x63,0x8a,0xf0,0xf7,0xff,0xff]
vpacksswb -2064(%rdx), %xmm28, %xmm25
// CHECK: vpacksswb %ymm22, %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x63,0xee]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x63,0xee]
vpacksswb %ymm22, %ymm28, %ymm21
// CHECK: vpacksswb %ymm22, %ymm28, %ymm21 {%k5}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x25,0x63,0xee]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x25,0x63,0xee]
vpacksswb %ymm22, %ymm28, %ymm21 {%k5}
// CHECK: vpacksswb %ymm22, %ymm28, %ymm21 {%k5} {z}
-// CHECK: encoding: [0x62,0xa1,0x9d,0xa5,0x63,0xee]
+// CHECK: encoding: [0x62,0xa1,0x1d,0xa5,0x63,0xee]
vpacksswb %ymm22, %ymm28, %ymm21 {%k5} {z}
// CHECK: vpacksswb (%rcx), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x63,0x29]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x63,0x29]
vpacksswb (%rcx), %ymm28, %ymm21
// CHECK: vpacksswb 291(%rax,%r14,8), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x63,0xac,0xf0,0x23,0x01,0x00,0x00]
vpacksswb 291(%rax,%r14,8), %ymm28, %ymm21
// CHECK: vpacksswb 4064(%rdx), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x63,0x6a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x63,0x6a,0x7f]
vpacksswb 4064(%rdx), %ymm28, %ymm21
// CHECK: vpacksswb 4096(%rdx), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x63,0xaa,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x63,0xaa,0x00,0x10,0x00,0x00]
vpacksswb 4096(%rdx), %ymm28, %ymm21
// CHECK: vpacksswb -4096(%rdx), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x63,0x6a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x63,0x6a,0x80]
vpacksswb -4096(%rdx), %ymm28, %ymm21
// CHECK: vpacksswb -4128(%rdx), %ymm28, %ymm21
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x63,0xaa,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x63,0xaa,0xe0,0xef,0xff,0xff]
vpacksswb -4128(%rdx), %ymm28, %ymm21
// CHECK: vpackusdw %xmm20, %xmm24, %xmm24
@@ -3033,75 +3033,75 @@
vpackusdw -516(%rdx){1to8}, %ymm26, %ymm19
// CHECK: vpackuswb %xmm17, %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xa1,0xa5,0x00,0x67,0xe9]
+// CHECK: encoding: [0x62,0xa1,0x25,0x00,0x67,0xe9]
vpackuswb %xmm17, %xmm27, %xmm21
// CHECK: vpackuswb %xmm17, %xmm27, %xmm21 {%k4}
-// CHECK: encoding: [0x62,0xa1,0xa5,0x04,0x67,0xe9]
+// CHECK: encoding: [0x62,0xa1,0x25,0x04,0x67,0xe9]
vpackuswb %xmm17, %xmm27, %xmm21 {%k4}
// CHECK: vpackuswb %xmm17, %xmm27, %xmm21 {%k4} {z}
-// CHECK: encoding: [0x62,0xa1,0xa5,0x84,0x67,0xe9]
+// CHECK: encoding: [0x62,0xa1,0x25,0x84,0x67,0xe9]
vpackuswb %xmm17, %xmm27, %xmm21 {%k4} {z}
// CHECK: vpackuswb (%rcx), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xe1,0xa5,0x00,0x67,0x29]
+// CHECK: encoding: [0x62,0xe1,0x25,0x00,0x67,0x29]
vpackuswb (%rcx), %xmm27, %xmm21
// CHECK: vpackuswb 291(%rax,%r14,8), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xa1,0xa5,0x00,0x67,0xac,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x25,0x00,0x67,0xac,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %xmm27, %xmm21
// CHECK: vpackuswb 2032(%rdx), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xe1,0xa5,0x00,0x67,0x6a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x25,0x00,0x67,0x6a,0x7f]
vpackuswb 2032(%rdx), %xmm27, %xmm21
// CHECK: vpackuswb 2048(%rdx), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xe1,0xa5,0x00,0x67,0xaa,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x25,0x00,0x67,0xaa,0x00,0x08,0x00,0x00]
vpackuswb 2048(%rdx), %xmm27, %xmm21
// CHECK: vpackuswb -2048(%rdx), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xe1,0xa5,0x00,0x67,0x6a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x25,0x00,0x67,0x6a,0x80]
vpackuswb -2048(%rdx), %xmm27, %xmm21
// CHECK: vpackuswb -2064(%rdx), %xmm27, %xmm21
-// CHECK: encoding: [0x62,0xe1,0xa5,0x00,0x67,0xaa,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x25,0x00,0x67,0xaa,0xf0,0xf7,0xff,0xff]
vpackuswb -2064(%rdx), %xmm27, %xmm21
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19 {%k1}
-// CHECK: encoding: [0x62,0xa1,0x9d,0x21,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x21,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19 {%k1}
// CHECK: vpackuswb %ymm20, %ymm28, %ymm19 {%k1} {z}
-// CHECK: encoding: [0x62,0xa1,0x9d,0xa1,0x67,0xdc]
+// CHECK: encoding: [0x62,0xa1,0x1d,0xa1,0x67,0xdc]
vpackuswb %ymm20, %ymm28, %ymm19 {%k1} {z}
// CHECK: vpackuswb (%rcx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x19]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x19]
vpackuswb (%rcx), %ymm28, %ymm19
// CHECK: vpackuswb 291(%rax,%r14,8), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xa1,0x9d,0x20,0x67,0x9c,0xf0,0x23,0x01,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x1d,0x20,0x67,0x9c,0xf0,0x23,0x01,0x00,0x00]
vpackuswb 291(%rax,%r14,8), %ymm28, %ymm19
// CHECK: vpackuswb 4064(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x5a,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x5a,0x7f]
vpackuswb 4064(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb 4096(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x9a,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x9a,0x00,0x10,0x00,0x00]
vpackuswb 4096(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb -4096(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x5a,0x80]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x5a,0x80]
vpackuswb -4096(%rdx), %ymm28, %ymm19
// CHECK: vpackuswb -4128(%rdx), %ymm28, %ymm19
-// CHECK: encoding: [0x62,0xe1,0x9d,0x20,0x67,0x9a,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x1d,0x20,0x67,0x9a,0xe0,0xef,0xff,0xff]
vpackuswb -4128(%rdx), %ymm28, %ymm19
// CHECK: vpackssdw %xmm19, %xmm17, %xmm24
@@ -3217,75 +3217,75 @@
vpackssdw -516(%rdx){1to8}, %ymm19, %ymm25
// CHECK: vpacksswb %xmm22, %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x21,0xb5,0x00,0x63,0xee]
+// CHECK: encoding: [0x62,0x21,0x35,0x00,0x63,0xee]
vpacksswb %xmm22, %xmm25, %xmm29
// CHECK: vpacksswb %xmm22, %xmm25, %xmm29 {%k5}
-// CHECK: encoding: [0x62,0x21,0xb5,0x05,0x63,0xee]
+// CHECK: encoding: [0x62,0x21,0x35,0x05,0x63,0xee]
vpacksswb %xmm22, %xmm25, %xmm29 {%k5}
// CHECK: vpacksswb %xmm22, %xmm25, %xmm29 {%k5} {z}
-// CHECK: encoding: [0x62,0x21,0xb5,0x85,0x63,0xee]
+// CHECK: encoding: [0x62,0x21,0x35,0x85,0x63,0xee]
vpacksswb %xmm22, %xmm25, %xmm29 {%k5} {z}
// CHECK: vpacksswb (%rcx), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x61,0xb5,0x00,0x63,0x29]
+// CHECK: encoding: [0x62,0x61,0x35,0x00,0x63,0x29]
vpacksswb (%rcx), %xmm25, %xmm29
// CHECK: vpacksswb 4660(%rax,%r14,8), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x21,0xb5,0x00,0x63,0xac,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x35,0x00,0x63,0xac,0xf0,0x34,0x12,0x00,0x00]
vpacksswb 4660(%rax,%r14,8), %xmm25, %xmm29
// CHECK: vpacksswb 2032(%rdx), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x61,0xb5,0x00,0x63,0x6a,0x7f]
+// CHECK: encoding: [0x62,0x61,0x35,0x00,0x63,0x6a,0x7f]
vpacksswb 2032(%rdx), %xmm25, %xmm29
// CHECK: vpacksswb 2048(%rdx), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x61,0xb5,0x00,0x63,0xaa,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x35,0x00,0x63,0xaa,0x00,0x08,0x00,0x00]
vpacksswb 2048(%rdx), %xmm25, %xmm29
// CHECK: vpacksswb -2048(%rdx), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x61,0xb5,0x00,0x63,0x6a,0x80]
+// CHECK: encoding: [0x62,0x61,0x35,0x00,0x63,0x6a,0x80]
vpacksswb -2048(%rdx), %xmm25, %xmm29
// CHECK: vpacksswb -2064(%rdx), %xmm25, %xmm29
-// CHECK: encoding: [0x62,0x61,0xb5,0x00,0x63,0xaa,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x35,0x00,0x63,0xaa,0xf0,0xf7,0xff,0xff]
vpacksswb -2064(%rdx), %xmm25, %xmm29
// CHECK: vpacksswb %ymm27, %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x01,0xdd,0x20,0x63,0xd3]
+// CHECK: encoding: [0x62,0x01,0x5d,0x20,0x63,0xd3]
vpacksswb %ymm27, %ymm20, %ymm26
// CHECK: vpacksswb %ymm27, %ymm20, %ymm26 {%k6}
-// CHECK: encoding: [0x62,0x01,0xdd,0x26,0x63,0xd3]
+// CHECK: encoding: [0x62,0x01,0x5d,0x26,0x63,0xd3]
vpacksswb %ymm27, %ymm20, %ymm26 {%k6}
// CHECK: vpacksswb %ymm27, %ymm20, %ymm26 {%k6} {z}
-// CHECK: encoding: [0x62,0x01,0xdd,0xa6,0x63,0xd3]
+// CHECK: encoding: [0x62,0x01,0x5d,0xa6,0x63,0xd3]
vpacksswb %ymm27, %ymm20, %ymm26 {%k6} {z}
// CHECK: vpacksswb (%rcx), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x61,0xdd,0x20,0x63,0x11]
+// CHECK: encoding: [0x62,0x61,0x5d,0x20,0x63,0x11]
vpacksswb (%rcx), %ymm20, %ymm26
// CHECK: vpacksswb 4660(%rax,%r14,8), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x21,0xdd,0x20,0x63,0x94,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0x21,0x5d,0x20,0x63,0x94,0xf0,0x34,0x12,0x00,0x00]
vpacksswb 4660(%rax,%r14,8), %ymm20, %ymm26
// CHECK: vpacksswb 4064(%rdx), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x61,0xdd,0x20,0x63,0x52,0x7f]
+// CHECK: encoding: [0x62,0x61,0x5d,0x20,0x63,0x52,0x7f]
vpacksswb 4064(%rdx), %ymm20, %ymm26
// CHECK: vpacksswb 4096(%rdx), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x61,0xdd,0x20,0x63,0x92,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0x61,0x5d,0x20,0x63,0x92,0x00,0x10,0x00,0x00]
vpacksswb 4096(%rdx), %ymm20, %ymm26
// CHECK: vpacksswb -4096(%rdx), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x61,0xdd,0x20,0x63,0x52,0x80]
+// CHECK: encoding: [0x62,0x61,0x5d,0x20,0x63,0x52,0x80]
vpacksswb -4096(%rdx), %ymm20, %ymm26
// CHECK: vpacksswb -4128(%rdx), %ymm20, %ymm26
-// CHECK: encoding: [0x62,0x61,0xdd,0x20,0x63,0x92,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0x61,0x5d,0x20,0x63,0x92,0xe0,0xef,0xff,0xff]
vpacksswb -4128(%rdx), %ymm20, %ymm26
// CHECK: vpackusdw %xmm18, %xmm27, %xmm28
@@ -3401,75 +3401,75 @@
vpackusdw -516(%rdx){1to8}, %ymm26, %ymm23
// CHECK: vpackuswb %xmm23, %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xa1,0xdd,0x00,0x67,0xe7]
+// CHECK: encoding: [0x62,0xa1,0x5d,0x00,0x67,0xe7]
vpackuswb %xmm23, %xmm20, %xmm20
// CHECK: vpackuswb %xmm23, %xmm20, %xmm20 {%k2}
-// CHECK: encoding: [0x62,0xa1,0xdd,0x02,0x67,0xe7]
+// CHECK: encoding: [0x62,0xa1,0x5d,0x02,0x67,0xe7]
vpackuswb %xmm23, %xmm20, %xmm20 {%k2}
// CHECK: vpackuswb %xmm23, %xmm20, %xmm20 {%k2} {z}
-// CHECK: encoding: [0x62,0xa1,0xdd,0x82,0x67,0xe7]
+// CHECK: encoding: [0x62,0xa1,0x5d,0x82,0x67,0xe7]
vpackuswb %xmm23, %xmm20, %xmm20 {%k2} {z}
// CHECK: vpackuswb (%rcx), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x67,0x21]
+// CHECK: encoding: [0x62,0xe1,0x5d,0x00,0x67,0x21]
vpackuswb (%rcx), %xmm20, %xmm20
// CHECK: vpackuswb 4660(%rax,%r14,8), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xa1,0xdd,0x00,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x5d,0x00,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
vpackuswb 4660(%rax,%r14,8), %xmm20, %xmm20
// CHECK: vpackuswb 2032(%rdx), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x67,0x62,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x5d,0x00,0x67,0x62,0x7f]
vpackuswb 2032(%rdx), %xmm20, %xmm20
// CHECK: vpackuswb 2048(%rdx), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x67,0xa2,0x00,0x08,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x5d,0x00,0x67,0xa2,0x00,0x08,0x00,0x00]
vpackuswb 2048(%rdx), %xmm20, %xmm20
// CHECK: vpackuswb -2048(%rdx), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x67,0x62,0x80]
+// CHECK: encoding: [0x62,0xe1,0x5d,0x00,0x67,0x62,0x80]
vpackuswb -2048(%rdx), %xmm20, %xmm20
// CHECK: vpackuswb -2064(%rdx), %xmm20, %xmm20
-// CHECK: encoding: [0x62,0xe1,0xdd,0x00,0x67,0xa2,0xf0,0xf7,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x5d,0x00,0x67,0xa2,0xf0,0xf7,0xff,0xff]
vpackuswb -2064(%rdx), %xmm20, %xmm20
// CHECK: vpackuswb %ymm27, %ymm19, %ymm20
-// CHECK: encoding: [0x62,0x81,0xe5,0x20,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x65,0x20,0x67,0xe3]
vpackuswb %ymm27, %ymm19, %ymm20
// CHECK: vpackuswb %ymm27, %ymm19, %ymm20 {%k5}
-// CHECK: encoding: [0x62,0x81,0xe5,0x25,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x65,0x25,0x67,0xe3]
vpackuswb %ymm27, %ymm19, %ymm20 {%k5}
// CHECK: vpackuswb %ymm27, %ymm19, %ymm20 {%k5} {z}
-// CHECK: encoding: [0x62,0x81,0xe5,0xa5,0x67,0xe3]
+// CHECK: encoding: [0x62,0x81,0x65,0xa5,0x67,0xe3]
vpackuswb %ymm27, %ymm19, %ymm20 {%k5} {z}
// CHECK: vpackuswb (%rcx), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xe5,0x20,0x67,0x21]
+// CHECK: encoding: [0x62,0xe1,0x65,0x20,0x67,0x21]
vpackuswb (%rcx), %ymm19, %ymm20
// CHECK: vpackuswb 4660(%rax,%r14,8), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xa1,0xe5,0x20,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
+// CHECK: encoding: [0x62,0xa1,0x65,0x20,0x67,0xa4,0xf0,0x34,0x12,0x00,0x00]
vpackuswb 4660(%rax,%r14,8), %ymm19, %ymm20
// CHECK: vpackuswb 4064(%rdx), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xe5,0x20,0x67,0x62,0x7f]
+// CHECK: encoding: [0x62,0xe1,0x65,0x20,0x67,0x62,0x7f]
vpackuswb 4064(%rdx), %ymm19, %ymm20
// CHECK: vpackuswb 4096(%rdx), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xe5,0x20,0x67,0xa2,0x00,0x10,0x00,0x00]
+// CHECK: encoding: [0x62,0xe1,0x65,0x20,0x67,0xa2,0x00,0x10,0x00,0x00]
vpackuswb 4096(%rdx), %ymm19, %ymm20
// CHECK: vpackuswb -4096(%rdx), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xe5,0x20,0x67,0x62,0x80]
+// CHECK: encoding: [0x62,0xe1,0x65,0x20,0x67,0x62,0x80]
vpackuswb -4096(%rdx), %ymm19, %ymm20
// CHECK: vpackuswb -4128(%rdx), %ymm19, %ymm20
-// CHECK: encoding: [0x62,0xe1,0xe5,0x20,0x67,0xa2,0xe0,0xef,0xff,0xff]
+// CHECK: encoding: [0x62,0xe1,0x65,0x20,0x67,0xa2,0xe0,0xef,0xff,0xff]
vpackuswb -4128(%rdx), %ymm19, %ymm20
// CHECK: vpaddsb %xmm27, %xmm19, %xmm19
diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s
index 71f8557cde1c..1af25e5412f1 100644
--- a/test/MC/X86/x86-64.s
+++ b/test/MC/X86/x86-64.s
@@ -281,6 +281,27 @@ inw (%dx), %ax
in (%dx), %eax
inl (%dx), %eax
+//PR15455
+
+// permitted invalid memory forms
+outs (%rsi), (%dx)
+// CHECK: outsw (%rsi), %dx
+outsb (%rsi), (%dx)
+// CHECK: outsb (%rsi), %dx
+outsw (%rsi), (%dx)
+// CHECK: outsw (%rsi), %dx
+outsl (%rsi), (%dx)
+// CHECK: outsl (%rsi), %dx
+
+ins (%dx), %es:(%rdi)
+// CHECK: insw %dx, %es:(%rdi)
+insb (%dx), %es:(%rdi)
+// CHECK: insb %dx, %es:(%rdi)
+insw (%dx), %es:(%rdi)
+// CHECK: insw %dx, %es:(%rdi)
+insl (%dx), %es:(%rdi)
+// CHECK: insl %dx, %es:(%rdi)
+
// rdar://8431422
// CHECK: fxch %st(1)
@@ -592,6 +613,31 @@ movq $12, foo(%rip)
// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
+movl foo(%eip), %eax
+// CHECK: movl foo(%eip), %eax
+// CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A]
+// CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte
+
+movb $12, foo(%eip)
+// CHECK: movb $12, foo(%eip)
+// CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c]
+// CHECK: fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte
+
+movw $12, foo(%eip)
+// CHECK: movw $12, foo(%eip)
+// CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
+// CHECK: fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte
+
+movl $12, foo(%eip)
+// CHECK: movl $12, foo(%eip)
+// CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
+// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
+
+movq $12, foo(%eip)
+// CHECK: movq $12, foo(%eip)
+// CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
+// CHECK: fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte
+
// CHECK: addq $-424, %rax
// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
addq $-424, %rax
@@ -607,6 +653,15 @@ movq _foo@GOTPCREL(%rip), %rax
// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
movq _foo@GOTPCREL(%rip), %r14
+// CHECK: movq _foo@GOTPCREL(%eip), %rax
+// CHECK: encoding: [0x67,0x48,0x8b,0x05,A,A,A,A]
+// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%eip), %rax
+
+// CHECK: movq _foo@GOTPCREL(%eip), %r14
+// CHECK: encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A]
+// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
+movq _foo@GOTPCREL(%eip), %r14
// CHECK: movq (%r13,%rax,8), %r13
// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
@@ -841,6 +896,38 @@ lock/incl 1(%rsp)
// CHECK: lock
// CHECK: incl 1(%rsp)
+
+lock addq %rsi, (%rdi)
+// CHECK: lock
+// CHECK: encoding: [0xf0]
+// CHECK: addq %rsi, (%rdi)
+// CHECK: encoding: [0x48,0x01,0x37]
+
+lock subq %rsi, (%rdi)
+// CHECK: lock
+// CHECK: encoding: [0xf0]
+// CHECK: subq %rsi, (%rdi)
+// CHECK: encoding: [0x48,0x29,0x37]
+
+lock andq %rsi, (%rdi)
+// CHECK: lock
+// CHECK: encoding: [0xf0]
+// CHECK: andq %rsi, (%rdi)
+// CHECK: encoding: [0x48,0x21,0x37]
+
+lock orq %rsi, (%rdi)
+// CHECK: lock
+// CHECK: encoding: [0xf0]
+// CHECK: orq %rsi, (%rdi)
+// CHECK: encoding: [0x48,0x09,0x37]
+
+lock xorq %rsi, (%rdi)
+// CHECK: lock
+// CHECK: encoding: [0xf0]
+// CHECK: xorq %rsi, (%rdi)
+// CHECK: encoding: [0x48,0x31,0x37]
+
+
// rdar://8033482
rep movsl
// CHECK: rep
@@ -1408,3 +1495,7 @@ vmovq %xmm0, %rax
// CHECK: mwaitx
// CHECK: encoding: [0x0f,0x01,0xfb]
mwaitx %rax, %rcx, %rbx
+
+// CHECK: movl %r15d, (%r15,%r15)
+// CHECK: encoding: [0x47,0x89,0x3c,0x3f]
+movl %r15d, (%r15,%r15)
diff --git a/test/MC/X86/x86-branch-relaxation.s b/test/MC/X86/x86-branch-relaxation.s
new file mode 100644
index 000000000000..870374e685fd
--- /dev/null
+++ b/test/MC/X86/x86-branch-relaxation.s
@@ -0,0 +1,31 @@
+# RUN: llvm-mc -filetype=obj -triple=i386-unknown-unknown %s -o %t
+# RUN: llvm-objdump -r -D -section .text.bar -triple i386-unknown-unknown-code16 %t | FileCheck --check-prefix=CHECK16 %s
+# RUN: llvm-objdump -r -D -section .text.baz -triple i386-unknown-unknown %t | FileCheck --check-prefix=CHECK32 %s
+ .text
+ .section .text.foo,"",@progbits
+
+ .code16
+ .globl foo
+foo:
+ nop
+
+ .section .text.bar,"",@progbits
+ .globl bar16
+bar16:
+ jmp foo
+
+ .section .text.baz,"",@progbits
+ .code32
+ .globl baz32
+baz32:
+ jmp foo
+
+
+
+
+// CHECK16-LABEL: bar16
+// CHECK16-NEXT: e9 fe ff jmp -2 <bar16+0x1>
+// CHECK32-LABEL: baz32
+// CHECK32-NEXT: e9 fc ff ff ff jmp -4 <baz32+0x1>
+
+
diff --git a/test/MC/X86/x86_errors.s b/test/MC/X86/x86_errors.s
index 4a5bd977d9ff..3eaf4036605d 100644
--- a/test/MC/X86/x86_errors.s
+++ b/test/MC/X86/x86_errors.s
@@ -11,6 +11,10 @@ cmp $0, 0(%eax)
// 32: error: register %rax is only available in 64-bit mode
addl $0, 0(%rax)
+// 32: error: register %xmm16 is only available in 64-bit mode
+// 64: error: register %xmm16 is only available with AVX512
+vaddps %xmm16, %xmm0, %xmm0
+
// 32: test.s:8:2: error: invalid instruction mnemonic 'movi'
# 8 "test.s"
diff --git a/test/MC/X86/x86_long_nop.s b/test/MC/X86/x86_long_nop.s
index eee840c5a977..806f841e891c 100644
--- a/test/MC/X86/x86_long_nop.s
+++ b/test/MC/X86/x86_long_nop.s
@@ -2,7 +2,8 @@
# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s
# RUN: llvm-mc -filetype=obj -arch=x86 -triple=x86_64-apple-darwin10.0 %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s
# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-apple-darwin8 %s | llvm-objdump -d -no-show-raw-insn - | FileCheck %s
-# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu -mcpu=slm %s | llvm-objdump -d -no-show-raw-insn - | FileCheck --check-prefix=SLM %s
+# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu -mcpu=slm %s | llvm-objdump -d -no-show-raw-insn - | FileCheck --check-prefix=LNOP7 %s
+# RUN: llvm-mc -filetype=obj -arch=x86 -triple=i686-pc-linux-gnu -mcpu=lakemont %s | llvm-objdump -d -no-show-raw-insn - | FileCheck --check-prefix=LNOP7 %s
# Ensure alignment directives also emit sequences of 15-byte NOPs on processors
# capable of using long NOPs.
@@ -15,11 +16,12 @@ inc %eax
# CHECK-NEXT: 1f: nop
# CHECK-NEXT: 20: inc
-# On Silvermont we emit only 7 byte NOPs since longer NOPs are not profitable
-# SLM: 0: inc
-# SLM-NEXT: 1: nop
-# SLM-NEXT: 8: nop
-# SLM-NEXT: f: nop
-# SLM-NEXT: 16: nop
-# SLM-NEXT: 1d: nop
-# SLM-NEXT: 20: inc
+# On Silvermont and Lakemont we emit only 7 byte NOPs since longer NOPs
+# are not profitable.
+# LNOP7: 0: inc
+# LNOP7-NEXT: 1: nop
+# LNOP7-NEXT: 8: nop
+# LNOP7-NEXT: f: nop
+# LNOP7-NEXT: 16: nop
+# LNOP7-NEXT: 1d: nop
+# LNOP7-NEXT: 20: inc